From 6e6b2c4c78fb4f08364ec6842ee8a4e9b65448c9 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 7 Jul 2005 23:29:25 +0000 Subject: add update from psm to support 6 arguments to syscall --- libc/sysdeps/linux/i386/syscall.S | 17 +++++++++++------ 1 file 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. */ -- cgit v1.2.3