1 /* { dg-do run { target i?86-*-* x86_64-*-* } } */
2 /* { dg-options "-mgeneral-regs-only" } */
4 extern void exit (int);
6 typedef unsigned int uword_t
__attribute__ ((mode (__word__
)));
10 #define FLAGS 0x12345673
14 #define STRING(x) XSTRING(x)
16 #define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname)
17 #define ASMNAME2(prefix, cname) XSTRING (prefix) cname
19 struct interrupt_frame
28 __attribute__((interrupt
, used
))
30 fn (struct interrupt_frame
*frame
)
36 if (FLAGS
!= frame
->flags
)
49 asm ("push $" STRING (SS
) "; \
50 push $" STRING (SP
) "; \
51 push $" STRING (FLAGS
) "; \
52 push $" STRING (CS
) "; \
53 push $" STRING (IP
) "; \
54 jmp " ASMNAME ("fn"));