mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
PPC: Fix write barrier in USETV/USETS.
This commit is contained in:
parent
0cf8c20be8
commit
bec4d20fb6
@ -3382,7 +3382,6 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
|
|||||||
| addi RA, RA, offsetof(GCfuncL, uvptr)
|
| addi RA, RA, offsetof(GCfuncL, uvptr)
|
||||||
| lfdux f0, RD, BASE
|
| lfdux f0, RD, BASE
|
||||||
| lwzx UPVAL:RB, LFUNC:RB, RA
|
| lwzx UPVAL:RB, LFUNC:RB, RA
|
||||||
| ins_next1
|
|
||||||
| lbz TMP3, UPVAL:RB->marked
|
| lbz TMP3, UPVAL:RB->marked
|
||||||
| lwz CARG2, UPVAL:RB->v
|
| lwz CARG2, UPVAL:RB->v
|
||||||
| andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv)
|
| andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv)
|
||||||
@ -3395,7 +3394,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
|
|||||||
| subi TMP2, TMP2, (LJ_TISNUM+1)
|
| subi TMP2, TMP2, (LJ_TISNUM+1)
|
||||||
| bne >2 // Upvalue is closed and black?
|
| bne >2 // Upvalue is closed and black?
|
||||||
|1:
|
|1:
|
||||||
| ins_next2
|
| ins_next
|
||||||
|
|
|
|
||||||
|2: // Check if new value is collectable.
|
|2: // Check if new value is collectable.
|
||||||
| cmplwi TMP2, LJ_TISGCV - (LJ_TISNUM+1)
|
| cmplwi TMP2, LJ_TISGCV - (LJ_TISNUM+1)
|
||||||
@ -3417,7 +3416,6 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
|
|||||||
| addi RA, RA, offsetof(GCfuncL, uvptr)
|
| addi RA, RA, offsetof(GCfuncL, uvptr)
|
||||||
| lwzx STR:TMP1, KBASE, TMP1 // KBASE-4-str_const*4
|
| lwzx STR:TMP1, KBASE, TMP1 // KBASE-4-str_const*4
|
||||||
| lwzx UPVAL:RB, LFUNC:RB, RA
|
| lwzx UPVAL:RB, LFUNC:RB, RA
|
||||||
| ins_next1
|
|
||||||
| lbz TMP3, UPVAL:RB->marked
|
| lbz TMP3, UPVAL:RB->marked
|
||||||
| lwz CARG2, UPVAL:RB->v
|
| lwz CARG2, UPVAL:RB->v
|
||||||
| andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv)
|
| andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv)
|
||||||
@ -3428,7 +3426,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
|
|||||||
| stw TMP0, 0(CARG2)
|
| stw TMP0, 0(CARG2)
|
||||||
| bne >2
|
| bne >2
|
||||||
|1:
|
|1:
|
||||||
| ins_next2
|
| ins_next
|
||||||
|
|
|
|
||||||
|2: // Check if string is white and ensure upvalue is closed.
|
|2: // Check if string is white and ensure upvalue is closed.
|
||||||
| andi. TMP3, TMP3, LJ_GC_WHITES // iswhite(str)
|
| andi. TMP3, TMP3, LJ_GC_WHITES // iswhite(str)
|
||||||
|
@ -5766,8 +5766,6 @@ static const unsigned int build_actionlist[7577] = {
|
|||||||
0x00098200,
|
0x00098200,
|
||||||
0x7c0c74ee,
|
0x7c0c74ee,
|
||||||
0x7d4aa02e,
|
0x7d4aa02e,
|
||||||
0x80f00000,
|
|
||||||
0x3a100004,
|
|
||||||
0x88ca0000,
|
0x88ca0000,
|
||||||
0x00098200,
|
0x00098200,
|
||||||
0x808a0000,
|
0x808a0000,
|
||||||
@ -5786,6 +5784,8 @@ static const unsigned int build_actionlist[7577] = {
|
|||||||
0x40820000,
|
0x40820000,
|
||||||
0x00050802,
|
0x00050802,
|
||||||
0x0006000b,
|
0x0006000b,
|
||||||
|
0x80f00000,
|
||||||
|
0x3a100004,
|
||||||
0x54e815ba,
|
0x54e815ba,
|
||||||
0x7c11402e,
|
0x7c11402e,
|
||||||
0x7c0903a6,
|
0x7c0903a6,
|
||||||
@ -5822,8 +5822,6 @@ static const unsigned int build_actionlist[7577] = {
|
|||||||
0x00098200,
|
0x00098200,
|
||||||
0x7d0f402e,
|
0x7d0f402e,
|
||||||
0x7d4aa02e,
|
0x7d4aa02e,
|
||||||
0x80f00000,
|
|
||||||
0x3a100004,
|
|
||||||
0x88ca0000,
|
0x88ca0000,
|
||||||
0x00098200,
|
0x00098200,
|
||||||
0x808a0000,
|
0x808a0000,
|
||||||
@ -5841,6 +5839,8 @@ static const unsigned int build_actionlist[7577] = {
|
|||||||
0x40820000,
|
0x40820000,
|
||||||
0x00050802,
|
0x00050802,
|
||||||
0x0006000b,
|
0x0006000b,
|
||||||
|
0x80f00000,
|
||||||
|
0x3a100004,
|
||||||
0x54e815ba,
|
0x54e815ba,
|
||||||
0x7c11402e,
|
0x7c11402e,
|
||||||
0x7c0903a6,
|
0x7c0903a6,
|
||||||
|
Loading…
Reference in New Issue
Block a user