diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-10-19 14:59:00 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-10-19 14:59:00 +0000 |
commit | 2f47b8d3be24beae7974234c972aaae5612aae4e (patch) | |
tree | 7616f34c079ed92da41678645c99eca03752a6aa /gcc/tree.h | |
parent | dd46054a5f6243d441fc1564de173a858ea4e3d4 (diff) | |
download | gcc-2f47b8d3be24beae7974234c972aaae5612aae4e.zip gcc-2f47b8d3be24beae7974234c972aaae5612aae4e.tar.gz gcc-2f47b8d3be24beae7974234c972aaae5612aae4e.tar.bz2 |
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 (cc): New alternative out_plus_noclobber.
(adjust_len): Ditto.
(addhi3): Don't pipe through short; use gen_int_mode instead.
Prior to reload, expand to gen_addhi3_clobber.
(*addhi3): Use avr_out_plus_noclobber if applicable, use
out_plus_noclobber in cc and adjust_len attribute.
(addhi3_clobber): 2 new RTL peepholes.
(addhi3_clobber): New insn.
* config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
* config/avr/avr.c (avr_out_plus_noclobber): New function.
(notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
(avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
Set cc0 to set_zn for adiw on 16-bit values.
(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
(expand_epilogue): No need to add 0 to frame_pointer_rtx.
From-SVN: r180193
Diffstat (limited to 'gcc/tree.h')
0 files changed, 0 insertions, 0 deletions