aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2005-01-05 18:53:08 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2005-01-05 18:53:08 +0000
commit3dd7ab650554cd5e18c090fab7d6c309e522dd55 (patch)
tree10a05943ee24b032de6268a06111c9d7c1650f28
parent59d8fe27225bbdeb958692a320caf77eb8fc9f17 (diff)
downloadgcc-3dd7ab650554cd5e18c090fab7d6c309e522dd55.zip
gcc-3dd7ab650554cd5e18c090fab7d6c309e522dd55.tar.gz
gcc-3dd7ab650554cd5e18c090fab7d6c309e522dd55.tar.bz2
arm.c (arm_return_in_memory): Treat complex types as aggregates for AAPCS ABIs.
2004-01-05 Julian Brown <julian@codesourcery.com> * config/arm/arm.c (arm_return_in_memory): Treat complex types as aggregates for AAPCS ABIs. From-SVN: r92963
-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 442e06d..39da29d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-05 Julian Brown <julian@codesourcery.com>
+
+ * config/arm/arm.c (arm_return_in_memory): Treat complex types
+ as aggregates for AAPCS ABIs.
+
2005-01-05 Stan Shebs <shebs@apple.com>
* unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 77eec30..6582021 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -2296,8 +2296,10 @@ arm_return_in_memory (tree type)
{
HOST_WIDE_INT size;
- if (!AGGREGATE_TYPE_P (type))
- /* All simple types are returned in registers. */
+ if (!AGGREGATE_TYPE_P (type) &&
+ !(TARGET_AAPCS_BASED && TREE_CODE (type) == COMPLEX_TYPE))
+ /* All simple types are returned in registers.
+ For AAPCS, complex types are treated the same as aggregates. */
return 0;
size = int_size_in_bytes (type);