summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-05 00:07:32 +0100
committerMike Pall <mike>2010-02-05 00:07:32 +0100
commitc8d55e850624bc237532fd103d1591b64d291081 (patch)
treef18a416f7deea9266e88d1e915c0b03c34df70bb /src/lj_record.c
parent370c868c311368175045e788bcdd67a8be37dd76 (diff)
downloadluajit-c8d55e850624bc237532fd103d1591b64d291081.tar.gz
luajit-c8d55e850624bc237532fd103d1591b64d291081.tar.bz2
luajit-c8d55e850624bc237532fd103d1591b64d291081.zip
32/64 bit memory ref cleanup, part 1: GCproto ->bc and ->k.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r--src/lj_record.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index f6d13264..49e3d3b5 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -263,7 +263,7 @@ static TRef fori_arg(jit_State *J, const BCIns *pc, BCReg slot, IRType t)
263 else 263 else
264 return lj_ir_knum(J, cast_num(k)); 264 return lj_ir_knum(J, cast_num(k));
265 } else if (bc_op(ins) == BC_KNUM) { 265 } else if (bc_op(ins) == BC_KNUM) {
266 lua_Number n = J->pt->k.n[bc_d(ins)]; 266 lua_Number n = proto_knum(J->pt, bc_d(ins));
267 if (t == IRT_INT) 267 if (t == IRT_INT)
268 return lj_ir_kint(J, lj_num2int(n)); 268 return lj_ir_kint(J, lj_num2int(n));
269 else 269 else
@@ -1816,7 +1816,7 @@ void lj_record_ins(jit_State *J)
1816 case BCMnone: rb = 0; rc = bc_d(ins); break; /* Upgrade rc to 'rd'. */ 1816 case BCMnone: rb = 0; rc = bc_d(ins); break; /* Upgrade rc to 'rd'. */
1817 case BCMvar: 1817 case BCMvar:
1818 copyTV(J->L, rbv, &lbase[rb]); ix.tab = rb = getslot(J, rb); break; 1818 copyTV(J->L, rbv, &lbase[rb]); ix.tab = rb = getslot(J, rb); break;
1819 case BCMnum: { lua_Number n = J->pt->k.n[rb]; 1819 case BCMnum: { lua_Number n = proto_knum(J->pt, rb);
1820 setnumV(rbv, n); ix.tab = rb = lj_ir_knumint(J, n); } break; 1820 setnumV(rbv, n); ix.tab = rb = lj_ir_knumint(J, n); } break;
1821 default: break; /* Handled later. */ 1821 default: break; /* Handled later. */
1822 } 1822 }
@@ -1824,9 +1824,9 @@ void lj_record_ins(jit_State *J)
1824 case BCMvar: 1824 case BCMvar:
1825 copyTV(J->L, rcv, &lbase[rc]); ix.key = rc = getslot(J, rc); break; 1825 copyTV(J->L, rcv, &lbase[rc]); ix.key = rc = getslot(J, rc); break;
1826 case BCMpri: setitype(rcv, (int32_t)~rc); rc = TREF_PRI(IRT_NIL+rc); break; 1826 case BCMpri: setitype(rcv, (int32_t)~rc); rc = TREF_PRI(IRT_NIL+rc); break;
1827 case BCMnum: { lua_Number n = J->pt->k.n[rc]; 1827 case BCMnum: { lua_Number n = proto_knum(J->pt, rc);
1828 setnumV(rcv, n); ix.key = rc = lj_ir_knumint(J, n); } break; 1828 setnumV(rcv, n); ix.key = rc = lj_ir_knumint(J, n); } break;
1829 case BCMstr: { GCstr *s = strref(J->pt->k.gc[~(ptrdiff_t)rc]); 1829 case BCMstr: { GCstr *s = gco2str(proto_kgc(J->pt, ~(ptrdiff_t)rc));
1830 setstrV(J->L, rcv, s); ix.key = rc = lj_ir_kstr(J, s); } break; 1830 setstrV(J->L, rcv, s); ix.key = rc = lj_ir_kstr(J, s); } break;
1831 default: break; /* Handled later. */ 1831 default: break; /* Handled later. */
1832 } 1832 }
@@ -2018,7 +2018,7 @@ void lj_record_ins(jit_State *J)
2018 break; 2018 break;
2019 case BC_TDUP: 2019 case BC_TDUP:
2020 rc = emitir(IRT(IR_TDUP, IRT_TAB), 2020 rc = emitir(IRT(IR_TDUP, IRT_TAB),
2021 lj_ir_ktab(J, tabref(J->pt->k.gc[~(ptrdiff_t)rc])), 0); 2021 lj_ir_ktab(J, gco2tab(proto_kgc(J->pt, ~(ptrdiff_t)rc))), 0);
2022 break; 2022 break;
2023 2023
2024 /* -- Calls and vararg handling ----------------------------------------- */ 2024 /* -- Calls and vararg handling ----------------------------------------- */
@@ -2315,7 +2315,7 @@ void lj_record_setup(jit_State *J)
2315 /* Check whether we could at least potentially form an extra loop. */ 2315 /* Check whether we could at least potentially form an extra loop. */
2316 if (J->exitno == 0 && T->snap[0].nent == 0) { 2316 if (J->exitno == 0 && T->snap[0].nent == 0) {
2317 /* We can narrow a FORL for some side traces, too. */ 2317 /* We can narrow a FORL for some side traces, too. */
2318 if (J->pc > J->pt->bc && bc_op(J->pc[-1]) == BC_JFORI && 2318 if (J->pc > proto_bc(J->pt) && bc_op(J->pc[-1]) == BC_JFORI &&
2319 bc_d(J->pc[bc_j(J->pc[-1])-1]) == root) { 2319 bc_d(J->pc[bc_j(J->pc[-1])-1]) == root) {
2320 lj_snap_add(J); 2320 lj_snap_add(J);
2321 rec_setup_forl(J, J->pc-1); 2321 rec_setup_forl(J, J->pc-1);
@@ -2332,7 +2332,7 @@ void lj_record_setup(jit_State *J)
2332 rec_stop(J, TRACE_INTERP); 2332 rec_stop(J, TRACE_INTERP);
2333 } else { /* Root trace. */ 2333 } else { /* Root trace. */
2334 J->cur.root = 0; 2334 J->cur.root = 0;
2335 if (J->pc >= J->pt->bc) { /* Not a hot CALL? */ 2335 if (J->pc >= proto_bc(J->pt)) { /* Not a hot CALL? */
2336 J->cur.startins = *J->pc; 2336 J->cur.startins = *J->pc;
2337 J->pc = rec_setup_root(J); 2337 J->pc = rec_setup_root(J);
2338 /* Note: the loop instruction itself is recorded at the end and not 2338 /* Note: the loop instruction itself is recorded at the end and not