avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs()) instead of pm_lo8/pm_hi8 to makes this call working on avr6.

* config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
	instead of pm_lo8/pm_hi8 to makes this call working on avr6.
	* config/avr/avr.c (expand_prologue): Tune "call_prologue" 
	optimization for 'avr6' architecture.

Co-Authored-By: Anatoly Sokolov <aesok@post.ru>

From-SVN: r135953
This commit is contained in:
Tristan Gingold 2008-05-26 17:44:50 +00:00 committed by Anatoly Sokolov
parent 319a58c6c8
commit 4d492420f6
3 changed files with 13 additions and 3 deletions

View file

@ -1,3 +1,11 @@
2008-05-26 Tristan Gingold <gingold@adacore.com>
Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
instead of pm_lo8/pm_hi8 to makes this call working on avr6.
* config/avr/avr.c (expand_prologue): Tune "call_prologue"
optimization for 'avr6' architecture.
2008-05-26 Andy Hutchinson <hutchinsonandy@aim.com>
PR target/34932

View file

@ -682,7 +682,9 @@ expand_prologue (void)
/* Prevent any attempt to delete the setting of ZERO_REG! */
emit_insn (gen_rtx_USE (VOIDmode, zero_reg_rtx));
}
if (minimize && (frame_pointer_needed || live_seq > 6))
if (minimize && (frame_pointer_needed
|| (AVR_2_BYTE_PC && live_seq > 6)
|| live_seq > 7))
{
insn = emit_move_insn (gen_rtx_REG (HImode, REG_X),
gen_int_mode (size, HImode));

View file

@ -2765,8 +2765,8 @@
(use (reg:HI REG_X))
(clobber (reg:HI REG_Z))]
""
"ldi r30,pm_lo8(1f)
ldi r31,pm_hi8(1f)
"ldi r30,lo8(gs(1f))
ldi r31,hi8(gs(1f))
%~jmp __prologue_saves__+((18 - %0) * 2)
1:"
[(set_attr_alternative "length"