aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.7/gcc/config/i386/driver-i386.c
diff options
context:
space:
mode:
authorPavel Chupin <pavel.v.chupin@intel.com>2013-05-30 15:35:10 +0400
committerPavel Chupin <pavel.v.chupin@intel.com>2013-05-30 17:34:03 +0400
commit41eff3d706b202f682f64fcc7773c64abd59ac45 (patch)
tree7ae546411a62a34687d2342880a4213df13a9fe3 /gcc-4.7/gcc/config/i386/driver-i386.c
parent53ac5cd1ae9fe073c4c14d3e068f778bfc1999d4 (diff)
downloadtoolchain_gcc-41eff3d706b202f682f64fcc7773c64abd59ac45.tar.gz
toolchain_gcc-41eff3d706b202f682f64fcc7773c64abd59ac45.tar.bz2
toolchain_gcc-41eff3d706b202f682f64fcc7773c64abd59ac45.zip
[4.7, 4.8] Release basic tuning for new Silvermont architecture
Support new switches: -march=slm/-mtune=slm This is backport of trunk r199444: 2013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com> Igor Zamyatin <igor.zamyatin@intel.com> Silvermont (SLM) architecture pipeline model, tuning and insn selection. * config.gcc: Add slm config options and target. * config/i386/slm.md: New. * config/i386/driver-i386.c (host_detect_local_cpu): Check * movbe. * gcc/config/i386/i386-c.c (ix86_target_macros_internal): New * case PROCESSOR_SLM. (ix86_target_macros_internal): Likewise. * gcc/config/i386/i386.c (slm_cost): New cost. (m_SLM): New macro flag. (initial_ix86_tune_features): Set m_SLM. (x86_accumulate_outgoing_args): Likewise. (x86_arch_always_fancy_math_387): Likewise. (processor_target_table): Add slm cost. (cpu_names): Add slm cpu name. (x86_option_override_internal): Set SLM ISA. (ix86_issue_rate): New case PROCESSOR_SLM. (ia32_multipass_dfa_lookahead): Likewise. (fold_builtin_cpu): Add slm. * config/i386/i386.h (TARGET_SLM): New target macro. (target_cpu_default): Add TARGET_CPU_DEFAULT_slm. (processor_type): Add PROCESSOR_SLM. * config/i386/i386.md (cpu): Add new value "slm". (slm.md): Include slm.md. * libgcc/config/i386/cpuinfo.c (INTEL_SLM): New enum value. Change-Id: I3ad6f5584e3fd5de52ac608dc699daaad24f2fe4 Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
Diffstat (limited to 'gcc-4.7/gcc/config/i386/driver-i386.c')
-rw-r--r--gcc-4.7/gcc/config/i386/driver-i386.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc-4.7/gcc/config/i386/driver-i386.c b/gcc-4.7/gcc/config/i386/driver-i386.c
index 0c006a342..9bd76fb0e 100644
--- a/gcc-4.7/gcc/config/i386/driver-i386.c
+++ b/gcc-4.7/gcc/config/i386/driver-i386.c
@@ -605,8 +605,14 @@ const char *host_detect_local_cpu (int argc, const char **argv)
/* Assume Sandy Bridge. */
cpu = "corei7-avx";
else if (has_sse4_2)
- /* Assume Core i7. */
- cpu = "corei7";
+ {
+ if (has_movbe)
+ /* Assume SLM. */
+ cpu = "slm";
+ else
+ /* Assume Core i7. */
+ cpu = "corei7";
+ }
else if (has_ssse3)
{
if (has_movbe)