x64: Fix store to upvalue for lightuserdata values.

This commit is contained in:
Mike Pall
2013-12-02 09:18:01 +01:00
parent f371ed6bd8
commit 916f09d0a9
4 changed files with 6 additions and 6 deletions

View File

@@ -3715,13 +3715,13 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
| cmplwi cr1, TMP0, 0
| lwz TMP1, 4(RD)
| cror 4*cr0+eq, 4*cr0+eq, 4*cr1+eq
| subi TMP2, TMP2, (LJ_TISNUM+1)
| subi TMP2, TMP2, (LJ_TNUMX+1)
| bne >2 // Upvalue is closed and black?
|1:
| ins_next
|
|2: // Check if new value is collectable.
| cmplwi TMP2, LJ_TISGCV - (LJ_TISNUM+1)
| cmplwi TMP2, LJ_TISGCV - (LJ_TNUMX+1)
| bge <1 // tvisgcv(v)
| lbz TMP3, GCOBJ:TMP1->gch.marked
| andix. TMP3, TMP3, LJ_GC_WHITES // iswhite(v)