re PR target/12916 (No vector ABI)
authorEric Botcazou <ebotcazou@libertysurf.fr>
Thu, 19 Feb 2004 09:02:48 +0000 (10:02 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 19 Feb 2004 09:02:48 +0000 (09:02 +0000)
commit1b5963f7995824c4583515e6e255406ef615d60f
treee7e523d18c057794414cbe0b29fbcafb099ded13
parent19037b5c9e4647b07708e2414deee35c02b21f0a
re PR target/12916 (No vector ABI)

PR target/12916
* config/sparc/sparc.h (NPARM_REGS): Delete.
(BASE_RETURN_VALUE_REG): Likewise.
(BASE_OUTGOING_VALUE_REG): Likewise.
(BASE_PASSING_ARG_REG): Likewise.
(BASE_INCOMING_ARG_REG): Likewise.
* config/sparc/sparc.c (sparc_strict_argument_naming): Test
TARGET_ARCH64, not TARGET_V9.
(function_arg_slotno): Dispatch based on the mode class.
Handle vector modes like floating-point modes.
(function_arg_record_value_1): Handle vector types like
floating-point types.
(function_arg_record_value_2): Likewise.
Calculate regno after mode transformation.
(function_arg): Handle vector modes like floating-point modes.
(function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
If ARCH64, do not recheck alignment.
(function_arg_pass_by_reference): Reorder the conditions.
(sparc_return_in_memory): Move after function_arg_padding.
Implement calling conventions for vector modes.
(sparc_struct_value_rtx): Move after sparc_return_in_memory.
(function_value): Move scope of 'regbase'.
Implement calling conventions for vector modes.
(sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
(sparc_va_arg): Use function_arg_pass_by_reference to test whether
the argument is passed by reference.
(sparc_type_code): Handle vector types.

From-SVN: r78087
gcc/ChangeLog
gcc/config/sparc/sparc.c
gcc/config/sparc/sparc.h