about stack/args growing up/down

Alan Modra amodra@bigpond.net.au
Fri May 16 05:13:00 GMT 2003


On Thu, May 15, 2003 at 04:30:09PM -0400, DJ Delorie wrote:
> 
> I'm working on g++.dg/abi/param1.C for xstormy16, where the stack
> grows up and args grow down.  In this case, expand_call (calls.c:2699)
> calculates the address of the outgoing parm block as the lowest
> address of the block (virtual-outgoing-args - 128), but
> locate_and_pad_parm is giving the args a negative offset, causing gcc
> to later put the arg in the wrong place.
> 
> For this type of stack, which of the two values (argblock,
> arg->offset) is right, and which one is wrong?

hppa32 stack grows up and args down, and argblock is set to the end
of the outgoing parm block (highest address).  You probably want
to look at STACK_POINTER_OFFSET.

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre



More information about the Gcc mailing list