aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-11-17 13:25:54 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2009-11-17 13:25:54 +0000
commit6ca19a974b25008e1e9e9c68c34a904b1b12fb4d (patch)
treeff92dc7d6b59fc085a6be8e7a6df89a49fe1c792 /gcc
parent73d2e138b14cd662a9a7310950d408b007e88802 (diff)
downloadgcc-6ca19a974b25008e1e9e9c68c34a904b1b12fb4d.zip
gcc-6ca19a974b25008e1e9e9c68c34a904b1b12fb4d.tar.gz
gcc-6ca19a974b25008e1e9e9c68c34a904b1b12fb4d.tar.bz2
spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC registers in leaf functions if possible.
* config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC registers in leaf functions if possible. From-SVN: r154245
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/spu/spu.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5de6fcd..49c55a4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+ * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
+ registers in leaf functions if possible.
+
2009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/m68k/m68k-devices.def: Add MCF5441x family.
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 2888da6..a75f04a 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -1710,6 +1710,8 @@ get_pic_reg (void)
rtx pic_reg = pic_offset_table_rtx;
if (!reload_completed && !reload_in_progress)
abort ();
+ if (current_function_is_leaf && !df_regs_ever_live_p (LAST_ARG_REGNUM))
+ pic_reg = gen_rtx_REG (SImode, LAST_ARG_REGNUM);
return pic_reg;
}