diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-10-15 21:31:29 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-10-15 21:31:29 +0000 |
commit | 0da7bcc5bfa992ec96638bad30b8a9c1d7cc4b4f (patch) | |
tree | 935cf82d4528f8d39df34f241837bc77b019521e /sysdeps | |
parent | 457962e5f1490b9f2d64a2767b16fc472fc0db95 (diff) | |
download | glibc-0da7bcc5bfa992ec96638bad30b8a9c1d7cc4b4f.tar.gz glibc-0da7bcc5bfa992ec96638bad30b8a9c1d7cc4b4f.tar.xz glibc-0da7bcc5bfa992ec96638bad30b8a9c1d7cc4b4f.zip |
Update.
2004-10-15 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/i386/sysdep.h (PUSHARGS_6, DOARGS_6, POPARGS_6, _PUSHARGS_6, _DOARGS_6, _POPARGS_6): Define. * sysdeps/unix/sysv/linux/i386/syscall.S (syscall): Handle 6 argument syscalls.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/syscall.S | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sysdep.h | 7 |
2 files changed, 12 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/syscall.S b/sysdeps/unix/sysv/linux/i386/syscall.S index cd7dc65a5f..b569650b24 100644 --- a/sysdeps/unix/sysv/linux/i386/syscall.S +++ b/sysdeps/unix/sysv/linux/i386/syscall.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1998, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1998, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,11 +24,11 @@ .text ENTRY (syscall) - PUSHARGS_5 /* Save register contents. */ - _DOARGS_5(36) /* Load arguments. */ - movl 16(%esp), %eax /* Load syscall number into %eax. */ + PUSHARGS_6 /* Save register contents. */ + _DOARGS_6(44) /* Load arguments. */ + movl 20(%esp), %eax /* Load syscall number into %eax. */ ENTER_KERNEL /* Do the system call. */ - POPARGS_5 /* Restore register contents. */ + POPARGS_6 /* Restore register contents. */ cmpl $-4095, %eax /* Check %eax for error. */ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */ L(pseudo_end): diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 37e7459a9c..af75d4c51a 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -297,6 +297,13 @@ __i686.get_pc_thunk.reg: \ #define _DOARGS_5(n) movl n(%esp), %edi; _DOARGS_4 (n-4) #define _POPARGS_5 _POPARGS_4; popl %edi; L(POPDI1): +#define PUSHARGS_6 _PUSHARGS_6 +#define DOARGS_6 _DOARGS_6 (36) +#define POPARGS_6 _POPARGS_6 +#define _PUSHARGS_6 pushl %ebp; L(PUSHBP1): _PUSHARGS_5 +#define _DOARGS_6(n) movl n(%esp), %ebp; _DOARGS_5 (n-4) +#define _POPARGS_6 _POPARGS_5; popl %ebp; L(POPBP1): + #else /* !__ASSEMBLER__ */ /* We need some help from the assembler to generate optimal code. We |