diff options
Diffstat (limited to 'gcc/common/config/i386/i386-common.c')
-rw-r--r-- | gcc/common/config/i386/i386-common.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index 0f8c3e1df04..79b2472dc75 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -223,7 +223,7 @@ along with GCC; see the file COPYING3. If not see bool ix86_handle_option (struct gcc_options *opts, - struct gcc_options *opts_set ATTRIBUTE_UNUSED, + struct gcc_options *opts_set, const struct cl_decoded_option *decoded, location_t loc) { @@ -232,6 +232,20 @@ ix86_handle_option (struct gcc_options *opts, switch (code) { + case OPT_miamcu: + if (value) + { + /* Turn off x87/MMX/SSE/AVX codegen for -miamcu. */ + opts->x_target_flags &= ~MASK_80387; + opts_set->x_target_flags |= MASK_80387; + opts->x_ix86_isa_flags &= ~(OPTION_MASK_ISA_MMX_UNSET + | OPTION_MASK_ISA_SSE_UNSET); + opts->x_ix86_isa_flags_explicit |= (OPTION_MASK_ISA_MMX_UNSET + | OPTION_MASK_ISA_SSE_UNSET); + + } + return true; + case OPT_mmmx: if (value) { |