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

@@ -2882,12 +2882,12 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
| li AT, LJ_GC_BLACK|1
| or TMP3, TMP3, TMP0
| beq TMP3, AT, >2 // Upvalue is closed and black?
|. addiu TMP2, TMP2, -(LJ_TISNUM+1)
|. addiu TMP2, TMP2, -(LJ_TNUMX+1)
|1:
| ins_next
|
|2: // Check if new value is collectable.
| sltiu AT, TMP2, LJ_TISGCV - (LJ_TISNUM+1)
| sltiu AT, TMP2, LJ_TISGCV - (LJ_TNUMX+1)
| beqz AT, <1 // tvisgcv(v)
|. lw TMP1, LO(RD)
| lbu TMP3, GCOBJ:TMP1->gch.marked