1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-27 15:22:08 +00:00
serenity/Kernel/Arch/x86/common
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
..
ASM_wrapper.cpp Kernel: Add per platform Processor.h headers 2021-10-14 01:23:08 +01:00
CPU.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CPUID.cpp Kernel: Rename OSPKU CPUID feature flag to OSPKE 2022-04-08 18:53:42 +01:00
CrashHandler.cpp Kernel: Make handle_crash available to aarch64 2022-04-02 19:34:20 -07:00
Interrupts.cpp Kernel: Move Kernel/Arch/x86/SafeMem.h to Kernel/Arch/SafeMem.h 2022-05-03 21:53:36 +02:00
PageDirectory.cpp Kernel: Make MemoryManager compile on aarch64 2022-04-02 19:34:20 -07:00
Processor.cpp Kernel: Implement AVX XSAVE support 2022-05-15 12:25:23 +02:00
ProcessorInfo.cpp Kernel: Strip null terminators from all CPUID strings, not just brand 2022-04-26 20:20:44 +02:00
SafeMem.cpp Kernel: Move Kernel/Arch/x86/SafeMem.h to Kernel/Arch/SafeMem.h 2022-05-03 21:53:36 +02:00
ScopedCritical.cpp Kernel: Move ScopedCritical + SmapDisabler CPP files into x86 common 2021-10-16 15:43:41 -07:00
SmapDisabler.cpp Kernel: Move ScopedCritical + SmapDisabler CPP files into x86 common 2021-10-16 15:43:41 -07:00
Spinlock.cpp Kernel: Move Arch/x86/Spinlock.h and add stubs for aarch64 2022-05-03 21:53:36 +02:00
TrapFrame.cpp Kernel: Add per platform Processor.h headers 2021-10-14 01:23:08 +01:00