aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-10-27 07:48:54 -0700
committerH.J. Lu <hjl.tools@gmail.com>2021-11-17 13:35:31 -0800
commit53a643f8568067d7700a9f2facc8ba39974973d3 (patch)
tree964ff4b7dbbab01a9b2e2f006c5a46c4e550c508 /libcpp
parent8e410de43ce039bbe08f1e0195e3b6ec24f68cae (diff)
downloadgcc-53a643f8568067d7700a9f2facc8ba39974973d3.zip
gcc-53a643f8568067d7700a9f2facc8ba39974973d3.tar.gz
gcc-53a643f8568067d7700a9f2facc8ba39974973d3.tar.bz2
x86: Add -mharden-sls=[none|all|return|indirect-branch]
Add -mharden-sls= to mitigate against straight line speculation (SLS) for function return and indirect branch by adding an INT3 instruction after function return and indirect branch. gcc/ PR target/102952 * config/i386/i386-opts.h (harden_sls): New enum. * config/i386/i386.c (output_indirect_thunk): Mitigate against SLS for function return. (ix86_output_function_return): Likewise. (ix86_output_jmp_thunk_or_indirect): Mitigate against indirect branch. (ix86_output_indirect_jmp): Likewise. (ix86_output_call_insn): Likewise. * config/i386/i386.opt: Add -mharden-sls=. * doc/invoke.texi: Document -mharden-sls=. gcc/testsuite/ PR target/102952 * gcc.target/i386/harden-sls-1.c: New test. * gcc.target/i386/harden-sls-2.c: Likewise. * gcc.target/i386/harden-sls-3.c: Likewise. * gcc.target/i386/harden-sls-4.c: Likewise. * gcc.target/i386/harden-sls-5.c: Likewise.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions