OSDN Git Service

* config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Nov 2009 13:25:54 +0000 (13:25 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Nov 2009 13:25:54 +0000 (13:25 +0000)
registers in leaf functions if possible.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154245 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/spu/spu.c

index 5de6fcd..49c55a4 100644 (file)
@@ -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.
index 2888da6..a75f04a 100644 (file)
@@ -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;
 }