From: Julian Seward Date: Mon, 4 Jun 2012 07:38:10 +0000 (+0000) Subject: dis_AVX128_E_V_to_G is a special case of X-Git-Tag: svn/VALGRIND_3_8_1^2~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd83af74db6b6b7fc45cb2ba552e5eb987da2f36;p=thirdparty%2Fvalgrind.git dis_AVX128_E_V_to_G is a special case of dis_VEX_NDS_128_AnySimdPfx_0F_WIG_simple, so implement the former by calling the latter. git-svn-id: svn://svn.valgrind.org/vex/trunk@2371 --- diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c index 99cd15e758..fa58dd5bbb 100644 --- a/VEX/priv/guest_amd64_toIR.c +++ b/VEX/priv/guest_amd64_toIR.c @@ -19602,31 +19602,10 @@ static Long dis_AVX128_E_V_to_G ( /*OUT*/Bool* uses_vvvv, Prefix pfx, Long delta, HChar* opname, IROp op ) { - HChar dis_buf[50]; - Int alen; - IRTemp addr; - UChar rm = getUChar(delta); - UInt rG = gregOfRexRM(pfx,rm); - UInt rV = getVexNvvvv(pfx); - IRExpr* vpart = getXMMReg(rV); - IRExpr* epart = NULL; - if (epartIsReg(rm)) { - UInt rE = eregOfRexRM(pfx,rm); - epart = getXMMReg(rE); - DIP("%s %s,%s,%s\n", opname, - nameXMMReg(rE), nameXMMReg(rV), nameXMMReg(rG)); - delta = delta+1; - } else { - addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 ); - epart = loadLE(Ity_V128, mkexpr(addr)); - DIP("%s %s,%s,%s\n", opname, - dis_buf, nameXMMReg(rV), nameXMMReg(rG)); - delta = delta+alen; - } - - putYMMRegLoAndZU( rG, binop(op, vpart, epart) ); - *uses_vvvv = True; - return delta; + return dis_VEX_NDS_128_AnySimdPfx_0F_WIG( + uses_vvvv, vbi, pfx, delta, opname, op, + NULL, False/*!invertLeftArg*/, False/*!swapArgs*/ + ); }