diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-03-25 22:23:27 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2009-03-25 22:23:27 +0000 |
commit | 9fdcdc749b18a96983ba060f35421147a7454bd5 (patch) | |
tree | 22e61eb660b189c7d00176ed720f0b02fa90e9f4 | |
parent | 46994828ef5e85aab972e70cb955998c6bc8d0eb (diff) | |
download | gcc-9fdcdc749b18a96983ba060f35421147a7454bd5.zip gcc-9fdcdc749b18a96983ba060f35421147a7454bd5.tar.gz gcc-9fdcdc749b18a96983ba060f35421147a7454bd5.tar.bz2 |
re PR target/39523 (SH: global registers are wrongly saved)
PR target/39523
* config/sh/sh.c (calc_live_regs): Fix condition for global
registers except PIC_OFFSET_TABLE_REGNUM.
From-SVN: r145077
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1b7d902..7d9fe81 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org> + + PR target/39523 + * config/sh/sh.c (calc_live_regs): Fix condition for global + registers except PIC_OFFSET_TABLE_REGNUM. + 2009-03-25 Kai Tietz <kai.tietz@onevision.com> PR/39518 diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 3c57730..c8f4c85 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -5966,7 +5966,9 @@ calc_live_regs (HARD_REG_SET *live_regs_mask) && crtl->args.info.call_cookie && reg == PIC_OFFSET_TABLE_REGNUM) || (df_regs_ever_live_p (reg) - && (!call_really_used_regs[reg] + && ((!call_really_used_regs[reg] + && !(reg != PIC_OFFSET_TABLE_REGNUM + && fixed_regs[reg] && call_used_regs[reg])) || (trapa_handler && reg == FPSCR_REG && TARGET_FPU_ANY))) || (crtl->calls_eh_return && (reg == EH_RETURN_DATA_REGNO (0) |