summaryrefslogtreecommitdiff
path: root/src/vm_arm.dasc
diff options
context:
space:
mode:
authorMike Pall <mike>2021-09-20 14:36:52 +0200
committerMike Pall <mike>2021-09-20 14:36:52 +0200
commit68ffbd318b331b988c32ecfdeee965e9683889f4 (patch)
treef8a2d4c001e975c34208b4faf5e522a99ed6f53d /src/vm_arm.dasc
parenta622e2eb559c823d90c7af85935ca63706e4593d (diff)
downloadluajit2-68ffbd318b331b988c32ecfdeee965e9683889f4.tar.gz
FFI: Don't load PC from non-function object in FFI continuation.
Reported by Yichun Zhang. #743
Diffstat (limited to 'src/vm_arm.dasc')
-rw-r--r--src/vm_arm.dasc2
1 files changed, 1 insertions, 1 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)
| cmp CARG1, #1
|.endif
| ldr PC, [CARG4, #-12] // Restore PC from [cont|PC].
- | ldr CARG3, LFUNC:CARG3->field_pc
| mvn INS, #~LJ_TNIL
| add CARG2, RA, RC
| str INS, [CARG2, #-4] // Ensure one valid arg.
|.if FFI
| bls >1
|.endif
+ | ldr CARG3, LFUNC:CARG3->field_pc
| ldr KBASE, [CARG3, #PC2PROTO(k)]
| // BASE = base, RA = resultptr, CARG4 = meta base
| bx CARG1