diff options
author | Mike Pall <mike> | 2013-12-02 09:18:01 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2013-12-02 09:18:01 +0100 |
commit | 916f09d0a91155ce5ce1a78fdcd40ba42f61e493 (patch) | |
tree | fb1d9052c585c148cddb78ecbb6297f3fd24db0c | |
parent | f371ed6bd8741834b4b0278cf2c9e95e32f2cb26 (diff) | |
download | luajit-916f09d0a91155ce5ce1a78fdcd40ba42f61e493.tar.gz luajit-916f09d0a91155ce5ce1a78fdcd40ba42f61e493.tar.bz2 luajit-916f09d0a91155ce5ce1a78fdcd40ba42f61e493.zip |
x64: Fix store to upvalue for lightuserdata values.
-rw-r--r-- | src/vm_arm.dasc | 2 | ||||
-rw-r--r-- | src/vm_mips.dasc | 4 | ||||
-rw-r--r-- | src/vm_ppc.dasc | 4 | ||||
-rw-r--r-- | src/vm_x86.dasc | 2 |
4 files changed, 6 insertions, 6 deletions
diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc index 114416a4..a839fa7f 100644 --- a/src/vm_arm.dasc +++ b/src/vm_arm.dasc | |||
@@ -3217,7 +3217,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3217 | | ins_next | 3217 | | ins_next |
3218 | | | 3218 | | |
3219 | |2: // Check if new value is collectable. | 3219 | |2: // Check if new value is collectable. |
3220 | | cmn RB, #-(LJ_TISNUM - LJ_TISGCV) | 3220 | | cmn RB, #-(LJ_TNUMX - LJ_TISGCV) |
3221 | | ldrbhi RC, GCOBJ:CARG3->gch.marked | 3221 | | ldrbhi RC, GCOBJ:CARG3->gch.marked |
3222 | | bls <1 // tvisgcv(v) | 3222 | | bls <1 // tvisgcv(v) |
3223 | | sub CARG1, DISPATCH, #-GG_DISP2G | 3223 | | sub CARG1, DISPATCH, #-GG_DISP2G |
diff --git a/src/vm_mips.dasc b/src/vm_mips.dasc index a81dbeeb..9d578d05 100644 --- a/src/vm_mips.dasc +++ b/src/vm_mips.dasc | |||
@@ -2882,12 +2882,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
2882 | | li AT, LJ_GC_BLACK|1 | 2882 | | li AT, LJ_GC_BLACK|1 |
2883 | | or TMP3, TMP3, TMP0 | 2883 | | or TMP3, TMP3, TMP0 |
2884 | | beq TMP3, AT, >2 // Upvalue is closed and black? | 2884 | | beq TMP3, AT, >2 // Upvalue is closed and black? |
2885 | |. addiu TMP2, TMP2, -(LJ_TISNUM+1) | 2885 | |. addiu TMP2, TMP2, -(LJ_TNUMX+1) |
2886 | |1: | 2886 | |1: |
2887 | | ins_next | 2887 | | ins_next |
2888 | | | 2888 | | |
2889 | |2: // Check if new value is collectable. | 2889 | |2: // Check if new value is collectable. |
2890 | | sltiu AT, TMP2, LJ_TISGCV - (LJ_TISNUM+1) | 2890 | | sltiu AT, TMP2, LJ_TISGCV - (LJ_TNUMX+1) |
2891 | | beqz AT, <1 // tvisgcv(v) | 2891 | | beqz AT, <1 // tvisgcv(v) |
2892 | |. lw TMP1, LO(RD) | 2892 | |. lw TMP1, LO(RD) |
2893 | | lbu TMP3, GCOBJ:TMP1->gch.marked | 2893 | | lbu TMP3, GCOBJ:TMP1->gch.marked |
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc index f2530811..7f7e2291 100644 --- a/src/vm_ppc.dasc +++ b/src/vm_ppc.dasc | |||
@@ -3715,13 +3715,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
3715 | | cmplwi cr1, TMP0, 0 | 3715 | | cmplwi cr1, TMP0, 0 |
3716 | | lwz TMP1, 4(RD) | 3716 | | lwz TMP1, 4(RD) |
3717 | | cror 4*cr0+eq, 4*cr0+eq, 4*cr1+eq | 3717 | | cror 4*cr0+eq, 4*cr0+eq, 4*cr1+eq |
3718 | | subi TMP2, TMP2, (LJ_TISNUM+1) | 3718 | | subi TMP2, TMP2, (LJ_TNUMX+1) |
3719 | | bne >2 // Upvalue is closed and black? | 3719 | | bne >2 // Upvalue is closed and black? |
3720 | |1: | 3720 | |1: |
3721 | | ins_next | 3721 | | ins_next |
3722 | | | 3722 | | |
3723 | |2: // Check if new value is collectable. | 3723 | |2: // Check if new value is collectable. |
3724 | | cmplwi TMP2, LJ_TISGCV - (LJ_TISNUM+1) | 3724 | | cmplwi TMP2, LJ_TISGCV - (LJ_TNUMX+1) |
3725 | | bge <1 // tvisgcv(v) | 3725 | | bge <1 // tvisgcv(v) |
3726 | | lbz TMP3, GCOBJ:TMP1->gch.marked | 3726 | | lbz TMP3, GCOBJ:TMP1->gch.marked |
3727 | | andix. TMP3, TMP3, LJ_GC_WHITES // iswhite(v) | 3727 | | andix. TMP3, TMP3, LJ_GC_WHITES // iswhite(v) |
diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc index f25dfd30..13f4cdaa 100644 --- a/src/vm_x86.dasc +++ b/src/vm_x86.dasc | |||
@@ -4652,7 +4652,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop) | |||
4652 | | | 4652 | | |
4653 | |2: // Upvalue is black. Check if new value is collectable and white. | 4653 | |2: // Upvalue is black. Check if new value is collectable and white. |
4654 | | sub RD, LJ_TISGCV | 4654 | | sub RD, LJ_TISGCV |
4655 | | cmp RD, LJ_TISNUM - LJ_TISGCV // tvisgcv(v) | 4655 | | cmp RD, LJ_TNUMX - LJ_TISGCV // tvisgcv(v) |
4656 | | jbe <1 | 4656 | | jbe <1 |
4657 | | test byte GCOBJ:RA->gch.marked, LJ_GC_WHITES // iswhite(v) | 4657 | | test byte GCOBJ:RA->gch.marked, LJ_GC_WHITES // iswhite(v) |
4658 | | jz <1 | 4658 | | jz <1 |