diff options
author | Mike Pall <mike> | 2016-01-18 12:02:01 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2016-01-18 12:02:01 +0100 |
commit | 39eddd3b96e3a234973906a4b1979e4f64e87e1c (patch) | |
tree | ed8fc41df8b707429d0a1650c86e587cc88b4c29 /src | |
parent | 04d28068233a8ddb28842c22f1b831f2ced8fe1a (diff) | |
download | luajit-39eddd3b96e3a234973906a4b1979e4f64e87e1c.tar.gz luajit-39eddd3b96e3a234973906a4b1979e4f64e87e1c.tar.bz2 luajit-39eddd3b96e3a234973906a4b1979e4f64e87e1c.zip |
Always merge snapshots without instructions inbetween.
Thanks to Vyacheslav Egorov.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_snap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_snap.c b/src/lj_snap.c index 62515ed0..368bad33 100644 --- a/src/lj_snap.c +++ b/src/lj_snap.c | |||
@@ -145,8 +145,8 @@ void lj_snap_add(jit_State *J) | |||
145 | MSize nsnap = J->cur.nsnap; | 145 | MSize nsnap = J->cur.nsnap; |
146 | MSize nsnapmap = J->cur.nsnapmap; | 146 | MSize nsnapmap = J->cur.nsnapmap; |
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 ((nsnap > 0 && J->cur.snap[nsnap-1].ref == J->cur.nins) || |
149 | (nsnap > 0 && J->cur.snap[nsnap-1].ref == J->cur.nins)) { | 149 | (J->mergesnap && !irt_isguard(J->guardemit))) { |
150 | if (nsnap == 1) { /* But preserve snap #0 PC. */ | 150 | if (nsnap == 1) { /* But preserve snap #0 PC. */ |
151 | emitir_raw(IRT(IR_NOP, IRT_NIL), 0, 0); | 151 | emitir_raw(IRT(IR_NOP, IRT_NIL), 0, 0); |
152 | goto nomerge; | 152 | goto nomerge; |