diff options
author | dzwdz | 2021-09-14 20:31:40 +0200 |
---|---|---|
committer | dzwdz | 2021-09-14 20:31:40 +0200 |
commit | 1d0512957e802acfe7b677b30589a4e3bd26fac8 (patch) | |
tree | f055d09bb2ef2b552473bc6fa168c6dba4e4cb55 /src/init/syscall.s | |
parent | bfef3846f0048eee855af27406fd5d9b17a17677 (diff) |
add support for 4-parameter syscalls
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 |