]> git.ipfire.org Git - thirdparty/gcc.git/commit
rs6000.c (rs6000_emit_stack_reset): Delete forward decl.
authorAlan Modra <amodra@gmail.com>
Wed, 25 Apr 2012 02:15:48 +0000 (11:45 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Wed, 25 Apr 2012 02:15:48 +0000 (11:45 +0930)
commit544055ae6558c7f9d4c80cf31d0dfa8abd240809
treee90d8bb12030ae8200260fd17ff26ea099f7e910
parent471df90fad59eff2cc97755e0248e5eb6c851a8d
rs6000.c (rs6000_emit_stack_reset): Delete forward decl.

* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
decl.  Move logic selecting update reg to callers.  Update all callers.
(rs6000_emit_allocate_stack): Add copy_off param.
(emit_frame_save): Don't handle reg+reg addressing.
(ptr_regno_for_savres): New function, extracted from..
(rs6000_emit_savres_rtx): ..here.  Add lr_offset param.
(rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
Set frame_reg_rtx to r11 whenever r11 is needed, and merge
frame offset adjustment for out-of-line save with copy from sp.
Simplify condition controlling whether cr is saved early or
late.  Use ptr_regno_for_savres to verify correct reg is set
up for out-of-line saves.  Pass the actual pointer reg used to
rs6000_emit_savres_rtx so rtl matches insns in out-of-line
function.  Rearrange spe vars so code is similar to that
elsewhere in this function.  Don't update frame_off when spe
save code will restore r11.  Use emit_frame_save for spe and
gpr saves.  Consolidate darwin out-of-line gpr setup with that
for other abis.  Don't assume frame_offset is zero and frame
reg is sp when setting up altivec reg saves, and calculate
exact offset requirement.
(rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off.  Tidy
spe restore code.  Consolidate darwin out-of-line gpr setup
with that for other abis.

From-SVN: r186797
gcc/ChangeLog
gcc/config/rs6000/rs6000.c