summaryrefslogtreecommitdiff
path: root/src/lj_asm_x86.h
diff options
context:
space:
mode:
authorMike Pall <mike>2012-07-02 22:42:40 +0200
committerMike Pall <mike>2012-07-02 22:42:40 +0200
commit5d0115ef8df093ce9737d00ad35d2fcc693df83f (patch)
treeac4268983040eba4ef45a4e4fea775062db34154 /src/lj_asm_x86.h
parent264177b0d041fdea5e07091a0c585607e9b55828 (diff)
downloadluajit2-5d0115ef8df093ce9737d00ad35d2fcc693df83f.tar.gz
Add explicit IR_GCSTEP instruction.
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r--src/lj_asm_x86.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index 7647b03f..4537e1d5 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -2379,7 +2379,7 @@ static void asm_gc_check(ASMState *as)
asm_gencall(as, ci, args);
tmp = ra_releasetmp(as, ASMREF_TMP1);
emit_loada(as, tmp, J2G(as->J));
- emit_loadi(as, ra_releasetmp(as, ASMREF_TMP2), (int32_t)as->gcsteps);
+ emit_loadi(as, ra_releasetmp(as, ASMREF_TMP2), as->gcsteps);
/* Jump around GC step if GC total < GC threshold. */
emit_sjcc(as, CC_B, l_end);
emit_opgl(as, XO_ARITH(XOg_CMP), tmp, gc.threshold);
@@ -2556,6 +2556,7 @@ static void asm_ir(ASMState *as, IRIns *ir)
ra_alloc1(as, ir->op1, irt_isfp(ir->t) ? RSET_FPR : RSET_GPR); break;
case IR_PHI: asm_phi(as, ir); break;
case IR_HIOP: asm_hiop(as, ir); break;
+ case IR_GCSTEP: asm_gcstep(as, ir); break;
/* Guarded assertions. */
case IR_LT: case IR_GE: case IR_LE: case IR_GT: