Hello! Plus a more modern dg-do target selector instead of dg-require-effective-target.
2014-06-01 Uros Bizjak <ubiz...@gmail.com> * gcc.target/i386/sibcall-2.c: Xfail dg-final scan-assembler-not, not compilation. * gcc.target/i386/sibcall-4.c: Ditto. * gcc.target/i386/fuse-caller-save.c: Add -mregparm=1 for ia32 target. Tested on x86_64-pc-linux-gnu {,-m32} and committed to mainline SVN. Uros.
Index: fuse-caller-save.c =================================================================== --- fuse-caller-save.c (revision 211112) +++ fuse-caller-save.c (working copy) @@ -1,5 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fuse-caller-save" } */ +/* { dg-additional-options "-mregparm=1" { target ia32 } } */ + /* Testing -fuse-caller-save optimization option. */ static int __attribute__((noinline)) Index: sibcall-1.c =================================================================== --- sibcall-1.c (revision 211112) +++ sibcall-1.c (working copy) @@ -1,5 +1,4 @@ -/* { dg-do compile } */ -/* { dg-require-effective-target ia32 } */ +/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2" } */ extern int (*foo)(int); Index: sibcall-2.c =================================================================== --- sibcall-2.c (revision 211118) +++ sibcall-2.c (working copy) @@ -1,5 +1,4 @@ -/* { dg-do compile { xfail { *-*-* } } } */ -/* { dg-require-effective-target ia32 } */ +/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2" } */ extern int doo1 (int); @@ -13,4 +12,4 @@ return (a < 0 ? doo1 : doo2) (a); } -/* { dg-final { scan-assembler-not "call\[ \t\]*.%eax" } } */ +/* { dg-final { scan-assembler-not "call\[ \t\]*.%eax" { xfail *-*-* } } } */ Index: sibcall-3.c =================================================================== --- sibcall-3.c (revision 211118) +++ sibcall-3.c (working copy) @@ -1,5 +1,4 @@ -/* { dg-do compile } */ -/* { dg-require-effective-target ia32 } */ +/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2" } */ extern Index: sibcall-4.c =================================================================== --- sibcall-4.c (revision 211118) +++ sibcall-4.c (working copy) @@ -1,6 +1,5 @@ /* Testcase for PR target/46219. */ -/* { dg-do compile { xfail { *-*-* } } } */ -/* { dg-require-effective-target ia32 } */ +/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2" } */ typedef void (*dispatch_t)(long offset); @@ -12,4 +11,4 @@ dispatch[offset](offset); } -/* { dg-final { scan-assembler-not "jmp\[ \t\]*.%eax" } } */ +/* { dg-final { scan-assembler-not "jmp\[ \t\]*.%eax" { xfail *-*-* } } } */ Index: sibcall-5.c =================================================================== --- sibcall-5.c (revision 211112) +++ sibcall-5.c (working copy) @@ -1,6 +1,5 @@ /* Check that indirect sibcalls understand regparm. */ -/* { dg-do run } */ -/* { dg-require-effective-target ia32 } */ +/* { dg-do run { target ia32 } } */ /* { dg-options "-O2" } */ extern void abort (void); Index: sibcall-6.c =================================================================== --- sibcall-6.c (revision 211118) +++ sibcall-6.c (working copy) @@ -1,5 +1,4 @@ -/* { dg-do compile } */ -/* { dg-require-effective-target ia32 } */ +/* { dg-do compile { target ia32 } } */ /* { dg-options "-O2" } */ typedef void *ira_loop_tree_node_t;