Enable fx save restore support earlier and uncomment it in trap handlers.

svn path=/branches/ros-amd64-bringup/; revision=45083
This commit is contained in:
Timo Kreuzer 2010-01-15 11:27:54 +00:00
parent b2e87768af
commit d7a1041c8c
3 changed files with 15 additions and 15 deletions

View file

@ -277,9 +277,6 @@ KiInitializeCpuFeatures()
/* Disable fpu monitoring */ /* Disable fpu monitoring */
__writecr0(__readcr0() & ~CR0_MP); __writecr0(__readcr0() & ~CR0_MP);
/* Enable fx save restore support */
__writecr4(__readcr4() | CR4_FXSR);
} }
VOID VOID

View file

@ -679,6 +679,9 @@ KiSystemStartupReal(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* LDT is unused */ /* LDT is unused */
// __lldt(0); // __lldt(0);
/* Enable fx save restore support */
__writecr4(__readcr4() | CR4_FXSR);
/* Align stack to 16 bytes */ /* Align stack to 16 bytes */
LoaderBlock->KernelStack &= ~(16 - 1); LoaderBlock->KernelStack &= ~(16 - 1);

View file

@ -117,12 +117,12 @@ _MsgTrapInfo:
.if (TRAPFLAGS & TRAPFLAG_XMM) .if (TRAPFLAGS & TRAPFLAG_XMM)
/* Save xmm registers */ /* Save xmm registers */
// movdqa [rbp + KTRAP_FRAME_Xmm0], xmm0 movdqa [rbp + KTRAP_FRAME_Xmm0], xmm0
// movdqa [rbp + KTRAP_FRAME_Xmm1], xmm1 movdqa [rbp + KTRAP_FRAME_Xmm1], xmm1
// movdqa [rbp + KTRAP_FRAME_Xmm2], xmm2 movdqa [rbp + KTRAP_FRAME_Xmm2], xmm2
// movdqa [rbp + KTRAP_FRAME_Xmm3], xmm3 movdqa [rbp + KTRAP_FRAME_Xmm3], xmm3
// movdqa [rbp + KTRAP_FRAME_Xmm4], xmm4 movdqa [rbp + KTRAP_FRAME_Xmm4], xmm4
// movdqa [rbp + KTRAP_FRAME_Xmm5], xmm5 movdqa [rbp + KTRAP_FRAME_Xmm5], xmm5
.endif .endif
.if (TRAPFLAGS & TRAPFLAG_SEGMENTS) .if (TRAPFLAGS & TRAPFLAG_SEGMENTS)
@ -221,12 +221,12 @@ _MsgTrapInfo:
.if (TRAPFLAGS & TRAPFLAG_XMM) .if (TRAPFLAGS & TRAPFLAG_XMM)
/* Restore xmm registers */ /* Restore xmm registers */
// movdqa xmm0, [rbp + KTRAP_FRAME_Xmm0] movdqa xmm0, [rbp + KTRAP_FRAME_Xmm0]
// movdqa xmm1, [rbp + KTRAP_FRAME_Xmm1] movdqa xmm1, [rbp + KTRAP_FRAME_Xmm1]
// movdqa xmm2, [rbp + KTRAP_FRAME_Xmm2] movdqa xmm2, [rbp + KTRAP_FRAME_Xmm2]
// movdqa xmm3, [rbp + KTRAP_FRAME_Xmm3] movdqa xmm3, [rbp + KTRAP_FRAME_Xmm3]
// movdqa xmm4, [rbp + KTRAP_FRAME_Xmm4] movdqa xmm4, [rbp + KTRAP_FRAME_Xmm4]
// movdqa xmm5, [rbp + KTRAP_FRAME_Xmm5] movdqa xmm5, [rbp + KTRAP_FRAME_Xmm5]
.endif .endif
/* Restore rbp */ /* Restore rbp */