rs6000: Fix safe-indirect-jump-[18].c
authorSegher Boessenkool <segher@gcc.gnu.org>
Fri, 26 Jan 2018 21:08:47 +0000 (22:08 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 26 Jan 2018 21:08:47 +0000 (22:08 +0100)
This patch merges the safe-indirect-jump-1.c and -8.c testcases,
since they do the same thing.  On the 64-bit and AIX ABIs the indirect
call is not a sibcall, since there is code generated after the call
(the restore of r2).  On the 32-bit non-AIX ABIs it is a sibcall.

* gcc.target/powerpc/safe-indirect-jump-1.c: Build on all targets.
Make expected output depend on whether we expect sibcalls or not.
* gcc.target/powerpc/safe-indirect-jump-8.c: Delete (merged into
safe-indirect-jump-1.c).

From-SVN: r257108

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c [deleted file]

index 730b148..42ba2fd 100644 (file)
@@ -1,6 +1,13 @@
+2018-01-26  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       * gcc.target/powerpc/safe-indirect-jump-1.c: Build on all targets.
+       Make expected output depend on whether we expect sibcalls or not.
+       * gcc.target/powerpc/safe-indirect-jump-8.c: Delete (merged into
+       safe-indirect-jump-1.c).
+
 2018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
-       Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
-       Soren Rasmussen  <s.c.rasmussen@gmail.com>
+           Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
+           Soren Rasmussen  <s.c.rasmussen@gmail.com>
 
        Fortran 2018 teams tests.
 
index 99cfab2..d1ab83a 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { lp64 } } } */
+/* { dg-do compile } */
 /* { dg-additional-options "-mno-speculate-indirect-jumps" } */
 
 /* Test for deliberate misprediction of indirect calls.  */
@@ -11,4 +11,10 @@ int bar ()
 }
 
 /* { dg-final { scan-assembler "crset 2" } } */
-/* { dg-final { scan-assembler "beqctrl-" } } */
+
+/* The AIX and ELFv2 ABIs don't allow a sibcall here.  */
+/* { dg-final { scan-assembler "beqctrl-" { target { lp64 || { powerpc*-*-aix* } } } } } */
+
+/* The other ABIs do allow a sibcall.  */
+/* { dg-final { scan-assembler "beqctr-" { target { ilp32 && !powerpc*-*-aix* } } } } */
+/* { dg-final { scan-assembler {b \$} { target { ilp32 && !powerpc*-*-aix* } } } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c
deleted file mode 100644 (file)
index 0a6f231..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/* { dg-do compile { target { ilp32 } } } */
-/* { dg-skip-if "" { powerpc*-*-aix* } } */
-/* { dg-additional-options "-O2 -mno-speculate-indirect-jumps" } */
-
-/* Test for deliberate misprediction of -m32 sibcalls.  */
-
-extern int (*f)();
-
-int bar ()
-{
-  return (*f) ();
-}
-
-/* { dg-final { scan-assembler "crset 2" } } */
-/* { dg-final { scan-assembler "beqctr-" } } */
-/* { dg-final { scan-assembler {b \$} } } */