diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-07-07 23:29:25 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-07-07 23:29:25 +0000 |
commit | 6e6b2c4c78fb4f08364ec6842ee8a4e9b65448c9 (patch) | |
tree | 158e6e23c74f16986e97ae6fdc195700a94c8ba1 /libc | |
parent | dcdf4a3c8a742c7feb472c54f1fe1fd04e2b498e (diff) |
add update from psm to support 6 arguments to syscall
Diffstat (limited to 'libc')
-rw-r--r-- | libc/sysdeps/linux/i386/syscall.S | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/libc/sysdeps/linux/i386/syscall.S b/libc/sysdeps/linux/i386/syscall.S index 7c49625b2..00e52c300 100644 --- a/libc/sysdeps/linux/i386/syscall.S +++ b/libc/sysdeps/linux/i386/syscall.S @@ -25,20 +25,25 @@ .type syscall,%function .align 4 syscall: + pushl %ebp pushl %edi pushl %esi pushl %ebx - movl 36(%esp),%edi /* Load the 5 syscall argument registers */ - movl 32(%esp),%esi - movl 28(%esp),%edx - movl 24(%esp),%ecx - movl 20(%esp),%ebx - movl 16(%esp),%eax /* Load syscall number into %eax. */ + + movl 44(%esp),%ebp /* Load the 6 syscall argument registers */ + movl 40(%esp),%edi + movl 36(%esp),%esi + movl 32(%esp),%edx + movl 28(%esp),%ecx + movl 24(%esp),%ebx + movl 20(%esp),%eax /* Load syscall number into %eax. */ int $0x80 popl %ebx popl %esi popl %edi + popl %ebp + cmpl $-4095,%eax jae __error ret /* Return to caller. */ |