re PR target/50906 (e500 exception unwinding under "-Os" causes SIGSEGV)
commit59b719ec82d2d84286d8fdf86153a3261de0139e
authorAlan Modra <amodra@gcc.gnu.org>
Tue, 6 Dec 2011 03:41:44 +0000 (6 14:11 +1030)
committerAlan Modra <amodra@gcc.gnu.org>
Tue, 6 Dec 2011 03:41:44 +0000 (6 14:11 +1030)
treea7fdcab07896057cfb60354593240f5f906e4086
parent6184a33dce6c113cc602dbfbd48e0a1605836168
re PR target/50906 (e500 exception unwinding under "-Os" causes SIGSEGV)

PR target/50906
* config/rs6000/rs6000.c (rs6000_emit_prologue <TARGET_SPE_ABI>):
Do not mark r11 setup as frame-related.  Pass correct offset to
rs6000_emit_savres_rtx.  Correct out-of-line rs6000_frame_related
arguments.  Correct sp_offset.  Remove "offset" fudge from
in-line rs6000_frame_related call.  Rename misleading variable.
Fix comments and whitespace.  Tidy some expressions.
(rs6000_emit_epilogue <TARGET_SPE_ABI>): Always set frame_reg_rtx
to r11 in out-of-line case.  Correct sp_offset.  Pass correct
offset to rs6000_emit_savres_rtx.  Rename misleading variable.
Fix comments and whitespace.  Tidy some expressions.
(rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Add sp_offset
adjustment when !saving_GPRs_inline.  Correct register mode
used in address calcs.
(rs6000_emit_epilogue <non-TARGET_SPE_ABI>): Similarly when
!restoring_GPRs_inline.

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