Fixed saving of esp in KePushAndStackSwitchAndSysRet.

svn path=/trunk/; revision=3094
This commit is contained in:
Hartmut Birr 2002-06-15 14:57:29 +00:00
parent 97970adc7d
commit 8dd702a72b

View file

@ -29,27 +29,27 @@
#include <internal/i386/segment.h> #include <internal/i386/segment.h>
#include <internal/ps.h> #include <internal/ps.h>
#include <ddk/i386/tss.h> #include <ddk/i386/tss.h>
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/
.globl _KeStackSwitchAndRet@4 .globl _KeStackSwitchAndRet@4
_KeStackSwitchAndRet@4: _KeStackSwitchAndRet@4:
pushl %ebp pushl %ebp
movl %esp, %ebp movl %esp, %ebp
cli cli
movl 8(%ebp), %esp movl 8(%ebp), %esp
sti sti
popl %edi popl %edi
popl %esi popl %esi
popl %ebx popl %ebx
popl %ebp popl %ebp
ret $28 ret $28
.globl _KePushAndStackSwitchAndSysRet@28 .globl _KePushAndStackSwitchAndSysRet@28
_KePushAndStackSwitchAndSysRet@28: _KePushAndStackSwitchAndSysRet@28:
pushl %ebp pushl %ebp
@ -68,7 +68,7 @@ _KePushAndStackSwitchAndSysRet@28:
pushl 24(%ebp) pushl 24(%ebp)
pushl 28(%ebp) pushl 28(%ebp)
movl %ebx, %fs:KPCR_CURRENT_THREAD movl %fs:KPCR_CURRENT_THREAD, %ebx
movl %esp, KTHREAD_CALLBACK_STACK(%ebx) movl %esp, KTHREAD_CALLBACK_STACK(%ebx)
movl 32(%ebp), %esp movl 32(%ebp), %esp
@ -78,4 +78,4 @@ _KePushAndStackSwitchAndSysRet@28:
call _KeLowerIrql@4 call _KeLowerIrql@4
jmp KeReturnFromSystemCall jmp KeReturnFromSystemCall