mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
x64: Fix __call metamethod return dispatch.
Reported by Igor Munkin.
This commit is contained in:
parent
7aa3e313a3
commit
d67ff15a5c
@ -1246,7 +1246,11 @@ static void build_subroutines(BuildCtx *ctx)
|
|||||||
| mov LFUNC:RB, [RA-8]
|
| mov LFUNC:RB, [RA-8]
|
||||||
| add NARGS:RD, 1
|
| add NARGS:RD, 1
|
||||||
| // This is fragile. L->base must not move, KBASE must always be defined.
|
| // This is fragile. L->base must not move, KBASE must always be defined.
|
||||||
|
|.if x64
|
||||||
|
| cmp KBASEa, rdx // Continue with CALLT if flag set.
|
||||||
|
|.else
|
||||||
| cmp KBASE, BASE // Continue with CALLT if flag set.
|
| cmp KBASE, BASE // Continue with CALLT if flag set.
|
||||||
|
|.endif
|
||||||
| je ->BC_CALLT_Z
|
| je ->BC_CALLT_Z
|
||||||
| mov BASE, RA
|
| mov BASE, RA
|
||||||
| ins_call // Otherwise call resolved metamethod.
|
| ins_call // Otherwise call resolved metamethod.
|
||||||
|
Loading…
Reference in New Issue
Block a user