This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PIC_OFFSET_TABLE_SAVE_RTX in large stack frame
- To: Alan Modra <alan at linuxcare dot com dot au>
- Subject: Re: PIC_OFFSET_TABLE_SAVE_RTX in large stack frame
- From: Jeffrey A Law <law at redhat dot com>
- Date: Wed, 31 Jan 2001 21:30:44 -0700
- cc: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>, Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Reply-To: law at redhat dot com
In message <Pine.LNX.4.21.0101311543210.19209-100000@front.linuxcare.com.au>y
ou write:
> On Wed, 31 Jan 2001, Alan Modra wrote:
>
> > On Sat, 27 Jan 2001, John David Anglin wrote:
> >
> > > > Don't give up so easy. It _is_ possible to insert a move
> > > > at the beginning of the function. See alpha_return_address:
> > > >
> > > > push_topmost_sequence ();
> > > > emit_insn_after (init, get_insns ());
> > > > pop_topmost_sequence ();
> > >
> > > Here is a revised patch using the above approach. Bootstrapped and
> > > checked under hpux 10.20 with no regressions. I will post full test
> > > results later. The PIC testing is rather limited however.
> >
> > This trick doesn't seem to work for inline functions.
>
> OK, what's happening is that expand_inline_function doesn't copy
> instructions associated with parameter finagling when inlining. Since we
> were putting our pic offset table reg save at the beginning of the
> function, the move instruction was being lumped in with parameter insns.
>
> Here's a fix that cures the testcase I posted. Currently bootstrapping.
> I'll post an "Oh no!" if the bootstrap fails.
>
> * config/pa/pa.c (hppa_init_pic_save): Emit the pic offset table
> reg save after last_parm_insn.
>
> * config/pa/pa.c (hppa_init_pic_save): New function.
> * config/pa/pa.h (hppa_init_pic_save): Declare.
> * config/pa/pa.md (call, call_value, sibcall, sibcall_value): Use
> the above instead of duplicated code.
Thanks. Installed.
My PA64 builds get a little further now :-) In terms of testing PIC they're
pretty good since all PA64 code is PIC.
jeff