]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
valgrind-side support for Iop_ExtractSigD64 and Iop_ExtractSigD128.
authorFlorian Krohm <florian@eich-krohm.de>
Thu, 27 Dec 2012 20:06:18 +0000 (20:06 +0000)
committerFlorian Krohm <florian@eich-krohm.de>
Thu, 27 Dec 2012 20:06:18 +0000 (20:06 +0000)
See also companion patch VEX r2621.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13211

memcheck/mc_translate.c
memcheck/tests/vbit-test/irops.c
memcheck/tests/vbit-test/util.c

index 65a1647187449e55025d1e03f93eb8c99ab393d5..70ad02d814b737dbd14f7e9a06d2d7dfedff4cfe 100644 (file)
@@ -3716,6 +3716,8 @@ IRExpr* expr2vbits_Unop ( MCEnv* mce, IROp op, IRAtom* atom )
       case Iop_D32toD64:
       case Iop_ExtractExpD64:    /* D64  -> I64 */
       case Iop_ExtractExpD128:   /* D128 -> I64 */
+      case Iop_ExtractSigD64:    /* D64  -> I64 */
+      case Iop_ExtractSigD128:   /* D128 -> I64 */
       case Iop_DPBtoBCD:
       case Iop_BCDtoDPB:
          return mkPCastTo(mce, Ity_I64, vatom);
index a82f0c24b771d9571d7a9c8c6db9d89801066640..210ce4479531e20c74fe9a88180ab81b18e97734 100644 (file)
@@ -509,6 +509,8 @@ static irop_t irops[] = {
   { DEFOP(Iop_SignificanceRoundD128, UNDEF_ALL),  .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
   { DEFOP(Iop_ExtractExpD64,         UNDEF_ALL),  .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
   { DEFOP(Iop_ExtractExpD128,        UNDEF_ALL),  .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
+  { DEFOP(Iop_ExtractSigD64,         UNDEF_ALL),  .s390x = 1, .ppc64 = 0, .ppc32 = 0 },
+  { DEFOP(Iop_ExtractSigD128,        UNDEF_ALL),  .s390x = 1, .ppc64 = 0, .ppc32 = 0 },
   { DEFOP(Iop_InsertExpD64,          UNDEF_ALL),  .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
   { DEFOP(Iop_InsertExpD128,         UNDEF_ALL),  .s390x = 0, .ppc64 = 1, .ppc32 = 1 },
   { DEFOP(Iop_D64HLtoD128,           UNDEF_CONCAT), .s390x = 1, .ppc64 = 1, .ppc32 = 1 },
index ebfe54be46bf3068de596fb7baa39f374f77b33c..eda8592ff51cfa93ceb932992b1e76e52f498276 100644 (file)
@@ -829,12 +829,18 @@ typeof_primop(IROp op, IRType *t_dst, IRType *t_arg1, IRType *t_arg2,
       case Iop_ExtractExpD64:
          UNARY(Ity_D64, Ity_D64);
 
+      case Iop_ExtractSigD64:
+         UNARY(Ity_D64, Ity_I64);
+
       case Iop_InsertExpD64:
          BINARY(Ity_D64,Ity_D64, Ity_D64);
 
       case Iop_ExtractExpD128:
          UNARY(Ity_D128, Ity_D64);
 
+      case Iop_ExtractSigD128:
+         UNARY(Ity_D128, Ity_I64);
+
       case Iop_InsertExpD128:
          BINARY(Ity_D64,Ity_D128, Ity_D128);