aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-08-21 15:08:27 +0200
committerMike Pall <mike>2011-08-21 15:08:27 +0200
commit78cc9c889d8df0ccdb15e1b63e7a5aa104c58b85 (patch)
tree16913e3875d27c3ba0ffb7f173a90d431b818996 /src
parentec1b70ae35996f825506bacb0b10bccaf66eb6b5 (diff)
downloadluajit-78cc9c889d8df0ccdb15e1b63e7a5aa104c58b85.tar.gz
luajit-78cc9c889d8df0ccdb15e1b63e7a5aa104c58b85.tar.bz2
luajit-78cc9c889d8df0ccdb15e1b63e7a5aa104c58b85.zip
Record missing FORI slot loads (e.g. after return to lower frame).
Diffstat (limited to 'src')
-rw-r--r--src/lj_record.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 0deaade1..35ec1456 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -435,6 +435,7 @@ static LoopEvent rec_for(jit_State *J, const BCIns *fori, int isforl)
435 t = (LJ_DUALNUM || tref_isint(tr[FORL_IDX])) ? lj_opt_narrow_forl(J, tv) : 435 t = (LJ_DUALNUM || tref_isint(tr[FORL_IDX])) ? lj_opt_narrow_forl(J, tv) :
436 IRT_NUM; 436 IRT_NUM;
437 for (i = FORL_IDX; i <= FORL_STEP; i++) { 437 for (i = FORL_IDX; i <= FORL_STEP; i++) {
438 if (!tr[i]) sload(J, ra+i);
438 lua_assert(tref_isnumber_str(tr[i])); 439 lua_assert(tref_isnumber_str(tr[i]));
439 if (tref_isstr(tr[i])) 440 if (tref_isstr(tr[i]))
440 tr[i] = emitir(IRTG(IR_STRTO, IRT_NUM), tr[i], 0); 441 tr[i] = emitir(IRTG(IR_STRTO, IRT_NUM), tr[i], 0);