sparc.c (function_arg_pass_by_reference): Return 1 for all modes whose size is greate...
authorEric Botcazou <ebotcazou@libertysurf.fr>
Wed, 4 Feb 2004 19:02:16 +0000 (20:02 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Wed, 4 Feb 2004 19:02:16 +0000 (19:02 +0000)
* 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

gcc/ChangeLog
gcc/config/sparc/sparc.c

index 43d54a1855c5b09ff755fd412a49f14f5f2f6e65..b600f6df9f4b8308277c7e8796da4fc99ba9c5f9 100644 (file)
@@ -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.
index 855fe1d6747eb7bdb2afcfbece5fac39db8d6b67..c58046277c5e36274c495e2a568050ad2492a8f4 100644 (file)
@@ -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;