diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2005-07-22 09:46:30 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2005-07-22 09:46:30 +0000 |
commit | 0fb6f88ac7ab49796b45268f6df19371bfa96416 (patch) | |
tree | 4f20f81d4a9c4e10841ad2305eb5385440b310d4 /gcc | |
parent | 32cafd7366917d37360844b42b73ffc6af881bb0 (diff) | |
download | gcc-0fb6f88ac7ab49796b45268f6df19371bfa96416.zip gcc-0fb6f88ac7ab49796b45268f6df19371bfa96416.tar.gz gcc-0fb6f88ac7ab49796b45268f6df19371bfa96416.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/bfin-longcall-1.c | 33 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/bfin-longcall-2.c | 33 |
3 files changed, 71 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7f7b133..a71759e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-22 Bernd Schmidt <bernd.schmidt@analog.com> + + * gcc.dg/bfin-longcall-1.c: New file. + * gcc.dg/bfin-longcall-2.c: New file. + 2005-07-21 Janis Johnson <janis187@us.ibm.com> * 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 0000000..138707e --- /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 0000000..33189b0 --- /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 (); +} |