OSDN Git Service

* config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Feb 2004 19:02:16 +0000 (19:02 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 4 Feb 2004 19:02:16 +0000 (19:02 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77262 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 43d54a1..b600f6d 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 855fe1d..c580462 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;