]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 330319 - vex amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)
authorMark Wielaard <mark@klomp.org>
Thu, 21 Aug 2014 17:46:00 +0000 (17:46 +0000)
committerMark Wielaard <mark@klomp.org>
Thu, 21 Aug 2014 17:46:00 +0000 (17:46 +0000)
We are never in an transaction (xbegin immediately aborts).
So this just always generates a General Protection Fault.

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

VEX/priv/guest_amd64_toIR.c

index ba23ee246678cafed9cfc50f97832a526ad3e9a6..9ee8319ee96327847b17e56d37e69ae05b1a0639 100644 (file)
@@ -21107,6 +21107,18 @@ Long dis_ESC_0F (
          putIRegRDX(4, mkU32(0));
          return delta;
       }
+      /* BEGIN HACKY SUPPORT FOR xend */
+      /* 0F 01 D5 = XEND */
+      if (modrm == 0xD5 && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) {
+         /* We are never in an transaction (xbegin immediately aborts).
+            So this just always generates a General Protection Fault. */
+         delta += 1;
+         jmp_lit(dres, Ijk_SigSEGV, guest_RIP_bbstart + delta);
+         vassert(dres->whatNext == Dis_StopHere);
+         DIP("xend\n");
+         return delta;
+      }
+      /* END HACKY SUPPORT FOR xend */
       /* BEGIN HACKY SUPPORT FOR xtest */
       /* 0F 01 D6 = XTEST */
       if (modrm == 0xD6 && (archinfo->hwcaps & VEX_HWCAPS_AMD64_AVX)) {