mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-21 20:20:24 +02:00
Fix assertion error running compile-file with threshold 0
* libguile/jit.c (emit_alloc_frame_for_sp): Don't require that FP be in a register, but if it was and we call out, do restore it.
This commit is contained in:
parent
54b23adc13
commit
e9b44c00fd
1 changed files with 3 additions and 3 deletions
|
@ -681,8 +681,9 @@ static void
|
|||
emit_alloc_frame_for_sp (scm_jit_state *j, jit_gpr_t t)
|
||||
{
|
||||
jit_node_t *k, *fast, *watermark;
|
||||
uint32_t saved_state = save_reloadable_register_state (j);
|
||||
|
||||
ASSERT_HAS_REGISTER_STATE (SP_IN_REGISTER | FP_IN_REGISTER);
|
||||
ASSERT_HAS_REGISTER_STATE (SP_IN_REGISTER);
|
||||
|
||||
emit_ldxi (j, t, THREAD, thread_offset_sp_min_since_gc);
|
||||
fast = jit_bger (SP, t);
|
||||
|
@ -692,8 +693,7 @@ emit_alloc_frame_for_sp (scm_jit_state *j, jit_gpr_t t)
|
|||
/* Slow case: call out to expand stack. */
|
||||
emit_store_current_ip (j, t);
|
||||
emit_call_r_r (j, scm_vm_intrinsics.expand_stack, THREAD, SP);
|
||||
emit_reload_sp (j);
|
||||
emit_reload_fp (j);
|
||||
restore_reloadable_register_state (j, saved_state);
|
||||
k = jit_jmpi ();
|
||||
|
||||
/* Past sp_min_since_gc, but within stack_limit: update watermark and
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue