fr30-protos.h: Remove the prototype for fr30_setup_incoming_varargs.
* 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. From-SVN: r77375
This commit is contained in:
parent
07ba2efb2e
commit
3e29e2aa4d
@ -1,3 +1,21 @@
|
||||
2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* 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.
|
||||
|
||||
2004-02-06 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/arc/arc-protos.h: Remove the prototype for
|
||||
|
@ -29,6 +29,9 @@ extern void fr30_print_operand_address (FILE *, rtx);
|
||||
extern rtx fr30_move_double (rtx *);
|
||||
#ifdef TREE_CODE
|
||||
extern rtx fr30_va_arg (tree, tree);
|
||||
extern int fr30_num_arg_regs (enum machine_mode, tree);
|
||||
extern int fr30_function_arg_partial_nregs (CUMULATIVE_ARGS,
|
||||
enum machine_mode, tree, int);
|
||||
#endif /* TREE_CODE */
|
||||
#ifdef HAVE_MACHINE_MODES
|
||||
#define Mmode enum machine_mode
|
||||
@ -43,9 +46,3 @@ extern int fr30_const_double_is_zero (rtx);
|
||||
#undef Mmode
|
||||
#endif /* HAVE_MACHINE_MODES */
|
||||
#endif /* RTX_CODE */
|
||||
|
||||
#ifdef TREE_CODE
|
||||
extern int fr30_num_arg_regs (int, tree);
|
||||
extern int fr30_function_arg_partial_nregs (CUMULATIVE_ARGS, int, tree, int);
|
||||
extern void fr30_setup_incoming_varargs (CUMULATIVE_ARGS, int, tree, int *);
|
||||
#endif /* TREE_CODE */
|
||||
|
@ -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. */
|
||||
|
@ -817,12 +817,6 @@ enum reg_class
|
||||
If not defined, this defaults to the value 1. */
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 1
|
||||
|
||||
/* If the structure value address is not passed in a register, define
|
||||
`STRUCT_VALUE' as an expression returning an RTX for the place where the
|
||||
address is passed. If it returns 0, the address is passed as an "invisible"
|
||||
first argument. */
|
||||
#define STRUCT_VALUE 0
|
||||
|
||||
/*}}}*/
|
||||
/*{{{ Generating Code for Profiling. */
|
||||
|
||||
@ -845,13 +839,6 @@ enum reg_class
|
||||
fprintf (FILE, ".word\tLP%d\n", LABELNO); \
|
||||
}
|
||||
|
||||
/*}}}*/
|
||||
/*{{{ Implementing the VARARGS Macros. */
|
||||
|
||||
#define SETUP_INCOMING_VARARGS(ARGS_SO_FAR, MODE, TYPE, PRETEND_ARGS_SIZE, SECOND_TIME) \
|
||||
if (! SECOND_TIME) \
|
||||
fr30_setup_incoming_varargs (ARGS_SO_FAR, MODE, TYPE, & PRETEND_ARGS_SIZE)
|
||||
|
||||
/*}}}*/
|
||||
/*{{{ Trampolines for Nested Functions. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user