]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Accept redundant REX prefixes for {minsd,maxsd} m128, xmm. Fixes #357932.
authorJulian Seward <jseward@acm.org>
Wed, 19 Oct 2016 15:37:54 +0000 (15:37 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 19 Oct 2016 15:37:54 +0000 (15:37 +0000)
Patch from axel.carl.mueller@gmail.com.

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

VEX/priv/guest_amd64_toIR.c

index ea41c8f0de0dfc413ea25ece0cb22bfeb7620ff9..2a2a85cf6b3f249645f72685a02ee474ed75c110 100644 (file)
@@ -13520,7 +13520,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK,
          goto decode_success;
       }
       /* F2 0F 5D = MINSD -- min 64F0x2 from R/M to R */
-      if (haveF2no66noF3(pfx) && sz == 4) {
+      if (haveF2no66noF3(pfx)
+          && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
          delta = dis_SSE_E_to_G_lo64( vbi, pfx, delta, "minsd", Iop_Min64F0x2 );
          goto decode_success;
       }
@@ -13566,7 +13567,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK,
          goto decode_success;
       }
       /* F2 0F 5F = MAXSD -- max 64F0x2 from R/M to R */
-      if (haveF2no66noF3(pfx) && sz == 4) {
+      if (haveF2no66noF3(pfx)
+          && (sz == 4 || /* ignore redundant REX.W */ sz == 8)) {
          delta = dis_SSE_E_to_G_lo64( vbi, pfx, delta, "maxsd", Iop_Max64F0x2 );
          goto decode_success;
       }