Split decrement_and_branch_until_zero until define_expand/define_insn

From-SVN: r10660
This commit is contained in:
Michael Meissner 1995-12-01 14:32:15 +00:00
parent 24a25d4575
commit 8f61c2cc93
3 changed files with 46 additions and 3 deletions

View File

@ -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")

View File

@ -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")

View File

@ -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"