From 0da7bcc5bfa992ec96638bad30b8a9c1d7cc4b4f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 15 Oct 2004 21:31:29 +0000 Subject: Update. 2004-10-15 Jakub Jelinek * 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. --- sysdeps/unix/sysv/linux/i386/syscall.S | 10 +++++----- sysdeps/unix/sysv/linux/i386/sysdep.h | 7 +++++++ 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'sysdeps/unix/sysv/linux/i386') diff --git a/sysdeps/unix/sysv/linux/i386/syscall.S b/sysdeps/unix/sysv/linux/i386/syscall.S index cd7dc65..b569650 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 37e7459..af75d4c 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 -- cgit v1.1