From: Florian Krohm Date: Thu, 27 Dec 2012 20:06:18 +0000 (+0000) Subject: valgrind-side support for Iop_ExtractSigD64 and Iop_ExtractSigD128. X-Git-Tag: svn/VALGRIND_3_9_0~469 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f42be9d615a1fb3583e33f898475d03a4db6ead;p=thirdparty%2Fvalgrind.git valgrind-side support for Iop_ExtractSigD64 and Iop_ExtractSigD128. See also companion patch VEX r2621. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13211 --- diff --git a/memcheck/mc_translate.c b/memcheck/mc_translate.c index 65a1647187..70ad02d814 100644 --- a/memcheck/mc_translate.c +++ b/memcheck/mc_translate.c @@ -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); diff --git a/memcheck/tests/vbit-test/irops.c b/memcheck/tests/vbit-test/irops.c index a82f0c24b7..210ce44795 100644 --- a/memcheck/tests/vbit-test/irops.c +++ b/memcheck/tests/vbit-test/irops.c @@ -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 }, diff --git a/memcheck/tests/vbit-test/util.c b/memcheck/tests/vbit-test/util.c index ebfe54be46..eda8592ff5 100644 --- a/memcheck/tests/vbit-test/util.c +++ b/memcheck/tests/vbit-test/util.c @@ -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);