diff --git a/ostd/src/arch/x86/mod.rs b/ostd/src/arch/x86/mod.rs index 185787589..bf42391a9 100644 --- a/ostd/src/arch/x86/mod.rs +++ b/ostd/src/arch/x86/mod.rs @@ -135,7 +135,10 @@ fn enable_common_cpu_features() { } let mut xcr0 = x86_64::registers::xcontrol::XCr0::read(); - xcr0 |= XCr0Flags::AVX | XCr0Flags::SSE; + // TODO: Ensure proper saving and restoring of floating-point states + // to correctly support advanced instructions like AVX-512. + let avx512 = XCr0Flags::OPMASK | XCr0Flags::ZMM_HI256 | XCr0Flags::HI16_ZMM; + xcr0 |= XCr0Flags::AVX | XCr0Flags::SSE | avx512; unsafe { x86_64::registers::xcontrol::XCr0::write(xcr0); }