diff --git a/headers/private/kernel/arch/x86/arch_thread_types.h b/headers/private/kernel/arch/x86/arch_thread_types.h index 5bd1b637d9..5f124bd99e 100644 --- a/headers/private/kernel/arch/x86/arch_thread_types.h +++ b/headers/private/kernel/arch/x86/arch_thread_types.h @@ -57,8 +57,11 @@ struct arch_thread { // 512 byte floating point save point - this must be 16 byte aligned uint8 fpu_state[512] _ALIGNED(16); #else - // floating point save point - this must be 64 byte aligned for xsave - uint8 fpu_state[1024] _ALIGNED(64); + // floating point save point - this must be 64 byte aligned for xsave and + // have enough space for all the registers, at least 2560 bytes according + // to Intel Architecture Instruction Set Extensions Programming Reference, + // Section 3.2.4, table 3-8 + uint8 fpu_state[2560] _ALIGNED(64); #endif addr_t GetFramePointer() const;