diff options
author | Franz Sirl <Franz.Sirl-kernel@lauterbach.com> | 2001-02-05 19:42:13 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2001-02-05 19:42:13 +0000 |
commit | 3418dd3ac475562a90fe3d384387047db8c3410a (patch) | |
tree | d677a94e7c8c46089d017ffe74f34c3c75a06d94 | |
parent | 456774966045de33b6368eb0dc1945a05846ce20 (diff) | |
download | gcc-3418dd3ac475562a90fe3d384387047db8c3410a.zip gcc-3418dd3ac475562a90fe3d384387047db8c3410a.tar.gz gcc-3418dd3ac475562a90fe3d384387047db8c3410a.tar.bz2 |
rs6000.c (rs6000_return_addr): Use PIC code for AIX, even without flag_pic.
* config/rs6000/rs6000.c (rs6000_return_addr): Use PIC
code for AIX, even without flag_pic.
From-SVN: r39464
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 9c93d4a..a3aba7c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -5057,12 +5057,15 @@ rs6000_return_addr (count, frame) /* Currently we don't optimize very well between prolog and body code and for PIC code the code can be actually quite bad, so don't try to be too clever here. */ - if (count != 0 || flag_pic != 0) + if (count != 0 + || flag_pic != 0 + || DEFAULT_ABI == ABI_AIX + || DEFAULT_ABI == ABI_AIX_NODESC) { cfun->machine->ra_needs_full_frame = 1; return gen_rtx_MEM (Pmode, - memory_address (Pmode, + memory_address (Pmode, plus_constant (copy_to_reg (gen_rtx_MEM (Pmode, memory_address (Pmode, frame))), RETURN_ADDRESS_OFFSET))); |