From 044608f31f55943f9ee2cb3ed893ded5ac043d25 Mon Sep 17 00:00:00 2001 From: Dr-Noob Date: Wed, 7 Apr 2021 14:35:45 +0200 Subject: [PATCH] [v0.95] Add 0x8000001D sublevel query to --raw option --- src/x86/cpuid.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/x86/cpuid.c b/src/x86/cpuid.c index 5e89364..29aa211 100755 --- a/src/x86/cpuid.c +++ b/src/x86/cpuid.c @@ -982,14 +982,28 @@ void print_raw(struct cpuInfo* cpu) { } } for(uint32_t reg=0x80000000; reg <= cpu->maxExtendedLevels; reg++) { - eax = reg; - ebx = 0; - ecx = 0; - edx = 0; + if(reg == 0x8000001D) { + for(uint32_t reg2=0x00000000; reg2 < cpu->cach->max_cache_level; reg2++) { + eax = reg; + ebx = 0; + ecx = reg2; + edx = 0; - cpuid(&eax, &ebx, &ecx, &edx); + cpuid(&eax, &ebx, &ecx, &edx); - printf(" 0x%.8X 0x%.2X: 0x%.8X 0x%.8X 0x%.8X 0x%.8X\n", reg, 0x00, eax, ebx, ecx, edx); + printf(" 0x%.8X 0x%.2X: 0x%.8X 0x%.8X 0x%.8X 0x%.8X\n", reg, reg2, eax, ebx, ecx, edx); + } + } + else { + eax = reg; + ebx = 0; + ecx = 0; + edx = 0; + + cpuid(&eax, &ebx, &ecx, &edx); + + printf(" 0x%.8X 0x%.2X: 0x%.8X 0x%.8X 0x%.8X 0x%.8X\n", reg, 0x00, eax, ebx, ecx, edx); + } } } }