From: Julian Seward Date: Mon, 29 Aug 2005 13:06:32 +0000 (+0000) Subject: Merge r1362 (Implement MOVUPS -- move from G (xmm) to E (mem or xmm)) X-Git-Tag: svn/VALGRIND_3_0_1^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=10dcf2a09f6e1202310d1c14d5dfe6c9d9c34cc7;p=thirdparty%2Fvalgrind.git Merge r1362 (Implement MOVUPS -- move from G (xmm) to E (mem or xmm)) git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_0_BRANCH@1367 --- diff --git a/VEX/priv/guest-x86/toIR.c b/VEX/priv/guest-x86/toIR.c index 7c3a450dba..7d5d8365c2 100644 --- a/VEX/priv/guest-x86/toIR.c +++ b/VEX/priv/guest-x86/toIR.c @@ -7490,15 +7490,17 @@ DisResult disInstr_X86_WRK ( } /* 0F 29 = MOVAPS -- move from G (xmm) to E (mem or xmm). */ - if (sz == 4 && insn[0] == 0x0F && insn[1] == 0x29) { + /* 0F 11 = MOVUPS -- move from G (xmm) to E (mem or xmm). */ + if (sz == 4 && insn[0] == 0x0F + && (insn[1] == 0x29 || insn[1] == 0x11)) { modrm = getIByte(delta+2); if (epartIsReg(modrm)) { /* fall through; awaiting test case */ } else { addr = disAMode ( &alen, sorb, delta+2, dis_buf ); storeLE( mkexpr(addr), getXMMReg(gregOfRM(modrm)) ); - DIP("movaps %s,%s\n", nameXMMReg(gregOfRM(modrm)), - dis_buf ); + DIP("mov[ua]ps %s,%s\n", nameXMMReg(gregOfRM(modrm)), + dis_buf ); delta += 2+alen; goto decode_success; }