1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mgeneral-regs-only -mno-cld" } */
3
4 extern void bar (int);
5
f1(void)6 void f1 (void){ bar (1); }
7 __attribute__((interrupt))
f2(void * frame)8 void f2 (void *frame){ bar (2); }
f3(void)9 void f3 (void){ bar (3); }
10 __attribute__((interrupt))
f4(void * frame)11 void f4 (void *frame){ bar (4); }
f5(void)12 void f5 (void){ bar (5); }
13
14 /* { dg-final { scan-assembler-times "push.\t%.ax" 2 } } */
15 /* { dg-final { scan-assembler-times "pop.\t%.ax" 2 } } */
16 /* { dg-final { scan-assembler-times "iret" 2 { target ia32 } } } */
17 /* { dg-final { scan-assembler-times "iretq" 2 { target { ! ia32 } } } } */
18 /* { dg-final { scan-assembler-times "\tcld" 2 } } */
19