bfin-longcall-1.c: New file.
authorBernd Schmidt <bernd.schmidt@analog.com>
Fri, 22 Jul 2005 09:46:30 +0000 (09:46 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 22 Jul 2005 09:46:30 +0000 (09:46 +0000)
* gcc.dg/bfin-longcall-1.c: New file.
* gcc.dg/bfin-longcall-2.c: New file.

From-SVN: r102277

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/bfin-longcall-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bfin-longcall-2.c [new file with mode: 0644]

index 7f7b13330f1af9abd34fab9242e8e441b693e87e..a71759e1f9359de1d60167acae707033f72774da 100644 (file)
@@ -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 (file)
index 0000000..138707e
--- /dev/null
@@ -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 (file)
index 0000000..33189b0
--- /dev/null
@@ -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 ();
+}