OSDN Git Service

* gcc.target/sh/mfmovd.c: Extend list of supported targets.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / m68k / interrupt_thread-1.c
1 /* { dg-do compile } */
2 /* { dg-options "-mcpu=fidoa -O2 -fomit-frame-pointer" } */
3
4 /* Check that interrupt_thread attribute works.  */
5
6 #ifdef __mfido__
7 extern void foo (void) __attribute__ ((interrupt_thread));
8
9 int a, b, c, d;
10
11 void bar (void);
12
13 void
14 foo (void)
15 {
16   int w, x, y, z;
17
18   w = a;
19   x = b;
20   y = c;
21   z = d;
22
23   bar ();
24
25   a = w;
26   b = x;
27   c = y;
28   d = z;
29 }
30 #else
31 /* If the current mutilib is, say, -mcpu=5485, the compiler gets
32    -mcpu=fidoa -mcpu=5485, where -mcpu=fidoa is overridden.  In that
33    case, we just print out "sleep" in the assembly file and pretend
34    that everything is all right.  */
35 asm ("sleep");
36 #endif
37
38 /* "sleep" should be generated in place of "rts".  */
39 /* { dg-final { scan-assembler-times "sleep" 1 } } */
40 /* { dg-final { scan-assembler-times "rts" 0 } } */
41
42 /* There should be no stack adjustment.  */
43 /* { dg-final { scan-assembler-times "sp" 0 } } */