aboutsummaryrefslogtreecommitdiff
path: root/src/lj_gc.c
diff options
context:
space:
mode:
authorMike Pall <mike>2016-05-23 00:25:29 +0200
committerMike Pall <mike>2016-05-23 00:25:29 +0200
commit7fb75ccc4cf17825c1c8fe9f44ebfb0668a1b033 (patch)
tree7317a542402fa2a135b6789c7c4868089d31fd2f /src/lj_gc.c
parenta4067978b6d1c2a25d91d82b1b0d384d98abdbe5 (diff)
downloadluajit-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.c2
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);