mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Ensure stack alignment in JIT code.
* libguile/jit.c (emit_entry_trampoline): Explicitly align stack.
This commit is contained in:
parent
5b45f04cc8
commit
14e64a8b57
1 changed files with 4 additions and 0 deletions
|
@ -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]))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue