diff options
Diffstat (limited to 'src/init/syscall.s')
-rw-r--r-- | src/init/syscall.s | 11 |
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 |