diff options
Diffstat (limited to 'gcc/common/config/i386/i386-common.c')
-rw-r--r-- | gcc/common/config/i386/i386-common.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index 4185176495a..ada918e6f2a 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -137,6 +137,9 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_CLZERO_SET OPTION_MASK_ISA_CLZERO #define OPTION_MASK_ISA_PKU_SET OPTION_MASK_ISA_PKU #define OPTION_MASK_ISA_RDPID_SET OPTION_MASK_ISA_RDPID +#define OPTION_MASK_ISA_GFNI_SET OPTION_MASK_ISA_GFNI +#define OPTION_MASK_ISA_IBT_SET OPTION_MASK_ISA_IBT +#define OPTION_MASK_ISA_SHSTK_SET OPTION_MASK_ISA_SHSTK /* Define a set of ISAs which aren't available when a given ISA is disabled. MMX and SSE ISAs are handled separately. */ @@ -202,6 +205,9 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_CLZERO_UNSET OPTION_MASK_ISA_CLZERO #define OPTION_MASK_ISA_PKU_UNSET OPTION_MASK_ISA_PKU #define OPTION_MASK_ISA_RDPID_UNSET OPTION_MASK_ISA_RDPID +#define OPTION_MASK_ISA_GFNI_UNSET OPTION_MASK_ISA_GFNI +#define OPTION_MASK_ISA_IBT_UNSET OPTION_MASK_ISA_IBT +#define OPTION_MASK_ISA_SHSTK_UNSET OPTION_MASK_ISA_SHSTK /* SSE4 includes both SSE4.1 and SSE4.2. -mno-sse4 should the same as -mno-sse4.1. */ @@ -484,6 +490,48 @@ ix86_handle_option (struct gcc_options *opts, } return true; + case OPT_mgfni: + if (value) + { + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA_GFNI_SET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_GFNI_SET; + } + else + { + opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA_GFNI_UNSET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_GFNI_UNSET; + } + return true; + + case OPT_mcet: + case OPT_mibt: + if (value) + { + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA_IBT_SET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_IBT_SET; + } + else + { + opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA_IBT_UNSET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_IBT_UNSET; + } + if (code != OPT_mcet) + return true; + /* fall through. */ + + case OPT_mshstk: + if (value) + { + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA_SHSTK_SET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_SHSTK_SET; + } + else + { + opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA_SHSTK_UNSET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA_SHSTK_UNSET; + } + return true; + case OPT_mavx5124fmaps: if (value) { |