Commit 6479ed4b by Nick Clifton Committed by Nick Clifton

predicates.md (rx_zs_comparison_operator): Remove lt and ge.

	* config/rx/predicates.md (rx_zs_comparison_operator): Remove
	lt and ge.
	* config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than
	CC_ZSOmode.
	* config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
	instead of "n" and "pz".
	(flags_from_code): LT and GE tests need CC_FLAG_O as well as
	CC_FLAG_S.

From-SVN: r169787
parent 65450d64
2011-02-03 Nick Clifton <nickc@redhat.com>
* config/rx/predicates.md (rx_zs_comparison_operator): Remove
lt and ge.
* config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than
CC_ZSOmode.
* config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
instead of "n" and "pz".
(flags_from_code): LT and GE tests need CC_FLAG_O as well as
CC_FLAG_S.
2011-02-03 Jakub Jelinek <jakub@redhat.com> 2011-02-03 Jakub Jelinek <jakub@redhat.com>
PR target/47312 PR target/47312
......
...@@ -284,7 +284,7 @@ ...@@ -284,7 +284,7 @@
) )
(define_predicate "rx_zs_comparison_operator" (define_predicate "rx_zs_comparison_operator"
(match_code "eq,ne,lt,ge") (match_code "eq,ne")
) )
;; GT and LE omitted due to operand swap required. ;; GT and LE omitted due to operand swap required.
......
...@@ -450,10 +450,10 @@ rx_print_operand (FILE * file, rtx op, int letter) ...@@ -450,10 +450,10 @@ rx_print_operand (FILE * file, rtx op, int letter)
switch (code) switch (code)
{ {
case LT: case LT:
ret = "n"; ret = "lt";
break; break;
case GE: case GE:
ret = "pz"; ret = "ge";
break; break;
case GT: case GT:
ret = "gt"; ret = "gt";
...@@ -2625,7 +2625,7 @@ flags_from_code (enum rtx_code code) ...@@ -2625,7 +2625,7 @@ flags_from_code (enum rtx_code code)
{ {
case LT: case LT:
case GE: case GE:
return CC_FLAG_S; return CC_FLAG_S | CC_FLAG_O;
case GT: case GT:
case LE: case LE:
return CC_FLAG_S | CC_FLAG_O | CC_FLAG_Z; return CC_FLAG_S | CC_FLAG_O | CC_FLAG_Z;
......
...@@ -797,7 +797,10 @@ ...@@ -797,7 +797,10 @@
(set (reg CC_REG) (set (reg CC_REG)
(compare (abs:SI (match_dup 1)) (compare (abs:SI (match_dup 1))
(const_int 0)))] (const_int 0)))]
"reload_completed && rx_match_ccmode (insn, CC_ZSOmode)" ;; Note - although the ABS instruction does set the O bit in the processor
;; status word, it does not do so in a way that is comparable with the CMP
;; instruction. Hence we use CC_ZSmode rather than CC_ZSOmode.
"reload_completed && rx_match_ccmode (insn, CC_ZSmode)"
"@ "@
abs\t%0 abs\t%0
abs\t%1, %0" abs\t%1, %0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment