aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8c4e0ff..5e757c4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 535e7bd..250c8cd 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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)