1 /* { dg-do compile { target ia32 } } */
2 /* { dg-options "-O2 -mgeneral-regs-only -mno-cld -miamcu -maccumulate-outgoing-args" } */
4 struct interrupt_frame
;
6 extern void callback0 (unsigned int id
, unsigned int len
)
7 __attribute__((no_caller_saved_registers
));
8 extern void callback1 (unsigned int id
, unsigned int len
)
9 __attribute__((no_caller_saved_registers
));
10 extern void callback2 (unsigned int id
, unsigned int len
)
11 __attribute__((no_caller_saved_registers
));
13 typedef void (*callback_t
) (unsigned int id
, unsigned int len
)
14 __attribute__((no_caller_saved_registers
));
16 callback_t callback
[] =
23 unsigned int remaining
;
26 __attribute__((no_caller_saved_registers
))
40 __attribute__((interrupt
))
41 my_isr(struct interrupt_frame
*frame
)
46 /* { dg-final { scan-assembler-times "\tcld" 1 } } */