]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
MIPS64: Fix write barrier in BC_USETV.
authorMike Pall <mike>
Mon, 17 Apr 2017 10:02:33 +0000 (12:02 +0200)
committerMike Pall <mike>
Mon, 17 Apr 2017 10:02:33 +0000 (12:02 +0200)
Contributed by Stefan Pejic.

src/vm_mips64.dasc

index f0c22a74df87564ec6074507f89d37b802fb7848..918fbcbaff80da5b145209e9ed560f416ba7ac58 100644 (file)
@@ -3660,7 +3660,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
     |   ld CARG2, UPVAL:RB->v
     |  andi TMP3, TMP3, LJ_GC_BLACK    // isblack(uv)
     |  lbu TMP0, UPVAL:RB->closed
-    |   gettp TMP2, RD
+    |   gettp TMP2, CRET1
     |   sd CRET1, 0(CARG2)
     |  li AT, LJ_GC_BLACK|1
     |  or TMP3, TMP3, TMP0
@@ -3672,8 +3672,8 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
     |2:  // Check if new value is collectable.
     |  sltiu AT, TMP2, LJ_TISGCV - (LJ_TNUMX+1)
     |  beqz AT, <1                     // tvisgcv(v)
-    |.  cleartp GCOBJ:TMP1, RB
-    |  lbu TMP3, GCOBJ:TMP1->gch.marked
+    |.  cleartp GCOBJ:CRET1, CRET1
+    |  lbu TMP3, GCOBJ:CRET1->gch.marked
     |  andi TMP3, TMP3, LJ_GC_WHITES   // iswhite(v)
     |  beqz TMP3, <1
     |.  load_got lj_gc_barrieruv