new argument macro: OUTGOING_FIRST_PARAM_OFFSET!!

Richard Henderson rth@redhat.com
Wed Feb 27 10:40:00 GMT 2002


On Wed, Feb 27, 2002 at 08:52:54PM +1100, Aldy Hernandez wrote:
> pending further tests, is this ok?

Not quite.  Any macro that uses both current_function_outgoing_args_size
and RS6000_SAVE_AREA is now incorrect.  These places really should have
been using STACK_POINTER_OFFSET in the first place, but now it's mandatory.

> - #define FIRST_PARM_OFFSET(FNDECL) RS6000_SAVE_AREA
> + #define FIRST_PARM_OFFSET(FNDECL) (TARGET_ALTIVEC_ABI ? 0 : RS6000_SAVE_AREA)

I think I lied to you: the function.c instance of OUTGOING_FIRST_PARM_OFFSET
should really have been FIRST_PARM_OFFSET (it's not outgoing after all).

Which would mean that virtual_incoming_args_rtx is now identical to
arg_pointer_rtx.  Or rather, is made identical too early for a29k
and mn10200.

This is horribly tangled.  I wonder if we shouldn't just name the
new macro MAGIC_OFFSET_TO_BE_USED_OCCASIONALLY.  Sigh.

I guess call the thing INITIAL_ARGS_SIZE and note that it applies
to both virtual_outgoing_args_rtx and virtual_incoming_args_rtx.


r~



More information about the Gcc-patches mailing list