]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Ignore redundant REX.W for some MOVDQU variants
authorTom Hughes <tom@compton.nu>
Tue, 6 Jul 2021 12:46:28 +0000 (13:46 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 6 Jul 2021 12:47:37 +0000 (13:47 +0100)
Fixes BZ#438871

NEWS
VEX/priv/guest_amd64_toIR.c

diff --git a/NEWS b/NEWS
index c109b765ddfc3ce89bacf5e20251ed63397d7cd3..e291cb1e5873bd867334f6d0de92c8c792c18c17 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -42,6 +42,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 434296  s390x: False-positive memcheck diagnostics from vector string
         instructions
 435665  PPC ISA 3.0 copy, paste, cpabort instructions are not supported 
+438871  unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2 0x0 0x0
 435908  valgrind tries to fetch from deubginfod for files which already
         have debug information
 
index 2b40f6a5aa7ba014874f0fb175489862e2541270..ad720873d4bead3c91038fc50c227daf7347484e 100644 (file)
@@ -13883,7 +13883,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK,
          }
          goto decode_success;
       }
-      if (haveF3no66noF2(pfx) && sz == 4) {
+      if (haveF3no66noF2(pfx)
+          && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
          /* F3 0F 6F = MOVDQU -- move from E (mem or xmm) to G (xmm). */
          modrm = getUChar(delta);
          if (epartIsReg(modrm)) {
@@ -14144,7 +14145,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK,
 
    case 0x7F:
       /* F3 0F 7F = MOVDQU -- move from G (xmm) to E (mem or xmm). */
-      if (haveF3no66noF2(pfx) && sz == 4) {
+      if (haveF3no66noF2(pfx)
+          && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
          modrm = getUChar(delta);
          if (epartIsReg(modrm)) {
             goto decode_failure; /* awaiting test case */