From 58aaac3c6401bf2cd994a624defb6e5433db498a Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 17 Apr 2017 12:02:33 +0200 Subject: [PATCH] MIPS64: Fix write barrier in BC_USETV. Contributed by Stefan Pejic. --- src/vm_mips64.dasc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vm_mips64.dasc b/src/vm_mips64.dasc index f0c22a74..918fbcba 100644 --- a/src/vm_mips64.dasc +++ b/src/vm_mips64.dasc @@ -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