From 4817c43b1740e11de6ad2e6074cf2a9c4c1d431c Mon Sep 17 00:00:00 2001 From: Richard Sandiford <rdsandiford@googlemail.com> Date: Sun, 17 Aug 2008 10:47:40 +0000 Subject: [PATCH] mips.c (mips_save_reg_p): Don't short-circuit rest of function when handling GLOBAL_POINTER_REGNUM. gcc/ * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest of function when handling GLOBAL_POINTER_REGNUM. From-SVN: r139169 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faa92264ee7c..9b3fc6ef69ad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-08-17 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest + of function when handling GLOBAL_POINTER_REGNUM. + 2008-08-16 Eric Botcazou <ebotcazou@adacore.com> PR ada/20548 diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 48daec4175d2..51af59b2f1c3 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -8322,10 +8322,12 @@ mips_global_pointer (void) static bool mips_save_reg_p (unsigned int regno) { - /* We only need to save $gp if TARGET_CALL_SAVED_GP and only then - if we have not chosen a call-clobbered substitute. */ - if (regno == GLOBAL_POINTER_REGNUM) - return TARGET_CALL_SAVED_GP && cfun->machine->global_pointer == regno; + /* We need to save $gp if TARGET_CALL_SAVED_GP and if we have not + chosen a call-clobbered substitute. */ + if (TARGET_CALL_SAVED_GP + && regno == GLOBAL_POINTER_REGNUM + && cfun->machine->global_pointer == regno) + return true; /* Check call-saved registers. */ if ((crtl->saves_all_registers || df_regs_ever_live_p (regno)) -- GitLab