1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2025-02-02 20:14:07 +00:00

Merge pull request #126 from X0rg/master

Fix for Zen 2
This commit is contained in:
Veselin Georgiev 2019-07-12 11:20:06 +03:00 committed by GitHub
commit 96810180a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 217 additions and 3 deletions

1
.gitignore vendored
View file

@ -39,3 +39,4 @@ libcpuid/x64
cpuid_tool/x32 cpuid_tool/x32
cpuid_tool/x64 cpuid_tool/x64
*.vcxproj.user *.vcxproj.user
tests/convert_instlatx64

View file

@ -348,9 +348,18 @@ static void load_amd_features(struct cpu_raw_data_t* raw, struct cpu_id_t* data)
if (raw->ext_cpuid[0][0] >= 0x80000007) if (raw->ext_cpuid[0][0] >= 0x80000007)
match_features(matchtable_edx87, COUNT_OF(matchtable_edx87), raw->ext_cpuid[7][3], data); match_features(matchtable_edx87, COUNT_OF(matchtable_edx87), raw->ext_cpuid[7][3], data);
if (raw->ext_cpuid[0][0] >= 0x8000001a) { if (raw->ext_cpuid[0][0] >= 0x8000001a) {
/* We have the extended info about SSE unit size */ /* We have the extended info about SSE unit size
Extracted from BKDG, about CPUID_Fn8000001A_EAX [Performance Optimization Identifiers] (Core::X86::Cpuid::PerfOptId):
- bit 2: FP256
- bit 1: MOVU
- bit 0: FP128 */
data->detection_hints[CPU_HINT_SSE_SIZE_AUTH] = 1; data->detection_hints[CPU_HINT_SSE_SIZE_AUTH] = 1;
data->sse_size = (raw->ext_cpuid[0x1a][0] & 1) ? 128 : 64; if ((raw->ext_cpuid[0x1a][0] >> 2) & 1)
data->sse_size = 256;
else if ((raw->ext_cpuid[0x1a][0]) & 1)
data->sse_size = 128;
else
data->sse_size = 64;
} }
} }

View file

@ -73,6 +73,6 @@ ext_cpuid[31]=0001000f 0000016f 000001fd 00000001
64 64
64 64
-1 -1
64 (authoritative) 256 (authoritative)
Ryzen 5 (Matisse) Ryzen 5 (Matisse)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht pni pclmul monitor ssse3 cx16 sse4_1 sse4_2 syscall movbe popcnt aes xsave osxsave avx mmxext nx fxsr_opt rdtscp lm lahf_lm cmp_legacy svm abm misalignsse sse4a 3dnowprefetch osvw ibs skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2 fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht pni pclmul monitor ssse3 cx16 sse4_1 sse4_2 syscall movbe popcnt aes xsave osxsave avx mmxext nx fxsr_opt rdtscp lm lahf_lm cmp_legacy svm abm misalignsse sse4a 3dnowprefetch osvw ibs skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2

View file

@ -0,0 +1,102 @@
basic_cpuid[0]=00000010 68747541 444d4163 69746e65
basic_cpuid[0]=00000010 68747541 444d4163 69746e65
basic_cpuid[1]=00870f10 00100800 7ed8320b 178bfbff
basic_cpuid[2]=00000000 00000000 00000000 00000000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[5]=00000040 00000040 00000003 00000011
basic_cpuid[6]=00000004 00000000 00000001 00000000
basic_cpuid[7]=00000000 219c91a9 00400004 00000000
basic_cpuid[8]=00000000 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=00000000 00000000 00000000 00000000
basic_cpuid[11]=00000001 00000002 00000100 00000000
basic_cpuid[11]=00000001 00000002 00000100 00000000
basic_cpuid[11]=00000007 00000010 00000201 00000000
basic_cpuid[11]=00000007 00000010 00000201 00000000
basic_cpuid[12]=00000000 00000000 00000000 00000000
basic_cpuid[13]=00000207 00000340 00000380 00000000
basic_cpuid[13]=00000207 00000340 00000380 00000000
basic_cpuid[13]=0000000f 00000340 00000000 00000000
basic_cpuid[13]=0000000f 00000340 00000000 00000000
basic_cpuid[13]=00000100 00000240 00000000 00000000
basic_cpuid[13]=00000100 00000240 00000000 00000000
basic_cpuid[13]=00000040 00000340 00000000 00000000
basic_cpuid[13]=00000040 00000340 00000000 00000000
basic_cpuid[14]=00000000 00000000 00000000 00000000
basic_cpuid[15]=00000000 000000ff 00000000 00000002
basic_cpuid[15]=00000000 000000ff 00000000 00000002
basic_cpuid[15]=00000000 00000040 000000ff 00000007
basic_cpuid[15]=00000000 00000040 000000ff 00000007
basic_cpuid[16]=00000000 00000002 00000000 00000000
basic_cpuid[16]=00000000 00000002 00000000 00000000
basic_cpuid[16]=0000000f 00000000 00000004 0000000f
basic_cpuid[16]=0000000f 00000000 00000004 0000000f
ext_cpuid[0]=80000020 68747541 444d4163 69746e65
ext_cpuid[0]=80000020 68747541 444d4163 69746e65
ext_cpuid[1]=00870f10 20000000 75c237ff 2fd3fbff
ext_cpuid[2]=20444d41 657a7952 2037206e 30303733
ext_cpuid[2]=20444d41 657a7952 2037206e 30303733
ext_cpuid[3]=2d382058 65726f43 6f725020 73736563
ext_cpuid[3]=2d382058 65726f43 6f725020 73736563
ext_cpuid[4]=2020726f 20202020 20202020 00202020
ext_cpuid[4]=2020726f 20202020 20202020 00202020
ext_cpuid[5]=ff40ff40 ff40ff40 20080140 20080140
ext_cpuid[5]=ff40ff40 ff40ff40 20080140 20080140
ext_cpuid[6]=48006400 68006400 02006140 01009140
ext_cpuid[6]=48006400 68006400 02006140 01009140
ext_cpuid[7]=00000000 0000001b 00000000 00006799
ext_cpuid[8]=00003030 010eb757 0000700f 00010000
ext_cpuid[9]=00000000 00000000 00000000 00000000
ext_cpuid[10]=00000001 00008000 00000000 0013bcff
ext_cpuid[11]=00000000 00000000 00000000 00000000
ext_cpuid[12]=00000000 00000000 00000000 00000000
ext_cpuid[13]=00000000 00000000 00000000 00000000
ext_cpuid[14]=00000000 00000000 00000000 00000000
ext_cpuid[15]=00000000 00000000 00000000 00000000
ext_cpuid[16]=00000000 00000000 00000000 00000000
ext_cpuid[17]=00000000 00000000 00000000 00000000
ext_cpuid[18]=00000000 00000000 00000000 00000000
ext_cpuid[19]=00000000 00000000 00000000 00000000
ext_cpuid[20]=00000000 00000000 00000000 00000000
ext_cpuid[21]=00000000 00000000 00000000 00000000
ext_cpuid[22]=00000000 00000000 00000000 00000000
ext_cpuid[23]=00000000 00000000 00000000 00000000
ext_cpuid[24]=00000000 00000000 00000000 00000000
ext_cpuid[25]=f040f040 00000000 00000000 00000000
ext_cpuid[26]=00000006 00000000 00000000 00000000
ext_cpuid[27]=000003ff 00000000 00000000 00000000
ext_cpuid[28]=00000000 00000000 00000000 00000000
ext_cpuid[29]=00004121 01c0003f 0000003f 00000000
ext_cpuid[29]=00004121 01c0003f 0000003f 00000000
ext_cpuid[29]=00004122 01c0003f 0000003f 00000000
ext_cpuid[29]=00004122 01c0003f 0000003f 00000000
ext_cpuid[29]=00004143 01c0003f 000003ff 00000002
ext_cpuid[29]=00004143 01c0003f 000003ff 00000002
ext_cpuid[29]=0001c163 03c0003f 00003fff 00000001
ext_cpuid[29]=0001c163 03c0003f 00003fff 00000001
ext_cpuid[30]=00000000 00000100 00000000 00000000
ext_cpuid[31]=0001000f 0000016f 000001fd 00000001
--------------------------------------------------------------------------------
15
1
0
23
113
8
16
32
32
512
32768
-1
8
8
0
-1
64
64
64
-1
256 (authoritative)
Ryzen 7 (Matisse)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht pni pclmul monitor ssse3 cx16 sse4_1 sse4_2 syscall movbe popcnt aes xsave osxsave avx mmxext nx fxsr_opt rdtscp lm lahf_lm cmp_legacy svm abm misalignsse sse4a 3dnowprefetch osvw ibs skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2

View file

@ -0,0 +1,102 @@
basic_cpuid[0]=00000010 68747541 444d4163 69746e65
basic_cpuid[0]=00000010 68747541 444d4163 69746e65
basic_cpuid[1]=00870f10 00180800 7ed8320b 178bfbff
basic_cpuid[2]=00000000 00000000 00000000 00000000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[5]=00000040 00000040 00000003 00000011
basic_cpuid[6]=00000004 00000000 00000001 00000000
basic_cpuid[7]=00000000 219c91a9 00400004 00000000
basic_cpuid[8]=00000000 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=00000000 00000000 00000000 00000000
basic_cpuid[11]=00000001 00000002 00000100 00000000
basic_cpuid[11]=00000001 00000002 00000100 00000000
basic_cpuid[11]=00000007 00000018 00000201 00000000
basic_cpuid[11]=00000007 00000018 00000201 00000000
basic_cpuid[12]=00000000 00000000 00000000 00000000
basic_cpuid[13]=00000207 00000340 00000380 00000000
basic_cpuid[13]=00000207 00000340 00000380 00000000
basic_cpuid[13]=0000000f 00000340 00000000 00000000
basic_cpuid[13]=0000000f 00000340 00000000 00000000
basic_cpuid[13]=00000100 00000240 00000000 00000000
basic_cpuid[13]=00000100 00000240 00000000 00000000
basic_cpuid[13]=00000040 00000340 00000000 00000000
basic_cpuid[13]=00000040 00000340 00000000 00000000
basic_cpuid[14]=00000000 00000000 00000000 00000000
basic_cpuid[15]=00000000 000000ff 00000000 00000002
basic_cpuid[15]=00000000 000000ff 00000000 00000002
basic_cpuid[15]=00000000 00000040 000000ff 00000007
basic_cpuid[15]=00000000 00000040 000000ff 00000007
basic_cpuid[16]=00000000 00000002 00000000 00000000
basic_cpuid[16]=00000000 00000002 00000000 00000000
basic_cpuid[16]=0000000f 00000000 00000004 0000000f
basic_cpuid[16]=0000000f 00000000 00000004 0000000f
ext_cpuid[0]=80000020 68747541 444d4163 69746e65
ext_cpuid[0]=80000020 68747541 444d4163 69746e65
ext_cpuid[1]=00870f10 20000000 75c237ff 2fd3fbff
ext_cpuid[2]=20444d41 657a7952 2039206e 30303933
ext_cpuid[2]=20444d41 657a7952 2039206e 30303933
ext_cpuid[3]=32312058 726f432d 72502065 7365636f
ext_cpuid[3]=32312058 726f432d 72502065 7365636f
ext_cpuid[4]=20726f73 20202020 20202020 00202020
ext_cpuid[4]=20726f73 20202020 20202020 00202020
ext_cpuid[5]=ff40ff40 ff40ff40 20080140 20080140
ext_cpuid[5]=ff40ff40 ff40ff40 20080140 20080140
ext_cpuid[6]=48006400 68006400 02006140 02009140
ext_cpuid[6]=48006400 68006400 02006140 02009140
ext_cpuid[7]=00000000 0000001b 00000000 00006799
ext_cpuid[8]=00003030 010eb757 00007017 00010000
ext_cpuid[9]=00000000 00000000 00000000 00000000
ext_cpuid[10]=00000001 00008000 00000000 0013bcff
ext_cpuid[11]=00000000 00000000 00000000 00000000
ext_cpuid[12]=00000000 00000000 00000000 00000000
ext_cpuid[13]=00000000 00000000 00000000 00000000
ext_cpuid[14]=00000000 00000000 00000000 00000000
ext_cpuid[15]=00000000 00000000 00000000 00000000
ext_cpuid[16]=00000000 00000000 00000000 00000000
ext_cpuid[17]=00000000 00000000 00000000 00000000
ext_cpuid[18]=00000000 00000000 00000000 00000000
ext_cpuid[19]=00000000 00000000 00000000 00000000
ext_cpuid[20]=00000000 00000000 00000000 00000000
ext_cpuid[21]=00000000 00000000 00000000 00000000
ext_cpuid[22]=00000000 00000000 00000000 00000000
ext_cpuid[23]=00000000 00000000 00000000 00000000
ext_cpuid[24]=00000000 00000000 00000000 00000000
ext_cpuid[25]=f040f040 00000000 00000000 00000000
ext_cpuid[26]=00000006 00000000 00000000 00000000
ext_cpuid[27]=000003ff 00000000 00000000 00000000
ext_cpuid[28]=00000000 00000000 00000000 00000000
ext_cpuid[29]=00004121 01c0003f 0000003f 00000000
ext_cpuid[29]=00004121 01c0003f 0000003f 00000000
ext_cpuid[29]=00004122 01c0003f 0000003f 00000000
ext_cpuid[29]=00004122 01c0003f 0000003f 00000000
ext_cpuid[29]=00004143 01c0003f 000003ff 00000002
ext_cpuid[29]=00004143 01c0003f 000003ff 00000002
ext_cpuid[29]=00014163 03c0003f 00003fff 00000001
ext_cpuid[29]=00014163 03c0003f 00003fff 00000001
ext_cpuid[30]=00000000 00000100 00000000 00000000
ext_cpuid[31]=0001000f 0000016f 000001fd 00000001
--------------------------------------------------------------------------------
15
1
0
23
113
12
24
32
32
512
65536
-1
8
8
0
-1
64
64
64
-1
256 (authoritative)
Ryzen 9 (Matisse)
fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht pni pclmul monitor ssse3 cx16 sse4_1 sse4_2 syscall movbe popcnt aes xsave osxsave avx mmxext nx fxsr_opt rdtscp lm lahf_lm cmp_legacy svm abm misalignsse sse4a 3dnowprefetch osvw ibs skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2