diff options
author | Julia Koval <julia.koval@intel.com> | 2017-11-07 20:11:08 +0100 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2017-11-07 19:11:08 +0000 |
commit | d4bc3829f139406a9b8d238d834fb1580f68e1ec (patch) | |
tree | e451bb0175417322e852a2d7ca52ff5f2bbc67cc /gcc/common | |
parent | d8dcc3a67dc8dca69d7f03f6e9a6f2bec141b103 (diff) | |
download | gcc-d4bc3829f139406a9b8d238d834fb1580f68e1ec.zip gcc-d4bc3829f139406a9b8d238d834fb1580f68e1ec.tar.gz gcc-d4bc3829f139406a9b8d238d834fb1580f68e1ec.tar.bz2 |
Fix SSE bits dependencies.
gcc/
PR target/82812
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
(ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
* config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
* config/i386/i386.opt: Ditto.
* config/i386/i386.c (ix86_target_string): Ditto.
(ix86_option_override_internal): Ditto.
(ix86_init_mpx_builtins): Move MPX to args2.
(ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
* config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
__builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
__builtin_ia32_vgf2p8affineinvqb_v32qi,
__builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
__builtin_ia32_vgf2p8affineinvqb_v16qi,
__builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
From-SVN: r254507
Diffstat (limited to 'gcc/common')
-rw-r--r-- | gcc/common/config/i386/i386-common.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index ada918e..acad248 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -242,8 +242,7 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET \ (OPTION_MASK_ISA_MMX_UNSET \ - | OPTION_MASK_ISA_SSE_UNSET \ - | OPTION_MASK_ISA_MPX) + | OPTION_MASK_ISA_SSE_UNSET) /* Implement TARGET_HANDLE_OPTION. */ @@ -265,8 +264,12 @@ ix86_handle_option (struct gcc_options *opts, general registers are allowed. */ opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET; + opts->x_ix86_isa_flags2 + &= ~OPTION_MASK_ISA_MPX; opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET; + opts->x_ix86_isa_flags2_explicit + |= OPTION_MASK_ISA_MPX; opts->x_target_flags &= ~MASK_80387; } @@ -493,13 +496,13 @@ ix86_handle_option (struct gcc_options *opts, 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; + opts->x_ix86_isa_flags |= OPTION_MASK_ISA_GFNI_SET; + opts->x_ix86_isa_flags_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; + opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_GFNI_UNSET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_GFNI_UNSET; } return true; |