aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2005-03-01 22:23:28 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2005-03-01 17:23:28 -0500
commit364849ee367bb7f879a1b4e041e4a28ad860dcdc (patch)
treeb0034a9a14af46b7741841ccd4f8acc4b7da5898 /gcc
parentb6c8b4129734ba64712dfbbf66e6f8392a694148 (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--gcc/config/rs6000/predicates.md6
-rw-r--r--gcc/config/rs6000/rs6000.md6
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]),