abi64.h (SETUP_INCOMING_VARARGS): Undefine.
authorRichard Sandiford <rsandifo@redhat.com>
Fri, 22 Mar 2002 09:55:03 +0000 (09:55 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 22 Mar 2002 09:55:03 +0000 (09:55 +0000)
commit4d72536eeccbed73b276fb236a89228c34d5f50f
tree2b34aeb080522c674434cc281e4179ead1084609
parente6f884cdac3ca7194b8cf8113702251aac072fa9
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/ChangeLog
gcc/config/mips/abi64.h
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.h