x86: Document -mcet-switch
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 11 Mar 2022 20:51:34 +0000 (12:51 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 24 May 2022 16:05:07 +0000 (09:05 -0700)
commit2f4f7de787e5844515d27b2269fc472f95a9916a
treec1fe8a2d06e4412c1dbaa7534c7c2bcc7e4862bc
parentcde52d3a2d02d037da53e6974d5e39021030b346
x86: Document -mcet-switch

When -fcf-protection=branch is used, the compiler will generate jump
tables for switch statements where the indirect jump is prefixed with
the NOTRACK prefix, so it can jump to non-ENDBR targets.  Since the
indirect jump targets are generated by the compiler and stored in
read-only memory, this does not result in a direct loss of hardening.
But if the jump table index is attacker-controlled, the indirect jump
may not be constrained by CET.

Document -mcet-switch to generate jump tables for switch statements with
ENDBR and skip the NOTRACK prefix for indirect jump.  This option should
be used when the NOTRACK prefix is disabled.

PR target/104816
* config/i386/i386.opt: Remove Undocumented.
* doc/invoke.texi: Document -mcet-switch.
gcc/config/i386/i386.opt
gcc/doc/invoke.texi