--- old/src/cpu/sparc/vm/vm_version_sparc.cpp Tue Oct 4 09:40:10 2016 +++ new/src/cpu/sparc/vm/vm_version_sparc.cpp Tue Oct 4 09:40:09 2016 @@ -179,7 +179,7 @@ assert((OptoLoopAlignment % relocInfo::addr_unit()) == 0, "alignment is not a multiple of NOP size"); char buf[512]; - jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", + jio_snprintf(buf, sizeof(buf), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", (has_v9() ? ", v9" : (has_v8() ? ", v8" : "")), (has_hardware_popc() ? ", popc" : ""), (has_vis1() ? ", vis1" : ""), @@ -193,6 +193,7 @@ (has_sha512() ? ", sha512" : ""), (has_crc32c() ? ", crc32c" : ""), (is_ultra3() ? ", ultra3" : ""), + (has_sparc5_instr() ? ", sparc5" : ""), (is_sun4v() ? ", sun4v" : ""), (is_niagara_plus() ? ", niagara_plus" : (is_niagara() ? ", niagara" : "")), (is_sparc64() ? ", sparc64" : ""), @@ -482,16 +483,11 @@ if (strstr(impl, "SPARC-T1") != NULL) { features |= T1_model_m; } + } else if (strstr(impl, "SUN4V-CPU") != NULL) { + // Generic or migration class LDOM + features |= T_family_m; } else { - if (strstr(impl, "SPARC") == NULL) { -#ifndef PRODUCT - // kstat on Solaris 8 virtual machines (branded zones) - // returns "(unsupported)" implementation. Solaris 8 is not - // supported anymore, but include this check to be on the - // safe side. - warning("Can't parse CPU implementation = '%s', assume generic SPARC", impl); -#endif - } + log_info(os, cpu)("Failed to parse CPU implementation = '%s'", impl); } os::free((void*)impl); return features;