OSDN Git Service

* sh.c (calc_live_regs): If the return address pointer is live,
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Aug 2003 22:40:07 +0000 (22:40 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Aug 2003 22:40:07 +0000 (22:40 +0000)
commitca474d266e650d9bfb9a71574c11b8f49c7d3d62
tree5ff69d39777d33ffc717df14e7e609fd24df84c3
parent0c429f8e928dcbd8d3dad7acdb3446c181ba0cb8
* sh.c (calc_live_regs): If the return address pointer is live,
force pr live.
(sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register
for saves / restores.
(sh_expand_epilogue): If sh_media_register_for_return returns a
register number, flag the instructions that restores PR_MEDIA_REG
as possibly dead.
Remove dead update of offset.
(sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if
we can use the result of get_hard_reg_initial_val.
* sh.md (UNSPEC_RA): New constant.
(movsi_i_lowpart+1): Changed into a define_insn_and_split, named:
(load_ra).  Handle UNSPEC_RA.
(sibcall_media): Use PR_MEDIA_REG.

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