diff options
Diffstat (limited to 'libguile/jit.c')
-rw-r--r-- | libguile/jit.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libguile/jit.c b/libguile/jit.c index a5317928c..f10e2674e 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])) |