mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-08 07:34:07 +00:00
MIPS64: Fix write barrier in BC_USETV.
Contributed by Stefan Pejic.
This commit is contained in:
parent
18efb331a4
commit
58aaac3c64
@ -3660,7 +3660,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
|
|||||||
| ld CARG2, UPVAL:RB->v
|
| ld CARG2, UPVAL:RB->v
|
||||||
| andi TMP3, TMP3, LJ_GC_BLACK // isblack(uv)
|
| andi TMP3, TMP3, LJ_GC_BLACK // isblack(uv)
|
||||||
| lbu TMP0, UPVAL:RB->closed
|
| lbu TMP0, UPVAL:RB->closed
|
||||||
| gettp TMP2, RD
|
| gettp TMP2, CRET1
|
||||||
| sd CRET1, 0(CARG2)
|
| sd CRET1, 0(CARG2)
|
||||||
| li AT, LJ_GC_BLACK|1
|
| li AT, LJ_GC_BLACK|1
|
||||||
| or TMP3, TMP3, TMP0
|
| 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.
|
|2: // Check if new value is collectable.
|
||||||
| sltiu AT, TMP2, LJ_TISGCV - (LJ_TNUMX+1)
|
| sltiu AT, TMP2, LJ_TISGCV - (LJ_TNUMX+1)
|
||||||
| beqz AT, <1 // tvisgcv(v)
|
| beqz AT, <1 // tvisgcv(v)
|
||||||
|. cleartp GCOBJ:TMP1, RB
|
|. cleartp GCOBJ:CRET1, CRET1
|
||||||
| lbu TMP3, GCOBJ:TMP1->gch.marked
|
| lbu TMP3, GCOBJ:CRET1->gch.marked
|
||||||
| andi TMP3, TMP3, LJ_GC_WHITES // iswhite(v)
|
| andi TMP3, TMP3, LJ_GC_WHITES // iswhite(v)
|
||||||
| beqz TMP3, <1
|
| beqz TMP3, <1
|
||||||
|. load_got lj_gc_barrieruv
|
|. load_got lj_gc_barrieruv
|
||||||
|
Loading…
Reference in New Issue
Block a user