< prev index next >

src/hotspot/cpu/x86/vm_version_x86.hpp

Print this page

        

*** 87,97 **** : 1, aes : 1, : 1, osxsave : 1, avx : 1, ! : 3; } bits; }; union StdCpuid1Edx { uint32_t value; --- 87,98 ---- : 1, aes : 1, : 1, osxsave : 1, avx : 1, ! : 2, ! hv : 1; } bits; }; union StdCpuid1Edx { uint32_t value;
*** 346,355 **** --- 347,357 ---- #define CPU_FLUSH ((uint64_t)UCONST64( 0x20000000000)) // flush instruction #define CPU_FLUSHOPT ((uint64_t)UCONST64( 0x40000000000)) // flushopt instruction #define CPU_CLWB ((uint64_t)UCONST64( 0x80000000000)) // clwb instruction #define CPU_AVX512_VBMI2 ((uint64_t)UCONST64(0x100000000000)) // VBMI2 shift left double instructions #define CPU_AVX512_VBMI ((uint64_t)UCONST64(0x200000000000)) // Vector BMI instructions + #define CPU_HV_PRESENT ((uint64_t)UCONST64(0x400000000000)) // for hypervisor detection // NB! When adding new CPU feature detection consider updating vmStructs_x86.hpp, vmStructs_jvmci.hpp, and VM_Version::get_processor_features(). enum Extended_Family { // AMD
*** 578,587 **** --- 580,591 ---- result |= CPU_AVX512_VBMI; if (_cpuid_info.sef_cpuid7_ecx.bits.avx512_vbmi2 != 0) result |= CPU_AVX512_VBMI2; } } + if (_cpuid_info.std_cpuid1_ecx.bits.hv != 0) + result |= CPU_HV_PRESENT; if (_cpuid_info.sef_cpuid7_ebx.bits.bmi1 != 0) result |= CPU_BMI1; if (_cpuid_info.std_cpuid1_edx.bits.tsc != 0) result |= CPU_TSC; if (_cpuid_info.ext_cpuid7_edx.bits.tsc_invariance != 0)
*** 869,878 **** --- 873,883 ---- static bool supports_avx512_vpclmulqdq() { return (_features & CPU_AVX512_VPCLMULQDQ) != 0; } static bool supports_avx512_vaes() { return (_features & CPU_AVX512_VAES) != 0; } static bool supports_avx512_vnni() { return (_features & CPU_AVX512_VNNI) != 0; } static bool supports_avx512_vbmi() { return (_features & CPU_AVX512_VBMI) != 0; } static bool supports_avx512_vbmi2() { return (_features & CPU_AVX512_VBMI2) != 0; } + static bool supports_hv() { return (_features & CPU_HV_PRESENT) != 0; } // Intel features static bool is_intel_family_core() { return is_intel() && extended_cpu_family() == CPU_FAMILY_INTEL_CORE; }
*** 1021,1030 **** static bool supports_clwb() { return false; } #endif // _LP64 // support functions for virtualization detection private: - static void check_virt_cpuid(uint32_t idx, uint32_t *regs); static void check_virtualizations(); }; #endif // CPU_X86_VM_VERSION_X86_HPP --- 1026,1034 ----
< prev index next >