From 8f8a46ba9264ba2e78c23ba1872c8be5dde0672f Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Sat, 9 Oct 2010 14:21:47 +0000 Subject: [PATCH] vax.h (FUNCTION_ARG, [...]): Delete. * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. * config/vax/vax.c (vax_function_arg): New function. (vax_function_arg_advance): New function. (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. From-SVN: r165229 --- gcc/ChangeLog | 7 +++++++ gcc/config/vax/vax.c | 46 ++++++++++++++++++++++++++++++++++++++++++++ gcc/config/vax/vax.h | 26 ------------------------- 3 files changed, 53 insertions(+), 26 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c2e1cac1d5..1035dccb12b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-10-09 Nathan Froyd + + * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete. + * config/vax/vax.c (vax_function_arg): New function. + (vax_function_arg_advance): New function. + (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. + 2010-10-09 Nathan Froyd * config/pa/pa-protos.h (function_arg): Delete. diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c index 001a2269030..9459b7f4420 100644 --- a/gcc/config/vax/vax.c +++ b/gcc/config/vax/vax.c @@ -56,6 +56,10 @@ static void vax_output_mi_thunk (FILE *, tree, HOST_WIDE_INT, static int vax_address_cost_1 (rtx); static int vax_address_cost (rtx, bool); static bool vax_rtx_costs (rtx, int, int, int *, bool); +static rtx vax_function_arg (CUMULATIVE_ARGS *, enum machine_mode, + const_tree, bool); +static void vax_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, + const_tree, bool); static rtx vax_struct_value_rtx (tree, int); static rtx vax_builtin_setjmp_frame_value (void); static void vax_asm_trampoline_template (FILE *); @@ -93,6 +97,11 @@ static int vax_return_pops_args (tree, tree, int); #undef TARGET_PROMOTE_PROTOTYPES #define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true +#undef TARGET_FUNCTION_ARG +#define TARGET_FUNCTION_ARG vax_function_arg +#undef TARGET_FUNCTION_ARG_ADVANCE +#define TARGET_FUNCTION_ARG_ADVANCE vax_function_arg_advance + #undef TARGET_STRUCT_VALUE_RTX #define TARGET_STRUCT_VALUE_RTX vax_struct_value_rtx @@ -2095,3 +2104,40 @@ vax_return_pops_args (tree fundecl ATTRIBUTE_UNUSED, { return size > 255 * 4 ? 0 : size; } + +/* Define where to put the arguments to a function. + Value is zero to push the argument on the stack, + or a hard register in which to store the argument. + + MODE is the argument's machine mode. + TYPE is the data type of the argument (as a tree). + This is null for libcalls where that information may + not be available. + CUM is a variable of type CUMULATIVE_ARGS which gives info about + the preceding args and about the function being called. + NAMED is nonzero if this argument is a named parameter + (otherwise it is an extra parameter matching an ellipsis). */ + +/* On the VAX all args are pushed. */ + +static rtx +vax_function_arg (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED, + enum machine_mode mode ATTRIBUTE_UNUSED, + const_tree type ATTRIBUTE_UNUSED, + bool named ATTRIBUTE_UNUSED) +{ + return NULL_RTX; +} + +/* 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.) */ + +static void +vax_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, + const_tree type, bool named ATTRIBUTE_UNUSED) +{ + *cum += (mode != BLKmode + ? (GET_MODE_SIZE (mode) + 3) & ~3 + : (int_size_in_bytes (type) + 3) & ~3); +} diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h index bce9666698d..35965dc8aa0 100644 --- a/gcc/config/vax/vax.h +++ b/gcc/config/vax/vax.h @@ -355,32 +355,6 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES }; #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) += ((MODE) != BLKmode \ - ? (GET_MODE_SIZE (MODE) + 3) & ~3 \ - : (int_size_in_bytes (TYPE) + 3) & ~3)) - -/* Define where to put the arguments to a function. - Value is zero to push the argument on the stack, - or a hard register in which to store the argument. - - MODE is the argument's machine mode. - TYPE is the data type of the argument (as a tree). - This is null for libcalls where that information may - not be available. - CUM is a variable of type CUMULATIVE_ARGS which gives info about - the preceding args and about the function being called. - NAMED is nonzero if this argument is a named parameter - (otherwise it is an extra parameter matching an ellipsis). */ - -/* On the VAX all args are pushed. */ - -#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) 0 - /* Output assembler code to FILE to increment profiler label # LABELNO for profiling a function entry. */