diff options
author | Peter Bergner <bergner@linux.ibm.com> | 2021-12-03 11:46:22 -0600 |
---|---|---|
committer | Peter Bergner <bergner@linux.ibm.com> | 2021-12-03 14:32:13 -0600 |
commit | d81722ee16e339af7c11b3d1bf51c17246557595 (patch) | |
tree | 5255a9776bfafbb679de3445c9ba1556d996b5ed /gcc | |
parent | f46d32dd29b7623915e31b0508e2e925526fa7d8 (diff) | |
download | gcc-d81722ee16e339af7c11b3d1bf51c17246557595.zip gcc-d81722ee16e339af7c11b3d1bf51c17246557595.tar.gz gcc-d81722ee16e339af7c11b3d1bf51c17246557595.tar.bz2 |
rs6000: testsuite: Add rop_ok effective-target function
This patch adds a new effective-target function that tests whether
it is safe to emit the ROP-protect instructions and updates the
ROP test cases to use it.
2021-12-03 Peter Bergner <bergner@linux.ibm.com>
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_rop_ok): New function.
* gcc.target/powerpc/rop-1.c: Use it.
* gcc.target/powerpc/rop-2.c: Likewise.
* gcc.target/powerpc/rop-3.c: Likewise.
* gcc.target/powerpc/rop-4.c: Likewise.
* gcc.target/powerpc/rop-5.c: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rop-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rop-2.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rop-3.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rop-4.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/rop-5.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 7 |
6 files changed, 12 insertions, 5 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/rop-1.c b/gcc/testsuite/gcc.target/powerpc/rop-1.c index 8cedcb6..12893de 100644 --- a/gcc/testsuite/gcc.target/powerpc/rop-1.c +++ b/gcc/testsuite/gcc.target/powerpc/rop-1.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect" } */ -/* { dg-require-effective-target powerpc_elfv2 } */ +/* { dg-require-effective-target rop_ok } */ /* Verify that ROP-protect instructions are inserted when a call is present. */ diff --git a/gcc/testsuite/gcc.target/powerpc/rop-2.c b/gcc/testsuite/gcc.target/powerpc/rop-2.c index c556952..5f1d7c3 100644 --- a/gcc/testsuite/gcc.target/powerpc/rop-2.c +++ b/gcc/testsuite/gcc.target/powerpc/rop-2.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect -mprivileged" } */ -/* { dg-require-effective-target powerpc_elfv2 } */ +/* { dg-require-effective-target rop_ok } */ /* Verify that privileged ROP-protect instructions are inserted when a call is present. */ diff --git a/gcc/testsuite/gcc.target/powerpc/rop-3.c b/gcc/testsuite/gcc.target/powerpc/rop-3.c index 8d03792..d2ef3bf 100644 --- a/gcc/testsuite/gcc.target/powerpc/rop-3.c +++ b/gcc/testsuite/gcc.target/powerpc/rop-3.c @@ -1,5 +1,5 @@ /* { dg-do run { target { power10_hw } } } */ -/* { dg-require-effective-target powerpc_elfv2 } */ +/* { dg-require-effective-target rop_ok } */ /* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect" } */ /* Verify that ROP-protect instructions execute correctly when a diff --git a/gcc/testsuite/gcc.target/powerpc/rop-4.c b/gcc/testsuite/gcc.target/powerpc/rop-4.c index dcf47c6..80faa9b 100644 --- a/gcc/testsuite/gcc.target/powerpc/rop-4.c +++ b/gcc/testsuite/gcc.target/powerpc/rop-4.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect" } */ -/* { dg-require-effective-target powerpc_elfv2 } */ +/* { dg-require-effective-target rop_ok } */ /* Verify that no ROP-protect instructions are inserted when no call is present. */ diff --git a/gcc/testsuite/gcc.target/powerpc/rop-5.c b/gcc/testsuite/gcc.target/powerpc/rop-5.c index f2594df..f7970f1 100644 --- a/gcc/testsuite/gcc.target/powerpc/rop-5.c +++ b/gcc/testsuite/gcc.target/powerpc/rop-5.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-require-effective-target powerpc_elfv2 } */ +/* { dg-require-effective-target rop_ok } */ /* { dg-options "-O2 -mdejagnu-cpu=power10 -mrop-protect" } */ /* Verify that __ROP_PROTECT__ is predefined for -mrop-protect. */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index caa8ab9..7956c38 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -6628,6 +6628,13 @@ proc check_effective_target_powerpc_elfv2 { } { } } +# Return 1 if this is a PowerPC target supporting -mrop-protect + +proc check_effective_target_rop_ok { } { + return [check_effective_target_power10_ok] + && [check_effective_target_powerpc_elfv2] +} + # The VxWorks SPARC simulator accepts only EM_SPARC executables and # chokes on EM_SPARC32PLUS or EM_SPARCV9 executables. Return 1 if the # test environment appears to run executables on such a simulator. |