diff options
author | Mike Pall <mike> | 2011-03-07 20:21:38 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2011-03-07 20:21:38 +0100 |
commit | 54978e481befa5988df1dc3edc76c9467d5c47b4 (patch) | |
tree | 5095152718f54b08f0f4d3f9fe4f566a4c5ee590 /src/lj_record.c | |
parent | a30f58b54ba645ec0b1efe7087f615451033eb38 (diff) | |
download | luajit-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.c | 5 |
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)) { |