diff options
author | Mike Pall <mike> | 2012-09-01 00:58:00 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-09-01 00:58:00 +0200 |
commit | a6d636c50809b405ca838dc683627433950c9e2e (patch) | |
tree | 8bbf134897236a0c6df378969be0e191791a7853 /src/lj_snap.c | |
parent | d3699997fab1fe5e8b342c265a8959eb089e3aa9 (diff) | |
download | luajit-a6d636c50809b405ca838dc683627433950c9e2e.tar.gz luajit-a6d636c50809b405ca838dc683627433950c9e2e.tar.bz2 luajit-a6d636c50809b405ca838dc683627433950c9e2e.zip |
Preserve snapshot #0 PC for all traces (potential gcstep exit).
Diffstat (limited to 'src/lj_snap.c')
-rw-r--r-- | src/lj_snap.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/lj_snap.c b/src/lj_snap.c index dd123692..6fe9efee 100644 --- a/src/lj_snap.c +++ b/src/lj_snap.c | |||
@@ -147,8 +147,7 @@ void lj_snap_add(jit_State *J) | |||
147 | /* Merge if no ins. inbetween or if requested and no guard inbetween. */ | 147 | /* Merge if no ins. inbetween or if requested and no guard inbetween. */ |
148 | if (J->mergesnap ? !irt_isguard(J->guardemit) : | 148 | if (J->mergesnap ? !irt_isguard(J->guardemit) : |
149 | (nsnap > 0 && J->cur.snap[nsnap-1].ref == J->cur.nins)) { | 149 | (nsnap > 0 && J->cur.snap[nsnap-1].ref == J->cur.nins)) { |
150 | if (nsnap == 1 && J->parent == 0) { | 150 | if (nsnap == 1) { /* But preserve snap #0 PC. */ |
151 | /* But preserve snap #0 PC for root traces. */ | ||
152 | emitir_raw(IRT(IR_NOP, IRT_NIL), 0, 0); | 151 | emitir_raw(IRT(IR_NOP, IRT_NIL), 0, 0); |
153 | goto nomerge; | 152 | goto nomerge; |
154 | } | 153 | } |