From 40ae436b588ba796cdcdd682a2435fd4223687ba Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Fri, 5 Mar 1999 21:19:46 +0000 Subject: [PATCH] rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do not overwrite AIX link register save area. * 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 | 5 +++++ gcc/config/rs6000/rs6000.h | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8a48631b2b8..71781e260d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Mar 5 23:16:42 1999 David Edelsohn + + * 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 * reload.c (find_reloads_subreg_address): Actually create the USE diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index ab830d85b76..f581eb8a1ba 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -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)