]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge from trunk, r2475 (Handle a reg-reg encoding of MOVAPS. Fixes #289584.)
authorJulian Seward <jseward@acm.org>
Sun, 2 Sep 2012 20:25:18 +0000 (20:25 +0000)
committerJulian Seward <jseward@acm.org>
Sun, 2 Sep 2012 20:25:18 +0000 (20:25 +0000)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_8_BRANCH@2502

VEX/priv/guest_amd64_toIR.c

index 3d02754a3ee0d174173a82fba88dcf7ac6b4d75c..fcda1e21b6e79680209e8becb15a8503520dde7d 100644 (file)
@@ -11596,6 +11596,11 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK,
          modrm = getUChar(delta);
          if (epartIsReg(modrm)) {
             /* fall through; awaiting test case */
+            putXMMReg( eregOfRexRM(pfx,modrm),
+                       getXMMReg( gregOfRexRM(pfx,modrm) ));
+            DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
+                                  nameXMMReg(eregOfRexRM(pfx,modrm)));
+            delta += 1;
          } else {
             addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
             gen_SEGV_if_not_16_aligned( addr );
@@ -11603,8 +11608,8 @@ Long dis_ESC_0F__SSE2 ( Bool* decode_OK,
             DIP("movaps %s,%s\n", nameXMMReg(gregOfRexRM(pfx,modrm)),
                                   dis_buf );
             delta += alen;
-            goto decode_success;
          }
+         goto decode_success;
       }
       /* 66 0F 29 = MOVAPD -- move from G (xmm) to E (mem or xmm). */
       if (have66noF2noF3(pfx)