FEATURE_EXT
if ((cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) == 0) {
if (x86_check_feature(IA32_FEATURE_EXT_HYPERVISOR, FEATURE_EXT))
if (!x86_check_feature(IA32_FEATURE_EXT_MONITOR, FEATURE_EXT))
if (x86_check_feature(IA32_FEATURE_EXT_HYPERVISOR, FEATURE_EXT))
if (x86_check_feature(IA32_FEATURE_EXT_X2APIC, FEATURE_EXT)
&& (x86_check_feature(IA32_FEATURE_EXT_HYPERVISOR, FEATURE_EXT)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) {
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) {
if ((cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) != 0)
cpu->arch.feature[FEATURE_EXT] = 0;
cpu->arch.feature[FEATURE_EXT] = cpuid.eax_1.extended_features; // ecx
gHasXsave = x86_check_feature(IA32_FEATURE_EXT_XSAVE, FEATURE_EXT);
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSE3)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_PCLMULQDQ)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_DTES64)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_MONITOR)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_DSCPL)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_VMX)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SMX)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_EST)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_TM2)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSSE3)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_CNXTID)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_FMA)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_CX16)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_XTPR)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_PDCM)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_PCID)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_DCA)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSE4_1)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSE4_2)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_X2APIC)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_MOVBE)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_POPCNT)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_TSCDEADLINE)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_AES)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_XSAVE)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_OSXSAVE)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_AVX)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_F16C)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_RDRND)
if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR)
if (x86_check_feature(IA32_FEATURE_EXT_HYPERVISOR, FEATURE_EXT)) {