From: Ulrich Drepper Date: Tue, 19 May 1998 16:12:40 +0000 (+0000) Subject: Correct handling of arguments. X-Git-Tag: glibc-2.16-ports-before-merge~3231 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7500ff18c7a2653429ea6428c5373e2b458a81ba;p=thirdparty%2Fglibc.git Correct handling of arguments. --- diff --git a/sysdeps/unix/sysv/linux/arm/socket.S b/sysdeps/unix/sysv/linux/arm/socket.S index 1ebec9ca26b..b51d887a7fc 100644 --- a/sysdeps/unix/sysv/linux/arm/socket.S +++ b/sysdeps/unix/sysv/linux/arm/socket.S @@ -35,10 +35,26 @@ #define __socket P(__,socket) #endif +#define PUSHARGS_1 stmfd ip!, {a1} +#define PUSHARGS_2 stmfd ip!, {a1, a2} +#define PUSHARGS_3 stmfd ip!, {a1, a2, a3} +#define PUSHARGS_4 stmfd ip!, {a1, a2, a3, a4} +#define PUSHARGS_5 stmfd ip!, {a1, a2, a3, a4} /* Caller has already pushed arg 5 */ +#define PUSHARGS_6 stmfd ip!, {a1, a2, a3, a4} + +#ifndef NARGS +#define NARGS 3 /* If we were called with no wrapper, this is really socket() */ +#endif + .globl __socket ENTRY (__socket) + /* Push args onto the stack. */ + mov ip, sp + P(PUSHARGS_,NARGS) /* Do the system call trap. */ + mov a1, $P(SOCKOP_,socket) + mov a2, ip swi SYS_ify(socketcall) /* r0 is < 0 if there was an error. */ @@ -46,7 +62,7 @@ ENTRY (__socket) bhs PLTJMP(syscall_error) /* Successful; return the syscall's value. */ - RETINSTR(mov,pc,r14) + ret PSEUDO_END (__socket)