blob: 34d2fedcb45d1e5629bd75aa403f73e1c7dee7a0 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-require-effective-target archs }*/
/* { dg-options "-O0 -mll64 -mirq-ctrl-saved=r0-r9" } */
/* Check that on archs the 'firq' interrupt function type is
available, these are the fast interrupts. For fast interrupts,
despite the use of 'irq-ctrl-saved', no registers are automatically
saved on entry to the function, and so, in the following register
r0 to r9 should all be saved to the stack.
We also take the opportunity to check the use of the 'rtie'
instruction at the end of the interrupt function. */
void __attribute__ ((interrupt("firq")))
handler1 (void)
{
asm (""
:
:
: "r0", "r1", "r2", "r3", "r4",
"r5", "r6", "r7", "r8", "r9");
}
/* { dg-final { scan-assembler-times "r2,\\\[sp" 2 } } */
/* { dg-final { scan-assembler-times "r4,\\\[sp" 2 } } */
/* { dg-final { scan-assembler-times "r6,\\\[sp" 2 } } */
/* { dg-final { scan-assembler-times "r8,\\\[sp" 2 } } */
/* { dg-final { scan-assembler "rtie" } } */