Passing function arguments in registers
Michael P. Hayes
michaelh@ongaonga.chch.cri.nz
Fri Oct 10 08:51:00 GMT 1997
Michael Meissner writes:
> Michael P. Hayes writes:
> |
> | The c4x port I have been working on requires a weird function argument
> | passing model to be compatible with the vendor's compiler. The order
> | that registers are allocated depends on the number of floating point
> | arguments passed. To date, I have hacked calls.c and function.c to
> | include a macro FUNCTION_ARG_PRESCAN, which is used during a first
> | pass scan to allow the backend to determine the types of arguments to
> | expect. Can someone suggest a better strategy or have I missed
> | something obvious?
>
> You don't need it. You can do it via INIT_CUMULATIVE_ARGS and
> INIT_CUMULATIVE_INCOMING_ARGS. See rs6000/rs6000.{h,c} for something
> similar, where we need to know whether it is call a prototyped
> function or not.
I had considered this approach but the problem is if there is no
prototype, the argument types are unknown in advance, without using a
pre-scan pass.
More information about the Gcc
mailing list