diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-06 05:48:34 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-06 05:48:34 +0000 |
commit | a4aab424998c556d770b24d2d57f3837caaead8d (patch) | |
tree | 66245d4509adfee1ca1bacce4e60f9fc4da79ff9 /gcc/config/fr30/fr30.c | |
parent | d046d751b1e71918b6e07d9796ec1a4f1c59935b (diff) | |
download | gcc-a4aab424998c556d770b24d2d57f3837caaead8d.tar.gz |
* config/fr30/fr30-protos.h: Remove the prototype for
fr30_setup_incoming_varargs.
Update the prototypes for fr30_num_arg_regs and
fr30_function_arg_partial_nregs.
* config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
(TARGET_SETUP_INCOMING_VARARGS): Likewise.
(fr30_setup_incoming_varargs): Make it static.
Add argument second_time. Don't do anything when second_time
is nonzero.
(fr30_num_arg_regs): Change the type of the first argument to
enum machine_mode.
(fr30_function_arg_partial_nregs): Change the type of the
second argument to enum machine_mode.
* config/fr30/fr30.h (STRUCT_VALUE): Remove.
(SETUP_INCOMING_VARARGS): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77375 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/fr30/fr30.c')
-rw-r--r-- | gcc/config/fr30/fr30.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c index 4b729e8e819..d6ffc760e35 100644 --- a/gcc/config/fr30/fr30.c +++ b/gcc/config/fr30/fr30.c @@ -121,6 +121,8 @@ static struct fr30_frame_info current_frame_info; /* Zero structure to initialize current_frame_info. */ static struct fr30_frame_info zero_frame_info; +static void fr30_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode, + tree, int *, int); static rtx fr30_pass_by_reference (tree, tree); static rtx fr30_pass_by_value (tree, tree); @@ -152,6 +154,12 @@ static rtx fr30_pass_by_value (tree, tree); #undef TARGET_PROMOTE_PROTOTYPES #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true +#undef TARGET_STRUCT_VALUE_RTX +#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null + +#undef TARGET_SETUP_INCOMING_VARARGS +#define TARGET_SETUP_INCOMING_VARARGS fr30_setup_incoming_varargs + struct gcc_target targetm = TARGET_INITIALIZER; /* Returns the number of bytes offset between FROM_REG and TO_REG @@ -662,9 +670,8 @@ fr30_print_operand (FILE *file, rtx x, int code) /* Compute the number of word sized registers needed to hold a function argument of mode INT_MODE and tree type TYPE. */ int -fr30_num_arg_regs (int int_mode, tree type) +fr30_num_arg_regs (enum machine_mode mode, tree type) { - enum machine_mode mode = (enum machine_mode) int_mode; int size; if (MUST_PASS_IN_STACK (mode, type)) @@ -687,7 +694,7 @@ fr30_num_arg_regs (int int_mode, tree type) parameters to the function. */ int -fr30_function_arg_partial_nregs (CUMULATIVE_ARGS cum, int int_mode, +fr30_function_arg_partial_nregs (CUMULATIVE_ARGS cum, enum machine_mode mode, tree type, int named) { /* Unnamed arguments, ie those that are prototyped as ... @@ -702,7 +709,7 @@ fr30_function_arg_partial_nregs (CUMULATIVE_ARGS cum, int int_mode, are needed because the parameter must be passed on the stack) then return zero, as this parameter does not require partial register, partial stack stack space. */ - if (cum + fr30_num_arg_regs (int_mode, type) <= FR30_NUM_ARG_REGS) + if (cum + fr30_num_arg_regs (mode, type) <= FR30_NUM_ARG_REGS) return 0; /* Otherwise return the number of registers that would be used. */ |