]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integ...
authorGeorg-Johann Lay <avr@gjlay.de>
Fri, 23 Sep 2011 17:02:10 +0000 (17:02 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Fri, 23 Sep 2011 17:02:10 +0000 (17:02 +0000)
commit590245153a345410c79f16df7c58660ff91df05e
tree47bbefd4d4c98a4a2fa91ba603f21b74d16907d0
parentd45510814279358307e46c435716843819c6460b
re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)

PR target/50447
* config/avr/avr.md: (adjust_len): Add alternative "out_plus".
(addsi3): Rewrite using QI scratch register.  Adjust text
peepholes using plus:SI.
(*addsi3_zero_extend.hi): New insn.
(*subsi3_zero_extend.hi): New insn.
(*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
(*subsi3_zero_extend): Ditto.
(subsi3): Change predicate #2 to register_operand.
* config/avr/avr-protos.h (avr_out_plus): New prototype.
(avr_out_plus_1): New static function.
(avr_out_plus): New function.
(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.

From-SVN: r179123
gcc/ChangeLog
gcc/config/avr/avr-protos.h
gcc/config/avr/avr.c
gcc/config/avr/avr.md