OSDN Git Service

PR target/46030
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Nov 2010 03:24:20 +0000 (03:24 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Nov 2010 03:24:20 +0000 (03:24 +0000)
commit1c53873b6fbfd135b6be8cd3089ee77d86ff5eab
tree2789cb8ef742aef3eb7d081e5cd801573be82187
parentc3170ce3d0f994d927e6e70433a98d985c587412
PR target/46030
* config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
and savres_strategy.
(stack_info): New file scope var.
(rs6000_init_machine_status): Init stack_info.
(SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
(SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
(rs6000_savres_strategy): Rewrite.
(rs6000_stack_info): Use "stack_info" in place of local "info".
Return cached stack info when reload_completed unless ENABLE_CHECKING
in which case confirm newly calculated stack info matches old info.
Delay calculation of lr_save_p, set it for out of line gp save/restore
as well as fp.  Call rs6000_savres_strategy from here..
(rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
(rs6000_output_function_prologue): Use info->savres_strategy to
determine whether fp save/restore externs need to be emitted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166125 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/rs6000/rs6000.c