sparc.c (scan_record_type): Handle vector types.
authorEric Botcazou <ebotcazou@libertysurf.fr>
Sat, 6 Nov 2004 17:06:05 +0000 (18:06 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sat, 6 Nov 2004 17:06:05 +0000 (17:06 +0000)
commit45261626da8e061958c44be098de4c38cca60acf
treee467f18493f5713b5223d86ab110b758c6dc221e
parent8d43449beeca514721c7bc676fe7b5879810ca42
sparc.c (scan_record_type): Handle vector types.

* config/sparc/sparc.c (scan_record_type): Handle vector types.
(function_arg_slotno): Handle vector types specially.
(function_arg_record_value_1): Split fields with vector type and
BLKmode into their subparts.
(function_arg_record_value_2): Likewise.  Be prepared to handle
more than 2 registers per field.
(function_arg_union_value): Increment regno inside the loop.
(function_arg_vector_value): New function.
(function_arg): Use it to split fields with vector type and
BLKmode into their subparts and build a PARALLEL.  Treat
other vector types like floats.
(function_value): Likewise.
(sparc_pass_by_reference): Handle vector types.
(sparc_return_in_memory): Likewise.

From-SVN: r90179
gcc/ChangeLog
gcc/config/sparc/sparc.c