mirror of
https://github.com/reactos/reactos.git
synced 2024-07-01 18:24:24 +00:00
[NTOSKRNL/HAL]
- Fix a bug is MSVC inline assembly - use iretd instead of iret the msvc compiled kernel boots a bit further now svn path=/trunk/; revision=52429
This commit is contained in:
parent
09a2c1a1cf
commit
590a071060
|
@ -24,7 +24,7 @@ PUBLIC @HalpExitToV86@4
|
|||
@HalpExitToV86@4:
|
||||
/* Point esp to the iret frame and return */
|
||||
lea esp, [ecx + KTRAP_FRAME_EIP]
|
||||
iret
|
||||
iretd
|
||||
|
||||
/* Here starts the real mode code */
|
||||
.code16
|
||||
|
|
|
@ -343,7 +343,7 @@ PUBLIC @&Name&@4
|
|||
elseif (Flags AND KI_EXIT_IRET)
|
||||
|
||||
/* Return with iret */
|
||||
iret
|
||||
iretd
|
||||
|
||||
elseif (Flags AND KI_EXIT_JMP)
|
||||
|
||||
|
|
|
@ -644,12 +644,13 @@ KiSystemCallTrampoline(IN PVOID Handler,
|
|||
{
|
||||
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 @@ KiIret(VOID)
|
|||
#elif defined(_MSC_VER)
|
||||
__asm
|
||||
{
|
||||
iret
|
||||
iretd
|
||||
}
|
||||
#else
|
||||
#error Unsupported compiler
|
||||
|
|
|
@ -116,7 +116,7 @@ _KdbEnter:
|
|||
/*
|
||||
* Return to the caller.
|
||||
*/
|
||||
iret
|
||||
iretd
|
||||
|
||||
|
||||
PUBLIC _KdbpStackSwitchAndCall@8
|
||||
|
|
Loading…
Reference in a new issue