Fix SYSENTER support in VMware. New benchmar: 200ms. ***70%*** faster then with Int2E. Fix FPU save bug/explorer bug. Fix Vmware 4.0 crash bug. HARTMUT IS A GENIUS.
Modified: trunk/reactos/ntoskrnl/ke/i386/syscall.S
Modified: trunk/reactos/subsys/system/vmwinst/vmwinst.c
Deleted: trunk/reactos/win32k.S

Modified: trunk/reactos/ntoskrnl/ke/i386/syscall.S
--- trunk/reactos/ntoskrnl/ke/i386/syscall.S	2005-01-18 02:12:45 UTC (rev 13106)
+++ trunk/reactos/ntoskrnl/ke/i386/syscall.S	2005-01-18 03:28:00 UTC (rev 13107)
@@ -26,14 +26,14 @@
 .globl _KiSystemService
 
 _KiFastCallEntry:
-
+    
     /* Set FS to PCR */
     movl $PCR_SELECTOR, %ecx
     movw %cx, %fs
-    
+       
     /* Set the current stack to Kernel Stack */
     movl %fs:KPCR_TSS, %ecx
-    movl KTSS_ESP0(%ecx), %ecx
+    movl %ss:KTSS_ESP0(%ecx), %ecx
     movl %ecx, %esp
     
     /* Set up a fake INT Stack. */
@@ -205,7 +205,7 @@
     /* Save pointer to Trap Frame */
     movl %esp, %ebx
     
-    /* Raise IRQL to HIGH_LEVEL */
+    /* Raise IRQL to APC_LEVEL */
     movl $1, %ecx
     call @KfRaiseIrql@4
     

Modified: trunk/reactos/subsys/system/vmwinst/vmwinst.c
--- trunk/reactos/subsys/system/vmwinst/vmwinst.c	2005-01-18 02:12:45 UTC (rev 13106)
+++ trunk/reactos/subsys/system/vmwinst/vmwinst.c	2005-01-18 03:28:00 UTC (rev 13107)
@@ -316,43 +316,6 @@
 }
 
 BOOL
-DisableFastSystemCall(VOID)
-{
-    DWORD Value = 1;
-    HKEY hReg;
-    
-    /* Open or Create the Kernel Settings Key */    
-    if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
-                      L"SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Kernel", 
-                      0,
-                      NULL,
-                      REG_OPTION_NON_VOLATILE,
-                      KEY_SET_VALUE, 
-                      NULL,
-                      &hReg,
-                      NULL) != ERROR_SUCCESS) {
-        DbgPrint("Failed to Disable Sysenter\n");
-        return FALSE;
-    }
-    
-    /* Disable Fast System Call */
-    if(RegSetValueEx(hReg, 
-                     L"FastSystemCallDisable", 
-                     0, 
-                     REG_DWORD, 
-                     (BYTE*)&Value, 
-                     sizeof(DWORD)) != ERROR_SUCCESS) {
-        RegCloseKey(hReg);
-        DbgPrint("Failed to Disable Sysenter\n");
-        return FALSE;
-    }
-  
-    /* Return Success */  
-    RegCloseKey(hReg);
-    return TRUE;
-}
-
-BOOL
 EnableDriver(WCHAR *Key, BOOL Enable)
 {
   DWORD Value;
@@ -1061,9 +1024,6 @@
   /* restore the exception handler */
   SetUnhandledExceptionFilter(OldHandler);
   
-  /* Disable Fast System Call no matter what */
-  DisableFastSystemCall();
-  
   lc = DestinationPath;
   lc += GetSystemDirectory(DestinationPath, MAX_PATH) - 1;
   if(lc >= DestinationPath && *lc != L'\\')

Deleted: trunk/reactos/win32k.S
--- trunk/reactos/win32k.S	2005-01-18 02:12:45 UTC (rev 13106)
+++ trunk/reactos/win32k.S	2005-01-18 03:28:00 UTC (rev 13107)
@@ -1 +0,0 @@
-#include "../gdi32/misc/win32k.c"