rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do not overwrite AIX...
authorDavid Edelsohn <edelsohn@mhpcc.edu>
Fri, 5 Mar 1999 21:19:46 +0000 (21:19 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Fri, 5 Mar 1999 21:19:46 +0000 (16:19 -0500)
        * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
        not overwrite AIX link register save area.

From-SVN: r25608

gcc/ChangeLog
gcc/config/rs6000/rs6000.h

index 8a48631b2b8ec3bf26a3c32d23ad8723b9aa3f21..71781e260d855fece54c9d0887b0aa82a1dca39c 100644 (file)
@@ -1,3 +1,8 @@
+Fri Mar  5 23:16:42 1999  David Edelsohn  <edelsohn@mhpcc.edu>
+
+       * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
+       not overwrite AIX link register save area.
+
 Fri Mar  5 23:08:01 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * reload.c (find_reloads_subreg_address): Actually create the USE
index ab830d85b7696678b041b29191922b8f00221bbe..f581eb8a1baf5f5e0e199aab281e50ef209bab81 100644 (file)
@@ -3095,7 +3095,10 @@ do {                                                                     \
 #define ASM_OUTPUT_REG_PUSH(FILE,REGNO)                                        \
 do {                                                                   \
   extern char *reg_names[];                                            \
-  asm_fprintf (FILE, "\t{stu|stwu} %s,-16(%s)\n\t{st|stw} %s,8(%s)\n", \
+  asm_fprintf (FILE,                                                   \
+              (TARGET_32BIT)                                           \
+              ? "\t{stu|stwu} %s,-16(%s)\n\t{st|stw} %s,12(%s)\n"      \
+              : "\tstdu %s,-32(%s)\n\tstd %s,24(%s)\n",                \
               reg_names[1], reg_names[1], reg_names[REGNO],            \
               reg_names[1]);                                           \
 } while (0)
@@ -3106,7 +3109,10 @@ do {                                                                     \
 #define ASM_OUTPUT_REG_POP(FILE,REGNO)                                 \
 do {                                                                   \
   extern char *reg_names[];                                            \
-  asm_fprintf (FILE, "\t{l|lwz} %s,8(%s)\n\t{ai|addic} %s,%s,16\n",    \
+  asm_fprintf (FILE,                                                   \
+              (TARGET_32BIT)                                           \
+              ? "\t{l|lwz} %s,12(%s)\n\t{ai|addic} %s,%s,16\n"         \
+              : "\tld %s,24(%s)\n\t{ai|addic} %s,%s,32\n",             \
               reg_names[REGNO], reg_names[1], reg_names[1],            \
               reg_names[1]);                                           \
 } while (0)