Commit 64ceac43 by Jakub Jelinek Committed by Jakub Jelinek

re PR target/36015 (-mregparm and fn decls without arguments)

	PR target/36015
	* config/i386/i386.c (init_cumulative_args): Don't pass anything
	in registers for -m32 only if stdarg_p (fntype).

	* gcc.dg/pr36015.c: New test.

From-SVN: r134621
parent 4679504c
2008-04-24 Jakub Jelinek <jakub@redhat.com>
PR target/36015
* config/i386/i386.c (init_cumulative_args): Don't pass anything
in registers for -m32 only if stdarg_p (fntype).
2008-04-24 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/36006
......
......@@ -3552,7 +3552,7 @@ init_cumulative_args (CUMULATIVE_ARGS *cum, /* Argument info to initialize */
{
/* If there are variable arguments, then we won't pass anything
in registers in 32-bit mode. */
if (cum->maybe_vaarg)
if (stdarg_p (fntype))
{
cum->nregs = 0;
cum->sse_nregs = 0;
......
2008-04-24 Jakub Jelinek <jakub@redhat.com>
PR target/36015
* gcc.dg/pr36015.c: New test.
2008-04-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR rtl-optimization/36006
/* PR target/36015 */
/* { dg-do run } */
/* { dg-options "-O0" } */
/* { dg-options "-O0 -mregparm=3" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
static int test ();
int
main (void)
{
test (0, 1, 2, 3, 4, 5, 6, 7);
return 0;
}
static int
test (int a, int b, int c, int d, int e, int f, int g, int h)
{
if (a != 0 || b != 1 || c != 2 || d != 3
|| e != 4 || f != 5 || g != 6 || h != 7)
__builtin_abort ();
return 0;
}
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