[ros-diffs] [tkreuzer] 35619: - Fix comments and comment out stmxcsr, as it crashes for some reason.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Mon Aug 25 02:12:34 CEST 2008


Author: tkreuzer
Date: Sun Aug 24 19:12:33 2008
New Revision: 35619

URL: http://svn.reactos.org/svn/reactos?rev=35619&view=rev
Log:
- Fix comments and comment out stmxcsr, as it crashes for some reason.

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/cpu.c

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/cpu.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/cpu.c?rev=35619&r1=35618&r2=35619&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/cpu.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/cpu.c [iso-8859-1] Sun Aug 24 19:12:33 2008
@@ -495,14 +495,14 @@
 NTAPI
 KiRestoreProcessorControlState(PKPROCESSOR_STATE ProcessorState)
 {
-    /* Save the CR registers */
+    /* Restore the CR registers */
     __writecr0(ProcessorState->SpecialRegisters.Cr0);
 //    __writecr2(ProcessorState->SpecialRegisters.Cr2);
     __writecr3(ProcessorState->SpecialRegisters.Cr3);
     __writecr4(ProcessorState->SpecialRegisters.Cr4);
     __writecr8(ProcessorState->SpecialRegisters.Cr8);
 
-    /* Save the DR registers */
+    /* Restore the DR registers */
     __writedr(0, ProcessorState->SpecialRegisters.KernelDr0);
     __writedr(1, ProcessorState->SpecialRegisters.KernelDr1);
     __writedr(2, ProcessorState->SpecialRegisters.KernelDr2);
@@ -510,7 +510,7 @@
     __writedr(6, ProcessorState->SpecialRegisters.KernelDr6);
     __writedr(7, ProcessorState->SpecialRegisters.KernelDr7);
 
-    /* Save GDT, IDT, LDT and TSS */
+    /* Restore GDT, IDT, LDT and TSS */
     __lgdt(&ProcessorState->SpecialRegisters.Gdtr.Limit);
     __lldt(&ProcessorState->SpecialRegisters.Ldtr);
     __ltr(&ProcessorState->SpecialRegisters.Tr);
@@ -522,6 +522,8 @@
 //    ProcessorState->SpecialRegisters.LastBranchFromRip
 //    ProcessorState->SpecialRegisters.LastExceptionToRip
 //    ProcessorState->SpecialRegisters.LastExceptionFromRip
+
+    /* Restore MSRs */
     __writemsr(X86_MSR_GSBASE, ProcessorState->SpecialRegisters.MsrGsBase);
     __writemsr(X86_MSR_KERNEL_GSBASE, ProcessorState->SpecialRegisters.MsrGsSwap);
     __writemsr(X86_MSR_STAR, ProcessorState->SpecialRegisters.MsrStar);
@@ -556,12 +558,14 @@
     __str(&ProcessorState->SpecialRegisters.Tr);
     __sidt(&ProcessorState->SpecialRegisters.Idtr.Limit);
 
-    __stmxcsr(&ProcessorState->SpecialRegisters.MxCsr);
+//    __stmxcsr(&ProcessorState->SpecialRegisters.MxCsr);
 //    ProcessorState->SpecialRegisters.DebugControl = 
 //    ProcessorState->SpecialRegisters.LastBranchToRip = 
 //    ProcessorState->SpecialRegisters.LastBranchFromRip = 
 //    ProcessorState->SpecialRegisters.LastExceptionToRip = 
 //    ProcessorState->SpecialRegisters.LastExceptionFromRip = 
+
+    /* Save MSRs */
     ProcessorState->SpecialRegisters.MsrGsBase = __readmsr(X86_MSR_GSBASE);
     ProcessorState->SpecialRegisters.MsrGsSwap = __readmsr(X86_MSR_KERNEL_GSBASE);
     ProcessorState->SpecialRegisters.MsrStar = __readmsr(X86_MSR_STAR);



More information about the Ros-diffs mailing list