1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

Fix JIT compilation of composable continuations

* libguile/control.c (compose_continuation_code): Fix offset of code
  end.
* libguile/jit.c (compile_compose_continuation): Fix test for mcode not
  null.
This commit is contained in:
Andy Wingo 2018-08-29 22:15:20 +02:00
parent f32d17d386
commit 6da132cb95
2 changed files with 2 additions and 2 deletions

View file

@ -80,7 +80,7 @@ struct compose_continuation_code compose_continuation_code = {
/* mcode = */ 0, /* mcode = */ 0,
/* counter = */ 0, /* counter = */ 0,
/* start = */ sizeof (struct scm_jit_function_data), /* start = */ sizeof (struct scm_jit_function_data),
/* end = */ sizeof (struct compose_continuation_code) /* end = */ sizeof (struct scm_jit_function_data) + 12
}, },
{ {
SCM_PACK_OP_24 (instrument_entry, 0), SCM_PACK_OP_24 (instrument_entry, 0),

View file

@ -1496,7 +1496,7 @@ compile_compose_continuation (scm_jit_state *j, uint32_t cont_idx)
emit_free_variable_ref (j, T0, T0, cont_idx); emit_free_variable_ref (j, T0, T0, cont_idx);
emit_call_r_r (j, scm_vm_intrinsics.compose_continuation, THREAD, T0); emit_call_r_r (j, scm_vm_intrinsics.compose_continuation, THREAD, T0);
jit_retval (T0); jit_retval (T0);
interp = jit_bnei (T0, 0); interp = jit_beqi (T0, 0);
emit_reload_sp (j); emit_reload_sp (j);
emit_reload_fp (j); emit_reload_fp (j);
jit_jmpr (T0); jit_jmpr (T0);