From dd46af86ca22aa1af2f7843a624c436fefd6c51f Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Tue, 5 May 2015 20:50:37 +0200 Subject: [PATCH gnumach 09/10] be less stoopid --- i386/i386/locore.S | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/i386/i386/locore.S b/i386/i386/locore.S index 8b4d766..0d08be5 100644 --- a/i386/i386/locore.S +++ b/i386/i386/locore.S @@ -1303,10 +1303,7 @@ ENTRY(sysenter_entry) pushl SE_GS(%ebp) xchgl %ebx, %esp /* switch to kernel stack */ - pushl %ebx /* save pcb stack pointer */ - movl %esp,%ebx /* save kernel sp for argument - unwinding */ - + /* %ebx points to user registers */ negl %eax /* get system call number */ /* xxx sysenter_mach_call_range */ jl mach_call_range /* out of range if it was positive */ @@ -1361,8 +1358,7 @@ se_args_0: call *EXT(mach_trap_table)+4(%eax) /* call procedure */ cli /* xxx: sti/cli where ? */ - movl %ebx, %esp /* clean parameters from stack */ - popl %esp /* switch to pcb stack */ + movl %ebx, %esp /* switch to pcb stack */ movl %eax, R_EAX(%esp) /* save return value */ jmp _return_from_trap /* check for AST, then... */ return_from_sysenter: /* return here */ -- 2.1.4