This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, committed] PowerPC predicates.md
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 01 Mar 2005 13:23:02 -0500
- Subject: [PATCH, committed] PowerPC predicates.md
This patch fixes the bootstrap failure on libjava.
branch_comparison_operator was returning false because the mode did not
match.
David
* config/rs6000/predicates.md (branch_comparison_operator): Change
to define_special_predicate.
(scc_comparison_operator): Same.
(branch_positive_comparison_operator): Same.
Index: predicates.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/predicates.md,v
retrieving revision 1.1
diff -c -p -r1.1 predicates.md
*** predicates.md 28 Feb 2005 19:07:36 -0000 1.1
--- predicates.md 1 Mar 2005 18:18:22 -0000
***************
*** 678,684 ****
;; 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_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);
--- 678,684 ----
;; 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"
(match_code "eq,ne,le,lt,ge,gt,leu,ltu,geu,gtu,unordered,ordered,unge,unle")
{
enum rtx_code code = GET_CODE (op);
***************
*** 698,710 ****
;; Return 1 if OP is a comparison operation that is valid for an SCC insn --
;; it must be a positive comparison.
! (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_predicate "branch_positive_comparison_operator"
(and (match_code "eq,lt,gt,ltu,gtu,unordered")
(match_operand 0 "branch_comparison_operator")))
--- 698,710 ----
;; 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"
(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"
(and (match_code "eq,lt,gt,ltu,gtu,unordered")
(match_operand 0 "branch_comparison_operator")))