aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2005-07-07 21:43:10 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2005-07-07 21:43:10 +0000
commit5a29b385acaae4c85403081e38ce0876ae423524 (patch)
treeaee66d86297ccb3149762a13be3c456f3e065d1c /gcc
parentd96a549382e198d28fc9b55e52fc97b3cf35952a (diff)
downloadgcc-5a29b385acaae4c85403081e38ce0876ae423524.zip
gcc-5a29b385acaae4c85403081e38ce0876ae423524.tar.gz
gcc-5a29b385acaae4c85403081e38ce0876ae423524.tar.bz2
arm.c (arm_pad_arg_upward): Compare return value of DEFAULT_FUNCTION_ARG_PADDING to upward.
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. [[Split portion of a mixed commit.]] From-SVN: r101736.2
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/arm.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dbc36f7..fc4e8eb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 4a87848..96d4add 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;