JIT: fix bug with call-with-values
Handling of runstack overflow wasn't right for platforms with a distinction between short and long jumps --- which includes x86_64, but only after enough code has been allocated.
This commit is contained in:
parent
2e1a81b345
commit
55ffc24011
|
@ -2570,7 +2570,9 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w
|
||||||
(void)jit_calli(code);
|
(void)jit_calli(code);
|
||||||
/* non-tail code pops args off runstack for us */
|
/* non-tail code pops args off runstack for us */
|
||||||
jitter->need_set_rs = 1;
|
jitter->need_set_rs = 1;
|
||||||
|
__START_SHORT_JUMPS__(1);
|
||||||
mz_patch_ucbranch(ref5);
|
mz_patch_ucbranch(ref5);
|
||||||
|
__END_SHORT_JUMPS__(1);
|
||||||
if (target != JIT_R0)
|
if (target != JIT_R0)
|
||||||
jit_movr_p(target, JIT_R0);
|
jit_movr_p(target, JIT_R0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user