From: Bernd Schmidt Date: Fri, 22 Jul 2005 09:46:30 +0000 (+0000) Subject: bfin-longcall-1.c: New file. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0fb6f88ac7ab49796b45268f6df19371bfa96416;p=gcc.git bfin-longcall-1.c: New file. * gcc.dg/bfin-longcall-1.c: New file. * gcc.dg/bfin-longcall-2.c: New file. From-SVN: r102277 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7f7b13330f1..a71759e1f93 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-22 Bernd Schmidt + + * gcc.dg/bfin-longcall-1.c: New file. + * gcc.dg/bfin-longcall-2.c: New file. + 2005-07-21 Janis Johnson * gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix. diff --git a/gcc/testsuite/gcc.dg/bfin-longcall-1.c b/gcc/testsuite/gcc.dg/bfin-longcall-1.c new file mode 100644 index 00000000000..138707e9e3f --- /dev/null +++ b/gcc/testsuite/gcc.dg/bfin-longcall-1.c @@ -0,0 +1,33 @@ +/* { dg-do compile { target bfin-*-* } } */ +/* { dg-options "-O2" } */ +/* { dg-final { scan-assembler-not "call\[^\\n\]*foo" } } */ +/* { dg-final { scan-assembler-not "jump\[^\\n\]*foo" } } */ +/* { dg-final { scan-assembler "call\[^\\n\]*baz" } } */ +/* { dg-final { scan-assembler "jump\[^\\n\]*baz" } } */ +/* { dg-final { scan-assembler "call\[^\\n\]*bar" } } */ +/* { dg-final { scan-assembler "jump\[^\\n\]*bar" } } */ + +extern void foo () __attribute__((longcall)); +extern void bar () __attribute__((shortcall)); +extern void baz (); + +int t1 () +{ + foo (); + bar (); + baz (); + return 4; +} + +void t2 () +{ + foo (); +} +void t3 () +{ + bar (); +} +void t4 () +{ + baz (); +} diff --git a/gcc/testsuite/gcc.dg/bfin-longcall-2.c b/gcc/testsuite/gcc.dg/bfin-longcall-2.c new file mode 100644 index 00000000000..33189b01fd6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/bfin-longcall-2.c @@ -0,0 +1,33 @@ +/* { dg-do compile { target bfin-*-* } } */ +/* { dg-options "-O2 -mlong-calls" } */ +/* { dg-final { scan-assembler-not "call\[^\\n\]*foo" } } */ +/* { dg-final { scan-assembler-not "jump\[^\\n\]*foo" } } */ +/* { dg-final { scan-assembler-not "call\[^\\n\]*baz" } } */ +/* { dg-final { scan-assembler-not "jump\[^\\n\]*baz" } } */ +/* { dg-final { scan-assembler "call\[^\\n\]*bar" } } */ +/* { dg-final { scan-assembler "jump\[^\\n\]*bar" } } */ + +extern void foo () __attribute__((longcall)); +extern void bar () __attribute__((shortcall)); +extern void baz (); + +int t1 () +{ + foo (); + bar (); + baz (); + return 4; +} + +void t2 () +{ + foo (); +} +void t3 () +{ + bar (); +} +void t4 () +{ + baz (); +}