diff options
Diffstat (limited to 'sysdeps/unix/mips')
-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 |
3 files changed, 26 insertions, 15 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 |