diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dbc36f7e2b4..fc4e8eb5bd3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-07-07 Paul Brook + + * config/arm/arm.c (arm_pad_arg_upward): Compare return value of + DEFAULT_FUNCTION_ARG_PADDING to upward. + 2005-07-07 Richard Henderson * function.c (locate_and_pad_parm): Record parameter alignment in diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 4a87848a35a..96d4add23df 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -6658,13 +6658,15 @@ arm_must_pass_in_stack (enum machine_mode mode, tree type) /* For use by FUNCTION_ARG_PADDING (MODE, TYPE). Return true if an argument passed on the stack should be padded upwards, - i.e. if the least-significant byte has useful data. */ + i.e. if the least-significant byte has useful data. + For legacy APCS ABIs we use the default. For AAPCS based ABIs small + aggregate types are placed in the lowest memory address. */ bool arm_pad_arg_upward (enum machine_mode mode, tree type) { if (!TARGET_AAPCS_BASED) - return DEFAULT_FUNCTION_ARG_PADDING(mode, type); + return DEFAULT_FUNCTION_ARG_PADDING(mode, type) == upward; if (type && BYTES_BIG_ENDIAN && INTEGRAL_TYPE_P (type)) return false;