diff --git a/asm/x86-unknown-none/long_mode.asm b/asm/x86-unknown-none/long_mode.asm index 3a01d21e973faef750d1ebf22e4fdfe95ac7a9e7..e0adb04eb1e8765e83b1f7cdfd74ce496c9410a7 100644 --- a/asm/x86-unknown-none/long_mode.asm +++ b/asm/x86-unknown-none/long_mode.asm @@ -14,9 +14,9 @@ long_mode: and eax, 0x7FFFFFFF mov cr0, eax - ; enable OSXSAVE, FXSAVE/FXRSTOR, Page Global, Page Address Extension, and Page Size Extension + ; enable FXSAVE/FXRSTOR, Page Global, Page Address Extension, and Page Size Extension mov eax, cr4 - or eax, 1 << 18 | 1 << 9 | 1 << 7 | 1 << 5 | 1 << 4 + or eax, 1 << 9 | 1 << 7 | 1 << 5 | 1 << 4 mov cr4, eax ; load long mode GDT diff --git a/src/os/uefi/arch/x86_64.rs b/src/os/uefi/arch/x86_64.rs index ffc4ffde4d3b63e2f4a184e475f1bd9f74a2503c..6d251166fb0a5ee1f83241d03f30918e20ad36b9 100644 --- a/src/os/uefi/arch/x86_64.rs +++ b/src/os/uefi/arch/x86_64.rs @@ -39,10 +39,9 @@ unsafe extern "C" fn kernel_entry( // Disable interrupts asm!("cli"); - // Enable OSXSAVE, FXSAVE/FXRSTOR, Page Global, Page Address Extension, and Page Size Extension + // Enable FXSAVE/FXRSTOR, Page Global, Page Address Extension, and Page Size Extension let mut cr4 = controlregs::cr4(); - cr4 |= Cr4::CR4_ENABLE_OS_XSAVE - | Cr4::CR4_ENABLE_SSE + cr4 |= Cr4::CR4_ENABLE_SSE | Cr4::CR4_ENABLE_GLOBAL_PAGES | Cr4::CR4_ENABLE_PAE | Cr4::CR4_ENABLE_PSE;