mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
ARM64: Fix xpcall() error case (really).
Thanks to François Perrad and Stefan Pejic.
This commit is contained in:
parent
734a3fa32c
commit
d417ded179
@ -1182,7 +1182,7 @@ static void build_subroutines(BuildCtx *ctx)
|
|||||||
|.ffunc xpcall
|
|.ffunc xpcall
|
||||||
| ldp CARG1, CARG2, [BASE]
|
| ldp CARG1, CARG2, [BASE]
|
||||||
| ldrb TMP0w, GL->hookmask
|
| ldrb TMP0w, GL->hookmask
|
||||||
| subs NARGS8:RC, NARGS8:RC, #16
|
| subs NARGS8:TMP1, NARGS8:RC, #16
|
||||||
| blo ->fff_fallback
|
| blo ->fff_fallback
|
||||||
| mov RB, BASE
|
| mov RB, BASE
|
||||||
| asr ITYPE, CARG2, #47
|
| asr ITYPE, CARG2, #47
|
||||||
@ -1190,6 +1190,7 @@ static void build_subroutines(BuildCtx *ctx)
|
|||||||
| cmn ITYPE, #-LJ_TFUNC
|
| cmn ITYPE, #-LJ_TFUNC
|
||||||
| add PC, TMP0, #24+FRAME_PCALL
|
| add PC, TMP0, #24+FRAME_PCALL
|
||||||
| bne ->fff_fallback // Traceback must be a function.
|
| bne ->fff_fallback // Traceback must be a function.
|
||||||
|
| mov NARGS8:RC, NARGS8:TMP1
|
||||||
| add BASE, BASE, #24
|
| add BASE, BASE, #24
|
||||||
| stp CARG2, CARG1, [RB] // Swap function and traceback.
|
| stp CARG2, CARG1, [RB] // Swap function and traceback.
|
||||||
| cbz NARGS8:RC, ->vm_call_dispatch
|
| cbz NARGS8:RC, ->vm_call_dispatch
|
||||||
|
Loading…
Reference in New Issue
Block a user