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