sh.c (calc_live_regs): Don't use initial_value optimization for PR_MEDIA_REG.

* config/sh/sh.c (calc_live_regs): Don't use initial_value
	optimization for PR_MEDIA_REG.

From-SVN: r54600
This commit is contained in:
J"orn Rennecke 2002-06-13 21:31:58 +00:00 committed by Joern Rennecke
parent b66377c173
commit 9d7ed8065d
2 changed files with 17 additions and 7 deletions

View File

@ -1,3 +1,8 @@
Thu Jun 13 22:29:40 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/sh/sh.c (calc_live_regs): Don't use initial_value
optimization for PR_MEDIA_REG.
2002-06-13 Neil Booth <neil@daikokuya.demon.co.uk>
* cpphash.h (_cpp_lex_identifier_trad): Remove.

View File

@ -4362,7 +4362,6 @@ calc_live_regs (count_ptr, live_regs_mask)
int reg;
int count;
int interrupt_handler;
rtx pr_initial;
int pr_live;
if ((lookup_attribute
@ -4385,12 +4384,18 @@ calc_live_regs (count_ptr, live_regs_mask)
target_flags &= ~FPU_SINGLE_BIT;
break;
}
pr_initial = has_hard_reg_initial_val (Pmode,
TARGET_SHMEDIA
? PR_MEDIA_REG : PR_REG);
pr_live = (pr_initial
? REGNO (pr_initial) != (TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG)
: regs_ever_live[TARGET_SHMEDIA ? PR_MEDIA_REG : PR_REG]);
/* PR_MEDIA_REG is a general purpose register, thus global_alloc already
knows how to use it. That means the pseudo originally allocated for
the initial value can become the PR_MEDIA_REG hard register, as seen for
execute/20010122-1.c:test9. */
if (TARGET_SHMEDIA)
pr_live = regs_ever_live[PR_MEDIA_REG];
else
{
rtx pr_initial = has_hard_reg_initial_val (Pmode, PR_REG);
pr_live = (pr_initial
? REGNO (pr_initial) != (PR_REG) : regs_ever_live[PR_REG]);
}
/* Force PR to be live if the prologue has to call the SHmedia
argument decoder or register saver. */
if (TARGET_SHCOMPACT