This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC PATCH] Add Hygon Dhyana processor support
- From: Pedro Alves <palves at redhat dot com>
- To: Jinke Fan <fanjinke51 at yeah dot net>, gdb-patches at sourceware dot org, Eli Zaretskii <eliz at gnu dot org>
- Date: Fri, 21 Jun 2019 18:49:15 +0100
- Subject: Re: [RFC PATCH] Add Hygon Dhyana processor support
- References: <20190515093457.35348-1-fanjinke51@yeah.net> <2e2c7fbd-301a-6834-e069-27e56a53b42d@yeah.net>
Eli, FYI, the subject doesn't suggest so, but this is
a DJGPP patch.
Thanks,
Pedro Alves
On 6/21/19 4:07 AM, Jinke Fan wrote:
> Hi,
> This patch is usefull, isn't it?
>
> Best regards!
> Jinke
>
> On 2019/5/15 17:34, Jinke Fan wrote:
>> Background:
>> Chengdu Haiguang IC Design Co., Ltd (Hygon) is a Joint Venture between
>> AMD and Haiguang Information Technology Co.,Ltd., aims at providing high
>> performance x86 processor for China server market. Its first generation
>> processor codename is Dhyana, which originates from AMD technology and
>> shares most of the architecture with AMD's family 17h, but with
>> different CPU Vendor ID("HygonGenuine")/Family series number(Family
>> 18h).
>>
>> gdb/ChangeLog:
>> * go32-nat.c (go32_sysinfo): Add hygon_p.
>>
>> The results of make check are no degradation:
>> === binutils Summary ===
>> of expected passes 251
>> of unresolved testcases 1
>> of unsupported tests 1
>>
>> Please let me know your comments.
>> Thanks in advance.
>>
>> Signed-off-by: Jinke Fan <fanjinke51@yeah.net>
>> ---
>> gdb/go32-nat.c | 7 ++++---
>> 1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
>> index ea0872363d..a4d1a5c9af 100644
>> --- a/gdb/go32-nat.c
>> +++ b/gdb/go32-nat.c
>> @@ -1162,6 +1162,7 @@ go32_sysinfo (const char *arg, int from_tty)
>> unsigned brand_idx;
>> int intel_p = strcmp (cpuid_vendor, "GenuineIntel") == 0;
>> int amd_p = strcmp (cpuid_vendor, "AuthenticAMD") == 0;
>> + int hygon_p = strcmp (cpuid_vendor, "HygonGenuine") == 0;
>> unsigned cpu_family, cpu_model;
>> #if 0
>> @@ -1261,12 +1262,12 @@ go32_sysinfo (const char *arg, int from_tty)
>> }
>> }
>> xsnprintf (cpu_string, sizeof (cpu_string), "%s%s Model %d Stepping %d",
>> - intel_p ? "Pentium" : (amd_p ? "AMD" : "ix86"),
>> + intel_p ? "Pentium" : (amd_p ? "AMD" : (hygon_p ? "Hygon" : "ix86")),
>> cpu_brand, cpu_model, cpuid_eax & 0xf);
>> printfi_filtered (31, "%s\n", cpu_string);
>> if (((cpuid_edx & (6 | (0x0d << 23))) != 0)
>> || ((cpuid_edx & 1) == 0)
>> - || (amd_p && (cpuid_edx & (3 << 30)) != 0))
>> + || ((amd_p || hygon_p) && (cpuid_edx & (3 << 30)) != 0))
>> {
>> puts_filtered ("CPU Features...................");
>> /* We only list features which might be useful in the DPMI
>> @@ -1285,7 +1286,7 @@ go32_sysinfo (const char *arg, int from_tty)
>> puts_filtered ("SSE ");
>> if ((cpuid_edx & (1 << 26)) != 0)
>> puts_filtered ("SSE2 ");
>> - if (amd_p)
>> + if (amd_p || hygon_p)
>> {
>> if ((cpuid_edx & (1 << 31)) != 0)
>> puts_filtered ("3DNow! ");
>>
>