blob: c413a2c306e2808854f560e8a904fcbb4594b343 [file] [log] [blame]
/* { dg-do "compile" } */
/* { dg-options "-O1" } */
/* { dg-final { check-function-bodies "**" "" } } */
/* Note: this test only checks the instructions in the function bodies,
not the placement of the patch label or nops before the futncion. */
/*
**f10_none:
** nop
** ret
*/
void
__attribute__ ((target("branch-protection=none"),
patchable_function_entry (1, 0)))
f10_none ()
{
}
/*
**f10_pac:
** hint 34 // bti c
** nop
** hint 25 // paciasp
** hint 29 // autiasp
** ret
*/
void
__attribute__ ((target("branch-protection=bti+pac-ret+leaf"),
patchable_function_entry (1, 0)))
f10_pac ()
{
}
/*
**f10_bti:
** hint 34 // bti c
** nop
** ret
*/
void
__attribute__ ((target("branch-protection=bti"),
patchable_function_entry (1, 0)))
f10_bti ()
{
}
/*
**f11_none:
** ret
*/
void
__attribute__ ((target("branch-protection=none"),
patchable_function_entry (1, 1)))
f11_none ()
{
}
/*
**f11_pac:
** hint 25 // paciasp
** hint 29 // autiasp
** ret
*/
void
__attribute__ ((target("branch-protection=bti+pac-ret+leaf"),
patchable_function_entry (1, 1)))
f11_pac ()
{
}
/*
**f11_bti:
** hint 34 // bti c
** ret
*/
void
__attribute__ ((target("branch-protection=bti"),
patchable_function_entry (1, 1)))
f11_bti ()
{
}
/*
**f21_none:
** nop
** ret
*/
void
__attribute__ ((target("branch-protection=none"),
patchable_function_entry (2, 1)))
f21_none ()
{
}
/*
**f21_pac:
** hint 34 // bti c
** nop
** hint 25 // paciasp
** hint 29 // autiasp
** ret
*/
void
__attribute__ ((target("branch-protection=bti+pac-ret+leaf"),
patchable_function_entry (2, 1)))
f21_pac ()
{
}
/*
**f21_bti:
** hint 34 // bti c
** nop
** ret
*/
void
__attribute__ ((target("branch-protection=bti"),
patchable_function_entry (2, 1)))
f21_bti ()
{
}