aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2015-06-10 12:15:28 +0200
committerMike Pall <mike>2015-06-10 12:15:28 +0200
commit08e100ec0569766f94a688f3dfd22e6e724f4a80 (patch)
tree484eb949ee143ba4b2ebee4661fb3072fa73f56a /src
parentc5d262f2d2dea317bf15d07d98fc4ab7e62fe548 (diff)
downloadluajit-08e100ec0569766f94a688f3dfd22e6e724f4a80.tar.gz
luajit-08e100ec0569766f94a688f3dfd22e6e724f4a80.tar.bz2
luajit-08e100ec0569766f94a688f3dfd22e6e724f4a80.zip
x64/LJ_GC64: Fix ipairs().
Diffstat (limited to 'src')
-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