diff options
author | David Edelsohn <edelsohn@gnu.org> | 2005-03-01 22:23:28 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2005-03-01 17:23:28 -0500 |
commit | 364849ee367bb7f879a1b4e041e4a28ad860dcdc (patch) | |
tree | b0034a9a14af46b7741841ccd4f8acc4b7da5898 /gcc | |
parent | b6c8b4129734ba64712dfbbf66e6f8392a694148 (diff) | |
download | gcc-364849ee367bb7f879a1b4e041e4a28ad860dcdc.zip gcc-364849ee367bb7f879a1b4e041e4a28ad860dcdc.tar.gz gcc-364849ee367bb7f879a1b4e041e4a28ad860dcdc.tar.bz2 |
rs6000.md (cceq splitter): Use operand mode, not CCEQ mode for branch_positive_comparison_operator test.
* 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.
From-SVN: r95755
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/predicates.md | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 6 |
3 files changed, 16 insertions, 5 deletions
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 <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) 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]), |