[gcc]
commit3fccde8c214fe24692c3011ff0da9ee561bd4ecb
authorwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Jan 2018 16:49:39 +0000 (16 16:49 +0000)
committerwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Jan 2018 16:49:39 +0000 (16 16:49 +0000)
tree28ab18627227e62c04b553f18231238115ca574a
parent1064018978d563aa43cde01690235ffd0a4137cb
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256753 138bc75d-0d04-0410-961f-82ee72b054a4
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]