aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoff Keating <geoffk@cygnus.com>1999-11-16 03:40:16 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>1999-11-16 03:40:16 +0000
commita38d360d6b8105485882916e61abf2c93e5b00c0 (patch)
treeb9cf56ac4bcdaa65e99b6c21dc15d0352bb09e8f
parentae673f140351f3cb46dd7856c493a3ae52a7f15c (diff)
downloadgcc-a38d360d6b8105485882916e61abf2c93e5b00c0.zip
gcc-a38d360d6b8105485882916e61abf2c93e5b00c0.tar.gz
gcc-a38d360d6b8105485882916e61abf2c93e5b00c0.tar.bz2
rs6000.c (first_reg_to_save): Save PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
* config/rs6000/rs6000.c (first_reg_to_save): Save PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed. From-SVN: r30542
-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)