소스 검색

x64/LJ_GC64: Fix setmetatable().

Mike Pall 10 년 전
부모
커밋
5de95edf4c
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 3
      src/vm_x64.dasc

+ 3 - 3
src/vm_x64.dasc

@@ -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]
-  |  checktab TAB:RC, ->fff_fallback
-  |  mov TAB:RB->metatable, TAB:RC
+  |  mov TAB:RA, [BASE+8]
+  |  checktab TAB:RA, ->fff_fallback
+  |  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)