aboutsummaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lj_record.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 7a970628..d44f7737 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1781,7 +1781,7 @@ noconstify:
1781 emitir(IRTG(IR_EQ, IRT_PGC), 1781 emitir(IRTG(IR_EQ, IRT_PGC),
1782 REF_BASE, 1782 REF_BASE,
1783 emitir(IRT(IR_ADD, IRT_PGC), uref, 1783 emitir(IRT(IR_ADD, IRT_PGC), uref,
1784 lj_ir_kint(J, (slot - 1 - LJ_FR2) * -8))); 1784 lj_ir_kintpgc(J, (slot - 1 - LJ_FR2) * -8)));
1785 slot -= (int32_t)J->baseslot; /* Note: slot number may be negative! */ 1785 slot -= (int32_t)J->baseslot; /* Note: slot number may be negative! */
1786 if (val == 0) { 1786 if (val == 0) {
1787 return getslot(J, slot); 1787 return getslot(J, slot);
@@ -1794,7 +1794,7 @@ noconstify:
1794 } 1794 }
1795 emitir(IRTG(IR_UGT, IRT_PGC), 1795 emitir(IRTG(IR_UGT, IRT_PGC),
1796 emitir(IRT(IR_SUB, IRT_PGC), uref, REF_BASE), 1796 emitir(IRT(IR_SUB, IRT_PGC), uref, REF_BASE),
1797 lj_ir_kint(J, (J->baseslot + J->maxslot) * 8)); 1797 lj_ir_kintpgc(J, (J->baseslot + J->maxslot) * 8));
1798 } else { 1798 } else {
1799 needbarrier = 1; 1799 needbarrier = 1;
1800 uref = tref_ref(emitir(IRTG(IR_UREFC, IRT_PGC), fn, uv)); 1800 uref = tref_ref(emitir(IRTG(IR_UREFC, IRT_PGC), fn, uv));
@@ -1972,7 +1972,8 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
1972 emitir(IRTGI(IR_EQ), fr, 1972 emitir(IRTGI(IR_EQ), fr,
1973 lj_ir_kint(J, (int32_t)frame_ftsz(J->L->base-1))); 1973 lj_ir_kint(J, (int32_t)frame_ftsz(J->L->base-1)));
1974 vbase = emitir(IRT(IR_SUB, IRT_IGC), REF_BASE, fr); 1974 vbase = emitir(IRT(IR_SUB, IRT_IGC), REF_BASE, fr);
1975 vbase = emitir(IRT(IR_ADD, IRT_PGC), vbase, lj_ir_kint(J, frofs-8*(1+LJ_FR2))); 1975 vbase = emitir(IRT(IR_ADD, IRT_PGC), vbase,
1976 lj_ir_kintpgc(J, frofs-8*(1+LJ_FR2)));
1976 for (i = 0; i < nload; i++) { 1977 for (i = 0; i < nload; i++) {
1977 IRType t = itype2irt(&J->L->base[i-1-LJ_FR2-nvararg]); 1978 IRType t = itype2irt(&J->L->base[i-1-LJ_FR2-nvararg]);
1978 J->base[dst+i] = lj_record_vload(J, vbase, (MSize)i, t); 1979 J->base[dst+i] = lj_record_vload(J, vbase, (MSize)i, t);
@@ -2023,7 +2024,7 @@ static void rec_varg(jit_State *J, BCReg dst, ptrdiff_t nresults)
2023 IRType t; 2024 IRType t;
2024 TRef aref, vbase = emitir(IRT(IR_SUB, IRT_IGC), REF_BASE, fr); 2025 TRef aref, vbase = emitir(IRT(IR_SUB, IRT_IGC), REF_BASE, fr);
2025 vbase = emitir(IRT(IR_ADD, IRT_PGC), vbase, 2026 vbase = emitir(IRT(IR_ADD, IRT_PGC), vbase,
2026 lj_ir_kint(J, frofs-(8<<LJ_FR2))); 2027 lj_ir_kintpgc(J, frofs-(8<<LJ_FR2)));
2027 t = itype2irt(&J->L->base[idx-2-LJ_FR2-nvararg]); 2028 t = itype2irt(&J->L->base[idx-2-LJ_FR2-nvararg]);
2028 aref = emitir(IRT(IR_AREF, IRT_PGC), vbase, tridx); 2029 aref = emitir(IRT(IR_AREF, IRT_PGC), vbase, tridx);
2029 tr = lj_record_vload(J, aref, 0, t); 2030 tr = lj_record_vload(J, aref, 0, t);