diff --git a/reactos/ntoskrnl/ke/amd64/cpu.c b/reactos/ntoskrnl/ke/amd64/cpu.c index 9156bd1dc79..5cab781faca 100644 --- a/reactos/ntoskrnl/ke/amd64/cpu.c +++ b/reactos/ntoskrnl/ke/amd64/cpu.c @@ -277,9 +277,6 @@ KiInitializeCpuFeatures() /* Disable fpu monitoring */ __writecr0(__readcr0() & ~CR0_MP); - /* Enable fx save restore support */ - __writecr4(__readcr4() | CR4_FXSR); - } VOID diff --git a/reactos/ntoskrnl/ke/amd64/kiinit.c b/reactos/ntoskrnl/ke/amd64/kiinit.c index 3dcc2ef9e88..cca6aa8b2e3 100644 --- a/reactos/ntoskrnl/ke/amd64/kiinit.c +++ b/reactos/ntoskrnl/ke/amd64/kiinit.c @@ -679,6 +679,9 @@ KiSystemStartupReal(IN PLOADER_PARAMETER_BLOCK LoaderBlock) /* LDT is unused */ // __lldt(0); + /* Enable fx save restore support */ + __writecr4(__readcr4() | CR4_FXSR); + /* Align stack to 16 bytes */ LoaderBlock->KernelStack &= ~(16 - 1); diff --git a/reactos/ntoskrnl/ke/amd64/trap.S b/reactos/ntoskrnl/ke/amd64/trap.S index 868364d3f43..2a6408ea502 100644 --- a/reactos/ntoskrnl/ke/amd64/trap.S +++ b/reactos/ntoskrnl/ke/amd64/trap.S @@ -117,12 +117,12 @@ _MsgTrapInfo: .if (TRAPFLAGS & TRAPFLAG_XMM) /* Save xmm registers */ -// movdqa [rbp + KTRAP_FRAME_Xmm0], xmm0 -// movdqa [rbp + KTRAP_FRAME_Xmm1], xmm1 -// movdqa [rbp + KTRAP_FRAME_Xmm2], xmm2 -// movdqa [rbp + KTRAP_FRAME_Xmm3], xmm3 -// movdqa [rbp + KTRAP_FRAME_Xmm4], xmm4 -// movdqa [rbp + KTRAP_FRAME_Xmm5], xmm5 + movdqa [rbp + KTRAP_FRAME_Xmm0], xmm0 + movdqa [rbp + KTRAP_FRAME_Xmm1], xmm1 + movdqa [rbp + KTRAP_FRAME_Xmm2], xmm2 + movdqa [rbp + KTRAP_FRAME_Xmm3], xmm3 + movdqa [rbp + KTRAP_FRAME_Xmm4], xmm4 + movdqa [rbp + KTRAP_FRAME_Xmm5], xmm5 .endif .if (TRAPFLAGS & TRAPFLAG_SEGMENTS) @@ -221,12 +221,12 @@ _MsgTrapInfo: .if (TRAPFLAGS & TRAPFLAG_XMM) /* Restore xmm registers */ -// movdqa xmm0, [rbp + KTRAP_FRAME_Xmm0] -// movdqa xmm1, [rbp + KTRAP_FRAME_Xmm1] -// movdqa xmm2, [rbp + KTRAP_FRAME_Xmm2] -// movdqa xmm3, [rbp + KTRAP_FRAME_Xmm3] -// movdqa xmm4, [rbp + KTRAP_FRAME_Xmm4] -// movdqa xmm5, [rbp + KTRAP_FRAME_Xmm5] + movdqa xmm0, [rbp + KTRAP_FRAME_Xmm0] + movdqa xmm1, [rbp + KTRAP_FRAME_Xmm1] + movdqa xmm2, [rbp + KTRAP_FRAME_Xmm2] + movdqa xmm3, [rbp + KTRAP_FRAME_Xmm3] + movdqa xmm4, [rbp + KTRAP_FRAME_Xmm4] + movdqa xmm5, [rbp + KTRAP_FRAME_Xmm5] .endif /* Restore rbp */