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) | jmp ->fff_res2 |2: // Check for empty hash part first. Otherwise call C function. | cmp dword TAB:RB->hmask, 0; je ->fff_res0 + |.if X64WIN + | mov TMPR, BASE + | mov CARG2d, RAd + | mov CARG1, TAB:RB + | mov RB, TMPR + |.else | mov CARG1, TAB:RB | mov RB, BASE // Save BASE. | mov CARG2d, RAd // Caveat: CARG2 == BASE + |.endif | call extern lj_tab_getinth // (GCtab *t, int32_t key) | // cTValue * or NULL returned in eax (RD). | mov BASE, RB