diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-05-24 06:28:37 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-05-24 06:28:52 -0700 |
commit | 7c1d722554dc3422295a36da631e03503b676935 (patch) | |
tree | 3c6990706437f54fb42d009738eb8808eee9a19b | |
parent | 666c0c5efa6db73632a6894bf028fef9f3b60d71 (diff) | |
download | glibc-7c1d722554dc3422295a36da631e03503b676935.tar glibc-7c1d722554dc3422295a36da631e03503b676935.tar.gz glibc-7c1d722554dc3422295a36da631e03503b676935.tar.bz2 glibc-7c1d722554dc3422295a36da631e03503b676935.zip |
x86: Use __get_cpu_features to get cpu_features
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.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | sysdeps/x86/cacheinfo.c | 19 |
2 files changed, 17 insertions, 10 deletions
@@ -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] diff --git a/sysdeps/x86/cacheinfo.c b/sysdeps/x86/cacheinfo.c index 1ccbe41b8f..4594a2fa60 100644 --- a/sysdeps/x86/cacheinfo.c +++ b/sysdeps/x86/cacheinfo.c @@ -23,10 +23,6 @@ #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); |