rs6000.c (first_reg_to_save): Save PIC_OFFSET_TABLE_REGNUM when -fpic even though...
authorGeoff Keating <geoffk@cygnus.com>
Tue, 16 Nov 1999 03:40:16 +0000 (03:40 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Tue, 16 Nov 1999 03:40:16 +0000 (03:40 +0000)
* config/rs6000/rs6000.c (first_reg_to_save): Save
PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.

From-SVN: r30542

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

index 8c4e0ff9f18492ecbad520f2b11abdc45e00f73d..5e757c42e2d0986c049d50d27f6384264c6093b8 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 535e7bdd7fd35c7a68ae4759fe93de73086a897d..250c8cd42d4e5f121fe47bba00ee94fd1b44c0af 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)