OSDN Git Service

* config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Mar 2002 09:55:03 +0000 (09:55 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Mar 2002 09:55:03 +0000 (09:55 +0000)
commit09a41b316a8039846dca2e5875015b37c2f7ada9
tree2b34aeb080522c674434cc281e4179ead1084609
parentf1b1bcc4b8a5460ac041e99365728c9bf0c12b1b
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51167 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/mips/abi64.h
gcc/config/mips/mips-protos.h
gcc/config/mips/mips.c
gcc/config/mips/mips.h