aboutsummaryrefslogtreecommitdiff
path: root/src/vm_mips64.dasc
diff options
context:
space:
mode:
authorMike Pall <mike>2021-09-20 14:39:26 +0200
committerMike Pall <mike>2021-09-20 14:39:26 +0200
commit003f68565d2f06b2ad2029db002e393d020c034c (patch)
tree9a76e6e1ea49459f91f4714ce8a6374b3835f43b /src/vm_mips64.dasc
parent98b7d9a3b2a18175a7c60ef6e53f47dec918e856 (diff)
downloadluajit-003f68565d2f06b2ad2029db002e393d020c034c.tar.gz
luajit-003f68565d2f06b2ad2029db002e393d020c034c.tar.bz2
luajit-003f68565d2f06b2ad2029db002e393d020c034c.zip
FFI: Don't load PC from non-function object in FFI continuation.
Reported by Yichun Zhang. #743
Diffstat (limited to 'src/vm_mips64.dasc')
-rw-r--r--src/vm_mips64.dasc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm_mips64.dasc b/src/vm_mips64.dasc
index 5c5d761c..4ddb2f9c 100644
--- a/src/vm_mips64.dasc
+++ b/src/vm_mips64.dasc
@@ -728,11 +728,11 @@ static void build_subroutines(BuildCtx *ctx)
728 | ld PC, -24(RB) // Restore PC from [cont|PC]. 728 | ld PC, -24(RB) // Restore PC from [cont|PC].
729 | cleartp LFUNC:TMP1 729 | cleartp LFUNC:TMP1
730 | daddu TMP2, RA, RD 730 | daddu TMP2, RA, RD
731 | ld TMP1, LFUNC:TMP1->pc
732 |.if FFI 731 |.if FFI
733 | bnez AT, >1 732 | bnez AT, >1
734 |.endif 733 |.endif
735 |. sd TISNIL, -8(TMP2) // Ensure one valid arg. 734 |. sd TISNIL, -8(TMP2) // Ensure one valid arg.
735 | ld TMP1, LFUNC:TMP1->pc
736 | // BASE = base, RA = resultptr, RB = meta base 736 | // BASE = base, RA = resultptr, RB = meta base
737 | jr TMP0 // Jump to continuation. 737 | jr TMP0 // Jump to continuation.
738 |. ld KBASE, PC2PROTO(k)(TMP1) 738 |. ld KBASE, PC2PROTO(k)(TMP1)