serenity/Kernel/Arch
Jesse Buhagiar 964f8fbf3a Kernel: Implement AVX XSAVE support
This adds some new buffers to the `FPUState` struct, which contains
enough space for the `xsave` instruction to run. This instruction writes
the upper part of the x86 SIMD registers (YMM0-15) to a seperate
256-byte area, as well as an "xsave header" describing the region.

If the underlying processor supports AVX, the `fxsave` instruction is no
longer used, as `xsave` itself implictly saves all of the SSE and x87
registers.

Co-authored-by: Leon Albrecht <leon.a@serenityos.org>
2022-05-15 12:25:23 +02:00
..
aarch64 Kernel: Put code in the aarch64 init.cpp file into the Kernel namespace 2022-05-12 23:14:05 +02:00
x86 Kernel: Implement AVX XSAVE support 2022-05-15 12:25:23 +02:00
CPU.h Kernel: Make handle_crash available to aarch64 2022-04-02 19:34:20 -07:00
DeferredCallEntry.h Kernel: Extract DeferredCallEntry from Arch/Processor.h 2021-12-11 13:23:27 -08:00
mcontext.h Kernel: Create a stub mcontext for aarch64 2022-03-12 14:54:12 -08:00
PageDirectory.h Kernel: Make PageDirectory.cpp compile on aarch64 2022-04-02 19:34:20 -07:00
PageFault.h Kernel: Make PageDirectory.cpp compile on aarch64 2022-04-02 19:34:20 -07:00
Processor.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ProcessorSpecificDataID.h Kernel: Extract ProcessorSpecificDataID from from Arch/Processor.h 2021-12-11 13:23:27 -08:00
RegisterState.h Kernel: Add cross platform RegisterState header and Aarch64 version 2021-10-15 21:48:45 +01:00
SafeMem.h Kernel: Move Kernel/Arch/x86/SafeMem.h to Kernel/Arch/SafeMem.h 2022-05-03 21:53:36 +02:00
ScopedCritical.h Kernel: Split ScopedCritical so header is platform independent 2021-10-15 21:48:45 +01:00
SmapDisabler.h Kernel: Split SmapDisabler so header is platform independent 2021-10-15 21:48:45 +01:00
Spinlock.h Kernel: Move Arch/x86/Spinlock.h and add stubs for aarch64 2022-05-03 21:53:36 +02:00