summaryrefslogtreecommitdiff
path: root/src/init/syscall.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/init/syscall.s')
-rw-r--r--src/init/syscall.s11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/init/syscall.s b/src/init/syscall.s
index 78ce817..bea1452 100644
--- a/src/init/syscall.s
+++ b/src/init/syscall.s
@@ -5,16 +5,19 @@ _syscall:
push %ebx // preserve registers
push %esi
push %edi
+ push %ebp
// note: i could squeeze out another parameter out of %ebp
- mov 16(%esp), %eax
- mov 20(%esp), %ebx
+ mov 20(%esp), %eax
+ mov 24(%esp), %ebx
mov %esp, %ecx
mov $_syscall_ret, %edx
- mov 24(%esp), %esi
- mov 28(%esp), %edi
+ mov 28(%esp), %esi
+ mov 32(%esp), %edi
+ mov 36(%esp), %ebp
sysenter
_syscall_ret:
+ pop %ebp
pop %edi
pop %esi
pop %ebx