aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPat Haugen <pthaugen@us.ibm.com>2005-06-03 17:18:04 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2005-06-03 13:18:04 -0400
commit7c9ac5c0354c587ba84956a4a34584ec2c7648cb (patch)
tree13a2c09fc02f46a4eb726b62de60b85b3be39fcb /gcc
parent4fd20a8f82fb5cd17fd32a5218054447d45ada69 (diff)
downloadgcc-7c9ac5c0354c587ba84956a4a34584ec2c7648cb.zip
gcc-7c9ac5c0354c587ba84956a4a34584ec2c7648cb.tar.gz
gcc-7c9ac5c0354c587ba84956a4a34584ec2c7648cb.tar.bz2
rs6000.c (rs6000_conditional_register_usage): Clear call_realy_used_regs[r2] when ABI_AIX.
2005-06-03 Pat Haugen <pthaugen@us.ibm.com> * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Clear call_realy_used_regs[r2] when ABI_AIX. From-SVN: r100549
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 97461ba..22136dd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
+ Clear call_realy_used_regs[r2] when ABI_AIX.
+
2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/21858
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b82ee74..ce9164c 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3287,7 +3287,7 @@ rs6000_conditional_register_usage (void)
if (! TARGET_POWER)
fixed_regs[64] = 1;
- /* 64-bit AIX reserves GPR13 for thread-private data. */
+ /* 64-bit AIX and Linux reserve GPR13 for thread-private data. */
if (TARGET_64BIT)
fixed_regs[13] = call_used_regs[13]
= call_really_used_regs[13] = 1;
@@ -3298,6 +3298,11 @@ rs6000_conditional_register_usage (void)
fixed_regs[i] = call_used_regs[i]
= call_really_used_regs[i] = 1;
+ /* The TOC register is not killed across calls in a way that is
+ visible to the compiler. */
+ if (DEFAULT_ABI == ABI_AIX)
+ call_really_used_regs[2] = 0;
+
if (DEFAULT_ABI == ABI_V4
&& PIC_OFFSET_TABLE_REGNUM != INVALID_REGNUM
&& flag_pic == 2)