From: Markus Metzger Date: Thu, 20 Oct 2022 14:27:34 +0000 (+0200) Subject: gdb, btrace: fix family and model computation X-Git-Tag: gdb-13-branchpoint~689 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9757bcd43534875d2003962944d3d130289f82c;p=thirdparty%2Fbinutils-gdb.git gdb, btrace: fix family and model computation In gdb/nat/linux-btrace.c:btrace_this_cpu() we initialize the cpu structure given to the libipt btrace decoder. We only consider the extended model field for family 0x6 and forget about family 0xf and we don't consider the extended family field. Fix it. --- diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c index 4911630ba5c..a951f3b56aa 100644 --- a/gdb/nat/linux-btrace.c +++ b/gdb/nat/linux-btrace.c @@ -84,9 +84,11 @@ btrace_this_cpu (void) cpu.vendor = CV_INTEL; cpu.family = (cpuid >> 8) & 0xf; - cpu.model = (cpuid >> 4) & 0xf; + if (cpu.family == 0xf) + cpu.family += (cpuid >> 20) & 0xff; - if (cpu.family == 0x6) + cpu.model = (cpuid >> 4) & 0xf; + if ((cpu.family == 0x6) || ((cpu.family & 0xf) == 0xf)) cpu.model += (cpuid >> 12) & 0xf0; } }