Comment 16 for bug 1112499

Revision history for this message
In , Denisc-9 (denisc-9) wrote :

Author: denisc
Date: Thu Jan 12 18:29:54 2012
New Revision: 183136

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=183136
Log:
 PR target/50925
 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
 * config/avr/avr.c (avr_can_eliminate): Simplify.
 (avr_initial_elimination_offset): Likewise.
 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
 (expand_epilogue): Likewise.
 (avr_legitimize_address): Gut.
 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
 (avr_hard_regno_nregs): New.
 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
 add soft frame pointer.
 (CALL_USED_REGISTERS): Likewise.
 (REG_CLASS_CONTENTS): Likewise.
 (REGISTER_NAMES): Likewise.
 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
 (HARD_FRAME_POINTER_REGNUM): New.
 (FRAME_POINTER_REGNUM): Use soft frame pointer.
 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
 remove the HARD_FRAME_POINTER self-elimination.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/avr/avr-protos.h
    trunk/gcc/config/avr/avr.c
    trunk/gcc/config/avr/avr.h