summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-07-07 23:29:25 +0000
committerMike Frysinger <vapier@gentoo.org>2005-07-07 23:29:25 +0000
commit6e6b2c4c78fb4f08364ec6842ee8a4e9b65448c9 (patch)
tree158e6e23c74f16986e97ae6fdc195700a94c8ba1 /libc/sysdeps/linux
parentdcdf4a3c8a742c7feb472c54f1fe1fd04e2b498e (diff)
add update from psm to support 6 arguments to syscall
Diffstat (limited to 'libc/sysdeps/linux')
-rw-r--r--libc/sysdeps/linux/i386/syscall.S17
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. */