aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vm_x64.dasc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vm_x64.dasc b/src/vm_x64.dasc
index 2b1c8d2d..e7e990ae 100644
--- a/src/vm_x64.dasc
+++ b/src/vm_x64.dasc
@@ -1435,9 +1435,16 @@ static void build_subroutines(BuildCtx *ctx)
1435 | jmp ->fff_res2 1435 | jmp ->fff_res2
1436 |2: // Check for empty hash part first. Otherwise call C function. 1436 |2: // Check for empty hash part first. Otherwise call C function.
1437 | cmp dword TAB:RB->hmask, 0; je ->fff_res0 1437 | cmp dword TAB:RB->hmask, 0; je ->fff_res0
1438 |.if X64WIN
1439 | mov TMPR, BASE
1440 | mov CARG2d, RAd
1441 | mov CARG1, TAB:RB
1442 | mov RB, TMPR
1443 |.else
1438 | mov CARG1, TAB:RB 1444 | mov CARG1, TAB:RB
1439 | mov RB, BASE // Save BASE. 1445 | mov RB, BASE // Save BASE.
1440 | mov CARG2d, RAd // Caveat: CARG2 == BASE 1446 | mov CARG2d, RAd // Caveat: CARG2 == BASE
1447 |.endif
1441 | call extern lj_tab_getinth // (GCtab *t, int32_t key) 1448 | call extern lj_tab_getinth // (GCtab *t, int32_t key)
1442 | // cTValue * or NULL returned in eax (RD). 1449 | // cTValue * or NULL returned in eax (RD).
1443 | mov BASE, RB 1450 | mov BASE, RB