OSDN Git Service

* config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Mar 2005 22:23:28 +0000 (22:23 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 Mar 2005 22:23:28 +0000 (22:23 +0000)
CCEQ mode for branch_positive_comparison_operator test.
* config/rs6000/predicates (branch_comparison_operator): Revert to
define_predicate.
(scc_comparison_operator): Same.
(branch_positive_comparison_operator): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95755 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000.md

index bd1a44f..d4309b5 100644 (file)
@@ -1,3 +1,12 @@
+2005-03-01  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
+       CCEQ mode for branch_positive_comparison_operator test.
+       * config/rs6000/predicates (branch_comparison_operator): Revert to
+       define_predicate.
+       (scc_comparison_operator): Same.
+       (branch_positive_comparison_operator): Same.
+
 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
 
        * config/cris/cris.c (cris_eligible_for_epilogue_delay)
index 3cb1475..10e12af 100644 (file)
 
 ;; Return 1 if OP is a comparison operation that is valid for a branch
 ;; instruction.  We only check the opcode against the mode of the CC value.
-(define_special_predicate "branch_comparison_operator"
+(define_predicate "branch_comparison_operator"
   (match_code "eq,ne,le,lt,ge,gt,leu,ltu,geu,gtu,unordered,ordered,unge,unle")
 {
   enum rtx_code code = GET_CODE (op);
 
 ;; Return 1 if OP is a comparison operation that is valid for an SCC insn --
 ;; it must be a positive comparison.
-(define_special_predicate "scc_comparison_operator"
+(define_predicate "scc_comparison_operator"
   (and (match_code "eq,lt,gt,ltu,gtu,unordered")
        (match_operand 0 "branch_comparison_operator")))
 
 ;; Return 1 if OP is a comparison operation that is valid for a branch
 ;; insn, which is true if the corresponding bit in the CC register is set.
-(define_special_predicate "branch_positive_comparison_operator"
+(define_predicate "branch_positive_comparison_operator"
   (and (match_code "eq,lt,gt,ltu,gtu,unordered")
        (match_operand 0 "branch_comparison_operator")))
 
index 5f297cc..0d1456c 100644 (file)
 {
   int positive_1, positive_2;
 
-  positive_1 = branch_positive_comparison_operator (operands[1], CCEQmode);
-  positive_2 = branch_positive_comparison_operator (operands[3], CCEQmode);
+  positive_1 = branch_positive_comparison_operator (operands[1],
+                                                   GET_MODE (operands[1]));
+  positive_2 = branch_positive_comparison_operator (operands[3],
+                                                   GET_MODE (operands[3]));
 
   if (! positive_1)
     operands[1] = gen_rtx_fmt_ee (rs6000_reverse_condition (GET_MODE (operands[2]),