diff options
author | Mike Pall <mike> | 2011-10-25 00:29:10 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-10-25 00:30:41 +0200 |
commit | bec4d20fb615ccb4e0ac52955aa55b885f020f45 (patch) | |
tree | d5a849e69e9ff7e975de271bfeb9ceb8db4045c0 /src | |
parent | 0cf8c20be8ee009e01752874186a1dea352009fb (diff) | |
download | luajit-bec4d20fb615ccb4e0ac52955aa55b885f020f45.tar.gz luajit-bec4d20fb615ccb4e0ac52955aa55b885f020f45.tar.bz2 luajit-bec4d20fb615ccb4e0ac52955aa55b885f020f45.zip |
PPC: Fix write barrier in USETV/USETS.
Diffstat (limited to 'src')
-rw-r--r-- | src/buildvm_ppc.dasc | 6 | ||||
-rw-r--r-- | src/buildvm_ppc.h | 8 |
2 files changed, 6 insertions, 8 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index aa133dcc..0bcc5ad7 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc | |||
@@ -3382,7 +3382,6 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3382 | | addi RA, RA, offsetof(GCfuncL, uvptr) | 3382 | | addi RA, RA, offsetof(GCfuncL, uvptr) |
3383 | | lfdux f0, RD, BASE | 3383 | | lfdux f0, RD, BASE |
3384 | | lwzx UPVAL:RB, LFUNC:RB, RA | 3384 | | lwzx UPVAL:RB, LFUNC:RB, RA |
3385 | | ins_next1 | ||
3386 | | lbz TMP3, UPVAL:RB->marked | 3385 | | lbz TMP3, UPVAL:RB->marked |
3387 | | lwz CARG2, UPVAL:RB->v | 3386 | | lwz CARG2, UPVAL:RB->v |
3388 | | andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv) | 3387 | | andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv) |
@@ -3395,7 +3394,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3395 | | subi TMP2, TMP2, (LJ_TISNUM+1) | 3394 | | subi TMP2, TMP2, (LJ_TISNUM+1) |
3396 | | bne >2 // Upvalue is closed and black? | 3395 | | bne >2 // Upvalue is closed and black? |
3397 | |1: | 3396 | |1: |
3398 | | ins_next2 | 3397 | | ins_next |
3399 | | | 3398 | | |
3400 | |2: // Check if new value is collectable. | 3399 | |2: // Check if new value is collectable. |
3401 | | cmplwi TMP2, LJ_TISGCV - (LJ_TISNUM+1) | 3400 | | cmplwi TMP2, LJ_TISGCV - (LJ_TISNUM+1) |
@@ -3417,7 +3416,6 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3417 | | addi RA, RA, offsetof(GCfuncL, uvptr) | 3416 | | addi RA, RA, offsetof(GCfuncL, uvptr) |
3418 | | lwzx STR:TMP1, KBASE, TMP1 // KBASE-4-str_const*4 | 3417 | | lwzx STR:TMP1, KBASE, TMP1 // KBASE-4-str_const*4 |
3419 | | lwzx UPVAL:RB, LFUNC:RB, RA | 3418 | | lwzx UPVAL:RB, LFUNC:RB, RA |
3420 | | ins_next1 | ||
3421 | | lbz TMP3, UPVAL:RB->marked | 3419 | | lbz TMP3, UPVAL:RB->marked |
3422 | | lwz CARG2, UPVAL:RB->v | 3420 | | lwz CARG2, UPVAL:RB->v |
3423 | | andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv) | 3421 | | andi. TMP3, TMP3, LJ_GC_BLACK // isblack(uv) |
@@ -3428,7 +3426,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3428 | | stw TMP0, 0(CARG2) | 3426 | | stw TMP0, 0(CARG2) |
3429 | | bne >2 | 3427 | | bne >2 |
3430 | |1: | 3428 | |1: |
3431 | | ins_next2 | 3429 | | ins_next |
3432 | | | 3430 | | |
3433 | |2: // Check if string is white and ensure upvalue is closed. | 3431 | |2: // Check if string is white and ensure upvalue is closed. |
3434 | | andi. TMP3, TMP3, LJ_GC_WHITES // iswhite(str) | 3432 | | andi. TMP3, TMP3, LJ_GC_WHITES // iswhite(str) |
diff --git a/src/buildvm_ppc.h b/src/buildvm_ppc.h index 0bc8229f..ea35c990 100644 --- a/src/buildvm_ppc.h +++ b/src/buildvm_ppc.h | |||
@@ -5766,8 +5766,6 @@ static const unsigned int build_actionlist[7577] = { | |||
5766 | 0x00098200, | 5766 | 0x00098200, |
5767 | 0x7c0c74ee, | 5767 | 0x7c0c74ee, |
5768 | 0x7d4aa02e, | 5768 | 0x7d4aa02e, |
5769 | 0x80f00000, | ||
5770 | 0x3a100004, | ||
5771 | 0x88ca0000, | 5769 | 0x88ca0000, |
5772 | 0x00098200, | 5770 | 0x00098200, |
5773 | 0x808a0000, | 5771 | 0x808a0000, |
@@ -5786,6 +5784,8 @@ static const unsigned int build_actionlist[7577] = { | |||
5786 | 0x40820000, | 5784 | 0x40820000, |
5787 | 0x00050802, | 5785 | 0x00050802, |
5788 | 0x0006000b, | 5786 | 0x0006000b, |
5787 | 0x80f00000, | ||
5788 | 0x3a100004, | ||
5789 | 0x54e815ba, | 5789 | 0x54e815ba, |
5790 | 0x7c11402e, | 5790 | 0x7c11402e, |
5791 | 0x7c0903a6, | 5791 | 0x7c0903a6, |
@@ -5822,8 +5822,6 @@ static const unsigned int build_actionlist[7577] = { | |||
5822 | 0x00098200, | 5822 | 0x00098200, |
5823 | 0x7d0f402e, | 5823 | 0x7d0f402e, |
5824 | 0x7d4aa02e, | 5824 | 0x7d4aa02e, |
5825 | 0x80f00000, | ||
5826 | 0x3a100004, | ||
5827 | 0x88ca0000, | 5825 | 0x88ca0000, |
5828 | 0x00098200, | 5826 | 0x00098200, |
5829 | 0x808a0000, | 5827 | 0x808a0000, |
@@ -5841,6 +5839,8 @@ static const unsigned int build_actionlist[7577] = { | |||
5841 | 0x40820000, | 5839 | 0x40820000, |
5842 | 0x00050802, | 5840 | 0x00050802, |
5843 | 0x0006000b, | 5841 | 0x0006000b, |
5842 | 0x80f00000, | ||
5843 | 0x3a100004, | ||
5844 | 0x54e815ba, | 5844 | 0x54e815ba, |
5845 | 0x7c11402e, | 5845 | 0x7c11402e, |
5846 | 0x7c0903a6, | 5846 | 0x7c0903a6, |