When we select a non-bx get_pc_thunk, we get an extra mov to set up
the PIC register before the abort call. Expect that mov or a
get_pc_thunk.bx call.
Regstrapped on x86_64-linux-gnu; also tested on i686-linux-gnu with
-fPIE. Ok to install?
for gcc/testsuite/ChangeLog
* gcc.target/i386/pr70321.c: Cope with non-bx get_pc_thunk.
---
gcc/testsuite/gcc.target/i386/pr70321.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/gcc/testsuite/gcc.target/i386/pr70321.c
b/gcc/testsuite/gcc.target/i386/pr70321.c
index 58f5f5661c7a2..287b7da1b9501 100644
--- a/gcc/testsuite/gcc.target/i386/pr70321.c
+++ b/gcc/testsuite/gcc.target/i386/pr70321.c
@@ -9,4 +9,8 @@ void foo (long long ixi)
/* { dg-final { scan-assembler-times "mov" 1 { target nonpic } } } */
/* get_pc_thunk adds an extra mov insn. */
-/* { dg-final { scan-assembler-times "mov" 2 { target { ! nonpic } } } } */
+/* Choosing a non-bx get_pc_thunk requires another mov before the abort call.
+ So we require a match of either that mov or the get_pc_thunk.bx call, in
+ addition to the other 2 movs. (Hopefully there won't be more calls for a
+ false positive.) */
+/* { dg-final { scan-assembler-times "mov|call\[^\n\r]*get_pc_thunk\.bx" 3 {
target { ! nonpic } } } } */
--
Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/
Free Software Activist GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity
Excluding neuro-others for not behaving ""normal"" is *not* inclusive