This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Nested functions on ARM (mk II)
- To: Nick Clifton <nickc at redhat dot com>
- Subject: Re: Nested functions on ARM (mk II)
- From: Richard Henderson <rth at redhat dot com>
- Date: Tue, 14 Nov 2000 19:27:48 -0800
- Cc: gcc-bugs at gcc dot gnu dot org, drepper at redhat dot com, rearnsha at arm dot com, Philip dot Blundell at pobox dot com, scottb at netwinder dot org
- References: <200011150141.RAA01093@elmo.cygnus.com>
On Tue, Nov 14, 2000 at 05:41:26PM -0800, Nick Clifton wrote:
> Secondly using a spare stack slot:
>
> str ip, [sp, #-4]!
> add ip, sp, #4
> stmfd sp!, {r4, fp, ip, lr, pc}
You've missed the fact that you've changed the stack_pointer
to arg_pointer elimination offset? The frame_pointer to
arg_pointer elimination offset appears to be unchanged, but
surely stuff starts failing if you use -fomit-frame-pointer.
That is surely the cause of your claimed varargs problems.
The correct solution is to adjust INITIAL_ELIMINATION_OFFSET
to account for this extra word on the stack.
r~