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 | |
| parent | 99cdfbf6a1e8856f64908072ef10443a7eab14f2 (diff) | |
| download | luajit-33082a6f4778aa152f6a4a684a7fe79436f1ecb6.tar.gz luajit-33082a6f4778aa152f6a4a684a7fe79436f1ecb6.tar.bz2 luajit-33082a6f4778aa152f6a4a684a7fe79436f1ecb6.zip | |
ARM64: Fix xpcall() error case.
Thanks to Stefan Pejic.
| -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 |
