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
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 avr/avr- protos. h (avr_hard_ regno_nregs) : Declare. eliminate) : Simplify. elimination_ offset) : Likewise. setup_frame) : Use hard_frame_ pointer_ rtx. e_address) : Gut. e_reload_ address) : Use hard_frame_ pointer_ rtx. regno_nregs) : New. regno_ok) : Allow only Pmode for arg and frame_pointers. mode_code_ ok_for_ base_b) : Handle arg and frame pointers. USED_REGISTERS) : Likewise. CONTENTS) : Likewise. REGNO_NREGS) : Use avr_hard_ regno_nregs. FRAME_POINTER_ REGNUM) : New. POINTER_ REGNUM) : Use soft frame pointer.
Log:
PR target/50925
* config/
* config/avr/avr.c (avr_can_
(avr_initial_
(avr_prologue_
(expand_epilogue): Likewise.
(avr_legitimiz
(avr_legitimiz
(avr_hard_
(avr_hard_
(avr_regno_
* config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
add soft frame pointer.
(CALL_
(REG_CLASS_
(REGISTER_NAMES): Likewise.
(HARD_
(HARD_
(FRAME_
(ELIMINABLE_REGS): Eliminate from the soft frame pointer,
remove the HARD_FRAME_POINTER self-elimination.
Modified: gcc/ChangeLog gcc/config/ avr/avr- protos. h gcc/config/ avr/avr. c gcc/config/ avr/avr. h
trunk/
trunk/
trunk/
trunk/