]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Allow early-writeback for the cases
authorJulian Seward <jseward@acm.org>
Wed, 7 May 2014 09:20:11 +0000 (09:20 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 7 May 2014 09:20:11 +0000 (09:20 +0000)
   stp d, d, [sp,#-imm]!
   stp s, s, [sp,#-imm]!
as well as for the existing case
   stp q, q, [sp,#-imm]!

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

VEX/priv/guest_arm64_toIR.c

index a8e077cf77cab8a44196031c8009bd52436ccd9f..55ca7e24d11d2dec752be71cbdbf5eb844454070 100644 (file)
@@ -3702,8 +3702,10 @@ Bool dis_ARM64_load_store(/*MB_OUT*/DisResult* dres, UInt insn)
          }
 
          /* Normally rN would be updated after the transfer.  However, in
-            the special case typifed by
+            the special cases typifed by
                stp q0, q1, [sp,#-512]!
+               stp d0, d1, [sp,#-512]!
+               stp s0, s1, [sp,#-512]!
             it is necessary to update SP before the transfer, (1)
             because Memcheck will otherwise complain about a write
             below the stack pointer, and (2) because the segfault
@@ -3713,7 +3715,7 @@ Bool dis_ARM64_load_store(/*MB_OUT*/DisResult* dres, UInt insn)
             address to the next page.
          */
          Bool earlyWBack
-           = wBack && simm7 < 0 && szB == 16
+           = wBack && simm7 < 0
              && INSN(24,23) == BITS2(1,1) && nn == 31 && !isLD;
 
          if (wBack && earlyWBack)