blob: dc5609c8f76ee66cba15581710d757751ade260d [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-march=rv32gc_xtheadint -mabi=ilp32d" { target { rv32 } } } */
/* { dg-options "-march=rv64gc_xtheadint -mabi=lp64d" { target { rv64 } } } */
extern void f (void);
__attribute__ ((interrupt))
void func_default (void)
{
f ();
}
__attribute__ ((interrupt ("machine")))
void func_machine (void)
{
f ();
}
/* { dg-final { scan-assembler-times {\mth\.ipush\M} 2 { target { rv32 } } } } */
/* { dg-final { scan-assembler-times {\mth\.ipop\M} 2 { target { rv32 } } } } */
__attribute__ ((interrupt ("user")))
void func_usr (void)
{
f ();
}
__attribute__ ((interrupt ("supervisor")))
void func_supervisor (void)
{
f ();
}
/* { dg-final { scan-assembler-not {\mth\.ipush\M} { target { rv64 } } } } */
/* { dg-final { scan-assembler-not {\mth\.ipop\M} { target { rv64 } } } } */