diff options
author | Mike Frysinger <vapier@gentoo.org> | 2007-09-15 07:25:54 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2007-09-15 07:25:54 +0000 |
commit | 62ac74d3f2b957bc91f91a03d93fa523e9a80c9f (patch) | |
tree | 2dda3ce3401084a9deece4cb3a048efc547f2310 /libc/sysdeps/linux/mips/pipe.S | |
parent | 59868cafe27e9d5a68f81bff4cda9aca5afaa3f7 (diff) |
Atsushi Nemoto writes:
In MIPS syscall(2), .cpload was added to an the error path, but it was
not enough for ABIs other then O32. Use SETUP_GP, SETUP_GP64 and
RESTORE_GP64 to handle all ABIs. This patch fixes an error path of
MIPS pipe(2) too.
Diffstat (limited to 'libc/sysdeps/linux/mips/pipe.S')
-rw-r--r-- | libc/sysdeps/linux/mips/pipe.S | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/mips/pipe.S b/libc/sysdeps/linux/mips/pipe.S index dd1aed1b2..8b3023679 100644 --- a/libc/sysdeps/linux/mips/pipe.S +++ b/libc/sysdeps/linux/mips/pipe.S @@ -14,7 +14,11 @@ .globl pipe .ent pipe, 0 + .type pipe,@function pipe: +#ifdef __PIC__ + SETUP_GP +#endif li v0,__NR_pipe syscall bnez a3, 1f @@ -28,7 +32,9 @@ pipe: /* uClibc change -- stop */ #ifdef __PIC__ + SETUP_GP64(v0, pipe) PTR_LA t9, __syscall_error + RESTORE_GP64 jr t9 #else j __syscall_error |