sh.c (calc_live_regs): If the return address pointer is live, force pr live.
authorJ"orn Rennecke <joern.rennecke@superh.com>
Thu, 7 Aug 2003 22:40:07 +0000 (22:40 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Thu, 7 Aug 2003 22:40:07 +0000 (23:40 +0100)
commit7d73a2bae9ca5a839059e88058686d36c8b094a7
tree5ff69d39777d33ffc717df14e7e609fd24df84c3
parent7160c99da0fe3cce45ab75fb507df25151b4408e
sh.c (calc_live_regs): If the return address pointer is live, force pr live.

* 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.

From-SVN: r70234
gcc/ChangeLog
gcc/config/sh/sh.c
gcc/config/sh/sh.md