diff options
Diffstat (limited to 'src/buildvm_ppc.dasc')
-rw-r--r-- | src/buildvm_ppc.dasc | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index 06fc5078..108363e5 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc | |||
@@ -1098,11 +1098,16 @@ static void build_subroutines(BuildCtx *ctx) | |||
1098 | | checktab TAB:CARG1 | 1098 | | checktab TAB:CARG1 |
1099 | | lwz PC, FRAME_PC(BASE) | 1099 | | lwz PC, FRAME_PC(BASE) |
1100 | | checkfail ->fff_fallback | 1100 | | checkfail ->fff_fallback |
1101 | | lwz TAB:TMP2, TAB:CARG1->metatable | 1101 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
1102 | | lwz TAB:TMP2, TAB:CARG1->metatable | ||
1102 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] | 1103 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] |
1103 | | cmplwi TAB:TMP2, 0 | 1104 | | cmplwi TAB:TMP2, 0 |
1104 | | la RA, -8(BASE) | 1105 | | la RA, -8(BASE) |
1105 | | bne ->fff_fallback | 1106 | | bne ->fff_fallback |
1107 | #else | ||
1108 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] | ||
1109 | | la RA, -8(BASE) | ||
1110 | #endif | ||
1106 | | evstdd TAB:CARG1, 0(BASE) | 1111 | | evstdd TAB:CARG1, 0(BASE) |
1107 | | evstdd TISNIL, 8(BASE) | 1112 | | evstdd TISNIL, 8(BASE) |
1108 | | li RD, (3+1)*8 | 1113 | | li RD, (3+1)*8 |
@@ -1153,11 +1158,16 @@ static void build_subroutines(BuildCtx *ctx) | |||
1153 | | checktab TAB:CARG1 | 1158 | | checktab TAB:CARG1 |
1154 | | lwz PC, FRAME_PC(BASE) | 1159 | | lwz PC, FRAME_PC(BASE) |
1155 | | checkfail ->fff_fallback | 1160 | | checkfail ->fff_fallback |
1156 | | lwz TAB:TMP2, TAB:CARG1->metatable | 1161 | #ifdef LUAJIT_ENABLE_LUA52COMPAT |
1162 | | lwz TAB:TMP2, TAB:CARG1->metatable | ||
1157 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] | 1163 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] |
1158 | | cmplwi TAB:TMP2, 0 | 1164 | | cmplwi TAB:TMP2, 0 |
1159 | | la RA, -8(BASE) | 1165 | | la RA, -8(BASE) |
1160 | | bne ->fff_fallback | 1166 | | bne ->fff_fallback |
1167 | #else | ||
1168 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] | ||
1169 | | la RA, -8(BASE) | ||
1170 | #endif | ||
1161 | | evsplati TMP1, 0 | 1171 | | evsplati TMP1, 0 |
1162 | | evstdd TAB:CARG1, 0(BASE) | 1172 | | evstdd TAB:CARG1, 0(BASE) |
1163 | | evstdd TMP1, 8(BASE) | 1173 | | evstdd TMP1, 8(BASE) |