On Tuesday 21 March 2006 14:57, Richard Henderson wrote:
> On Mon, Mar 20, 2006 at 04:03:08PM -0000, Dave Korn wrote:
> >  Do you happen to know off the top of your head when get_frame_size()
> > becomes valid?
>
> You don't get a good first-pass estimate until after all rtl
> generation has been done.  Which is later than you need.
>
> Another possibility is to allocate an extra word high in the
> stack frame for temporary storage in large frames w/ sibcalls
> to functions using all arguments.  Then you'd deallocate in
> several steps:
>
>       scratchslot = argument
>       argument = stack frame size - small
>       sp += argument
>       argument = scratchslot
>       sp += small

This assumes you have a frame pointer or sp+large_offset addressing mode for 
accessing scratchslot. In which case you could either use fp as scratch 
storage or probably have an add sp, large_offset instruction.

Paul

Reply via email to