summaryrefslogtreecommitdiff
path: root/src/buildvm_ppc.dasc
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_ppc.dasc')
-rw-r--r--src/buildvm_ppc.dasc13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc
index db89ac3d..7b5919ba 100644
--- a/src/buildvm_ppc.dasc
+++ b/src/buildvm_ppc.dasc
@@ -1108,7 +1108,6 @@ static void build_subroutines(BuildCtx *ctx)
1108 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] 1108 | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
1109 | la RA, -8(BASE) 1109 | la RA, -8(BASE)
1110#endif 1110#endif
1111 | evstdd TAB:CARG1, 0(BASE)
1112 | evstdd TISNIL, 8(BASE) 1111 | evstdd TISNIL, 8(BASE)
1113 | li RD, (3+1)*8 1112 | li RD, (3+1)*8
1114 | evstdd CFUNC:TMP0, 0(RA) 1113 | evstdd CFUNC:TMP0, 0(RA)
@@ -1169,9 +1168,8 @@ static void build_subroutines(BuildCtx *ctx)
1169 | la RA, -8(BASE) 1168 | la RA, -8(BASE)
1170#endif 1169#endif
1171 | evsplati TMP1, 0 1170 | evsplati TMP1, 0
1172 | evstdd TAB:CARG1, 0(BASE)
1173 | evstdd TMP1, 8(BASE)
1174 | li RD, (3+1)*8 1171 | li RD, (3+1)*8
1172 | evstdd TMP1, 8(BASE)
1175 | evstdd CFUNC:TMP0, 0(RA) 1173 | evstdd CFUNC:TMP0, 0(RA)
1176 | b ->fff_res 1174 | b ->fff_res
1177 | 1175 |
@@ -1780,7 +1778,7 @@ static void build_subroutines(BuildCtx *ctx)
1780 | lwz TMP3, CFUNC:RB->f 1778 | lwz TMP3, CFUNC:RB->f
1781 | add TMP1, BASE, NARGS8:RC 1779 | add TMP1, BASE, NARGS8:RC
1782 | lwz PC, FRAME_PC(BASE) // Fallback may overwrite PC. 1780 | lwz PC, FRAME_PC(BASE) // Fallback may overwrite PC.
1783 | addi TMP0, TMP1, 8*LUA_MINSTACK-8 1781 | addi TMP0, TMP1, 8*LUA_MINSTACK
1784 | lwz TMP2, L->maxstack 1782 | lwz TMP2, L->maxstack
1785 | stw PC, SAVE_PC // Redundant (but a defined value). 1783 | stw PC, SAVE_PC // Redundant (but a defined value).
1786 | cmplw TMP0, TMP2 1784 | cmplw TMP0, TMP2
@@ -1796,7 +1794,7 @@ static void build_subroutines(BuildCtx *ctx)
1796 | slwi RD, CRET1, 3 1794 | slwi RD, CRET1, 3
1797 | la RA, -8(BASE) 1795 | la RA, -8(BASE)
1798 | bgt ->fff_res // Returned nresults+1? 1796 | bgt ->fff_res // Returned nresults+1?
1799 |1: // Returned 0: retry fast path. 1797 |1: // Returned 0 or -1: retry fast path.
1800 | lwz TMP0, L->top 1798 | lwz TMP0, L->top
1801 | lwz LFUNC:RB, FRAME_FUNC(BASE) 1799 | lwz LFUNC:RB, FRAME_FUNC(BASE)
1802 | sub NARGS8:RC, TMP0, BASE 1800 | sub NARGS8:RC, TMP0, BASE
@@ -1814,11 +1812,10 @@ static void build_subroutines(BuildCtx *ctx)
1814 | b ->vm_call_dispatch // Resolve again for tailcall. 1812 | b ->vm_call_dispatch // Resolve again for tailcall.
1815 | 1813 |
1816 |5: // Grow stack for fallback handler. 1814 |5: // Grow stack for fallback handler.
1817 | mr CARG1, L
1818 | li CARG2, LUA_MINSTACK 1815 | li CARG2, LUA_MINSTACK
1819 | bl extern lj_state_growstack // (lua_State *L, int n) 1816 | bl extern lj_state_growstack // (lua_State *L, int n)
1820 | lwz BASE, L->base 1817 | lwz BASE, L->base
1821 | cmpw TMP0, TMP0 // Set 4*cr0+eq. 1818 | cmpw TMP0, TMP0 // Set 4*cr0+eq to force retry.
1822 | b <1 1819 | b <1
1823 | 1820 |
1824 |->fff_gcstep: // Call GC step function. 1821 |->fff_gcstep: // Call GC step function.
@@ -3073,7 +3070,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
3073 break; 3070 break;
3074 3071
3075 case BC_ITERC: 3072 case BC_ITERC:
3076 | // RA = base*8, (RB = (nresults+1)*8,) RC = (nargs+1)*8 ((2+1)*8) 3073 | // RA = base*8, (RB = (nresults+1)*8, RC = (nargs+1)*8 ((2+1)*8))
3077 | subi RA, RA, 24 // evldd doesn't support neg. offsets. 3074 | subi RA, RA, 24 // evldd doesn't support neg. offsets.
3078 | mr TMP2, BASE 3075 | mr TMP2, BASE
3079 | evlddx LFUNC:RB, BASE, RA 3076 | evlddx LFUNC:RB, BASE, RA