diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index de06b32c1b..d761805da0 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -406,6 +406,9 @@ static void intel_xc_cpuid_policy(xc_interface *xch, #define X86_XCR0_AVX (1ULL << 2) #define X86_XCR0_BNDREG (1ULL << 3) #define X86_XCR0_BNDCSR (1ULL << 4) +#define X86_XCR0_OPMASK (1ULL << 5) +#define X86_XCR0_ZMM (1ULL << 6) +#define X86_XCR0_HI_ZMM (1ULL << 7) #define X86_XCR0_PKRU (1ULL << 9) #define X86_XCR0_LWP (1ULL << 62) @@ -437,6 +440,9 @@ static void xc_cpuid_config_xsave(xc_interface *xch, if ( test_bit(X86_FEATURE_MPX, info->featureset) ) guest_xfeature_mask |= X86_XCR0_BNDREG | X86_XCR0_BNDCSR; + if ( test_bit(X86_FEATURE_AVX512F, info->featureset) ) + guest_xfeature_mask |= X86_XCR0_OPMASK | X86_XCR0_ZMM | X86_XCR0_HI_ZMM; + if ( test_bit(X86_FEATURE_PKU, info->featureset) ) guest_xfeature_mask |= X86_XCR0_PKRU;