aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2005-07-08 08:09:02 +0000
committerMark Mitchell <mark@codesourcery.com>2005-07-08 08:09:02 +0000
commit099987026cdfd6526242e57692fbd1d76c618aeb (patch)
tree54c8454038000ef935acbec33692889097c922cb
parentf3cd245a894d141dd55be69dab92c835d99261c8 (diff)
Issue #347
* config/arm/arm.c (arm_pad_arg_upward): Compare return value of DEFAULT_FUNCTION_ARG_PADDING to upward. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl-3_4_3-linux-branch@101756 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog.csl6
-rw-r--r--gcc/config/arm/arm.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index dcc9e65d04a..9c818856a0d 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,3 +1,9 @@
+2005-07-07 Paul Brook <paul@codesourcery.com>
+
+ Issue #347
+ * config/arm/arm.c (arm_pad_arg_upward): Compare return value of
+ DEFAULT_FUNCTION_ARG_PADDING to upward.
+
2005-06-14 Daniel Jacobowitz <dan@codesourcery.com>
* gcc/config/mips/linux.h (MD_FALLBACK_REGISTER_OFFSET): Define.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 563833b0abd..ef6092d9a69 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -2685,14 +2685,16 @@ 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. */
+ Return true if an argument passed on the stack should be padded upwards,
+ 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;