mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-23 01:40:32 +08:00
Split decrement_and_branch_until_zero until define_expand/define_insn
From-SVN: r10660
This commit is contained in:
parent
24a25d4575
commit
8f61c2cc93
@ -2337,7 +2337,20 @@
|
||||
|
||||
;; dbra patterns that use REG_NOTES info generated by strength_reduce.
|
||||
|
||||
(define_insn "decrement_and_branch_until_zero"
|
||||
(define_expand "decrement_and_branch_until_zero"
|
||||
[(parallel [(set (pc)
|
||||
(if_then_else
|
||||
(ge (match_operand:SI 0 "general_operand" "")
|
||||
(const_int 1))
|
||||
(label_ref (match_operand 1 "" ""))
|
||||
(pc)))
|
||||
(set (match_dup 0)
|
||||
(plus:SI (match_dup 0)
|
||||
(const_int -1)))])]
|
||||
""
|
||||
"")
|
||||
|
||||
(define_insn ""
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ge (match_operand:SI 0 "general_operand" "d,m,g")
|
||||
|
@ -5782,7 +5782,21 @@
|
||||
#endif /* not MOTOROLA */
|
||||
}")
|
||||
|
||||
(define_insn "decrement_and_branch_until_zero"
|
||||
(define_expand "decrement_and_branch_until_zero"
|
||||
[(parallel [(set (pc)
|
||||
(if_then_else
|
||||
(ge (plus:SI (match_operand:SI 0 "general_operand" "")
|
||||
(const_int -1))
|
||||
(const_int 0))
|
||||
(label_ref (match_operand 1 "" ""))
|
||||
(pc)))
|
||||
(set (match_dup 0)
|
||||
(plus:SI (match_dup 0)
|
||||
(const_int -1)))])]
|
||||
""
|
||||
"")
|
||||
|
||||
(define_insn ""
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ge (plus:SI (match_operand:SI 0 "general_operand" "+d*am")
|
||||
|
@ -3995,7 +3995,23 @@
|
||||
;; reloads, hence the `m' constraints. The `!' constraints direct reload
|
||||
;; to not choose the register alternatives in the event a reload is needed.
|
||||
|
||||
(define_insn "decrement_and_branch_until_zero"
|
||||
(define_expand "decrement_and_branch_until_zero"
|
||||
[(parallel [(set (pc)
|
||||
(if_then_else
|
||||
(match_operator 0 "relop_no_unsigned"
|
||||
[(match_operand:SI 1 "register_operand" "")
|
||||
(const_int 0)])
|
||||
(label_ref (match_operand 2 "" ""))
|
||||
(pc)))
|
||||
(set (match_dup 1)
|
||||
(plus:SI (match_dup 1)
|
||||
(match_operand:SI 3 "add_operand" "")))
|
||||
(clobber (match_scratch:SI 4 ""))
|
||||
(clobber (match_scratch:SI 5 "=X,X,&r,&r"))])]
|
||||
""
|
||||
"")
|
||||
|
||||
(define_insn ""
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(match_operator 0 "relop_no_unsigned"
|
||||
|
Loading…
x
Reference in New Issue
Block a user