aarch64: Add eh_return compile tests

gcc/testsuite/ChangeLog:

	* gcc.target/aarch64/eh_return-2.c: New test.
	* gcc.target/aarch64/eh_return-3.c: New test.
This commit is contained in:
Szabolcs Nagy 2023-06-02 14:17:02 +01:00
parent aa2ad77a9b
commit cad7e1e3e0
2 changed files with 37 additions and 0 deletions

View file

@ -0,0 +1,9 @@
/* { dg-do compile } */
/* { dg-final { scan-assembler "add\tsp, sp, x5" } } */
/* { dg-final { scan-assembler "br\tx6" } } */
void
foo (unsigned long off, void *handler)
{
__builtin_eh_return (off, handler);
}

View file

@ -0,0 +1,28 @@
/* { dg-do compile } */
/* { dg-options "-O2 -mbranch-protection=pac-ret+leaf -fno-schedule-insns -fno-schedule-insns2" } */
/* { dg-final { check-function-bodies "**" "" "" } } */
/*
**foo:
** hint 25 // paciasp
** ...
** cbz w2, .*
** mov x4, 0
** ...
** cbz x4, .*
** add sp, sp, x5
** br x6
** hint 29 // autiasp
** ret
** mov x5, x0
** mov x4, 1
** mov x6, x1
** b .*
*/
void
foo (unsigned long off, void *handler, int c)
{
if (c)
return;
__builtin_eh_return (off, handler);
}