x64/LJ_GC64: Fix setmetatable().

This commit is contained in:
Mike Pall 2015-05-25 16:31:52 +02:00
parent 60fb3fe2b2
commit 5de95edf4c

View File

@ -1247,9 +1247,9 @@ static void build_subroutines(BuildCtx *ctx)
| checktab TAB:RB, ->fff_fallback | checktab TAB:RB, ->fff_fallback
| // Fast path: no mt for table yet and not clearing the mt. | // Fast path: no mt for table yet and not clearing the mt.
| cmp aword TAB:RB->metatable, 0; jne ->fff_fallback | cmp aword TAB:RB->metatable, 0; jne ->fff_fallback
| mov TAB:RC, [BASE+8] | mov TAB:RA, [BASE+8]
| checktab TAB:RC, ->fff_fallback | checktab TAB:RA, ->fff_fallback
| mov TAB:RB->metatable, TAB:RC | mov TAB:RB->metatable, TAB:RA
| mov PC, [BASE-8] | mov PC, [BASE-8]
| mov [BASE-16], TAB:TMPR // Return original table. | mov [BASE-16], TAB:TMPR // Return original table.
| test byte TAB:RB->marked, LJ_GC_BLACK // isblack(table) | test byte TAB:RB->marked, LJ_GC_BLACK // isblack(table)