aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2014-04-01 10:07:15 +0200
committerMike Pall <mike>2014-04-01 10:07:15 +0200
commitb293063eb823160d3f87c1d56f98a742ee8ee58e (patch)
treee7ae773d1983882e9dfa6be3f98b7255d6c9bc9b /src
parent19b69f21d409375ad8362c04186b246c1749fc8e (diff)
downloadluajit-b293063eb823160d3f87c1d56f98a742ee8ee58e.tar.gz
luajit-b293063eb823160d3f87c1d56f98a742ee8ee58e.tar.bz2
luajit-b293063eb823160d3f87c1d56f98a742ee8ee58e.zip
Correct fix for reuse of SCEV results in FORL.
Diffstat (limited to 'src')
-rw-r--r--src/lj_record.c2
1 files changed, 1 insertions, 1 deletions
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)
437 IRType t; 437 IRType t;
438 if (isforl) { /* Handle FORL/JFORL opcodes. */ 438 if (isforl) { /* Handle FORL/JFORL opcodes. */
439 TRef idx = tr[FORL_IDX]; 439 TRef idx = tr[FORL_IDX];
440 if (mref(J->scev.pc, const BCIns) == fori) { 440 if (mref(J->scev.pc, const BCIns) == fori && tref_ref(idx) == J->scev.idx) {
441 t = J->scev.t.irt; 441 t = J->scev.t.irt;
442 stop = J->scev.stop; 442 stop = J->scev.stop;
443 idx = emitir(IRT(IR_ADD, t), idx, J->scev.step); 443 idx = emitir(IRT(IR_ADD, t), idx, J->scev.step);