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 ------------------------------ |
