OSDN Git Service

PR target/50447
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 Oct 2011 14:59:00 +0000 (14:59 +0000)
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 19 Oct 2011 14:59:00 +0000 (14:59 +0000)
commiteac146f2cc2d1ae191f9aa4bd5a92a08be4a5af9
tree7616f34c079ed92da41678645c99eca03752a6aa
parent25f48be00f733aaea20b5ad57902ab4393be40e6
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180193 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/avr/avr-protos.h
gcc/config/avr/avr.c
gcc/config/avr/avr.md