[ros-diffs] [tkreuzer] 52429: [NTOSKRNL/HAL] - Fix a bug is MSVC inline assembly - use iretd instead of iret the msvc compiled kernel boots a bit further now

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Jun 22 19:04:28 UTC 2011


Author: tkreuzer
Date: Wed Jun 22 19:04:28 2011
New Revision: 52429

URL: http://svn.reactos.org/svn/reactos?rev=52429&view=rev
Log:
[NTOSKRNL/HAL]
- Fix a bug is MSVC inline assembly
- use iretd instead of iret
the msvc compiled kernel boots a bit further now

Modified:
    trunk/reactos/hal/halx86/generic/i386/trap.S
    trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
    trunk/reactos/ntoskrnl/include/internal/i386/ke.h
    trunk/reactos/ntoskrnl/kdbg/i386/kdb_help.S

Modified: trunk/reactos/hal/halx86/generic/i386/trap.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/i386/trap.S?rev=52429&r1=52428&r2=52429&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/generic/i386/trap.S [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/generic/i386/trap.S [iso-8859-1] Wed Jun 22 19:04:28 2011
@@ -24,7 +24,7 @@
 @HalpExitToV86 at 4:
     /* Point esp to the iret frame and return */
     lea esp, [ecx + KTRAP_FRAME_EIP]
-    iret
+    iretd
 
 /* Here starts the real mode code */
 .code16

Modified: trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S?rev=52429&r1=52428&r2=52429&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/i386/asmmacro.S [iso-8859-1] Wed Jun 22 19:04:28 2011
@@ -343,7 +343,7 @@
     elseif (Flags AND KI_EXIT_IRET)
 
         /* Return with iret */
-        iret
+        iretd
 
     elseif (Flags AND KI_EXIT_JMP)
 

Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/ke.h?rev=52429&r1=52428&r2=52429&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/i386/ke.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/i386/ke.h [iso-8859-1] Wed Jun 22 19:04:28 2011
@@ -644,12 +644,13 @@
     {
         mov ecx, StackBytes
         mov edx, Arguments
+        mov ebx, Handler
         sub esp, ecx
         mov edi, esp
         mov esi, edx
         shr ecx, 2
         rep movsd
-        call Handler
+        call ebx
         mov Result, eax
     }
 #else
@@ -803,7 +804,7 @@
 #elif defined(_MSC_VER)
     __asm
     {
-        iret
+        iretd
     }
 #else
 #error Unsupported compiler

Modified: trunk/reactos/ntoskrnl/kdbg/i386/kdb_help.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/i386/kdb_help.S?rev=52429&r1=52428&r2=52429&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/kdbg/i386/kdb_help.S [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/kdbg/i386/kdb_help.S [iso-8859-1] Wed Jun 22 19:04:28 2011
@@ -116,7 +116,7 @@
     /*
      * Return to the caller.
      */
-    iret
+    iretd
 
 
 PUBLIC _KdbpStackSwitchAndCall at 8




More information about the Ros-diffs mailing list