]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add a spec rule for NE after COPY.
authorJulian Seward <jseward@acm.org>
Fri, 20 Apr 2012 22:33:44 +0000 (22:33 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 20 Apr 2012 22:33:44 +0000 (22:33 +0000)
git-svn-id: svn://svn.valgrind.org/vex/branches/TCHAIN@2295

VEX/priv/guest_arm_helpers.c

index e588178e46767c3c5978b1fdf56977d47d0cfece..122d034c16910b52caf6373fc1664a2e112a3082 100644 (file)
@@ -697,6 +697,18 @@ IRExpr* guest_arm_spechelper ( HChar*   function_name,
                            mkU32(1)));
       }
 
+      /*---------------- COPY ----------------*/
+
+      if (isU32(cond_n_op, (ARMCondNE << 4) | ARMG_CC_OP_COPY)) {
+         /* NE after COPY --> ((cc_dep1 >> ARMG_CC_SHIFT_Z) ^ 1) & 1 */
+         return binop(Iop_And32,
+                      binop(Iop_Xor32,
+                            binop(Iop_Shr32, cc_dep1,
+                                             mkU8(ARMG_CC_SHIFT_Z)),
+                            mkU32(1)),
+                      mkU32(1));
+      }
+
       /*----------------- AL -----------------*/
 
       /* A critically important case for Thumb code.