diff options
Diffstat (limited to 'gcc/config/sparc/sparc.c')
-rw-r--r-- | gcc/config/sparc/sparc.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 23584124158..2fa22b8ebf1 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -648,6 +648,7 @@ static rtx sparc_function_arg (cumulative_args_t, machine_mode, const_tree, bool); static rtx sparc_function_incoming_arg (cumulative_args_t, machine_mode, const_tree, bool); +static pad_direction sparc_function_arg_padding (machine_mode, const_tree); static unsigned int sparc_function_arg_boundary (machine_mode, const_tree); static int sparc_arg_partial_bytes (cumulative_args_t, @@ -796,6 +797,8 @@ char sparc_hard_reg_printed[8]; #define TARGET_FUNCTION_ARG sparc_function_arg #undef TARGET_FUNCTION_INCOMING_ARG #define TARGET_FUNCTION_INCOMING_ARG sparc_function_incoming_arg +#undef TARGET_FUNCTION_ARG_PADDING +#define TARGET_FUNCTION_ARG_PADDING sparc_function_arg_padding #undef TARGET_FUNCTION_ARG_BOUNDARY #define TARGET_FUNCTION_ARG_BOUNDARY sparc_function_arg_boundary @@ -7315,18 +7318,17 @@ sparc_function_arg_advance (cumulative_args_t cum_v, machine_mode mode, } } -/* Handle the FUNCTION_ARG_PADDING macro. - For the 64-bit ABI structs are always stored left shifted in their - argument slot. */ +/* Implement TARGET_FUNCTION_ARG_PADDING. For the 64-bit ABI structs + are always stored left shifted in their argument slot. */ -enum direction -function_arg_padding (machine_mode mode, const_tree type) +static pad_direction +sparc_function_arg_padding (machine_mode mode, const_tree type) { if (TARGET_ARCH64 && type && AGGREGATE_TYPE_P (type)) - return upward; + return PAD_UPWARD; /* Fall back to the default. */ - return DEFAULT_FUNCTION_ARG_PADDING (mode, type); + return default_function_arg_padding (mode, type); } /* Handle the TARGET_RETURN_IN_MEMORY target hook. |