1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

jit: Direct tail calls assert that target can have mcode

* libguile/jit.c (emit_direct_tail_call): Assert that the callee label
  starts with an instrument-entry.
This commit is contained in:
Andy Wingo 2019-06-18 21:26:34 +02:00
parent ba94bcafea
commit e8203a3f8c

View file

@ -815,16 +815,12 @@ emit_direct_tail_call (scm_jit_state *j, const uint32_t *vcode)
{
ASSERT_HAS_REGISTER_STATE (FP_IN_REGISTER | SP_IN_REGISTER);
ASSERT ((vcode[0] & 0xff) == scm_op_instrument_entry);
if (vcode == j->start)
{
jit_jmpi (j->jit, j->labels[0]);
}
else if ((vcode[0] & 0xff) != scm_op_instrument_entry)
{
emit_movi (j, T0, (intptr_t) vcode);
emit_store_ip (j, T0);
emit_exit (j);
}
else
{
struct scm_jit_function_data *data;