From 09e2cdd329ca80f69f701dcc4e39973586ca0ba9 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sat, 10 Nov 2012 15:26:17 +0100 Subject: [PATCH] Fix calculation of x86 CPU family. It is just the sum of family and extended family. --- ir/be/ia32/ia32_architecture.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ir/be/ia32/ia32_architecture.c b/ir/be/ia32/ia32_architecture.c index 495ba438b..cd86c89f1 100644 --- a/ir/be/ia32/ia32_architecture.c +++ b/ir/be/ia32/ia32_architecture.c @@ -583,8 +583,8 @@ static cpu_arch_features auto_detect_Intel(x86_cpu_info_t const *info) { cpu_arch_features auto_arch = cpu_generic; - unsigned family = (info->cpu_ext_family << 4) | info->cpu_family; - unsigned model = (info->cpu_ext_model << 4) | info->cpu_model; + unsigned family = info->cpu_ext_family + info->cpu_family; + unsigned model = (info->cpu_ext_model << 4) | info->cpu_model; switch (family) { case 4: @@ -658,8 +658,8 @@ static cpu_arch_features auto_detect_AMD(x86_cpu_info_t const *info) unsigned family, model; if (info->cpu_family == 0x0F) { - family = (info->cpu_ext_family << 4) | info->cpu_family; - model = (info->cpu_ext_model << 4) | info->cpu_model; + family = info->cpu_ext_family + info->cpu_family; + model = (info->cpu_ext_model << 4) | info->cpu_model; } else { family = info->cpu_family; model = info->cpu_model; @@ -711,8 +711,8 @@ static cpu_arch_features auto_detect_AMD(x86_cpu_info_t const *info) case 0x0F: auto_arch = cpu_k8_generic; break; - case 0x1F: - case 0x2F: /* AMD Family 11h */ + case 0x10: + case 0x11: /* AMD Family 11h */ auto_arch = cpu_k10_generic; break; default: -- 2.20.1