]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
x86: Use __get_cpu_features to get cpu_features
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 24 May 2017 13:28:37 +0000 (06:28 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 24 May 2017 13:28:52 +0000 (06:28 -0700)
Remove is_intel, is_amd and max_cpuid macros.  Use __get_cpu_features
to get cpu_features instead.

* sysdeps/x86/cacheinfo.c (is_intel): Removed.
(is_amd): Likewise.
(max_cpuid): Likewise.
(__cache_sysconf): Use __get_cpu_features to get cpu_features.
(init_cacheinfo): Likewise.

ChangeLog
sysdeps/x86/cacheinfo.c

index 865c7e99609844099e37aced7a5e84e89e5cd97f..80a6c3ec9721df56ea33f7c661bd1dfd362e1b06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2017-05-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86/cacheinfo.c (is_intel): Removed.
+       (is_amd): Likewise.
+       (max_cpuid): Likewise.
+       (__cache_sysconf): Use __get_cpu_features to get cpu_features.
+       (init_cacheinfo): Likewise.
+
 2017-05-23  Joseph Myers  <joseph@codesourcery.com>
 
        [BZ #21511]
index 1ccbe41b8f3625d785c0d942d9888d8326604c5d..4594a2fa60fda568fce0a7d47d759324a576d04c 100644 (file)
 #include <cpuid.h>
 #include <init-arch.h>
 
-#define is_intel GLRO(dl_x86_cpu_features).kind == arch_kind_intel
-#define is_amd GLRO(dl_x86_cpu_features).kind == arch_kind_amd
-#define max_cpuid GLRO(dl_x86_cpu_features).max_cpuid
-
 static const struct intel_02_cache_info
 {
   unsigned char idx;
@@ -436,10 +432,12 @@ long int
 attribute_hidden
 __cache_sysconf (int name)
 {
-  if (is_intel)
-    return handle_intel (name, max_cpuid);
+  const struct cpu_features *cpu_features = __get_cpu_features ();
+
+  if (cpu_features->kind == arch_kind_intel)
+    return handle_intel (name, cpu_features->max_cpuid);
 
-  if (is_amd)
+  if (cpu_features->kind == arch_kind_amd)
     return handle_amd (name);
 
   // XXX Fill in more vendors.
@@ -489,8 +487,10 @@ init_cacheinfo (void)
   long int shared = -1;
   unsigned int level;
   unsigned int threads = 0;
+  const struct cpu_features *cpu_features = __get_cpu_features ();
+  int max_cpuid = cpu_features->max_cpuid;
 
-  if (is_intel)
+  if (cpu_features->kind == arch_kind_intel)
     {
       data = handle_intel (_SC_LEVEL1_DCACHE_SIZE, max_cpuid);
 
@@ -691,8 +691,7 @@ intel_bug_no_cache_info:
          shared += core;
        }
     }
-  /* This spells out "AuthenticAMD".  */
-  else if (is_amd)
+  else if (cpu_features->kind == arch_kind_amd)
     {
       data   = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
       long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);