diff options
author | Mike Pall <mike> | 2010-02-05 00:07:32 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2010-02-05 00:07:32 +0100 |
commit | c8d55e850624bc237532fd103d1591b64d291081 (patch) | |
tree | f18a416f7deea9266e88d1e915c0b03c34df70bb /src/lj_record.c | |
parent | 370c868c311368175045e788bcdd67a8be37dd76 (diff) | |
download | luajit-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.c | 14 |
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 |