summaryrefslogtreecommitdiff
path: root/src/lj_snap.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-09-01 00:58:00 +0200
committerMike Pall <mike>2012-09-01 00:58:00 +0200
commita6d636c50809b405ca838dc683627433950c9e2e (patch)
tree8bbf134897236a0c6df378969be0e191791a7853 /src/lj_snap.c
parentd3699997fab1fe5e8b342c265a8959eb089e3aa9 (diff)
downloadluajit-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.c3
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 }