< 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 >