(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
msp430/
isr-push-pop-leaf-isr-430x.c
       1  /* { dg-do compile } */
       2  /* { dg-skip-if "" { *-*-* } { "-mcpu=msp430" } { "" } } */
       3  /* { dg-final { scan-assembler "PUSHM.*#4.*R15" } } */
       4  /* { dg-final { scan-assembler "PUSHM.*#6.*R10" } } */
       5  
       6  /* To check that the compiler doesn't blindly save all regs, we omit R4 and R11
       7     from the trashing.  */
       8  #define TRASH_REGS_LITE				\
       9    __asm__ ("mov #0xFFFF, r5" : : : "R5");	\
      10    __asm__ ("mov #0xFFFF, r6" : : : "R6");	\
      11    __asm__ ("mov #0xFFFF, r7" : : : "R7");	\
      12    __asm__ ("mov #0xFFFF, r8" : : : "R8");	\
      13    __asm__ ("mov #0xFFFF, r9" : : : "R9");	\
      14    __asm__ ("mov #0xFFFF, r10" : : : "R10");	\
      15    __asm__ ("mov #0xFFFF, r12" : : : "R12");	\
      16    __asm__ ("mov #0xFFFF, r13" : : : "R13");	\
      17    __asm__ ("mov #0xFFFF, r14" : : : "R14");	\
      18    __asm__ ("mov #0xFFFF, r15" : : : "R15");
      19  
      20  void __attribute__((interrupt))
      21  isr_leaf (void)
      22  {
      23    TRASH_REGS_LITE
      24  }