diff options
author | Mike Pall <mike> | 2021-09-20 14:36:52 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2021-09-20 14:36:52 +0200 |
commit | 68ffbd318b331b988c32ecfdeee965e9683889f4 (patch) | |
tree | f8a2d4c001e975c34208b4faf5e522a99ed6f53d /src/vm_ppc.dasc | |
parent | a622e2eb559c823d90c7af85935ca63706e4593d (diff) | |
download | luajit-68ffbd318b331b988c32ecfdeee965e9683889f4.tar.gz luajit-68ffbd318b331b988c32ecfdeee965e9683889f4.tar.bz2 luajit-68ffbd318b331b988c32ecfdeee965e9683889f4.zip |
FFI: Don't load PC from non-function object in FFI continuation.
Reported by Yichun Zhang. #743
Diffstat (limited to 'src/vm_ppc.dasc')
-rw-r--r-- | src/vm_ppc.dasc | 2 |
1 files changed, 1 insertions, 1 deletions
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 |