diff options
author | Mike Pall <mike> | 2015-07-14 13:04:08 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2015-07-14 13:04:08 +0200 |
commit | ba6344d1ef4b3013dc83b434df2610fe8dbf5617 (patch) | |
tree | 02dcadcdb1d318c3130e4c741dee195a1f5f1ff8 | |
parent | 5874c212918c5feb55d93ac9f1b3a41948e8fd92 (diff) | |
download | luajit-ba6344d1ef4b3013dc83b434df2610fe8dbf5617.tar.gz luajit-ba6344d1ef4b3013dc83b434df2610fe8dbf5617.tar.bz2 luajit-ba6344d1ef4b3013dc83b434df2610fe8dbf5617.zip |
ARM64: Fix __call metamethod handling for tail calls.
-rw-r--r-- | src/vm_arm64.dasc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vm_arm64.dasc b/src/vm_arm64.dasc index d772f95b..f1251f2c 100644 --- a/src/vm_arm64.dasc +++ b/src/vm_arm64.dasc | |||
@@ -853,10 +853,10 @@ static void build_subroutines(BuildCtx *ctx) | |||
853 | | str PC, SAVE_PC | 853 | | str PC, SAVE_PC |
854 | | add CARG3, RA, NARGS8:RC | 854 | | add CARG3, RA, NARGS8:RC |
855 | | bl extern lj_meta_call // (lua_State *L, TValue *func, TValue *top) | 855 | | bl extern lj_meta_call // (lua_State *L, TValue *func, TValue *top) |
856 | | ldr LFUNC:CARG3, [RA, FRAME_FUNC] // Guaranteed to be a function here. | 856 | | ldr TMP1, [RA, FRAME_FUNC] // Guaranteed to be a function here. |
857 | | ldr PC, [BASE, FRAME_PC] | 857 | | ldr PC, [BASE, FRAME_PC] |
858 | | add NARGS8:RC, NARGS8:RC, #8 // Got one more argument now. | 858 | | add NARGS8:RC, NARGS8:RC, #8 // Got one more argument now. |
859 | | and LFUNC:CARG3, CARG3, #LJ_GCVMASK | 859 | | and LFUNC:CARG3, TMP1, #LJ_GCVMASK |
860 | | b ->BC_CALLT2_Z | 860 | | b ->BC_CALLT2_Z |
861 | | | 861 | | |
862 | |//-- Argument coercion for 'for' statement ------------------------------ | 862 | |//-- Argument coercion for 'for' statement ------------------------------ |