]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Ignore a redundant REX.W prefix on an MMX pinsrw instruction
authorJulian Seward <jseward@acm.org>
Thu, 29 Jul 2010 05:13:58 +0000 (05:13 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 29 Jul 2010 05:13:58 +0000 (05:13 +0000)
(Dan Gohman, dgohman@gmail.com).  Fixes #239992.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1991

VEX/priv/guest_amd64_toIR.c

index 8fc2ff40291e3e85484e9b02c6e1a8dab4b08dc0..21d5b6f2d62c7e980d34447f50fb4a6a67b9235d 100644 (file)
@@ -9951,7 +9951,8 @@ DisResult disInstr_AMD64_WRK (
    /* ***--- this is an MMX class insn introduced in SSE1 ---*** */
    /* 0F C4 = PINSRW -- get 16 bits from E(mem or low half ireg) and
       put it into the specified lane of mmx(G). */
-   if (haveNo66noF2noF3(pfx) && sz == 4 
+   if (haveNo66noF2noF3(pfx)
+       && (sz == 4 || /* ignore redundant REX.W */ sz == 8)
        && insn[0] == 0x0F && insn[1] == 0xC4) {
       /* Use t0 .. t3 to hold the 4 original 16-bit lanes of the
          mmx reg.  t4 is the new lane value.  t5 is the original