diff options
author | Mike Pall <mike> | 2010-05-08 18:59:59 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-05-08 18:59:59 +0200 |
commit | 5ff994fa3767e47ebc3ed66959d63caba990d920 (patch) | |
tree | ad649d99cea93272c79f69f4e0bdbc3eea24ad9d /src/lj_record.c | |
parent | 8fa1db826c095adcc45d961e6f6870406d69d49d (diff) | |
download | luajit-5ff994fa3767e47ebc3ed66959d63caba990d920.tar.gz luajit-5ff994fa3767e47ebc3ed66959d63caba990d920.tar.bz2 luajit-5ff994fa3767e47ebc3ed66959d63caba990d920.zip |
Add weak guards. Emit TNEW/TDUP with a guard bit.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r-- | src/lj_record.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index 440db6c6..55daaae6 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -1883,7 +1883,7 @@ static TRef rec_tnew(jit_State *J, uint32_t ah) | |||
1883 | uint32_t asize = ah & 0x7ff; | 1883 | uint32_t asize = ah & 0x7ff; |
1884 | uint32_t hbits = ah >> 11; | 1884 | uint32_t hbits = ah >> 11; |
1885 | if (asize == 0x7ff) asize = 0x801; | 1885 | if (asize == 0x7ff) asize = 0x801; |
1886 | return emitir(IRT(IR_TNEW, IRT_TAB), asize, hbits); | 1886 | return emitir(IRTG(IR_TNEW, IRT_TAB), asize, hbits); |
1887 | } | 1887 | } |
1888 | 1888 | ||
1889 | /* -- Record bytecode ops ------------------------------------------------- */ | 1889 | /* -- Record bytecode ops ------------------------------------------------- */ |
@@ -2167,7 +2167,7 @@ void lj_record_ins(jit_State *J) | |||
2167 | rc = rec_tnew(J, rc); | 2167 | rc = rec_tnew(J, rc); |
2168 | break; | 2168 | break; |
2169 | case BC_TDUP: | 2169 | case BC_TDUP: |
2170 | rc = emitir(IRT(IR_TDUP, IRT_TAB), | 2170 | rc = emitir(IRTG(IR_TDUP, IRT_TAB), |
2171 | lj_ir_ktab(J, gco2tab(proto_kgc(J->pt, ~(ptrdiff_t)rc))), 0); | 2171 | lj_ir_ktab(J, gco2tab(proto_kgc(J->pt, ~(ptrdiff_t)rc))), 0); |
2172 | break; | 2172 | break; |
2173 | 2173 | ||