OSDN Git Service

2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 3 Jun 2005 17:18:04 +0000 (17:18 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 3 Jun 2005 17:18:04 +0000 (17:18 +0000)
        * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
        Clear call_realy_used_regs[r2] when ABI_AIX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100549 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 97461ba..22136dd 100644 (file)
@@ -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
index b82ee74..ce9164c 100644 (file)
@@ -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)