X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fntoskrnl%2Fke%2Fi386%2Fkiinit.c;h=45b25ed7ec66a957a393c81a22c7c15a2ac04b13;hp=535d6d271644ceb6a71dbf88534769d99630a141;hb=ae495fcf68b7305910fc7224173b292552a81e5e;hpb=d4577f8b7f91481bfdd092df76656de19aa3e098;ds=sidebyside diff --git a/reactos/ntoskrnl/ke/i386/kiinit.c b/reactos/ntoskrnl/ke/i386/kiinit.c index 535d6d27164..45b25ed7ec6 100644 --- a/reactos/ntoskrnl/ke/i386/kiinit.c +++ b/reactos/ntoskrnl/ke/i386/kiinit.c @@ -264,19 +264,14 @@ KiInitMachineDependent(VOID) if (KeFeatureBits & KF_FXSR) { /* Get the current thread NPX state */ - FxSaveArea = (PVOID) - ((ULONG_PTR)KeGetCurrentThread()->InitialStack - - NPX_FRAME_LENGTH); + FxSaveArea = KiGetThreadNpxArea(KeGetCurrentThread()); /* Clear initial MXCsr mask */ FxSaveArea->U.FxArea.MXCsrMask = 0; /* Save the current NPX State */ -#ifdef __GNUC__ - asm volatile("fxsave %0\n\t" : "=m" (*FxSaveArea)); -#else - __asm fxsave [FxSaveArea] -#endif + Ke386SaveFpuState(FxSaveArea); + /* Check if the current mask doesn't match the reserved bits */ if (FxSaveArea->U.FxArea.MXCsrMask != 0) {