/* { 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" } } */