* config/rs6000/rs6000.c (first_reg_to_save): Save
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Nov 1999 03:40:16 +0000 (03:40 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Nov 1999 03:40:16 +0000 (03:40 +0000)
PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.

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

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 8c4e0ff..5e757c4 100644 (file)
@@ -1,3 +1,8 @@
+Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * config/rs6000/rs6000.c (first_reg_to_save): Save
+       PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
+
 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
 
        * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
index 535e7bd..250c8cd 100644 (file)
@@ -3508,7 +3508,11 @@ first_reg_to_save ()
 
   /* Find lowest numbered live register.  */
   for (first_reg = 13; first_reg <= 31; first_reg++)
-    if (regs_ever_live[first_reg] && ! call_used_regs[first_reg])
+    if (regs_ever_live[first_reg] 
+       && (! call_used_regs[first_reg]
+           || (first_reg == PIC_OFFSET_TABLE_REGNUM
+               && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS)
+               && flag_pic == 1)))
       break;
 
   if (profile_flag)