From 4d72536eeccbed73b276fb236a89228c34d5f50f Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Fri, 22 Mar 2002 09:55:03 +0000 Subject: abi64.h (SETUP_INCOMING_VARARGS): Undefine. * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine. * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare. (function_arg): Constify CUMULATIVE_ARGS. (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise. * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT. (UNITS_PER_DOUBLE): New macro. (SETUP_INCOMING_VARARGS): Define. Use mips_setup_incoming_varargs. (CUMULATIVE_ARGS): Reformat. Remove num_adjusts workaround and last_arg_fp field. Replace arg_words and fp_arg_words with gp_regs, fp_regs and stack_words. (EABI_FLOAT_VARARGS_P): New macro. * config/mips/mips.c (struct mips_arg_info): New. (mips_arg_info): New function. (function_arg_advance): Use it. Add adjustment instructions here rather than in function_arg. (function_arg): Constify CUMULATIVE_ARGS. Use mips_arg_info. Check for VOIDmode at the beginning of the function. (function_partial_nregs): Constify CUMULATIVE_ARGS. Use mips_arg_info. (function_arg_pass_by_reference): Likewise. (mips_setup_incoming_varags): New, largely based on old abi64.h code. (mips_build_va_list): Test EABI_FLOAT_VARARGS_P. (mips_va_start): Likewise. Use the new stack_words field of CUMULATIVE_ARGS to set up overflow area. Reformat. (mips_va_arg): Test EABI_FLOAT_VARARGS_P. Unify EABI handling of doubles and other types, aligning the overflow pointer for non-doubles too. Remove some code duplication. Replace hard-coded constants. From-SVN: r51167 --- gcc/config/mips/mips-protos.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'gcc/config/mips/mips-protos.h') diff --git a/gcc/config/mips/mips-protos.h b/gcc/config/mips/mips-protos.h index 8c4cec2..8332782 100644 --- a/gcc/config/mips/mips-protos.h +++ b/gcc/config/mips/mips-protos.h @@ -56,16 +56,21 @@ extern unsigned int mips_hard_regno_nregs PARAMS ((int, enum machine_mode)); extern int mips_return_in_memory PARAMS ((tree)); -extern struct rtx_def *function_arg PARAMS ((CUMULATIVE_ARGS *, +extern struct rtx_def *function_arg PARAMS ((const CUMULATIVE_ARGS *, enum machine_mode, tree, int)); extern void function_arg_advance PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, tree, int)); -extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *, - enum machine_mode, - tree, int)); +extern int function_arg_partial_nregs + PARAMS ((const CUMULATIVE_ARGS *, + enum machine_mode, + tree, int)); +extern int mips_setup_incoming_varargs + PARAMS ((const CUMULATIVE_ARGS *, + enum machine_mode, + tree, int)); extern int function_arg_pass_by_reference - PARAMS ((CUMULATIVE_ARGS *, + PARAMS ((const CUMULATIVE_ARGS *, enum machine_mode, tree, int)); extern int mips16_constant_after_function_p PARAMS ((tree)); extern int mips_output_external PARAMS ((FILE *, tree, -- cgit v1.1