diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-10-29 14:35:59 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-10-29 14:35:59 +0000 |
commit | d702f362b50d9f6fe4a92b2404c6b9ec51f2708c (patch) | |
tree | 2b7105e17f53cbbc8c1dab89a9af8469370a09bb /gcc/modulo-sched.c | |
parent | f439d6bad9ee840bf7e63e0f7a74440679bb50e0 (diff) | |
download | gcc-d702f362b50d9f6fe4a92b2404c6b9ec51f2708c.zip gcc-d702f362b50d9f6fe4a92b2404c6b9ec51f2708c.tar.gz gcc-d702f362b50d9f6fe4a92b2404c6b9ec51f2708c.tar.bz2 |
re PR target/50887 ([avr] Support ACCUMULATE_OUTGOING_ARGS)
PR target/50887
* config/avr/avr.opt (-maccumulate-args): New option.
* config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
avr_starting_frame_offset.
(ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
* config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
(UNSPECV_WRITE_SP_IRQ_OFF): Remove.
(UNSPECV_WRITE_SP): New constant.
(*addhi3_sp_R): Rewrite to...
(*addhi3_sp): ...this new insn.
(movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
(movhi_sp_r): ...this new insn.
* config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
(avr_starting_frame_offset): New.
* config/avr/avr.c (avr_accumulate_outgoing_args): New function.
(avr_starting_frame_offset): New function.
(avr_outgoing_args_size): New static function.
(avr_initial_elimination_offset): Use it.
(avr_simple_epilogue): Use it.
(avr_asm_function_end_prologue): Use it.
(expand_epilogue): Use it.
(expand_prologue): Use it. Break out code to...
(avr_prologue_setup_frame): ...this new static function.
(avr_can_eliminate): Allow eliminating to frame pointer if there
is one.
(avr_frame_pointer_required_p): Use frame pointer if target has a
nonlocal label.
* config/avr/constraints.md (R): Remove.
(Csp): New constraint.
* config/avr/predicates.md (avr_sp_immediate_operand): Use it.
From-SVN: r180654
Diffstat (limited to 'gcc/modulo-sched.c')
0 files changed, 0 insertions, 0 deletions