This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Passing function arguments in registers
- To: michaelh at ongaonga dot chch dot cri dot nz
- Subject: Passing function arguments in registers
- From: Michael Meissner <meissner at cygnus dot com>
- Date: Thu, 9 Oct 1997 17:11:36 -0400
- Cc: egcs at cygnus dot com
- References: <199710090422.RAA26503@ongaonga.chch.cri.nz>
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.