/* { dg-do compile { target ia32 } } */ | |
/* { dg-options "-O2 -mgeneral-regs-only -mno-cld -miamcu -maccumulate-outgoing-args" } */ | |
struct interrupt_frame; | |
void (*callback[1])(unsigned int id, unsigned int len); | |
unsigned int remaining; | |
void | |
handler(int uart) | |
{ | |
while (1) { | |
if (remaining) { | |
callback[uart](0, 0); | |
break; | |
} | |
} | |
} | |
int uart; | |
void | |
__attribute__((interrupt)) | |
my_isr(struct interrupt_frame *frame) | |
{ | |
handler(uart); | |
} | |
/* { dg-final { scan-assembler-times "\tcld" 1 } } */ |