fix JIT bug related to inlining `variable-reference-constant?'
This commit is contained in:
parent
5cb3422ea9
commit
16ef341e98
|
@ -2096,10 +2096,10 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w
|
|||
CHECK_LIMIT();
|
||||
mz_rs_sync();
|
||||
|
||||
/* Load global+stx array: */
|
||||
/* Load prefix: */
|
||||
pos = mz_remap(SCHEME_TOPLEVEL_DEPTH(v));
|
||||
jit_ldxi_p(JIT_R2, JIT_RUNSTACK, WORDS_TO_BYTES(pos));
|
||||
/* Try already-renamed stx: */
|
||||
mz_rs_ldxi(JIT_R2, pos);
|
||||
/* Extract bucket from prefix: */
|
||||
pos = SCHEME_TOPLEVEL_POS(v);
|
||||
jit_ldxi_p(JIT_R2, JIT_R2, &(((Scheme_Prefix *)0x0)->a[pos]));
|
||||
CHECK_LIMIT();
|
||||
|
@ -2115,7 +2115,7 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w
|
|||
jit_stxi_p(&((Scheme_Bucket *)0x0)->val, JIT_R2, JIT_R0);
|
||||
ref3 = jit_jmpi(jit_forward());
|
||||
|
||||
/* slow path: */
|
||||
/* Slow path: */
|
||||
mz_patch_branch(ref1);
|
||||
mz_patch_branch(ref2);
|
||||
__END_SHORT_JUMPS__(1);
|
||||
|
|
|
@ -451,7 +451,7 @@ static int generate_inlined_constant_varref_test(mz_jit_state *jitter, Scheme_Ob
|
|||
|
||||
/* Load global array: */
|
||||
pos = mz_remap(SCHEME_TOPLEVEL_DEPTH(obj));
|
||||
jit_ldxi_p(JIT_R2, JIT_RUNSTACK, WORDS_TO_BYTES(pos));
|
||||
mz_rs_ldxi(JIT_R2, pos);
|
||||
/* Load bucket: */
|
||||
pos = SCHEME_TOPLEVEL_POS(obj);
|
||||
jit_ldxi_p(JIT_R1, JIT_R2, &(((Scheme_Prefix *)0x0)->a[pos]));
|
||||
|
|
Loading…
Reference in New Issue
Block a user