OSDN Git Service

2005-07-07 Paul Brook <paul@codesourcery.com>
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jul 2005 21:43:10 +0000 (21:43 +0000)
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jul 2005 21:43:10 +0000 (21:43 +0000)
* config/arm/arm.c (arm_pad_arg_upward): Compare return value of
DEFAULT_FUNCTION_ARG_PADDING to upward.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101736 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/arm.c

index dbc36f7..fc4e8eb 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-07  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
+       DEFAULT_FUNCTION_ARG_PADDING to upward.
+
 2005-07-07  Richard Henderson  <rth@redhat.com>
 
        * function.c (locate_and_pad_parm): Record parameter alignment in
index 4a87848..96d4add 100644 (file)
@@ -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;