]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
64-bit counterpart to v1652 (Stop mkU16 asserting if d32 is a negative
authorJulian Seward <jseward@acm.org>
Mon, 28 Aug 2006 18:54:18 +0000 (18:54 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 28 Aug 2006 18:54:18 +0000 (18:54 +0000)
16-bit number (bug #132813)).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1653

VEX/priv/guest-amd64/toIR.c

index 956b28740da8dbb93de51016ccbeca17377cac28..184a8b16c8d136a4b697cd9b5576bf426d7c71b7 100644 (file)
@@ -13134,6 +13134,10 @@ DisResult disInstr_AMD64_WRK (
       t2 = newTemp(ty);
       assign( t1, binop(Iop_Sub64,getIReg64(R_RSP),mkU64(sz)) );
       putIReg64(R_RSP, mkexpr(t1) );
+      /* stop mkU16 asserting if d32 is a negative 16-bit number
+         (bug #132813) */
+      if (ty == Ity_I16)
+         d64 &= 0xFFFF;
       storeLE( mkexpr(t1), mkU(ty,d64) );
       DIP("push%c $%lld\n", nameISize(sz), (Long)d64);
       break;