On 09/27/2011 12:56 AM, Georg-Johann Lay wrote:
* config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
* config/avr/avr.c (avr_out_addto_sp): New function.
(adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
* config/avr/avr.md (adjust_len): Add "addto_sp".
(*movhi_sp): Remove insn.
(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
While this is a good cleanup by itself, and probably should be
applied by itself, I think a good followup would be to merge
the addhi3_sp_R pattern with the normal addhi3 pattern.
This should be fairly easy, given that both are handled via C
functions now.