mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 12:21:15 +08:00
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
This commit is contained in:
parent
b6c8b41297
commit
364849ee36
@ -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)
|
||||
|
@ -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")))
|
||||
|
||||
|
@ -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]),
|
||||
|
Loading…
x
Reference in New Issue
Block a user