mirror of git://gcc.gnu.org/git/gcc.git
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>
|
2006-06-08 Anatoly Sokolov <aesok@post.ru>
|
||||||
|
|
||||||
* config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
|
* config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
|
||||||
|
|
|
||||||
|
|
@ -6779,13 +6779,13 @@
|
||||||
(define_insn_and_split "doloop_si64"
|
(define_insn_and_split "doloop_si64"
|
||||||
[(set (pc)
|
[(set (pc)
|
||||||
(if_then_else
|
(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))
|
(const_int 1))
|
||||||
(label_ref (match_operand 0 "" ""))
|
(label_ref (match_operand 0 "" ""))
|
||||||
(pc)))
|
(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)))
|
(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))]
|
(clobber (reg:CC CC_REGNUM))]
|
||||||
"TARGET_CPU_ZARCH"
|
"TARGET_CPU_ZARCH"
|
||||||
{
|
{
|
||||||
|
|
@ -6799,7 +6799,8 @@
|
||||||
"&& reload_completed
|
"&& reload_completed
|
||||||
&& (! REG_P (operands[2])
|
&& (! REG_P (operands[2])
|
||||||
|| ! rtx_equal_p (operands[1], 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))
|
(compare:CCAN (plus:SI (match_dup 3) (const_int -1))
|
||||||
(const_int 0)))
|
(const_int 0)))
|
||||||
(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))])
|
(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))])
|
||||||
|
|
@ -6817,13 +6818,13 @@
|
||||||
(define_insn_and_split "doloop_si31"
|
(define_insn_and_split "doloop_si31"
|
||||||
[(set (pc)
|
[(set (pc)
|
||||||
(if_then_else
|
(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))
|
(const_int 1))
|
||||||
(label_ref (match_operand 0 "" ""))
|
(label_ref (match_operand 0 "" ""))
|
||||||
(pc)))
|
(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)))
|
(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))]
|
(clobber (reg:CC CC_REGNUM))]
|
||||||
"!TARGET_CPU_ZARCH"
|
"!TARGET_CPU_ZARCH"
|
||||||
{
|
{
|
||||||
|
|
@ -6837,7 +6838,8 @@
|
||||||
"&& reload_completed
|
"&& reload_completed
|
||||||
&& (! REG_P (operands[2])
|
&& (! REG_P (operands[2])
|
||||||
|| ! rtx_equal_p (operands[1], 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))
|
(compare:CCAN (plus:SI (match_dup 3) (const_int -1))
|
||||||
(const_int 0)))
|
(const_int 0)))
|
||||||
(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))])
|
(set (match_dup 3) (plus:SI (match_dup 3) (const_int -1)))])
|
||||||
|
|
@ -6858,13 +6860,13 @@
|
||||||
(define_insn "*doloop_si_long"
|
(define_insn "*doloop_si_long"
|
||||||
[(set (pc)
|
[(set (pc)
|
||||||
(if_then_else
|
(if_then_else
|
||||||
(ne (match_operand:SI 1 "register_operand" "d,d")
|
(ne (match_operand:SI 1 "register_operand" "d")
|
||||||
(const_int 1))
|
(const_int 1))
|
||||||
(match_operand 0 "address_operand" "U,U")
|
(match_operand 0 "address_operand" "U")
|
||||||
(pc)))
|
(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)))
|
(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))]
|
(clobber (reg:CC CC_REGNUM))]
|
||||||
"!TARGET_CPU_ZARCH"
|
"!TARGET_CPU_ZARCH"
|
||||||
{
|
{
|
||||||
|
|
@ -6882,13 +6884,13 @@
|
||||||
(define_insn_and_split "doloop_di"
|
(define_insn_and_split "doloop_di"
|
||||||
[(set (pc)
|
[(set (pc)
|
||||||
(if_then_else
|
(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))
|
(const_int 1))
|
||||||
(label_ref (match_operand 0 "" ""))
|
(label_ref (match_operand 0 "" ""))
|
||||||
(pc)))
|
(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)))
|
(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))]
|
(clobber (reg:CC CC_REGNUM))]
|
||||||
"TARGET_64BIT"
|
"TARGET_64BIT"
|
||||||
{
|
{
|
||||||
|
|
@ -6902,7 +6904,8 @@
|
||||||
"&& reload_completed
|
"&& reload_completed
|
||||||
&& (! REG_P (operands[2])
|
&& (! REG_P (operands[2])
|
||||||
|| ! rtx_equal_p (operands[1], 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))
|
(compare:CCAN (plus:DI (match_dup 3) (const_int -1))
|
||||||
(const_int 0)))
|
(const_int 0)))
|
||||||
(set (match_dup 3) (plus:DI (match_dup 3) (const_int -1)))])
|
(set (match_dup 3) (plus:DI (match_dup 3) (const_int -1)))])
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue