diff options
author | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-29 12:24:04 +0000 |
---|---|---|
committer | froydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-29 12:24:04 +0000 |
commit | f387af4f9ece169d3a4e18453d6d0978cf4268cd (patch) | |
tree | 2a6f923525a191cb71e15517c9b90794e223784f /gcc/target.h | |
parent | 5cd86571c70d9a80880fb9611315ea89ca78bd5d (diff) | |
download | gcc-f387af4f9ece169d3a4e18453d6d0978cf4268cd.tar.gz |
* calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
targetm.calls.function_incoming_arg, and
targetm.calls.function_arg_advance instead of FUNCTION_ARG,
FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
* target.h (struct gcc_target): Add function_arg_advance,
function_arg, and function_incoming_arg fields.
* target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
(TARGET_FUNCTION_INCOMING_ARG): Define.
(TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
and TARGET_FUNCTION_INCOMING_ARG.
* targhooks.h (default_function_arg_advance): Declare.
(default_function_arg, default_function_incoming_arg): Declare.
* targhooks.c (default_function_arg_advance): New function.
(default_function_arg, default_function_incoming_arg): New function.
* config/i386/i386.c (function_arg_advance): Rename to...
(ix86_function_arg_advance): ...this. Make static.
(function_arg): Rename to...
(ix86_function_arg): ...this. Make static.
(TARGET_FUNCTION_ARG_ADVANCE): Define.
(TARGET_FUNCTION_ARG): Define.
* config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
(FUNCTION_ARG): Delete.
* config/i386/i386-protos.h (function_arg_advance): Delete prototype.
(function_arg): Delete prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161530 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h index 1d4ab4103f2..6ced77061cf 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -1020,6 +1020,26 @@ struct gcc_target int (* arg_partial_bytes) (CUMULATIVE_ARGS *ca, enum machine_mode mode, tree type, bool named); + /* Update the state in CA to advance past an argument in the + argument list. The values MODE, TYPE, and NAMED describe that + argument. */ + void (*function_arg_advance) (CUMULATIVE_ARGS *ca, + enum machine_mode mode, const_tree type, + bool named); + + /* Return zero if the argument described by the state of CA should + be placed on a stack, or a hard register in which to store the + argument. The values MODE, TYPE, and NAMED describe that + argument. */ + rtx (*function_arg) (const CUMULATIVE_ARGS *ca, + enum machine_mode mode, const_tree type, bool named); + + /* Likewise, but for machines with register windows. Return the + location where the argument will appear to the callee. */ + rtx (*function_incoming_arg) (const CUMULATIVE_ARGS *ca, + enum machine_mode mode, + const_tree type, bool named); + /* Return the diagnostic message string if function without a prototype is not allowed for this 'val' argument; NULL otherwise. */ const char *(*invalid_arg_for_unprototyped_fn) (const_tree typelist, |