This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] __builtin_frame_address(0) doesn't work without the frame pointer
- From: Denis Zaitsev <zzz at cd-club dot ru>
- To: gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Cc: Richard Earnshaw <rearnsha at arm dot com>, Richard Henderson <rth at redhat dot com>,David Edelsohn <dje at watson dot ibm dot com>
- Date: Fri, 12 Jul 2002 00:51:10 +0600
- Subject: Re: [PATCH] __builtin_frame_address(0) doesn't work without the frame pointer
- References: <20020710073214.B11915@redhat.com> <200207101456.PAA13246@cam-mail2.cambridge.arm.com>
On Wed, Jul 10, 2002 at 03:56:21PM +0100, Richard Earnshaw wrote:
> > On Tue, Jul 09, 2002 at 06:11:17PM +0100, Richard Earnshaw wrote:
> > > ARM certainly does. But that has special code to copy the return address
> > > for frame 0 into a pseudo if the return address is needed.
> > We're talking about __builtin_frame_address, not
> > __builtin_return_address.
> Ooops. Then the ARM is definitely a candidate, since it has a variable
> offset between frame_pointer_rtx and hard_frame_pointer_rtx which depends
> on the number of registers that require saving.
Yes, ARM seems to be a subject... BTW, why it was choosed for ARM
such a stack layout, that the soft frame pointer points into the
middle of what usually the stack frame is? Or it is just an artifical
thing used for RTL? It seems, that for ARM the hard FP plays the same
role, as the soft one for, say, Spark64 - it points for the "real"
stack frame? Is it right?