summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2010-05-08 18:59:59 +0200
committerMike Pall <mike>2010-05-08 18:59:59 +0200
commit5ff994fa3767e47ebc3ed66959d63caba990d920 (patch)
treead649d99cea93272c79f69f4e0bdbc3eea24ad9d /src/lj_record.c
parent8fa1db826c095adcc45d961e6f6870406d69d49d (diff)
downloadluajit-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.c4
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