From: dje Date: Tue, 1 Mar 2005 22:23:28 +0000 (+0000) Subject: * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not X-Git-Tag: upstream/4.9.2~63388 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=85c825bc6c9f8a2ec110b73715665f6b1b15c502;p=platform%2Fupstream%2Flinaro-gcc.git * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95755 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd1a44f..d4309b5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2005-03-01 David Edelsohn + + * 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 * config/cris/cris.c (cris_eligible_for_epilogue_delay) diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 3cb1475..10e12af 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -678,7 +678,7 @@ ;; 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); @@ -698,13 +698,13 @@ ;; 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"))) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 5f297cc..0d1456c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -13955,8 +13955,10 @@ { 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]),