When -fPIE is enabled (by default), nonlocal_goto tests fail because
ira drops reg equivalences for function invariants such as stack
addresses, and then, instead of the expected add instructions, we get
ldr to restore the pseudo holding the address, as it ends up living in
a stack slot across a call.
Tested o aarch64-linux-gnu with --enable-default-pie. Ok to install?
for gcc/testsuite/ChangeLog
* gcc.target/aarch64/sme/nonlocal_goto_1.c: Accept ldr.
* gcc.target/aarch64/sme/nonlocal_goto_2.c: Likewise.
* gcc.target/aarch64/sme/nonlocal_goto_3.c: Likewise.
---
.../gcc.target/aarch64/sme/nonlocal_goto_1.c | 2 +-
.../gcc.target/aarch64/sme/nonlocal_goto_2.c | 2 +-
.../gcc.target/aarch64/sme/nonlocal_goto_3.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
index 11578279b9287..de9702e744519 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
@@ -17,7 +17,7 @@ void run(void (*)());
** ldr x16, \1
** tbz x16, 0, .*
** smstart sm
-** add x0, .*
+** (add|ldr) x0, .*
** ldr x16, \1
** tbz x16, 0, .*
** smstop sm
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
index 37dbcbae1a4f8..598db3cad38dd 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
@@ -9,7 +9,7 @@ void run(void (*)());
** smstop sm
** bl [^\n]*[cC]ache[^\n]*
** smstart sm
-** add x0, .*
+** (add|ldr) x0, .*
** smstop sm
** bl run
** smstart sm
diff --git a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
index ae661653f3028..9aedd088d7807 100644
--- a/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
@@ -11,7 +11,7 @@ void run(void (*)());
** smstop sm
** bl [^\n]*[cC]ache[^\n]*
** smstart sm
-** add x0, .*
+** (add|ldr) x0, .*
** smstop sm
** bl run
** smstart sm
--
Alexandre Oliva, happy hacker https://blog.lx.oliva.nom.br/
Free Software Activist FSFLA co-founder GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity.
Excluding neuro-others for not behaving ""normal"" is *not* inclusive!