diff options
author | Denis Chertykov <denisc@overta.ru> | 2001-01-13 21:42:07 +0000 |
---|---|---|
committer | Denis Chertykov <denisc@gcc.gnu.org> | 2001-01-14 00:42:07 +0300 |
commit | 63eaee7147226294b3f12223dfe22aecdfa70cef (patch) | |
tree | 971947f707e112735ebc8bc9240f9436d451306a | |
parent | b874b32db8977f0afdb2dd1bcdece2cfda5b738a (diff) | |
download | gcc-63eaee7147226294b3f12223dfe22aecdfa70cef.zip gcc-63eaee7147226294b3f12223dfe22aecdfa70cef.tar.gz gcc-63eaee7147226294b3f12223dfe22aecdfa70cef.tar.bz2 |
avr.md ("strlenhi"): Remove clobber of input address.
* config/avr/avr.md ("strlenhi"): Remove clobber of input address.
(*strlenhi): Remove clobber (which was buggy) of output address.
From-SVN: r38995
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/avr/avr.md | 13 |
2 files changed, 11 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 663dd6f..cea3dc8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sun Jan 14 00:23:15 2001 Denis Chertykov <denisc@overta.ru> + + * config/avr/avr.md ("strlenhi"): Remove clobber of input address. + (*strlenhi): Remove clobber (which was buggy) of output address. + 2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> * Makefile.in (generated-manpages): Add gcc.1 diff --git a/gcc/config/avr/avr.md b/gcc/config/avr/avr.md index b822445..858b39f 100644 --- a/gcc/config/avr/avr.md +++ b/gcc/config/avr/avr.md @@ -469,8 +469,7 @@ [(set (match_dup 4) (unspec:HI [(match_operand:BLK 1 "memory_operand" "") (match_operand:QI 2 "const_int_operand" "") - (match_operand:HI 3 "immediate_operand" "")] 0)) - (clobber (match_dup 6))]) + (match_operand:HI 3 "immediate_operand" "")] 0))]) (set (match_dup 4) (plus:HI (match_dup 4) (const_int -1))) (set (match_operand:HI 0 "register_operand" "") @@ -478,11 +477,12 @@ (match_dup 5)))] "" "{ + rtx addr; if (! (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0)) FAIL; - operands[6] = copy_to_mode_reg (Pmode, XEXP (operands[1],0)); - operands[1] = gen_rtx (MEM, BLKmode, operands[6]); - operands[5] = operands[6]; + addr = copy_to_mode_reg (Pmode, XEXP (operands[1],0)); + operands[1] = gen_rtx (MEM, BLKmode, addr); + operands[5] = addr; operands[4] = gen_reg_rtx (HImode); }") @@ -490,8 +490,7 @@ [(set (match_operand:HI 0 "register_operand" "=e") (unspec:HI [(mem:BLK (match_operand:HI 1 "register_operand" "%0")) (const_int 0) - (match_operand:HI 2 "immediate_operand" "i")] 0)) - (clobber (match_dup 1))] + (match_operand:HI 2 "immediate_operand" "i")] 0))] "" "ld __tmp_reg__,%a0+ tst __tmp_reg__ |