(root)/
gcc-13.2.0/
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 } } */