]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merge from trunk, r2227 (Handle "add.w reg, sp, #constT" et al better.)
authorJulian Seward <jseward@acm.org>
Thu, 27 Oct 2011 10:58:38 +0000 (10:58 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 27 Oct 2011 10:58:38 +0000 (10:58 +0000)
git-svn-id: svn://svn.valgrind.org/vex/branches/VEX_3_7_BRANCH@2228

VEX/priv/guest_arm_toIR.c

index ada65f042f47506e5a5a7c6bc8716634660e5fb0..1adcf0725eb0ee03374a0d41aa81afc2ebdf969f 100644 (file)
@@ -16077,8 +16077,8 @@ DisResult disInstr_THUMB_WRK (
       UInt rN = INSN0(3,0);
       UInt rD = INSN1(11,8);
       Bool valid = !isBadRegT(rN) && !isBadRegT(rD);
-      /* but allow "add.w reg, sp, #constT" */ 
-      if (!valid && rN == 13 && rD != 15)
+      /* but allow "add.w reg, sp, #constT" for reg != PC */ 
+      if (!valid && rD <= 14 && rN == 13)
          valid = True;
       if (valid) {
          IRTemp argL  = newTemp(Ity_I32);
@@ -16104,8 +16104,8 @@ DisResult disInstr_THUMB_WRK (
       UInt rN = INSN0(3,0);
       UInt rD = INSN1(11,8);
       Bool valid = !isBadRegT(rN) && !isBadRegT(rD);
-      /* but allow "addw sp, sp, #uimm12" */
-      if (!valid && rD == 13 && rN == 13)
+      /* but allow "addw reg, sp, #uimm12" for reg != PC */
+      if (!valid && rD <= 14 && rN == 13)
          valid = True;
       if (valid) {
          IRTemp argL = newTemp(Ity_I32);