diff options
Diffstat (limited to 'gcc/common/config')
-rw-r--r-- | gcc/common/config/arm/arm-common.c | 1 | ||||
-rw-r--r-- | gcc/common/config/i386/i386-common.c | 69 | ||||
-rw-r--r-- | gcc/common/config/rs6000/rs6000-common.c | 43 |
3 files changed, 73 insertions, 40 deletions
diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.c index b8348bfb9f2..d17b60ed5a8 100644 --- a/gcc/common/config/arm/arm-common.c +++ b/gcc/common/config/arm/arm-common.c @@ -35,6 +35,7 @@ static const struct default_options arm_option_optimization_table[] = /* Enable section anchors by default at -O1 or higher. */ { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 }, { OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1 }, + { OPT_LEVELS_1_PLUS, OPT_fsched_pressure, NULL, 1 }, { OPT_LEVELS_NONE, 0, NULL, 0 } }; diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c index 70b7eb792f6..e05cd562f44 100644 --- a/gcc/common/config/i386/i386-common.c +++ b/gcc/common/config/i386/i386-common.c @@ -55,6 +55,9 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_AVX2_SET \ (OPTION_MASK_ISA_AVX2 | OPTION_MASK_ISA_AVX_SET) #define OPTION_MASK_ISA_RTM_SET OPTION_MASK_ISA_RTM +#define OPTION_MASK_ISA_PRFCHW_SET OPTION_MASK_ISA_PRFCHW +#define OPTION_MASK_ISA_RDSEED_SET OPTION_MASK_ISA_RDSEED +#define OPTION_MASK_ISA_ADX_SET OPTION_MASK_ISA_ADX /* SSE4 includes both SSE4.1 and SSE4.2. -msse4 should be the same as -msse4.2. */ @@ -123,6 +126,9 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA_FMA_UNSET OPTION_MASK_ISA_FMA #define OPTION_MASK_ISA_AVX2_UNSET OPTION_MASK_ISA_AVX2 #define OPTION_MASK_ISA_RTM_UNSET OPTION_MASK_ISA_RTM +#define OPTION_MASK_ISA_PRFCHW_UNSET OPTION_MASK_ISA_PRFCHW +#define OPTION_MASK_ISA_RDSEED_UNSET OPTION_MASK_ISA_RDSEED +#define OPTION_MASK_ISA_ADX_UNSET OPTION_MASK_ISA_ADX /* SSE4 includes both SSE4.1 and SSE4.2. -mno-sse4 should the same as -mno-sse4.1. */ @@ -568,6 +574,45 @@ ix86_handle_option (struct gcc_options *opts, } return true; + case OPT_mrdseed: + if (value) + { + opts->x_ix86_isa_flags |= OPTION_MASK_ISA_RDSEED_SET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_RDSEED_SET; + } + else + { + opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_RDSEED_UNSET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_RDSEED_UNSET; + } + return true; + + case OPT_mprfchw: + if (value) + { + opts->x_ix86_isa_flags |= OPTION_MASK_ISA_PRFCHW_SET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_PRFCHW_SET; + } + else + { + opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_PRFCHW_UNSET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_PRFCHW_UNSET; + } + return true; + + case OPT_madx: + if (value) + { + opts->x_ix86_isa_flags |= OPTION_MASK_ISA_ADX_SET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_ADX_SET; + } + else + { + opts->x_ix86_isa_flags &= ~OPTION_MASK_ISA_ADX_UNSET; + opts->x_ix86_isa_flags_explicit |= OPTION_MASK_ISA_ADX_UNSET; + } + return true; + /* Comes from final.c -- no real reason to change it. */ #define MAX_CODE_ALIGN 16 @@ -667,6 +712,30 @@ ix86_supports_split_stack (bool report ATTRIBUTE_UNUSED, return ret; } +/* Implement TARGET_EXCEPT_UNWIND_INFO. */ + +static enum unwind_info_type +i386_except_unwind_info (struct gcc_options *opts) +{ + /* Honor the --enable-sjlj-exceptions configure switch. */ +#ifdef CONFIG_SJLJ_EXCEPTIONS + if (CONFIG_SJLJ_EXCEPTIONS) + return UI_SJLJ; +#endif + + /* On windows 64, prefer SEH exceptions over anything else. */ + if (TARGET_64BIT && DEFAULT_ABI == MS_ABI && opts->x_flag_unwind_tables) + return UI_SEH; + + if (DWARF2_UNWIND_INFO) + return UI_DWARF2; + + return UI_SJLJ; +} + +#undef TARGET_EXCEPT_UNWIND_INFO +#define TARGET_EXCEPT_UNWIND_INFO i386_except_unwind_info + #undef TARGET_DEFAULT_TARGET_FLAGS #define TARGET_DEFAULT_TARGET_FLAGS \ (TARGET_DEFAULT \ diff --git a/gcc/common/config/rs6000/rs6000-common.c b/gcc/common/config/rs6000/rs6000-common.c index f40b69e3676..c903ba3983d 100644 --- a/gcc/common/config/rs6000/rs6000-common.c +++ b/gcc/common/config/rs6000/rs6000-common.c @@ -1,7 +1,5 @@ /* Common hooks for IBM RS/6000. - Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 1991-2012 Free Software Foundation, Inc. This file is part of GCC. @@ -83,18 +81,6 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, switch (code) { - case OPT_mno_power: - opts->x_target_flags &= ~(MASK_POWER | MASK_POWER2 - | MASK_MULTIPLE | MASK_STRING); - opts_set->x_target_flags |= (MASK_POWER | MASK_POWER2 - | MASK_MULTIPLE | MASK_STRING); - break; - case OPT_mno_powerpc: - opts->x_target_flags &= ~(MASK_POWERPC | MASK_PPC_GPOPT - | MASK_PPC_GFXOPT | MASK_POWERPC64); - opts_set->x_target_flags |= (MASK_POWERPC | MASK_PPC_GPOPT - | MASK_PPC_GFXOPT | MASK_POWERPC64); - break; case OPT_mfull_toc: opts->x_target_flags &= ~MASK_MINIMAL_TOC; opts->x_TARGET_NO_FP_IN_TOC = 0; @@ -121,9 +107,9 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, #else case OPT_m64: #endif - opts->x_target_flags |= MASK_POWERPC64 | MASK_POWERPC; + opts->x_target_flags |= MASK_POWERPC64; opts->x_target_flags |= ~opts_set->x_target_flags & MASK_PPC_GFXOPT; - opts_set->x_target_flags |= MASK_POWERPC64 | MASK_POWERPC; + opts_set->x_target_flags |= MASK_POWERPC64; break; #ifdef TARGET_USES_AIX64_OPT @@ -143,31 +129,8 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, } break; - case OPT_mpower: - if (value == 1) - { - opts->x_target_flags |= (MASK_MULTIPLE | MASK_STRING); - opts_set->x_target_flags |= (MASK_MULTIPLE | MASK_STRING); - } - break; - - case OPT_mpower2: - if (value == 1) - { - opts->x_target_flags |= (MASK_POWER | MASK_MULTIPLE | MASK_STRING); - opts_set->x_target_flags |= (MASK_POWER - | MASK_MULTIPLE - | MASK_STRING); - } - break; - case OPT_mpowerpc_gpopt: case OPT_mpowerpc_gfxopt: - if (value == 1) - { - opts->x_target_flags |= MASK_POWERPC; - opts_set->x_target_flags |= MASK_POWERPC; - } break; case OPT_mdebug_: |