On Wed, May 18, 2022 at 7:32 PM H.J. Lu via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> On Wed, May 11, 2022 at 1:52 PM H.J. Lu <hjl.to...@gmail.com> wrote:
> >
> > 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, they are always
> > valid.
> >
> > 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 | 2 +-
> >  gcc/doc/invoke.texi      | 8 +++++++-
> >  2 files changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
> > index a6b0e28f238..0dbaacb57ed 100644
> > --- a/gcc/config/i386/i386.opt
> > +++ b/gcc/config/i386/i386.opt
> > @@ -1047,7 +1047,7 @@ Enable shadow stack built-in functions from 
> > Control-flow Enforcement
> >  Technology (CET).
> >
> >  mcet-switch
> > -Target Undocumented Var(flag_cet_switch) Init(0)
> > +Target Var(flag_cet_switch) Init(0)
> >  Turn on CET instrumentation for switch statements that use a jump table and
> >  an indirect jump.
> >
> > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> > index 7a35d9613a4..968853690f9 100644
> > --- a/gcc/doc/invoke.texi
> > +++ b/gcc/doc/invoke.texi
> > @@ -1420,7 +1420,8 @@ See RS/6000 and PowerPC Options.
> >  -msse4a  -m3dnow  -m3dnowa  -mpopcnt  -mabm  -mbmi  -mtbm  -mfma4  -mxop 
> > @gol
> >  -madx  -mlzcnt  -mbmi2  -mfxsr  -mxsave  -mxsaveopt  -mrtm  -mhle  -mlwp 
> > @gol
> >  -mmwaitx  -mclzero  -mpku  -mthreads  -mgfni  -mvaes  -mwaitpkg @gol
> > --mshstk -mmanual-endbr -mforce-indirect-call  -mavx512vbmi2 -mavx512bf16 
> > -menqcmd @gol
> > +-mshstk -mmanual-endbr -mcet-switch -mforce-indirect-call @gol
> > +-mavx512vbmi2 -mavx512bf16 -menqcmd @gol
> >  -mvpclmulqdq  -mavx512bitalg  -mmovdiri  -mmovdir64b  -mavx512vpopcntdq 
> > @gol
> >  -mavx5124fmaps  -mavx512vnni  -mavx5124vnniw  -mprfchw  -mrdpid @gol
> >  -mrdseed  -msgx -mavx512vp2intersect -mserialize -mtsxldtrk@gol
> > @@ -32641,6 +32642,11 @@ function attribute. This is useful when used with 
> > the option
> >  @option{-fcf-protection=branch} to control ENDBR insertion at the
> >  function entry.
> >
> > +@item -mcet-switch
> > +@opindex mcet-switch
> > +Turn on CET instrumentation for switch statements that use a jump table
> > +and an indirect jump.
> > +

Can you explain the difference between -mcet-switch and -mno-cet-switch here
please and indicate the default?  The above doesn't sound useful to me.

> >  @item -mcall-ms2sysv-xlogues
> >  @opindex mcall-ms2sysv-xlogues
> >  @opindex mno-call-ms2sysv-xlogues
> > --
> > 2.35.1
> >
>
> Any comments?
>
> Thanks.
>
> --
> H.J.

Reply via email to