aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2004-02-04 20:02:16 +0100
committerEric Botcazou <ebotcazou@gcc.gnu.org>2004-02-04 19:02:16 +0000
commite2a17f6e4c325d78b243fa2f9cb4980c931f8531 (patch)
treee3c2138ae474b4bb29d7195b3e0e6239dbf84058
parente530f3709ec88e516fcc810cc7109d9255d578a8 (diff)
downloadgcc-e2a17f6e4c325d78b243fa2f9cb4980c931f8531.zip
gcc-e2a17f6e4c325d78b243fa2f9cb4980c931f8531.tar.gz
gcc-e2a17f6e4c325d78b243fa2f9cb4980c931f8531.tar.bz2
sparc.c (function_arg_pass_by_reference): Return 1 for all modes whose size is greater than 8 bytes if ARCH32.
* config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 for all modes whose size is greater than 8 bytes if ARCH32. (sparc_va_arg): Handle all modes whose size is greater than 8 bytes by reference if ARCH32. From-SVN: r77262
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sparc/sparc.c8
2 files changed, 9 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 43d54a1..b600f6d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
+ for all modes whose size is greater than 8 bytes if ARCH32.
+ (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
+ by reference if ARCH32.
+
2004-02-04 Aldy Hernandez <aldyh@redhat.com>
* cgraphunit.c (cgraph_postorder): Fix typo in comment.
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 855fe1d..c580462 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -5672,10 +5672,8 @@ function_arg_pass_by_reference (const struct sparc_args *cum ATTRIBUTE_UNUSED,
if (TARGET_ARCH32)
{
return ((type && AGGREGATE_TYPE_P (type))
- || mode == TFmode
|| mode == SCmode
- || mode == DCmode
- || mode == TCmode);
+ || GET_MODE_SIZE (mode) > 8);
}
else
{
@@ -5886,10 +5884,8 @@ sparc_va_arg (tree valist, tree type)
else
{
if (AGGREGATE_TYPE_P (type)
- || TYPE_MODE (type) == TFmode
|| TYPE_MODE (type) == SCmode
- || TYPE_MODE (type) == DCmode
- || TYPE_MODE (type) == TCmode)
+ || GET_MODE_SIZE (TYPE_MODE (type)) > 8)
{
indirect = 1;
size = rsize = UNITS_PER_WORD;