diff options
Diffstat (limited to 'src/buildvm_ppc.dasc')
-rw-r--r-- | src/buildvm_ppc.dasc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index d9239d6b..06fc5078 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc | |||
@@ -1098,8 +1098,11 @@ 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 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] | 1102 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] |
1103 | | cmplwi TAB:TMP2, 0 | ||
1102 | | la RA, -8(BASE) | 1104 | | la RA, -8(BASE) |
1105 | | bne ->fff_fallback | ||
1103 | | evstdd TAB:CARG1, 0(BASE) | 1106 | | evstdd TAB:CARG1, 0(BASE) |
1104 | | evstdd TISNIL, 8(BASE) | 1107 | | evstdd TISNIL, 8(BASE) |
1105 | | li RD, (3+1)*8 | 1108 | | li RD, (3+1)*8 |
@@ -1150,8 +1153,11 @@ static void build_subroutines(BuildCtx *ctx) | |||
1150 | | checktab TAB:CARG1 | 1153 | | checktab TAB:CARG1 |
1151 | | lwz PC, FRAME_PC(BASE) | 1154 | | lwz PC, FRAME_PC(BASE) |
1152 | | checkfail ->fff_fallback | 1155 | | checkfail ->fff_fallback |
1156 | | lwz TAB:TMP2, TAB:CARG1->metatable | ||
1153 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] | 1157 | | evldd CFUNC:TMP0, CFUNC:RB->upvalue[0] |
1158 | | cmplwi TAB:TMP2, 0 | ||
1154 | | la RA, -8(BASE) | 1159 | | la RA, -8(BASE) |
1160 | | bne ->fff_fallback | ||
1155 | | evsplati TMP1, 0 | 1161 | | evsplati TMP1, 0 |
1156 | | evstdd TAB:CARG1, 0(BASE) | 1162 | | evstdd TAB:CARG1, 0(BASE) |
1157 | | evstdd TMP1, 8(BASE) | 1163 | | evstdd TMP1, 8(BASE) |