aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@gcc.gnu.org>2018-01-26 22:08:47 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2018-01-26 22:08:47 +0100
commitb5d0b3d27ac0f109f014b23563ae38535e3815d4 (patch)
tree17eb78f168ec228640ffa350b794ac44a8031b4d
parent5bb1c2be88b8f99e050df8ec9052771b122b769f (diff)
downloadgcc-b5d0b3d27ac0f109f014b23563ae38535e3815d4.zip
gcc-b5d0b3d27ac0f109f014b23563ae38535e3815d4.tar.gz
gcc-b5d0b3d27ac0f109f014b23563ae38535e3815d4.tar.bz2
rs6000: Fix safe-indirect-jump-[18].c
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
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c10
-rw-r--r--gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c16
3 files changed, 17 insertions, 20 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 730b148..42ba2fd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
index 99cfab2..d1ab83a 100644
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
@@ -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
index 0a6f231..0000000
--- a/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-8.c
+++ /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 \$} } } */