From: J"orn Rennecke Date: Thu, 13 Jun 2002 21:31:58 +0000 (+0000) Subject: sh.c (calc_live_regs): Don't use initial_value optimization for PR_MEDIA_REG. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9d7ed8065dfc4e1d9c73872dc5af076bbb932ea1;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d5270c8fbf7..05b3a051ed3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Jun 13 22:29:40 2002 J"orn Rennecke + + * config/sh/sh.c (calc_live_regs): Don't use initial_value + optimization for PR_MEDIA_REG. + 2002-06-13 Neil Booth * cpphash.h (_cpp_lex_identifier_trad): Remove. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index edd4c4998cb..a9c2e8250a4 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -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