This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC PATCH] Add Hygon Dhyana processor support


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! ");



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]