Commit f34e52f7 by Jakub Jelinek Committed by Richard Henderson

sparc.c (sparc_va_arg): Fix sparc64 va_arg aggregate passing for sizes <= 16 bytes.

        * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
        aggregate passing for sizes <= 16 bytes.

From-SVN: r30726
parent 4cb74b76
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>
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment