From: Julian Seward Date: Tue, 1 Nov 2005 18:59:38 +0000 (+0000) Subject: Implement 66 0F 11 = MOVUPD (untested) X-Git-Tag: svn/VALGRIND_3_1_1^2~64 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c641ebf99ac441027b4c854a4bd84e266e3abdb1;p=thirdparty%2Fvalgrind.git Implement 66 0F 11 = MOVUPD (untested) git-svn-id: svn://svn.valgrind.org/vex/trunk@1427 --- diff --git a/VEX/priv/guest-amd64/toIR.c b/VEX/priv/guest-amd64/toIR.c index 50878d03be..ac80db1900 100644 --- a/VEX/priv/guest-amd64/toIR.c +++ b/VEX/priv/guest-amd64/toIR.c @@ -9777,15 +9777,17 @@ DisResult disInstr_AMD64_WRK ( } /* 66 0F 29 = MOVAPD -- move from G (xmm) to E (mem or xmm). */ - if (have66noF2noF3(pfx) && insn[0] == 0x0F && insn[1] == 0x29) { + /* 66 0F 11 = MOVUPD -- move from G (xmm) to E (mem or xmm). */ + if (have66noF2noF3(pfx) && 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("movapd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), - dis_buf ); + DIP("mov[ua]pd %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)), + dis_buf ); delta += 2+alen; goto decode_success; }