diff options
author | Pat Haugen <pthaugen@us.ibm.com> | 2005-06-03 17:18:04 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2005-06-03 13:18:04 -0400 |
commit | 7c9ac5c0354c587ba84956a4a34584ec2c7648cb (patch) | |
tree | 13a2c09fc02f46a4eb726b62de60b85b3be39fcb /gcc | |
parent | 4fd20a8f82fb5cd17fd32a5218054447d45ada69 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 7 |
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) |