From 081c354d1730104da78d071506d7472722e59380 Mon Sep 17 00:00:00 2001 From: Xorg Date: Sun, 7 Jul 2019 19:38:46 +0200 Subject: [PATCH 1/2] DB: Add AMD Ryzen 3000 --- libcpuid/libcpuid_internal.h | 6 +-- libcpuid/recog_amd.c | 22 ++++++-- tests/amd/zen+/ryzen5-picasso.test | 87 ++++++++++++++++++++++++++++++ tests/amd/zen2/ryzen5-matisse.test | 78 +++++++++++++++++++++++++++ 4 files changed, 186 insertions(+), 7 deletions(-) create mode 100644 tests/amd/zen+/ryzen5-picasso.test create mode 100644 tests/amd/zen2/ryzen5-matisse.test diff --git a/libcpuid/libcpuid_internal.h b/libcpuid/libcpuid_internal.h index 22bee45..e801e28 100644 --- a/libcpuid/libcpuid_internal.h +++ b/libcpuid/libcpuid_internal.h @@ -67,6 +67,7 @@ enum _common_bits_t { _3 = LBIT( 3 ), _5 = LBIT( 4 ), _7 = LBIT( 5 ), + _9 = LBIT( 6 ), }; // additional detection bits for Intel CPUs: @@ -75,9 +76,8 @@ enum _intel_bits_t { CELERON_ = LBIT( 11 ), CORE_ = LBIT( 12 ), _I_ = LBIT( 13 ), - _9 = LBIT( 14 ), - XEON_ = LBIT( 15 ), - ATOM_ = LBIT( 16 ), + XEON_ = LBIT( 14 ), + ATOM_ = LBIT( 15 ), }; typedef enum _intel_bits_t intel_bits_t; diff --git a/libcpuid/recog_amd.c b/libcpuid/recog_amd.c index 52c6120..87ddc85 100644 --- a/libcpuid/recog_amd.c +++ b/libcpuid/recog_amd.c @@ -262,22 +262,35 @@ const struct match_entry_t cpudb_amd[] = { { 15, 0, -1, 22, 48, 2, -1, -1, FUSION_E, 0 , 0, "Mullins X2" }, { 15, 0, -1, 22, 48, 4, -1, -1, FUSION_A, 0 , 0, "Mullins X4" }, - /* Family 17h: Zen Architecture (2017) */ + /* Family 17h: Zen Architecture (2017) => https://en.wikichip.org/wiki/amd/microarchitectures/zen */ { 15, -1, -1, 23, 1, -1, -1, -1, NC, EPYC_ , 0, "EPYC (Naples)" }, { 15, -1, -1, 23, 1, -1, -1, -1, NC, RYZEN_TR_ , 0, "Threadripper (Whitehaven)" }, { 15, -1, -1, 23, 1, -1, -1, -1, NC, RYZEN_|_7 , 0, "Ryzen 7 (Summit Ridge)" }, { 15, -1, -1, 23, 1, -1, -1, -1, NC, RYZEN_|_5 , 0, "Ryzen 5 (Summit Ridge)" }, { 15, -1, -1, 23, 1, -1, -1, -1, NC, RYZEN_|_3 , 0, "Ryzen 3 (Summit Ridge)" }, - /* APUs */ { 15, -1, -1, 23, 17, -1, -1, -1, NC, RYZEN_|_7 , 0, "Ryzen 7 (Raven Ridge)" }, { 15, -1, -1, 23, 17, -1, -1, -1, NC, RYZEN_|_5 , 0, "Ryzen 5 (Raven Ridge)" }, { 15, -1, -1, 23, 17, -1, -1, -1, NC, RYZEN_|_3 , 0, "Ryzen 3 (Raven Ridge)" }, { 15, -1, -1, 23, 17, -1, -1, -1, NC, ATHLON_ , 0, "Athlon (Raven Ridge)" }, - /* 2nd-gen, Zen+ (2018): */ + /* Zen+ (2018) => https://en.wikichip.org/wiki/amd/microarchitectures/zen%2B */ { 15, -1, -1, 23, 8, -1, -1, -1, NC, RYZEN_TR_ , 0, "Threadripper (Colfax)" }, { 15, -1, -1, 23, 8, -1, -1, -1, NC, RYZEN_|_7 , 0, "Ryzen 7 (Pinnacle Ridge)" }, { 15, -1, -1, 23, 8, -1, -1, -1, NC, RYZEN_|_5 , 0, "Ryzen 5 (Pinnacle Ridge)" }, { 15, -1, -1, 23, 8, -1, -1, -1, NC, RYZEN_|_3 , 0, "Ryzen 3 (Pinnacle Ridge)" }, + { 15, -1, -1, 23, 24, -1, -1, -1, NC, RYZEN_|_7 , 0, "Ryzen 7 (Picasso)" }, + { 15, -1, -1, 23, 24, -1, -1, -1, NC, RYZEN_|_5 , 0, "Ryzen 5 (Picasso)" }, + { 15, -1, -1, 23, 24, -1, -1, -1, NC, RYZEN_|_3 , 0, "Ryzen 3 (Picasso)" }, + { 15, -1, -1, 23, 24, -1, -1, -1, NC, ATHLON_ , 0, "Athlon (Picasso)" }, + /* Zen 2 (2019) => https://en.wikichip.org/wiki/amd/microarchitectures/zen_2 */ + { 15, -1, -1, 23, 113, -1, -1, -1, NC, EPYC_ , 0, "EPYC (Rome)" }, + { 15, -1, -1, 23, 113, -1, -1, -1, NC, RYZEN_|_9 , 0, "Ryzen 9 (Matisse)" }, + { 15, -1, -1, 23, 113, -1, -1, -1, NC, RYZEN_|_7 , 0, "Ryzen 7 (Matisse)" }, + { 15, -1, -1, 23, 113, -1, -1, -1, NC, RYZEN_|_5 , 0, "Ryzen 5 (Matisse)" }, + { 15, -1, -1, 23, 113, -1, -1, -1, NC, RYZEN_|_3 , 0, "Ryzen 3 (Matisse)" }, + //{ 15, -1, -1, 23, ??, -1, -1, -1, NC, RYZEN_|_7 , 0, "Ryzen 7 (Renoir)" }, //TBA + //{ 15, -1, -1, 23, ??, -1, -1, -1, NC, RYZEN_|_5 , 0, "Ryzen 5 (Renoir)" }, //TBA + //{ 15, -1, -1, 23, ??, -1, -1, -1, NC, RYZEN_|_3 , 0, "Ryzen 3 (Renoir)" }, //TBA + //{ 15, -1, -1, 23, ??, -1, -1, -1, NC, ATHLON_ , 0, "Athlon (Renoir)" }, //TBA /* Newer Opterons: */ @@ -468,13 +481,14 @@ static struct amd_code_and_bits_t decode_amd_codename_part1(const char *bs) if (amd_has_turion_modelname(bs)) { bits |= TURION_; } - if ((i = match_pattern(bs, "Ryzen [357]")) != 0) { + if ((i = match_pattern(bs, "Ryzen [3579]")) != 0) { bits |= RYZEN_; i--; switch (bs[i + 6]) { case '3': bits |= _3; break; case '5': bits |= _5; break; case '7': bits |= _7; break; + case '9': bits |= _9; break; } } diff --git a/tests/amd/zen+/ryzen5-picasso.test b/tests/amd/zen+/ryzen5-picasso.test new file mode 100644 index 0000000..dbdbb3a --- /dev/null +++ b/tests/amd/zen+/ryzen5-picasso.test @@ -0,0 +1,87 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00810f81 00080800 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 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00810f81 00000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 2035206e 30353533 +ext_cpuid[2]=20444d41 657a7952 2035206e 30353533 +ext_cpuid[3]=69772048 52206874 6f656461 6556206e +ext_cpuid[3]=69772048 52206874 6f656461 6556206e +ext_cpuid[4]=4d206167 6c69626f 66472065 00202078 +ext_cpuid[4]=4d206167 6c69626f 66472065 00202078 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=26006400 66006400 02006140 00208140 +ext_cpuid[6]=26006400 66006400 02006140 00208140 +ext_cpuid[7]=00000000 0000001b 00000000 00006599 +ext_cpuid[8]=00003030 00001007 00004007 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=0001c163 03c0003f 00000fff 00000001 +ext_cpuid[29]=0001c163 03c0003f 00000fff 00000001 +ext_cpuid[30]=00000000 00000100 00000000 00000000 +ext_cpuid[31]=0000000f 0000016f 0000000f 00000000 +-------------------------------------------------------------------------------- +15 +8 +1 +23 +24 +4 +8 +32 +64 +512 +4096 +-1 +8 +8 +16 +-1 +64 +64 +64 +-1 +128 (authoritative) +Ryzen 5 (Picasso) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand aperfmperf avx2 bmi1 bmi2 diff --git a/tests/amd/zen2/ryzen5-matisse.test b/tests/amd/zen2/ryzen5-matisse.test new file mode 100644 index 0000000..23ed254 --- /dev/null +++ b/tests/amd/zen2/ryzen5-matisse.test @@ -0,0 +1,78 @@ +basic_cpuid[0]=00000010 68747541 444d4163 69746e65 +basic_cpuid[1]=00870f10 000c0800 7ed8320b 178bfbff +basic_cpuid[2]=00000000 00000000 00000000 00000000 +basic_cpuid[3]=00000000 00000000 00000000 00000000 +basic_cpuid[4]=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[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000207 00000340 00000380 00000000 +basic_cpuid[13]=0000000f 00000340 00000000 00000000 +basic_cpuid[13]=00000100 00000240 00000000 00000000 +basic_cpuid[14]=00000000 00000000 00000000 00000000 +basic_cpuid[15]=00000000 000000ff 00000000 00000002 +basic_cpuid[16]=00000000 00000002 00000000 00000000 +ext_cpuid[0]=80000020 68747541 444d4163 69746e65 +ext_cpuid[1]=00870f10 20000000 75c237ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 2035206e 30303633 +ext_cpuid[3]=432d3620 2065726f 636f7250 6f737365 +ext_cpuid[4]=20202072 20202020 20202020 00202020 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 20080140 +ext_cpuid[6]=48006400 68006400 02006140 01009140 +ext_cpuid[7]=00000000 0000001b 00000000 00006799 +ext_cpuid[8]=00003030 010ef757 0000700b 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]=00004122 01c0003f 0000003f 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +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 +6 +12 +32 +32 +512 +32768 +-1 +8 +8 +0 +-1 +64 +64 +64 +-1 +64 (authoritative) +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 From 5aedd53624a7bc61f0976a6897d362f2777ddd1c Mon Sep 17 00:00:00 2001 From: Xorg Date: Sun, 7 Jul 2019 20:03:45 +0200 Subject: [PATCH 2/2] Add more test files for AMD Zen CPUs Dumps found on http://instlatx64.atw.hu/ --- tests/amd/zen+/ryzen7-pinnacle-ridge.test | 85 +++++++++++++++++++ tests/amd/zen+/threadripper-colfax.test | 85 +++++++++++++++++++ tests/amd/zen/epyc-naples.test | 85 +++++++++++++++++++ .../{ryzen3.test => ryzen3-raven-ridge.test} | 0 tests/amd/zen/ryzen5-raven-ridge.test | 85 +++++++++++++++++++ tests/amd/zen/ryzen5-summit-ridge.test | 85 +++++++++++++++++++ .../{ryzen7.test => ryzen7-summit-ridge.test} | 0 tests/amd/zen/threadripper-whitehaven.test | 85 +++++++++++++++++++ tests/convert_instlatx64.c | 62 ++++++++++++++ 9 files changed, 572 insertions(+) create mode 100644 tests/amd/zen+/ryzen7-pinnacle-ridge.test create mode 100644 tests/amd/zen+/threadripper-colfax.test create mode 100644 tests/amd/zen/epyc-naples.test rename tests/amd/zen/{ryzen3.test => ryzen3-raven-ridge.test} (100%) create mode 100644 tests/amd/zen/ryzen5-raven-ridge.test create mode 100644 tests/amd/zen/ryzen5-summit-ridge.test rename tests/amd/zen/{ryzen7.test => ryzen7-summit-ridge.test} (100%) create mode 100644 tests/amd/zen/threadripper-whitehaven.test create mode 100644 tests/convert_instlatx64.c diff --git a/tests/amd/zen+/ryzen7-pinnacle-ridge.test b/tests/amd/zen+/ryzen7-pinnacle-ridge.test new file mode 100644 index 0000000..387dd9e --- /dev/null +++ b/tests/amd/zen+/ryzen7-pinnacle-ridge.test @@ -0,0 +1,85 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00800f82 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 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00800f82 20000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 2037206e 30303732 +ext_cpuid[2]=20444d41 657a7952 2037206e 30303732 +ext_cpuid[3]=69452058 2d746867 65726f43 6f725020 +ext_cpuid[3]=69452058 2d746867 65726f43 6f725020 +ext_cpuid[4]=73736563 2020726f 20202020 00202020 +ext_cpuid[4]=73736563 2020726f 20202020 00202020 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=26006400 66006400 02006140 00808140 +ext_cpuid[7]=00000000 0000001b 00000000 00006799 +ext_cpuid[8]=00003030 00000007 0000400f 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=0001c163 03c0003f 00001fff 00000001 +ext_cpuid[29]=0001c163 03c0003f 00001fff 00000001 +ext_cpuid[30]=00000000 00000100 00000000 00000000 +ext_cpuid[31]=0000000f 0000016f 0000000f 00000000 +-------------------------------------------------------------------------------- +15 +8 +2 +23 +8 +8 +16 +32 +64 +512 +16384 +-1 +8 +8 +16 +-1 +64 +64 +64 +-1 +128 (authoritative) +Ryzen 7 (Pinnacle Ridge) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2 diff --git a/tests/amd/zen+/threadripper-colfax.test b/tests/amd/zen+/threadripper-colfax.test new file mode 100644 index 0000000..6d410a6 --- /dev/null +++ b/tests/amd/zen+/threadripper-colfax.test @@ -0,0 +1,85 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00800f82 00400800 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 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00800f82 70000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 6854206e 64616572 +ext_cpuid[2]=20444d41 657a7952 6854206e 64616572 +ext_cpuid[3]=70706972 32207265 57303939 32332058 +ext_cpuid[3]=70706972 32207265 57303939 32332058 +ext_cpuid[4]=726f432d 72502065 7365636f 00726f73 +ext_cpuid[4]=726f432d 72502065 7365636f 00726f73 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=36006400 56006400 02006140 0200c140 +ext_cpuid[7]=00000000 0000001b 00000000 00006799 +ext_cpuid[8]=00003030 00001007 0000603f 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=0001c163 03c0003f 00001fff 00000001 +ext_cpuid[29]=0001c163 03c0003f 00001fff 00000001 +ext_cpuid[30]=00000000 00000100 00000300 00000000 +ext_cpuid[31]=0000000f 0000016f 0000000f 00000001 +-------------------------------------------------------------------------------- +15 +8 +2 +23 +8 +32 +64 +32 +64 +512 +65536 +-1 +8 +8 +64 +-1 +64 +64 +64 +-1 +128 (authoritative) +Threadripper (Colfax) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2 diff --git a/tests/amd/zen/epyc-naples.test b/tests/amd/zen/epyc-naples.test new file mode 100644 index 0000000..01ae0dc --- /dev/null +++ b/tests/amd/zen/epyc-naples.test @@ -0,0 +1,85 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00800f12 00400800 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 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00800f12 40000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 43595045 35353720 33205031 +ext_cpuid[2]=20444d41 43595045 35353720 33205031 +ext_cpuid[3]=6f432d32 50206572 65636f72 726f7373 +ext_cpuid[3]=6f432d32 50206572 65636f72 726f7373 +ext_cpuid[4]=20202020 20202020 20202020 00202020 +ext_cpuid[4]=20202020 20202020 20202020 00202020 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=36006400 56006400 02006140 0200c140 +ext_cpuid[7]=00000000 0000001b 00000000 00006799 +ext_cpuid[8]=00003030 00000007 0000603f 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=0001c163 03c0003f 00001fff 00000001 +ext_cpuid[29]=0001c163 03c0003f 00001fff 00000001 +ext_cpuid[30]=00000000 00000100 00000300 00000000 +ext_cpuid[31]=0000000f 0000016f 0000000f 00000001 +-------------------------------------------------------------------------------- +15 +1 +2 +23 +1 +32 +64 +32 +64 +512 +65536 +-1 +8 +8 +64 +-1 +64 +64 +64 +-1 +128 (authoritative) +EPYC (Naples) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand cpb aperfmperf avx2 bmi1 bmi2 diff --git a/tests/amd/zen/ryzen3.test b/tests/amd/zen/ryzen3-raven-ridge.test similarity index 100% rename from tests/amd/zen/ryzen3.test rename to tests/amd/zen/ryzen3-raven-ridge.test diff --git a/tests/amd/zen/ryzen5-raven-ridge.test b/tests/amd/zen/ryzen5-raven-ridge.test new file mode 100644 index 0000000..b3d50b4 --- /dev/null +++ b/tests/amd/zen/ryzen5-raven-ridge.test @@ -0,0 +1,85 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00810f10 00080800 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 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00810f10 20000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 2035206e 30303432 +ext_cpuid[2]=20444d41 657a7952 2035206e 30303432 +ext_cpuid[3]=69772047 52206874 6f656461 6556206e +ext_cpuid[3]=69772047 52206874 6f656461 6556206e +ext_cpuid[4]=47206167 68706172 20736369 00202020 +ext_cpuid[4]=47206167 68706172 20736369 00202020 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=26006400 66006400 02006140 00208140 +ext_cpuid[7]=00000000 0000001b 00000000 00006599 +ext_cpuid[8]=00003030 00001007 00004007 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=0001c163 03c0003f 00000fff 00000001 +ext_cpuid[29]=0001c163 03c0003f 00000fff 00000001 +ext_cpuid[30]=00000000 00000100 00000000 00000000 +ext_cpuid[31]=0000000f 0000016f 0000000f 00000000 +-------------------------------------------------------------------------------- +15 +1 +0 +23 +17 +4 +8 +32 +64 +512 +4096 +-1 +8 +8 +16 +-1 +64 +64 +64 +-1 +128 (authoritative) +Ryzen 5 (Raven Ridge) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand aperfmperf avx2 bmi1 bmi2 diff --git a/tests/amd/zen/ryzen5-summit-ridge.test b/tests/amd/zen/ryzen5-summit-ridge.test new file mode 100644 index 0000000..7bc44f2 --- /dev/null +++ b/tests/amd/zen/ryzen5-summit-ridge.test @@ -0,0 +1,85 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00800f11 00080800 7ed8320b 178bfbff +basic_cpuid[2]=00000000 00000000 00000000 00000000 +basic_cpuid[3]=00000000 00000000 00000000 00000000 +basic_cpuid[5]=00000040 00000040 00000003 00000000 +basic_cpuid[6]=00000004 00000000 00000001 00000000 +basic_cpuid[7]=00000000 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00800f11 20000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 2035206e 30303531 +ext_cpuid[2]=20444d41 657a7952 2035206e 30303531 +ext_cpuid[3]=75512058 432d6461 2065726f 636f7250 +ext_cpuid[3]=75512058 432d6461 2065726f 636f7250 +ext_cpuid[4]=6f737365 20202072 20202020 00202020 +ext_cpuid[4]=6f737365 20202072 20202020 00202020 +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=26006400 66006400 02006140 00808140 +ext_cpuid[7]=00000000 0000001b 00000000 00006599 +ext_cpuid[8]=00003030 00000007 00004007 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=0000c163 03c0003f 00001fff 00000001 +ext_cpuid[29]=0000c163 03c0003f 00001fff 00000001 +ext_cpuid[30]=00000000 00000100 00000000 00000000 +ext_cpuid[31]=00000007 0000016f 0000000f 00000000 +-------------------------------------------------------------------------------- +15 +1 +1 +23 +1 +4 +8 +32 +64 +512 +16384 +-1 +8 +8 +16 +-1 +64 +64 +64 +-1 +128 (authoritative) +Ryzen 5 (Summit Ridge) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand aperfmperf avx2 bmi1 bmi2 diff --git a/tests/amd/zen/ryzen7.test b/tests/amd/zen/ryzen7-summit-ridge.test similarity index 100% rename from tests/amd/zen/ryzen7.test rename to tests/amd/zen/ryzen7-summit-ridge.test diff --git a/tests/amd/zen/threadripper-whitehaven.test b/tests/amd/zen/threadripper-whitehaven.test new file mode 100644 index 0000000..97f6f5d --- /dev/null +++ b/tests/amd/zen/threadripper-whitehaven.test @@ -0,0 +1,85 @@ +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[0]=0000000d 68747541 444d4163 69746e65 +basic_cpuid[1]=00800f11 00180800 7ed8320b 178bfbff +basic_cpuid[2]=00000000 00000000 00000000 00000000 +basic_cpuid[3]=00000000 00000000 00000000 00000000 +basic_cpuid[5]=00000040 00000040 00000003 00000000 +basic_cpuid[6]=00000004 00000000 00000001 00000000 +basic_cpuid[7]=00000000 209c01a9 00000000 00000000 +basic_cpuid[8]=00000000 00000000 00000000 00000000 +basic_cpuid[9]=00000000 00000000 00000000 00000000 +basic_cpuid[10]=00000000 00000000 00000000 00000000 +basic_cpuid[12]=00000000 00000000 00000000 00000000 +basic_cpuid[13]=00000007 00000340 00000340 00000000 +basic_cpuid[13]=00000007 00000340 00000340 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 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[0]=8000001f 68747541 444d4163 69746e65 +ext_cpuid[1]=00800f11 70000000 35c233ff 2fd3fbff +ext_cpuid[2]=20444d41 657a7952 6854206e 64616572 +ext_cpuid[2]=20444d41 657a7952 6854206e 64616572 +ext_cpuid[3]=70706972 31207265 58303239 2d323120 +ext_cpuid[3]=70706972 31207265 58303239 2d323120 +ext_cpuid[4]=65726f43 6f725020 73736563 0020726f +ext_cpuid[4]=65726f43 6f725020 73736563 0020726f +ext_cpuid[5]=ff40ff40 ff40ff40 20080140 40040140 +ext_cpuid[6]=36006400 56006400 02006140 0100a140 +ext_cpuid[7]=00000000 0000001b 00000000 00006599 +ext_cpuid[8]=00003030 00000007 00005017 00000000 +ext_cpuid[9]=00000000 00000000 00000000 00000000 +ext_cpuid[10]=00000001 00008000 00000000 0001bcff +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]=00000003 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 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004122 00c0003f 000000ff 00000000 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00004143 01c0003f 000003ff 00000002 +ext_cpuid[29]=00014163 03c0003f 00001fff 00000001 +ext_cpuid[29]=00014163 03c0003f 00001fff 00000001 +ext_cpuid[30]=00000000 00000100 00000100 00000000 +ext_cpuid[31]=00000007 0000016f 0000000f 00000001 +-------------------------------------------------------------------------------- +15 +1 +1 +23 +1 +12 +24 +32 +64 +512 +32768 +-1 +8 +8 +32 +-1 +64 +64 +64 +-1 +128 (authoritative) +Threadripper (Whitehaven) +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 skinit wdt ts ttp tm_amd hwpstate constant_tsc fma3 f16c rdrand aperfmperf avx2 bmi1 bmi2 diff --git a/tests/convert_instlatx64.c b/tests/convert_instlatx64.c new file mode 100644 index 0000000..6b6be9f --- /dev/null +++ b/tests/convert_instlatx64.c @@ -0,0 +1,62 @@ +/* This program can be used to convert CPUID Dump from http://instlatx64.atw.hu/ + * To build: gcc convert_instlatx64.c -o convert_instlatx64 + * To run: ./convert_instlatx64 + * Then, you can use the create_test.py script to create the test file */ + +#include +#include +#include + +#define LINE_LEN 53 +#define FILENAME_LEN 32 +#define CMD_LEN 256 +#define EXT_CPUID 0x80000000 + +int main(int argc, char *argv[]) +{ + uint32_t addr, eax, ebx, ecx, edx; + char line[LINE_LEN], raw_filename[FILENAME_LEN], report_filename[FILENAME_LEN], cmd[CMD_LEN]; + FILE *fin = NULL, *fout = NULL; + + if(argc < 3) + { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + + snprintf(raw_filename, FILENAME_LEN, "%s.raw", argv[2]); + snprintf(report_filename, FILENAME_LEN, "%s_report.txt", argv[2]); + + if((fin = fopen(argv[1], "r")) == NULL) + { + perror("Failed to open input file"); + return 1; + } + + if((fout = fopen(raw_filename, "w")) == NULL) + { + perror("Failed to open output file"); + return 1; + } + + while(fgets(line, LINE_LEN, fin) != NULL) + { + sscanf(line, "CPUID %x: %x-%x-%x-%x", &addr, &eax, &ebx, &ecx, &edx); + if(((addr < EXT_CPUID) && (addr >= 32)) || ((addr >= EXT_CPUID) && (addr - EXT_CPUID >= 32))) + continue; + + if(addr < EXT_CPUID) + fprintf(fout, "basic_cpuid[%d]", addr); + else + fprintf(fout, "ext_cpuid[%d]", addr - EXT_CPUID); + fprintf(fout, "=%08x %08x %08x %08x\n", eax, ebx, ecx, edx); + } + + fclose(fout); + snprintf(cmd, CMD_LEN, "cpuid_tool --load=%s --report --outfile=%s", raw_filename, report_filename); + system(cmd); + printf("Done. Use the following command to create the test file:\n"); + printf("./create_test.py %s %s > %s.test\n", raw_filename, report_filename, argv[2]); + + return 0; +}