mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 11:20:07 +00:00
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.
This commit is contained in:
parent
666c0c5efa
commit
7c1d722554
@ -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>
|
2017-05-23 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #21511]
|
[BZ #21511]
|
||||||
|
@ -23,10 +23,6 @@
|
|||||||
#include <cpuid.h>
|
#include <cpuid.h>
|
||||||
#include <init-arch.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
|
static const struct intel_02_cache_info
|
||||||
{
|
{
|
||||||
unsigned char idx;
|
unsigned char idx;
|
||||||
@ -436,10 +432,12 @@ long int
|
|||||||
attribute_hidden
|
attribute_hidden
|
||||||
__cache_sysconf (int name)
|
__cache_sysconf (int name)
|
||||||
{
|
{
|
||||||
if (is_intel)
|
const struct cpu_features *cpu_features = __get_cpu_features ();
|
||||||
return handle_intel (name, max_cpuid);
|
|
||||||
|
|
||||||
if (is_amd)
|
if (cpu_features->kind == arch_kind_intel)
|
||||||
|
return handle_intel (name, cpu_features->max_cpuid);
|
||||||
|
|
||||||
|
if (cpu_features->kind == arch_kind_amd)
|
||||||
return handle_amd (name);
|
return handle_amd (name);
|
||||||
|
|
||||||
// XXX Fill in more vendors.
|
// XXX Fill in more vendors.
|
||||||
@ -489,8 +487,10 @@ init_cacheinfo (void)
|
|||||||
long int shared = -1;
|
long int shared = -1;
|
||||||
unsigned int level;
|
unsigned int level;
|
||||||
unsigned int threads = 0;
|
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);
|
data = handle_intel (_SC_LEVEL1_DCACHE_SIZE, max_cpuid);
|
||||||
|
|
||||||
@ -691,8 +691,7 @@ intel_bug_no_cache_info:
|
|||||||
shared += core;
|
shared += core;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* This spells out "AuthenticAMD". */
|
else if (cpu_features->kind == arch_kind_amd)
|
||||||
else if (is_amd)
|
|
||||||
{
|
{
|
||||||
data = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
|
data = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
|
||||||
long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
|
long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
|
||||||
|
Loading…
Reference in New Issue
Block a user