From: Julian Seward Date: Fri, 10 Jun 2005 11:04:52 +0000 (+0000) Subject: amd64: handle MOVUPS G to E X-Git-Tag: svn/VALGRIND_3_0_1^2~129 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb077d0e09c2dc6ec644f1478ed0d73e7369d1e3;p=thirdparty%2Fvalgrind.git amd64: handle MOVUPS G to E git-svn-id: svn://svn.valgrind.org/vex/trunk@1205 --- diff --git a/VEX/priv/guest-amd64/toIR.c b/VEX/priv/guest-amd64/toIR.c index adc30344d4..ca4d5aa03a 100644 --- a/VEX/priv/guest-amd64/toIR.c +++ b/VEX/priv/guest-amd64/toIR.c @@ -8571,16 +8571,17 @@ DisResult disInstr ( /*IN*/ Bool resteerOK, } /* 0F 29 = MOVAPS -- move from G (xmm) to E (mem or xmm). */ + /* 0F 11 = MOVUPS -- move from G (xmm) to E (mem or xmm). */ if (haveNo66noF2noF3(pfx) && sz == 4 - && insn[0] == 0x0F && insn[1] == 0x29) { + && insn[0] == 0x0F && (insn[1] == 0x29 || insn[1] == 0x11)) { modrm = getUChar(delta+2); if (epartIsReg(modrm)) { /* fall through; awaiting test case */ } else { addr = disAMode ( &alen, pfx, delta+2, dis_buf, 0 ); storeLE( mkexpr(addr), getXMMReg(gregOfRexRM(pfx,modrm)) ); - DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), - dis_buf ); + DIP("mov[ua]ps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), + dis_buf ); delta += 2+alen; goto decode_success; }