From b293063eb823160d3f87c1d56f98a742ee8ee58e Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Tue, 1 Apr 2014 10:07:15 +0200 Subject: [PATCH] Correct fix for reuse of SCEV results in FORL. --- src/lj_record.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lj_record.c b/src/lj_record.c index 95957d31..47d7115b 100644 --- a/src/lj_record.c +++ b/src/lj_record.c @@ -437,7 +437,7 @@ static LoopEvent rec_for(jit_State *J, const BCIns *fori, int isforl) IRType t; if (isforl) { /* Handle FORL/JFORL opcodes. */ TRef idx = tr[FORL_IDX]; - if (mref(J->scev.pc, const BCIns) == fori) { + if (mref(J->scev.pc, const BCIns) == fori && tref_ref(idx) == J->scev.idx) { t = J->scev.t.irt; stop = J->scev.stop; idx = emitir(IRT(IR_ADD, t), idx, J->scev.step);