diff options
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/mips/sysdep.S | 11 | ||||
-rw-r--r-- | sysdeps/unix/mips/sysdep.h | 19 | ||||
-rw-r--r-- | sysdeps/unix/mips/wait.S | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/clone.S | 12 |
4 files changed, 32 insertions, 21 deletions
diff --git a/sysdeps/unix/mips/sysdep.S b/sysdeps/unix/mips/sysdep.S index c710b0c274..a1adf677f9 100644 --- a/sysdeps/unix/mips/sysdep.S +++ b/sysdeps/unix/mips/sysdep.S @@ -1,4 +1,5 @@ -/* Copyright (C) 1992,93,94,97,98,99,2000 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1993, 1994, 1997, 1998, 1999, 2000, 2002, 2003 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe (brendan@zen.org). @@ -46,10 +47,10 @@ ENTRY(__syscall_error) /* We translate the system's EWOULDBLOCK error into EAGAIN. The GNU C library always defines EWOULDBLOCK==EAGAIN. EWOULDBLOCK_sys is the original number. */ - bne v0, EWOULDBLOCK_sys, skip + bne v0, EWOULDBLOCK_sys, L(skip) nop li v0, EAGAIN -skip: +L(skip): #endif /* Find our per-thread errno address */ jal __errno_location @@ -84,9 +85,9 @@ ENTRY(__syscall_error) /* We translate the system's EWOULDBLOCK error into EAGAIN. The GNU C library always defines EWOULDBLOCK==EAGAIN. EWOULDBLOCK_sys is the original number. */ - bne v0, EWOULDBLOCK_sys, skip + bne v0, EWOULDBLOCK_sys, L(skip) li v0, EAGAIN -skip: +L(skip): #endif /* Store it in errno... */ sw v0, errno diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h index fd5191601a..8ba84e2083 100644 --- a/sysdeps/unix/mips/sysdep.h +++ b/sysdeps/unix/mips/sysdep.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1992,95,97,99,2000 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe (brendan@zen.org). @@ -33,7 +34,7 @@ can make things confusing if you're debugging---it looks like it's jumping backwards into the previous fn. */ #ifdef __PIC__ - #define PSEUDO(name, syscall_name, args) \ +#define PSEUDO(name, syscall_name, args) \ .align 2; \ 99: la t9,__syscall_error; \ jr t9; \ @@ -44,7 +45,7 @@ syscall; \ .set reorder; \ bne a3, zero, 99b; \ -syse1: +L(syse1): #else #define PSEUDO(name, syscall_name, args) \ .set noreorder; \ @@ -57,7 +58,7 @@ syse1: syscall; \ .set reorder; \ bne a3, zero, 99b; \ -syse1: +L(syse1): #endif #undef PSEUDO_END @@ -66,11 +67,19 @@ syse1: #define ret j ra ; nop #undef END -#define END(sym) .end sym +#define END(function) \ + .end function; \ + .size function,.-function #define r0 v0 #define r1 v1 /* The mips move insn is d,s. */ #define MOVE(x,y) move y , x +#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_ABIO64 +# define L(label) $L ## label +#else +# define L(label) .L ## label +#endif + #endif diff --git a/sysdeps/unix/mips/wait.S b/sysdeps/unix/mips/wait.S index 4f4f84a4af..de0f6ebfae 100644 --- a/sysdeps/unix/mips/wait.S +++ b/sysdeps/unix/mips/wait.S @@ -1,4 +1,5 @@ -/* Copyright (C) 1992, 1994, 1995, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1994, 1995, 1997, 2002, 2003 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe (brendan@zen.org). @@ -28,18 +29,18 @@ ENTRY(__wait) li v0, SYS_wait syscall - beqz a3, noerror + beqz a3, L(noerror) nop j __syscall_error nop -noerror: +L(noerror): /* If the arg is not NULL, store v1 there. */ - beqz a0, noarg + beqz a0, L(noarg) nop sw v1, 0(a0) nop -noarg: +L(noarg): ret .end __wait diff --git a/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S index 00b13170e5..2b02a2ba9b 100644 --- a/sysdeps/unix/sysv/linux/mips/clone.S +++ b/sysdeps/unix/sysv/linux/mips/clone.S @@ -49,8 +49,8 @@ NESTED(__clone,4*SZREG,sp) /* Sanity check arguments. */ li v0,EINVAL - beqz a0,error /* No NULL function pointers. */ - beqz a1,error /* No NULL stack pointers. */ + beqz a0,L(error) /* No NULL function pointers. */ + beqz a1,L(error) /* No NULL stack pointers. */ subu a1,32 /* Reserve argument save space. */ sw a0,0(a1) /* Save function pointer. */ @@ -62,15 +62,15 @@ NESTED(__clone,4*SZREG,sp) li v0,__NR_clone syscall - bnez a3,error - beqz v0,.Lthread_start + bnez a3,L(error) + beqz v0,L(thread_start) /* Successful return from the parent */ addiu sp,32 ret /* Something bad happened -- no child created */ -error: +L(error): addiu sp,32 #ifdef __PIC__ la t9,__syscall_error @@ -84,7 +84,7 @@ error: its own function so that we can terminate the stack trace with our debug info. */ -.Lthread_start: +L(thread_start): /* cp is already loaded. */ .cprestore 16 /* The stackframe has been created on entry of clone(). */ |