mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-02 00:04:30 +08:00
s390.md ("doloop_si64", [...]): Add a new alternative to the constraint strings.
2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com> * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"): Add a new alternative to the constraint strings. Add move of operand 1 to 3 to the splitter definition. ("doloop_si_long"): Second contraint alternative removed. From-SVN: r114767
This commit is contained in:
parent
9b7e4f4ff8
commit
7e665d1808
@ -1,3 +1,10 @@
|
||||
2006-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
|
||||
|
||||
* config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
|
||||
Add a new alternative to the constraint strings. Add move of
|
||||
operand 1 to 3 to the splitter definition.
|
||||
("doloop_si_long"): Second contraint alternative removed.
|
||||
|
||||
2006-06-08 Anatoly Sokolov <aesok@post.ru>
|
||||
|
||||
* config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
|
||||
|
@ -6779,13 +6779,13 @@
|
||||
(define_insn_and_split "doloop_si64"
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ne (match_operand:SI 1 "register_operand" "d,d")
|
||||
(ne (match_operand:SI 1 "register_operand" "d,d,d")
|
||||
(const_int 1))
|
||||
(label_ref (match_operand 0 "" ""))
|
||||
(pc)))
|
||||
(set (match_operand:SI 2 "nonimmediate_operand" "=1,?*m*d")
|
||||
(set (match_operand:SI 2 "nonimmediate_operand" "=1,?X,?X")
|
||||
(plus:SI (match_dup 1) (const_int -1)))
|
||||
(clobber (match_scratch:SI 3 "=X,&1"))
|
||||
(clobber (match_scratch:SI 3 "=X,&1,&?d"))
|
||||
(clobber (reg:CC CC_REGNUM))]
|
||||
"TARGET_CPU_ZARCH"
|
||||
{
|
||||
@ -6799,7 +6799,8 @@
|
||||
"&& reload_completed
|
||||
&& (! REG_P (operands[2])
|
||||
|| ! rtx_equal_p (operands[1], operands[2]))"
|
||||
[(parallel [(set (reg:CCAN CC_REGNUM)
|
||||
[(set (match_dup 3) (match_dup 1))
|
||||
(parallel [(set (reg:CCAN CC_REGNUM)
|
||||
(compare:CCAN (plus:SI (match_dup 3) (const_int -1))
|
||||
(const_int 0)))
|
||||
(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))])
|
||||
@ -6817,13 +6818,13 @@
|
||||
(define_insn_and_split "doloop_si31"
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ne (match_operand:SI 1 "register_operand" "d,d")
|
||||
(ne (match_operand:SI 1 "register_operand" "d,d,d")
|
||||
(const_int 1))
|
||||
(label_ref (match_operand 0 "" ""))
|
||||
(pc)))
|
||||
(set (match_operand:SI 2 "nonimmediate_operand" "=1,?*m*d")
|
||||
(set (match_operand:SI 2 "nonimmediate_operand" "=1,?X,?X")
|
||||
(plus:SI (match_dup 1) (const_int -1)))
|
||||
(clobber (match_scratch:SI 3 "=X,&1"))
|
||||
(clobber (match_scratch:SI 3 "=X,&1,&?d"))
|
||||
(clobber (reg:CC CC_REGNUM))]
|
||||
"!TARGET_CPU_ZARCH"
|
||||
{
|
||||
@ -6837,7 +6838,8 @@
|
||||
"&& reload_completed
|
||||
&& (! REG_P (operands[2])
|
||||
|| ! rtx_equal_p (operands[1], operands[2]))"
|
||||
[(parallel [(set (reg:CCAN CC_REGNUM)
|
||||
[(set (match_dup 3) (match_dup 1))
|
||||
(parallel [(set (reg:CCAN CC_REGNUM)
|
||||
(compare:CCAN (plus:SI (match_dup 3) (const_int -1))
|
||||
(const_int 0)))
|
||||
(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))])
|
||||
@ -6858,13 +6860,13 @@
|
||||
(define_insn "*doloop_si_long"
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ne (match_operand:SI 1 "register_operand" "d,d")
|
||||
(ne (match_operand:SI 1 "register_operand" "d")
|
||||
(const_int 1))
|
||||
(match_operand 0 "address_operand" "U,U")
|
||||
(match_operand 0 "address_operand" "U")
|
||||
(pc)))
|
||||
(set (match_operand:SI 2 "register_operand" "=1,?*m*d")
|
||||
(set (match_operand:SI 2 "register_operand" "=1")
|
||||
(plus:SI (match_dup 1) (const_int -1)))
|
||||
(clobber (match_scratch:SI 3 "=X,&1"))
|
||||
(clobber (match_scratch:SI 3 "=X"))
|
||||
(clobber (reg:CC CC_REGNUM))]
|
||||
"!TARGET_CPU_ZARCH"
|
||||
{
|
||||
@ -6882,13 +6884,13 @@
|
||||
(define_insn_and_split "doloop_di"
|
||||
[(set (pc)
|
||||
(if_then_else
|
||||
(ne (match_operand:DI 1 "register_operand" "d,d")
|
||||
(ne (match_operand:DI 1 "register_operand" "d,d,d")
|
||||
(const_int 1))
|
||||
(label_ref (match_operand 0 "" ""))
|
||||
(pc)))
|
||||
(set (match_operand:DI 2 "nonimmediate_operand" "=1,?*m*d")
|
||||
(set (match_operand:DI 2 "nonimmediate_operand" "=1,?X,?X")
|
||||
(plus:DI (match_dup 1) (const_int -1)))
|
||||
(clobber (match_scratch:DI 3 "=X,&1"))
|
||||
(clobber (match_scratch:DI 3 "=X,&1,&?d"))
|
||||
(clobber (reg:CC CC_REGNUM))]
|
||||
"TARGET_64BIT"
|
||||
{
|
||||
@ -6902,7 +6904,8 @@
|
||||
"&& reload_completed
|
||||
&& (! REG_P (operands[2])
|
||||
|| ! rtx_equal_p (operands[1], operands[2]))"
|
||||
[(parallel [(set (reg:CCAN CC_REGNUM)
|
||||
[(set (match_dup 3) (match_dup 1))
|
||||
(parallel [(set (reg:CCAN CC_REGNUM)
|
||||
(compare:CCAN (plus:DI (match_dup 3) (const_int -1))
|
||||
(const_int 0)))
|
||||
(set (match_dup 3) (plus:DI (match_dup 3) (const_int -1)))])
|
||||
|
Loading…
Reference in New Issue
Block a user