/* Verify that arg regs used as temporaries get saved. */ /* { dg-do compile } */ /* { dg-options "-O" } */ void __attribute__ ((interrupt)) foo2 (void) { extern volatile int INTERRUPT_FLAG; INTERRUPT_FLAG = 0; extern volatile int COUNTER; #ifdef __riscv_atomic __atomic_fetch_add (&COUNTER, 1, __ATOMIC_RELAXED); #else COUNTER++; #endif } /* { dg-final { scan-assembler-times "s\[wd\]\ta\[0-7\],\[0-9\]+\\(sp\\)" 2 } } */