[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 07/07: Ensure stack alignment in JIT code.
From: |
Andy Wingo |
Subject: |
[Guile-commits] 07/07: Ensure stack alignment in JIT code. |
Date: |
Fri, 26 Apr 2019 06:45:42 -0400 (EDT) |
wingo pushed a commit to branch lightening
in repository guile.
commit 14e64a8b57ff0abb9140db37268ca24fe4980cd0
Author: Andy Wingo <address@hidden>
Date: Fri Apr 26 12:45:16 2019 +0200
Ensure stack alignment in JIT code.
* libguile/jit.c (emit_entry_trampoline): Explicitly align stack.
---
libguile/jit.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libguile/jit.c b/libguile/jit.c
index a531792..f10e267 100644
--- a/libguile/jit.c
+++ b/libguile/jit.c
@@ -1282,6 +1282,8 @@ emit_entry_trampoline (scm_jit_state *j)
if (jit_fpr_is_callee_save (fprs[i]))
jit_pushr_d (j->jit, fprs[i]);
+ size_t alignment = jit_align_stack (j->jit, 0);
+
/* Load our reserved registers: THREAD and SP. Also load IP for the
mcode jump. */
jit_load_args_2 (j->jit, thread_operand (),
@@ -1297,6 +1299,8 @@ emit_entry_trampoline (scm_jit_state *j)
/* Initialize global exit_mcode to point here. */
exit_mcode = jit_address (j->jit);
+ jit_shrink_stack (j->jit, alignment);
+
/* Restore callee-save registers. */
for (size_t i = 0; i < fpr_count; i++)
if (jit_fpr_is_callee_save (fprs[fpr_count - i - 1]))
- [Guile-commits] branch lightening updated (4e53296 -> 14e64a8), Andy Wingo, 2019/04/26
- [Guile-commits] 04/07: Remove unused jit_epilog definition, Andy Wingo, 2019/04/26
- [Guile-commits] 06/07: Merge from upstream Lightening, Andy Wingo, 2019/04/26
- [Guile-commits] 03/07: Make jit_align_stack and jit_shrink_stack public, Andy Wingo, 2019/04/26
- [Guile-commits] 02/07: Track frame size to more reliably align stack before calls, Andy Wingo, 2019/04/26
- [Guile-commits] 07/07: Ensure stack alignment in JIT code.,
Andy Wingo <=
- [Guile-commits] 05/07: Implement reloc shortening, and remove unused functionality, Andy Wingo, 2019/04/26
- [Guile-commits] 01/07: Move jit_move_operands etc to common lightening.c file, Andy Wingo, 2019/04/26