summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-03-07 20:21:38 +0100
committerMike Pall <mike>2011-03-07 20:21:38 +0100
commit54978e481befa5988df1dc3edc76c9467d5c47b4 (patch)
tree5095152718f54b08f0f4d3f9fe4f566a4c5ee590 /src/lj_record.c
parenta30f58b54ba645ec0b1efe7087f615451033eb38 (diff)
downloadluajit-54978e481befa5988df1dc3edc76c9467d5c47b4.tar.gz
luajit-54978e481befa5988df1dc3edc76c9467d5c47b4.tar.bz2
luajit-54978e481befa5988df1dc3edc76c9467d5c47b4.zip
DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r--src/lj_record.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index e20d142a..2bfd2608 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1860,8 +1860,9 @@ static void rec_setup_forl(jit_State *J, const BCIns *fori)
1860 emitir(IRTGI(IR_GE), step, lj_ir_kint(J, (int32_t)0x80000000-k)); 1860 emitir(IRTGI(IR_GE), step, lj_ir_kint(J, (int32_t)0x80000000-k));
1861 } 1861 }
1862 } else { 1862 } else {
1863 /* Stop+step variable: need full overflow check (with dead result). */ 1863 /* Stop+step variable: need full overflow check. */
1864 emitir(IRTGI(IR_ADDOV), step, stop); 1864 TRef tr = emitir(IRTGI(IR_ADDOV), step, stop);
1865 emitir(IRTI(IR_USE), tr, 0); /* ADDOV is weak. Avoid dead result. */
1865 } 1866 }
1866 } 1867 }
1867 } else if (t == IRT_INT && !tref_isk(stop)) { 1868 } else if (t == IRT_INT && !tref_isk(stop)) {