sparc.c (sparc_va_arg): Fix sparc64 va_arg aggregate passing for sizes <= 16 bytes.
authorJakub Jelinek <jakub@redhat.com>
Tue, 30 Nov 1999 22:06:50 +0000 (14:06 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 30 Nov 1999 22:06:50 +0000 (14:06 -0800)
        * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
        aggregate passing for sizes <= 16 bytes.

From-SVN: r30726

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

index f68da1d..861774f 100644 (file)
@@ -1,3 +1,8 @@
+1999-11-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
+       aggregate passing for sizes <= 16 bytes.
+
 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
 
        * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
@@ -462,10 +467,10 @@ Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
        directly by i386/freebsd.h.
        * configure: Rebuilt.
 
-        * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
+       * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
        which is in the user's namespace.
-        * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
-        `i386' which is not in our namespace.
+       * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
+       `i386' which is not in our namespace.
 
 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
 
@@ -537,12 +542,12 @@ Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
 
 1999-11-22  Andrew Haley  <aph@cygnus.com>
 
-        * varasm.c (function_defined): Remove.
-        (make_function_rtl): Don't set function_defined.
-        (make_decl_rtl): Remove global register warning.
-        * regclass.c (no_global_reg_vars): New variable.
-        (globalize_reg): Warn if function has already been defined.
-        (regclass_init): Set no_global_reg_vars.
+       * varasm.c (function_defined): Remove.
+       (make_function_rtl): Don't set function_defined.
+       (make_decl_rtl): Remove global register warning.
+       * regclass.c (no_global_reg_vars): New variable.
+       (globalize_reg): Warn if function has already been defined.
+       (regclass_init): Set no_global_reg_vars.
 
 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
 
index d536a17..54c0230 100644 (file)
@@ -4332,10 +4332,15 @@ sparc_va_arg (valist, type)
       if (TYPE_ALIGN (type) >= 2 * BITS_PER_WORD)
        align = 2 * UNITS_PER_WORD;
 
-      if (AGGREGATE_TYPE_P (type) && size > 16)
+      if (AGGREGATE_TYPE_P (type))
        {
-         indirect = 1;
-         size = rsize = UNITS_PER_WORD;
+         if (size > 16)
+           {
+             indirect = 1;
+             size = rsize = UNITS_PER_WORD;
+           }
+         else
+           size = rsize;
        }
     }
   else