Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/google/cpu_features.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Kurushin <ajax16384@gmail.com>2022-08-08 10:27:18 +0300
committerGitHub <noreply@github.com>2022-08-08 10:27:18 +0300
commit4e8d2e3a22b95b917b1aecb921611ebd70e0184c (patch)
tree500863d77fc96ebbce16a1b5480e59ba77c21b02
parent876b9e6a73cd7b15cc6d99d0bfefbde6f36eaea3 (diff)
add intel goldmont plus (#256)
* add intel goldmont plus (INTEL_ATOM_GMT_PLUS)
-rw-r--r--include/cpuinfo_x86.h1
-rw-r--r--src/impl_x86__base_implementation.inl4
-rw-r--r--test/cpuinfo_x86_test.cc15
3 files changed, 20 insertions, 0 deletions
diff --git a/include/cpuinfo_x86.h b/include/cpuinfo_x86.h
index 49d27b9..108c9b1 100644
--- a/include/cpuinfo_x86.h
+++ b/include/cpuinfo_x86.h
@@ -140,6 +140,7 @@ typedef enum {
INTEL_BDW, // BROADWELL
INTEL_SKL, // SKYLAKE
INTEL_ATOM_GMT, // GOLDMONT
+ INTEL_ATOM_GMT_PLUS, // GOLDMONT+
INTEL_ATOM_TMT, // TREMONT
INTEL_KBL, // KABY LAKE
INTEL_CFL, // COFFEE LAKE
diff --git a/src/impl_x86__base_implementation.inl b/src/impl_x86__base_implementation.inl
index 4fcef31..cabb867 100644
--- a/src/impl_x86__base_implementation.inl
+++ b/src/impl_x86__base_implementation.inl
@@ -466,6 +466,9 @@ X86Microarchitecture GetX86Microarchitecture(const X86Info* info) {
case CPUID(0x06, 0x5C):
// https://en.wikipedia.org/wiki/Goldmont
return INTEL_ATOM_GMT;
+ case CPUID(0x06, 0x7A):
+ // https://en.wikichip.org/wiki/intel/microarchitectures/goldmont_plus
+ return INTEL_ATOM_GMT_PLUS;
case CPUID(0x06, 0x8A):
case CPUID(0x06, 0x96):
case CPUID(0x06, 0x9C):
@@ -1795,6 +1798,7 @@ CacheInfo GetX86CacheInfo(void) {
LINE(INTEL_BDW) \
LINE(INTEL_SKL) \
LINE(INTEL_ATOM_GMT) \
+ LINE(INTEL_ATOM_GMT_PLUS) \
LINE(INTEL_ATOM_TMT) \
LINE(INTEL_KBL) \
LINE(INTEL_CFL) \
diff --git a/test/cpuinfo_x86_test.cc b/test/cpuinfo_x86_test.cc
index 93ecc91..69551e6 100644
--- a/test/cpuinfo_x86_test.cc
+++ b/test/cpuinfo_x86_test.cc
@@ -1169,6 +1169,21 @@ TEST_F(CpuidX86Test, INTEL_LAKEMONT) {
X86Microarchitecture::INTEL_LAKEMONT);
}
+// https://github.com/InstLatx64/InstLatx64/blob/master/GenuineIntel/GenuineIntel00706A8_GoldmontPlus_CPUID.txt
+TEST_F(CpuidX86Test, INTEL_GOLDMONT_PLUS) {
+ cpu().SetLeaves({
+ {{0x00000000, 0}, Leaf{0x00000018, 0x756E6547, 0x6c65746E, 0x49656E69}},
+ {{0x00000001, 0}, Leaf{0x000706A8, 0x00400800, 0x4FF8EBBF, 0xBFEBFBFF}},
+ });
+ const auto info = GetX86Info();
+
+ EXPECT_STREQ(info.vendor, CPU_FEATURES_VENDOR_GENUINE_INTEL);
+ EXPECT_EQ(info.family, 0x06);
+ EXPECT_EQ(info.model, 0x7A);
+ EXPECT_EQ(GetX86Microarchitecture(&info),
+ X86Microarchitecture::INTEL_ATOM_GMT_PLUS);
+}
+
// https://github.com/InstLatx64/InstLatx64/blob/master/GenuineIntel/GenuineIntel0050670_KnightsLanding_CPUID.txt
TEST_F(CpuidX86Test, INTEL_KNIGHTS_LANDING) {
cpu().SetLeaves({