]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
ARM64: Fix __call metamethod handling for tail calls.
authorMike Pall <mike>
Tue, 14 Jul 2015 11:04:08 +0000 (13:04 +0200)
committerMike Pall <mike>
Tue, 14 Jul 2015 11:04:08 +0000 (13:04 +0200)
src/vm_arm64.dasc

index d772f95b4d171b6799103f2b2cd14e6f8ad57b53..f1251f2c48acff274fda5122f7a07a7d0b9b21e8 100644 (file)
@@ -853,10 +853,10 @@ static void build_subroutines(BuildCtx *ctx)
   |   str PC, SAVE_PC
   |  add CARG3, RA, NARGS8:RC
   |  bl extern lj_meta_call    // (lua_State *L, TValue *func, TValue *top)
-  |  ldr LFUNC:CARG3, [RA, FRAME_FUNC] // Guaranteed to be a function here.
+  |  ldr TMP1, [RA, FRAME_FUNC]                // Guaranteed to be a function here.
   |   ldr PC, [BASE, FRAME_PC]
   |   add NARGS8:RC, NARGS8:RC, #8     // Got one more argument now.
-  |  and LFUNC:CARG3, CARG3, #LJ_GCVMASK
+  |  and LFUNC:CARG3, TMP1, #LJ_GCVMASK
   |  b ->BC_CALLT2_Z
   |
   |//-- Argument coercion for 'for' statement ------------------------------