]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge, from trunk, r2988
authorJulian Seward <jseward@acm.org>
Sun, 23 Nov 2014 17:25:53 +0000 (17:25 +0000)
committerJulian Seward <jseward@acm.org>
Sun, 23 Nov 2014 17:25:53 +0000 (17:25 +0000)
340725  AVX2: Incorrect decoding of vpbroadcast{b,w} reg,reg forms
2988

git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_10_BRANCH@3014

VEX/priv/guest_amd64_toIR.c

index 0f85ecab1340f91dfeca6960c7bf379f0e3256d9..ded88c3744e27f6f79752447e556cf4f6f5a5d31 100644 (file)
@@ -28661,6 +28661,7 @@ Long dis_ESC_0F38__VEX (
          IRTemp t8   = newTemp(Ity_I8);
          if (epartIsReg(modrm)) {
             UInt rE = eregOfRexRM(pfx, modrm);
+            delta++;
             DIP("vpbroadcastb %s,%s\n", nameXMMReg(rE), nameXMMReg(rG));
             assign(t8, unop(Iop_32to8, getXMMRegLane32(rE, 0)));
          } else {
@@ -28687,6 +28688,7 @@ Long dis_ESC_0F38__VEX (
          IRTemp t8   = newTemp(Ity_I8);
          if (epartIsReg(modrm)) {
             UInt rE = eregOfRexRM(pfx, modrm);
+            delta++;
             DIP("vpbroadcastb %s,%s\n", nameXMMReg(rE), nameYMMReg(rG));
             assign(t8, unop(Iop_32to8, getXMMRegLane32(rE, 0)));
          } else {
@@ -28717,6 +28719,7 @@ Long dis_ESC_0F38__VEX (
          IRTemp t16  = newTemp(Ity_I16);
          if (epartIsReg(modrm)) {
             UInt rE = eregOfRexRM(pfx, modrm);
+            delta++;
             DIP("vpbroadcastw %s,%s\n", nameXMMReg(rE), nameXMMReg(rG));
             assign(t16, unop(Iop_32to16, getXMMRegLane32(rE, 0)));
          } else {
@@ -28741,6 +28744,7 @@ Long dis_ESC_0F38__VEX (
          IRTemp t16  = newTemp(Ity_I16);
          if (epartIsReg(modrm)) {
             UInt rE = eregOfRexRM(pfx, modrm);
+            delta++;
             DIP("vpbroadcastw %s,%s\n", nameXMMReg(rE), nameYMMReg(rG));
             assign(t16, unop(Iop_32to16, getXMMRegLane32(rE, 0)));
          } else {