< prev index next >

src/hotspot/cpu/x86/vm_version_ext_x86.cpp

Print this page

        

@@ -338,10 +338,14 @@
 
   if (is_amd()) {
     return !is_amd_Barcelona();
   }
 
+  if (is_hygon()) {
+    return true;
+  }
+
   return false;
 }
 
 void VM_Version_Ext::resolve_cpu_information_details(void) {
 

@@ -405,10 +409,14 @@
     if (cpu_family_id == CPU_FAMILY_PENTIUMPRO) {
       return cpu_model_description();
     }
     return _family_id_intel[cpu_family_id];
   }
+  if (is_hygon()) {
+    return _family_id_hygon[cpu_family_id];
+  }
+
   return "Unknown x86";
 }
 
 int VM_Version_Ext::cpu_type_description(char* const buf, size_t buf_len) {
   assert(buf != NULL, "buffer is NULL!");

@@ -421,10 +429,13 @@
     cpu_type = "Intel";
     x64 = cpu_is_em64t() ? " Intel64" : "";
   } else if (is_amd()) {
     cpu_type = "AMD";
     x64 = cpu_is_em64t() ? " AMD64" : "";
+  } else if (is_hygon()) {
+        cpu_type = "HYGON";
+        x64 = cpu_is_em64t() ? " AMD64" : "";
   } else {
     cpu_type = "Unknown x86";
     x64 = cpu_is_em64t() ? " x86_64" : "";
   }
 

@@ -730,10 +741,38 @@
   "",
   "",
   "Opteron/Athlon64",
   "Opteron QC/Phenom"  // Barcelona et.al.
 };
+const char* const VM_Version_Ext::_family_id_hygon[] = {
+  "",   //family 0
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "",
+  "HygonGenuine",       //family 24
+};
+
 // Partially from Intel 64 and IA-32 Architecture Software Developer's Manual,
 // September 2013, Vol 3C Table 35-1
 const char* const VM_Version_Ext::_model_id_pentium_pro[] = {
   "",
   "Pentium Pro",
< prev index next >