* config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
From-SVN: r51736
This commit is contained in:
parent
501e321e0d
commit
161eb4fc98
2 changed files with 54 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2002-04-02 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR opt/420
|
||||
* config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
|
||||
|
||||
2002-04-01 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR target/1538
|
||||
|
|
|
@ -7653,6 +7653,7 @@
|
|||
;;
|
||||
;; Which moves the jCC condition outside the inner loop for free.
|
||||
;;
|
||||
|
||||
(define_peephole
|
||||
[(set (pc) (if_then_else (match_operator 3 "valid_dbcc_comparison_p"
|
||||
[(cc0) (const_int 0)])
|
||||
|
@ -7661,7 +7662,53 @@
|
|||
(parallel
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ge (plus:HI (match_operand:HI 0 "register_operand" "+d")
|
||||
(ne (match_operand:HI 0 "register_operand" "")
|
||||
(const_int 0))
|
||||
(label_ref (match_operand 1 "" ""))
|
||||
(pc)))
|
||||
(set (match_dup 0)
|
||||
(plus:HI (match_dup 0)
|
||||
(const_int -1)))])]
|
||||
"!TARGET_5200 && DATA_REG_P (operands[0]) && ! flags_in_68881 ()"
|
||||
"*
|
||||
{
|
||||
CC_STATUS_INIT;
|
||||
output_dbcc_and_branch (operands);
|
||||
return \"\";
|
||||
}")
|
||||
|
||||
(define_peephole
|
||||
[(set (pc) (if_then_else (match_operator 3 "valid_dbcc_comparison_p"
|
||||
[(cc0) (const_int 0)])
|
||||
(label_ref (match_operand 2 "" ""))
|
||||
(pc)))
|
||||
(parallel
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ne (match_operand:SI 0 "register_operand" "")
|
||||
(const_int 0))
|
||||
(label_ref (match_operand 1 "" ""))
|
||||
(pc)))
|
||||
(set (match_dup 0)
|
||||
(plus:SI (match_dup 0)
|
||||
(const_int -1)))])]
|
||||
"!TARGET_5200 && DATA_REG_P (operands[0]) && ! flags_in_68881 ()"
|
||||
"*
|
||||
{
|
||||
CC_STATUS_INIT;
|
||||
output_dbcc_and_branch (operands);
|
||||
return \"\";
|
||||
}")
|
||||
|
||||
(define_peephole
|
||||
[(set (pc) (if_then_else (match_operator 3 "valid_dbcc_comparison_p"
|
||||
[(cc0) (const_int 0)])
|
||||
(label_ref (match_operand 2 "" ""))
|
||||
(pc)))
|
||||
(parallel
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ge (plus:HI (match_operand:HI 0 "register_operand" "")
|
||||
(const_int -1))
|
||||
(const_int 0))
|
||||
(label_ref (match_operand 1 "" ""))
|
||||
|
@ -7685,7 +7732,7 @@
|
|||
(parallel
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ge (plus:SI (match_operand:SI 0 "register_operand" "+d")
|
||||
(ge (plus:SI (match_operand:SI 0 "register_operand" "")
|
||||
(const_int -1))
|
||||
(const_int 0))
|
||||
(label_ref (match_operand 1 "" ""))
|
||||
|
|
Loading…
Add table
Reference in a new issue