diff options
author | Mike Pall <mike> | 2011-08-21 15:08:27 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-08-21 15:08:27 +0200 |
commit | 78cc9c889d8df0ccdb15e1b63e7a5aa104c58b85 (patch) | |
tree | 16913e3875d27c3ba0ffb7f173a90d431b818996 /src | |
parent | ec1b70ae35996f825506bacb0b10bccaf66eb6b5 (diff) | |
download | luajit-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.c | 1 |
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); |