diff options
author | Mike Pall <mike> | 2017-11-16 12:53:34 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2017-11-16 12:53:34 +0100 |
commit | 33082a6f4778aa152f6a4a684a7fe79436f1ecb6 (patch) | |
tree | ed68a09e88055909699cd4f13b70ba2e27514938 /src | |
parent | 99cdfbf6a1e8856f64908072ef10443a7eab14f2 (diff) | |
download | luajit-33082a6f4778aa152f6a4a684a7fe79436f1ecb6.tar.gz luajit-33082a6f4778aa152f6a4a684a7fe79436f1ecb6.tar.bz2 luajit-33082a6f4778aa152f6a4a684a7fe79436f1ecb6.zip |
ARM64: Fix xpcall() error case.
Thanks to Stefan Pejic.
Diffstat (limited to 'src')
-rw-r--r-- | src/vm_arm64.dasc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm_arm64.dasc b/src/vm_arm64.dasc index 3eaf3763..241c58a1 100644 --- a/src/vm_arm64.dasc +++ b/src/vm_arm64.dasc | |||
@@ -1185,12 +1185,12 @@ static void build_subroutines(BuildCtx *ctx) | |||
1185 | | subs NARGS8:RC, NARGS8:RC, #16 | 1185 | | subs NARGS8:RC, NARGS8:RC, #16 |
1186 | | blo ->fff_fallback | 1186 | | blo ->fff_fallback |
1187 | | mov RB, BASE | 1187 | | mov RB, BASE |
1188 | | add BASE, BASE, #24 | ||
1189 | | asr ITYPE, CARG2, #47 | 1188 | | asr ITYPE, CARG2, #47 |
1190 | | ubfx TMP0w, TMP0w, #HOOK_ACTIVE_SHIFT, #1 | 1189 | | ubfx TMP0w, TMP0w, #HOOK_ACTIVE_SHIFT, #1 |
1191 | | cmn ITYPE, #-LJ_TFUNC | 1190 | | cmn ITYPE, #-LJ_TFUNC |
1192 | | add PC, TMP0, #24+FRAME_PCALL | 1191 | | add PC, TMP0, #24+FRAME_PCALL |
1193 | | bne ->fff_fallback // Traceback must be a function. | 1192 | | bne ->fff_fallback // Traceback must be a function. |
1193 | | add BASE, BASE, #24 | ||
1194 | | stp CARG2, CARG1, [RB] // Swap function and traceback. | 1194 | | stp CARG2, CARG1, [RB] // Swap function and traceback. |
1195 | | cbz NARGS8:RC, ->vm_call_dispatch | 1195 | | cbz NARGS8:RC, ->vm_call_dispatch |
1196 | | b <1 | 1196 | | b <1 |