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
This commit is contained in:
parent
fd29bdaffe
commit
8f8a46ba92
|
@ -1,3 +1,10 @@
|
||||||
|
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||||
|
|
||||||
|
* 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 <froydnj@codesourcery.com>
|
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
|
||||||
|
|
||||||
* config/pa/pa-protos.h (function_arg): Delete.
|
* config/pa/pa-protos.h (function_arg): Delete.
|
||||||
|
|
|
@ -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_1 (rtx);
|
||||||
static int vax_address_cost (rtx, bool);
|
static int vax_address_cost (rtx, bool);
|
||||||
static bool vax_rtx_costs (rtx, int, int, int *, 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_struct_value_rtx (tree, int);
|
||||||
static rtx vax_builtin_setjmp_frame_value (void);
|
static rtx vax_builtin_setjmp_frame_value (void);
|
||||||
static void vax_asm_trampoline_template (FILE *);
|
static void vax_asm_trampoline_template (FILE *);
|
||||||
|
@ -93,6 +97,11 @@ static int vax_return_pops_args (tree, tree, int);
|
||||||
#undef TARGET_PROMOTE_PROTOTYPES
|
#undef TARGET_PROMOTE_PROTOTYPES
|
||||||
#define TARGET_PROMOTE_PROTOTYPES hook_bool_const_tree_true
|
#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
|
#undef TARGET_STRUCT_VALUE_RTX
|
||||||
#define TARGET_STRUCT_VALUE_RTX vax_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;
|
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);
|
||||||
|
}
|
||||||
|
|
|
@ -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) \
|
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
|
||||||
((CUM) = 0)
|
((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
|
/* Output assembler code to FILE to increment profiler label # LABELNO
|
||||||
for profiling a function entry. */
|
for profiling a function entry. */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue