This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ACCUMULATE_OUTGOING_ARGS and the i386
- To: law at cygnus dot com
- Subject: Re: ACCUMULATE_OUTGOING_ARGS and the i386
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Thu, 5 Nov 1998 10:47:30 +0000 (GMT)
- Cc: john at feith dot com, meissner at cygnus dot com, jfc at mit dot edu, egcs at cygnus dot com
> > It appears that PUSH_ROUNDING affects the stack layout. How is
> > ACCUMULATE_OUTGOING_ARGS guaranteed to create the same stack layout
> > on a platform which previously didn't use ACCUMULATE_OUTGOING_ARGS
> > and defined PUSH_ROUNDING if ACCUMULATE_OUTGOING_ARGS doesn't use
> > information provided by PUSH_ROUNDING?
> That's a good question.
I think PARM_BOUNDARY will take care of this on most (all?) prospective
targets.
Note that PUSH_ROUNDING can be smaller than STACK_BOUNDARY; this is why
a number of optimizations are disabled when PUSH_ROUNDING is defined.
Just to get these optimizations we might want to make PUSH_ROUNDING
runtime-selectable.
It is also interesting to note that jump has some code enabled by
PUSH_ROUNDING that combines stack adjusts with following pushes.
It limits the number of pushes to be combined to a hard-coded number of
three. For the x86, we probably don't want any limit unless we optimize
for space.