diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm_arm.dasc | 2 | ||||
| -rw-r--r-- | src/vm_mips.dasc | 2 | ||||
| -rw-r--r-- | src/vm_ppc.dasc | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc index 21d706d8..344147e8 100644 --- a/src/vm_arm.dasc +++ b/src/vm_arm.dasc | |||
| @@ -524,13 +524,13 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 524 | | cmp CARG1, #1 | 524 | | cmp CARG1, #1 |
| 525 | |.endif | 525 | |.endif |
| 526 | | ldr PC, [CARG4, #-12] // Restore PC from [cont|PC]. | 526 | | ldr PC, [CARG4, #-12] // Restore PC from [cont|PC]. |
| 527 | | ldr CARG3, LFUNC:CARG3->field_pc | ||
| 528 | | mvn INS, #~LJ_TNIL | 527 | | mvn INS, #~LJ_TNIL |
| 529 | | add CARG2, RA, RC | 528 | | add CARG2, RA, RC |
| 530 | | str INS, [CARG2, #-4] // Ensure one valid arg. | 529 | | str INS, [CARG2, #-4] // Ensure one valid arg. |
| 531 | |.if FFI | 530 | |.if FFI |
| 532 | | bls >1 | 531 | | bls >1 |
| 533 | |.endif | 532 | |.endif |
| 533 | | ldr CARG3, LFUNC:CARG3->field_pc | ||
| 534 | | ldr KBASE, [CARG3, #PC2PROTO(k)] | 534 | | ldr KBASE, [CARG3, #PC2PROTO(k)] |
| 535 | | // BASE = base, RA = resultptr, CARG4 = meta base | 535 | | // BASE = base, RA = resultptr, CARG4 = meta base |
| 536 | | bx CARG1 | 536 | | bx CARG1 |
diff --git a/src/vm_mips.dasc b/src/vm_mips.dasc index 8cb4bd3d..03a84985 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc | |||
| @@ -603,11 +603,11 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 603 | |.endif | 603 | |.endif |
| 604 | | lw PC, -16+HI(RB) // Restore PC from [cont|PC]. | 604 | | lw PC, -16+HI(RB) // Restore PC from [cont|PC]. |
| 605 | | addu TMP2, RA, RD | 605 | | addu TMP2, RA, RD |
| 606 | | lw TMP1, LFUNC:TMP1->pc | ||
| 607 | |.if FFI | 606 | |.if FFI |
| 608 | | bnez AT, >1 | 607 | | bnez AT, >1 |
| 609 | |.endif | 608 | |.endif |
| 610 | |. sw TISNIL, -8+HI(TMP2) // Ensure one valid arg. | 609 | |. sw TISNIL, -8+HI(TMP2) // Ensure one valid arg. |
| 610 | | lw TMP1, LFUNC:TMP1->pc | ||
| 611 | | // BASE = base, RA = resultptr, RB = meta base | 611 | | // BASE = base, RA = resultptr, RB = meta base |
| 612 | | jr TMP0 // Jump to continuation. | 612 | | jr TMP0 // Jump to continuation. |
| 613 | |. lw KBASE, PC2PROTO(k)(TMP1) | 613 | |. lw KBASE, PC2PROTO(k)(TMP1) |
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index e2d62e00..9c1cc36f 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc | |||
| @@ -819,11 +819,11 @@ static void build_subroutines(BuildCtx *ctx) | |||
| 819 | |.endif | 819 | |.endif |
| 820 | | lwz PC, -16(RB) // Restore PC from [cont|PC]. | 820 | | lwz PC, -16(RB) // Restore PC from [cont|PC]. |
| 821 | | subi TMP2, RD, 8 | 821 | | subi TMP2, RD, 8 |
| 822 | | lwz TMP1, LFUNC:TMP1->pc | ||
| 823 | | stwx TISNIL, RA, TMP2 // Ensure one valid arg. | 822 | | stwx TISNIL, RA, TMP2 // Ensure one valid arg. |
| 824 | |.if FFI | 823 | |.if FFI |
| 825 | | ble >1 | 824 | | ble >1 |
| 826 | |.endif | 825 | |.endif |
| 826 | | lwz TMP1, LFUNC:TMP1->pc | ||
| 827 | | lwz KBASE, PC2PROTO(k)(TMP1) | 827 | | lwz KBASE, PC2PROTO(k)(TMP1) |
| 828 | | // BASE = base, RA = resultptr, RB = meta base | 828 | | // BASE = base, RA = resultptr, RB = meta base |
| 829 | | mtctr TMP0 | 829 | | mtctr TMP0 |
