From 4665ac17309744645b3c03bf77328bbc040f6954 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Thu, 28 Oct 2010 20:07:06 +0000 Subject: [PATCH] mcore-protos.h (mcore_function_arg): Delete. * config/mcore/mcore-protos.h (mcore_function_arg): Delete. * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. * config/mcore/mcore.c (mcore_function_arg): Declare. Make static. Take a const_tree and a bool. (mcore_function_arg_advance): New function. (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. From-SVN: r166043 --- gcc/ChangeLog | 9 +++++++++ gcc/config/mcore/mcore-protos.h | 3 --- gcc/config/mcore/mcore.c | 26 ++++++++++++++++++++++---- gcc/config/mcore/mcore.h | 12 ------------ 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6d1519e..a4b6390 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 2010-10-28 Nathan Froyd + * config/mcore/mcore-protos.h (mcore_function_arg): Delete. + * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. + * config/mcore/mcore.c (mcore_function_arg): Declare. Make static. + Take a const_tree and a bool. + (mcore_function_arg_advance): New function. + (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. + +2010-10-28 Nathan Froyd + * config/h8300/h8300-protos.h (function_arg): Delete. * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. * config/h8300/h8300.c (function_arg): Rename to... diff --git a/gcc/config/mcore/mcore-protos.h b/gcc/config/mcore/mcore-protos.h index 2093f16..b9f8f33 100644 --- a/gcc/config/mcore/mcore-protos.h +++ b/gcc/config/mcore/mcore-protos.h @@ -65,8 +65,5 @@ extern int mcore_arith_S_operand (rtx); extern const char * mcore_output_move (rtx, rtx *, enum machine_mode); extern const char * mcore_output_movedouble (rtx *, enum machine_mode); extern int const_ok_for_mcore (HOST_WIDE_INT); -#ifdef TREE_CODE -extern rtx mcore_function_arg (CUMULATIVE_ARGS, enum machine_mode, tree, int); -#endif /* TREE_CODE */ #endif /* HAVE_MACHINE_MODES */ #endif /* RTX_CODE */ diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c index 9bacc5c..3bd1729 100644 --- a/gcc/config/mcore/mcore.c +++ b/gcc/config/mcore/mcore.c @@ -142,6 +142,12 @@ static bool mcore_return_in_memory (const_tree, const_tree); static int mcore_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode, tree, bool); +static rtx mcore_function_arg (CUMULATIVE_ARGS *, + enum machine_mode, + const_tree, bool); +static void mcore_function_arg_advance (CUMULATIVE_ARGS *, + enum machine_mode, + const_tree, bool); static void mcore_asm_trampoline_template (FILE *); static void mcore_trampoline_init (rtx, tree, rtx); static void mcore_option_override (void); @@ -229,6 +235,10 @@ static const struct default_options mcore_option_optimization_table[] = #define TARGET_PASS_BY_REFERENCE hook_pass_by_reference_must_pass_in_stack #undef TARGET_ARG_PARTIAL_BYTES #define TARGET_ARG_PARTIAL_BYTES mcore_arg_partial_bytes +#undef TARGET_FUNCTION_ARG +#define TARGET_FUNCTION_ARG mcore_function_arg +#undef TARGET_FUNCTION_ARG_ADVANCE +#define TARGET_FUNCTION_ARG_ADVANCE mcore_function_arg_advance #undef TARGET_SETUP_INCOMING_VARARGS #define TARGET_SETUP_INCOMING_VARARGS mcore_setup_incoming_varargs @@ -2804,9 +2814,9 @@ mcore_function_value (const_tree valtype, const_tree func) NPARM_REGS words is at least partially passed in a register unless its data type forbids. */ -rtx -mcore_function_arg (CUMULATIVE_ARGS cum, enum machine_mode mode, - tree type, int named) +static rtx +mcore_function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, + const_tree type, bool named) { int arg_reg; @@ -2816,7 +2826,7 @@ mcore_function_arg (CUMULATIVE_ARGS cum, enum machine_mode mode, if (targetm.calls.must_pass_in_stack (mode, type)) return 0; - arg_reg = ROUND_REG (cum, mode); + arg_reg = ROUND_REG (*cum, mode); if (arg_reg < NPARM_REGS) return handle_structs_in_regs (mode, type, FIRST_PARM_REG + arg_reg); @@ -2824,6 +2834,14 @@ mcore_function_arg (CUMULATIVE_ARGS cum, enum machine_mode mode, return 0; } +static void +mcore_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, + const_tree type, bool named ATTRIBUTE_UNUSED) +{ + *cum = (ROUND_REG (*cum, mode) + + (int)named * mcore_num_arg_regs (mode, type)); +} + /* Returns the number of bytes of argument registers required to hold *part* of a parameter of machine mode MODE and type TYPE (which may be NULL if the type is not known). If the argument fits entirely in the argument diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h index 8efe64f..5158658 100644 --- a/gcc/config/mcore/mcore.h +++ b/gcc/config/mcore/mcore.h @@ -559,18 +559,6 @@ extern const enum reg_class reg_class_from_letter[]; #define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \ ((CUM) = 0) -/* Update the data in CUM to advance over an argument - of mode MODE and data type TYPE. - (TYPE is null for libcalls where that information may not be - available.) */ -#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \ - ((CUM) = (ROUND_REG ((CUM), (MODE)) \ - + ((NAMED) * mcore_num_arg_regs (MODE, TYPE)))) \ - -/* Define where to put the arguments to a function. */ -#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \ - mcore_function_arg (CUM, MODE, TYPE, NAMED) - /* Call the function profiler with a given profile label. */ #define FUNCTION_PROFILER(STREAM,LABELNO) \ { \ -- 2.7.4