From 1f0d4d5fdc81b2c5391030bbd7a0ca8561c9157b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 8 Jul 2009 14:01:41 +0000 Subject: [PATCH] bug fix to previous change svn: r15404 --- src/mzscheme/src/jit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mzscheme/src/jit.c b/src/mzscheme/src/jit.c index 06f7f68ae5..c7c9eda9e2 100644 --- a/src/mzscheme/src/jit.c +++ b/src/mzscheme/src/jit.c @@ -1839,7 +1839,7 @@ static int is_constant_and_avoids_r1(Scheme_Object *obj) static jit_insn *generate_proc_struct_retry(mz_jit_state *jitter, int num_rands, GC_CAN_IGNORE jit_insn *refagain) { - GC_CAN_IGNORE jit_insn *ref2, *refz1, *refz2, *refz3, *refz5; + GC_CAN_IGNORE jit_insn *ref2, *refz1, *refz2, *refz3, *refz4, *refz5; ref2 = jit_bnei_i(jit_forward(), JIT_R1, scheme_proc_struct_type); jit_ldxi_p(JIT_R1, JIT_V1, &((Scheme_Structure *)0x0)->stype); @@ -1855,6 +1855,7 @@ static jit_insn *generate_proc_struct_retry(mz_jit_state *jitter, int num_rands, jit_ldxr_p(JIT_R1, JIT_V1, JIT_R1); /* JIT_R1 now has the wrapped procedure */ + refz4 = jit_bmsi_i(jit_forward(), JIT_R1, 0x1); jit_ldr_s(JIT_R2, JIT_R1); refz2 = jit_bnei_i(jit_forward(), JIT_R2, scheme_native_closure_type); CHECK_LIMIT(); @@ -1884,6 +1885,7 @@ static jit_insn *generate_proc_struct_retry(mz_jit_state *jitter, int num_rands, mz_patch_branch(refz1); mz_patch_branch(refz2); mz_patch_branch(refz3); + mz_patch_branch(refz4); mz_patch_branch(refz5); return ref2;