https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87807
--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- Author: ebotcazou Date: Thu Nov 29 23:08:09 2018 New Revision: 266651 URL: https://gcc.gnu.org/viewcvs?rev=266651&root=gcc&view=rev Log: PR target/87807 * config/sparc/sparc-modes.def: Minor tweak. * config/sparc/sparc.c: Minor reordering. (sparc_pass_by_reference): Move around. (traverse_record_type): Change offset from HOST_WIDE_INT to int. (classify_registers): Likewise for bitpos. (function_arg_slotno): Remove dead test and tweak comments. <MODE_RANDOM>: Remove useless assertion and test whether the parameter is named in order to pass it in FP registers. Return the regno for floating-point vector types. (compute_int_layout): Change bitpos from HOST_WIDE_INT to int. (compute_fp_layout): Likewise. (count_registers): Likewise. (assign_int_registers): Likewise. (assign_fp_registers): Likewise. (assign_registers): Likewise. (function_arg_record_value): Change size from HOST_WIDE_INT to int and use CEIL_NWORDS to compute the number of registers. (function_arg_union_value): Minor tweaks. (function_arg_vector_value): Add slotno and named parameters, use CEIL_NWORDS to compute the number of registers. (sparc_function_arg_1): Rework handling of vector types. Change size from HOST_WIDE_INT to int. (sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal with vector types for the 64-bt ABI. (sparc_function_arg_advance): Likewise. (sparc_return_in_memory): Add reference to -fpcc-struct-return. (sparc_struct_value_rtx): Return NULL_RTX instead of 0. (sparc_function_value_1): Rework handling of vector types. Change size from HOST_WIDE_INT to int. Added: trunk/gcc/testsuite/gcc.target/sparc/20181129-1.c trunk/gcc/testsuite/gcc.target/sparc/20181129-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/sparc/sparc-modes.def trunk/gcc/config/sparc/sparc.c trunk/gcc/testsuite/ChangeLog