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
This commit is contained in:
parent
65450d64b7
commit
6479ed4b07
@ -1,3 +1,14 @@
|
||||
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>
|
||||
|
||||
PR target/47312
|
||||
|
@ -284,7 +284,7 @@
|
||||
)
|
||||
|
||||
(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.
|
||||
|
@ -450,10 +450,10 @@ rx_print_operand (FILE * file, rtx op, int letter)
|
||||
switch (code)
|
||||
{
|
||||
case LT:
|
||||
ret = "n";
|
||||
ret = "lt";
|
||||
break;
|
||||
case GE:
|
||||
ret = "pz";
|
||||
ret = "ge";
|
||||
break;
|
||||
case GT:
|
||||
ret = "gt";
|
||||
@ -2625,7 +2625,7 @@ flags_from_code (enum rtx_code code)
|
||||
{
|
||||
case LT:
|
||||
case GE:
|
||||
return CC_FLAG_S;
|
||||
return CC_FLAG_S | CC_FLAG_O;
|
||||
case GT:
|
||||
case LE:
|
||||
return CC_FLAG_S | CC_FLAG_O | CC_FLAG_Z;
|
||||
|
@ -797,7 +797,10 @@
|
||||
(set (reg CC_REG)
|
||||
(compare (abs:SI (match_dup 1))
|
||||
(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%1, %0"
|
||||
|
Loading…
x
Reference in New Issue
Block a user