rs6000.c (rs6000_opt_vars): Add entry for -mspeculate-indirect-jumps.
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Tue, 16 Jan 2018 16:49:39 +0000 (16:49 +0000)
committerWilliam Schmidt <wschmidt@gcc.gnu.org>
Tue, 16 Jan 2018 16:49:39 +0000 (16:49 +0000)
commitb50e164942ea0cfc7abdd785a6f6449d4d0d8066
tree28ab18627227e62c04b553f18231238115ca574a
parent8fc0c8fae09c0a88f12ea1c2efa857ef8d7a88fe
rs6000.c (rs6000_opt_vars): Add entry for -mspeculate-indirect-jumps.

[gcc]

2018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
-mspeculate-indirect-jumps.
* config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
for -mno-speculate-indirect-jumps.
(*call_indirect_elfv2<mode>_nospec): New define_insn.
(*call_value_indirect_elfv2<mode>): Disable for
-mno-speculate-indirect-jumps.
(*call_value_indirect_elfv2<mode>_nospec): New define_insn.
(indirect_jump): Emit different RTL for
-mno-speculate-indirect-jumps.
(*indirect_jump<mode>): Disable for
-mno-speculate-indirect-jumps.
(*indirect_jump<mode>_nospec): New define_insn.
(tablejump): Emit different RTL for
-mno-speculate-indirect-jumps.
(tablejumpsi): Disable for -mno-speculate-indirect-jumps.
(tablejumpsi_nospec): New define_expand.
(tablejumpdi): Disable for -mno-speculate-indirect-jumps.
(tablejumpdi_nospec): New define_expand.
(*tablejump<mode>_internal1): Disable for
-mno-speculate-indirect-jumps.
(*tablejump<mode>_internal1_nospec): New define_insn.
* config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
option.

[gcc/testsuite]

2018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/safe-indirect-jump-1.c: New file.
* gcc.target/powerpc/safe-indirect-jump-2.c: New file.
* gcc.target/powerpc/safe-indirect-jump-3.c: New file.
* gcc.target/powerpc/safe-indirect-jump-4.c: New file.
* gcc.target/powerpc/safe-indirect-jump-5.c: New file.
* gcc.target/powerpc/safe-indirect-jump-6.c: New file.

From-SVN: r256753
gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/config/rs6000/rs6000.opt
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c [new file with mode: 0644]