diff options
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r-- | src/lj_opt_fold.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 41c87e2f..a8550e1f 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c | |||
@@ -1146,12 +1146,12 @@ LJFOLDF(cse_uref) | |||
1146 | if (LJ_LIKELY(J->flags & JIT_F_OPT_CSE)) { | 1146 | if (LJ_LIKELY(J->flags & JIT_F_OPT_CSE)) { |
1147 | IRRef ref = J->chain[fins->o]; | 1147 | IRRef ref = J->chain[fins->o]; |
1148 | GCfunc *fn = ir_kfunc(fleft); | 1148 | GCfunc *fn = ir_kfunc(fleft); |
1149 | GCupval *uv = gco2uv(gcref(fn->l.uvptr[fins->op2])); | 1149 | GCupval *uv = gco2uv(gcref(fn->l.uvptr[(fins->op2 >> 8)])); |
1150 | while (ref > 0) { | 1150 | while (ref > 0) { |
1151 | IRIns *ir = IR(ref); | 1151 | IRIns *ir = IR(ref); |
1152 | if (irref_isk(ir->op1)) { | 1152 | if (irref_isk(ir->op1)) { |
1153 | GCfunc *fn2 = ir_kfunc(IR(ir->op1)); | 1153 | GCfunc *fn2 = ir_kfunc(IR(ir->op1)); |
1154 | if (gco2uv(gcref(fn2->l.uvptr[ir->op2])) == uv) { | 1154 | if (gco2uv(gcref(fn2->l.uvptr[(ir->op2 >> 8)])) == uv) { |
1155 | if (fins->o == IR_UREFO && gcstep_barrier(J, ref)) | 1155 | if (fins->o == IR_UREFO && gcstep_barrier(J, ref)) |
1156 | break; | 1156 | break; |
1157 | return ref; | 1157 | return ref; |