arm.md (ite_ne_zeroextractsi, [...]): Ensure we don't earlyclobber operands used...
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 20 May 2004 14:59:43 +0000 (14:59 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 20 May 2004 14:59:43 +0000 (14:59 +0000)
* arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
we don't earlyclobber operands used in the second insn.

From-SVN: r82057

gcc/ChangeLog
gcc/config/arm/arm.md

index 09873bc767e2f6507547edd7b3ee00fa69938292..fb5adc9d93ac8c56b1a8441650e5a3dd23d9fb22 100644 (file)
@@ -1,3 +1,8 @@
+2004-05-20  Richard Earnshaw <rearnsha@arm.com>
+
+       * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
+       we don't earlyclobber operands used in the second insn.
+
 2004-05-20  Steven Bosscher  <stevenb@suse.de>
 
        * tree-mudflap.c: Formatting fixes.
index 02717852f279c085a4363bcb3d1b732ce0fcc0fc..82f1701674f1e86eb953e12beb4459fd709941d2 100644 (file)
    && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
        && INTVAL (operands[2]) > 0 
        && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
-       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)"
+       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)
+   && !reg_overlap_mentioned_p (operands[0], operands[4])"
   "#"
   "TARGET_ARM
    && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
        && INTVAL (operands[2]) > 0 
        && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
-       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)"
+       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)
+   && !reg_overlap_mentioned_p (operands[0], operands[4])"
   [(parallel [(set (reg:CC_NOOV CC_REGNUM)
                   (compare:CC_NOOV (and:SI (match_dup 1) (match_dup 2))
                                    (const_int 0)))
                         (match_operand:SI 3 "arm_not_operand" "rIK")
                         (const_int 0)))
    (clobber (reg:CC CC_REGNUM))]
-  "TARGET_ARM"
+  "TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])"
   "#"
-  "TARGET_ARM"
+  "TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])"
   [(parallel [(set (reg:CC_NOOV CC_REGNUM)
                   (compare:CC_NOOV (ashift:SI (match_dup 1) (match_dup 2))
                                    (const_int 0)))