diff options
author | Mike Pall <mike> | 2016-05-23 00:25:29 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2016-05-23 00:25:29 +0200 |
commit | 7fb75ccc4cf17825c1c8fe9f44ebfb0668a1b033 (patch) | |
tree | 7317a542402fa2a135b6789c7c4868089d31fd2f /src/lj_gc.c | |
parent | a4067978b6d1c2a25d91d82b1b0d384d98abdbe5 (diff) | |
download | luajit-7fb75ccc4cf17825c1c8fe9f44ebfb0668a1b033.tar.gz luajit-7fb75ccc4cf17825c1c8fe9f44ebfb0668a1b033.tar.bz2 luajit-7fb75ccc4cf17825c1c8fe9f44ebfb0668a1b033.zip |
Embed 64 bit constants directly in the IR, using two slots.
Contributed by Peter Cawley.
Diffstat (limited to 'src/lj_gc.c')
-rw-r--r-- | src/lj_gc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_gc.c b/src/lj_gc.c index 53f1d974..7c707462 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c | |||
@@ -238,6 +238,8 @@ static void gc_traverse_trace(global_State *g, GCtrace *T) | |||
238 | IRIns *ir = &T->ir[ref]; | 238 | IRIns *ir = &T->ir[ref]; |
239 | if (ir->o == IR_KGC) | 239 | if (ir->o == IR_KGC) |
240 | gc_markobj(g, ir_kgc(ir)); | 240 | gc_markobj(g, ir_kgc(ir)); |
241 | if (irt_is64(ir->t) && ir->o != IR_KNULL) | ||
242 | ref++; | ||
241 | } | 243 | } |
242 | if (T->link) gc_marktrace(g, T->link); | 244 | if (T->link) gc_marktrace(g, T->link); |
243 | if (T->nextroot) gc_marktrace(g, T->nextroot); | 245 | if (T->nextroot) gc_marktrace(g, T->nextroot); |