diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2003-03-29 08:15:29 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2003-03-29 08:15:29 +0000 |
commit | e077d10d0d6f4c08cf5a97d61bdf4027fbb9e939 (patch) | |
tree | 4f4a3159467a04e1362cdc7bbb21af1a128ce7c9 /sysdeps/unix/mips | |
parent | c7da3ff8c599a1117b8fed30116c29d332e5972b (diff) | |
download | glibc-e077d10d0d6f4c08cf5a97d61bdf4027fbb9e939.tar glibc-e077d10d0d6f4c08cf5a97d61bdf4027fbb9e939.tar.gz glibc-e077d10d0d6f4c08cf5a97d61bdf4027fbb9e939.tar.bz2 glibc-e077d10d0d6f4c08cf5a97d61bdf4027fbb9e939.zip |
* configure.in: Add mips64* support. * configure: Rebuilt. * sysdeps/mips/bits/endian.h: Make it bi-endian. * sysdeps/mips/mipsel/bits/endian.h: Removed. * sysdeps/mips/mips64/n32/el/bits/endian.h: Removed. * sysdeps/mips/mips64/n64/el/bits/endian.h: Removed. * sysdeps/mips/mips32/Makefile (CC): Add -mabi=32. * sysdeps/mips/mips64/n32/Makefile (CC): Add -mabi=n32. * sysdeps/mips/mips64/n64/Makefile (CC): Add -mabi=64. * sysdeps/mips/Implies: Moved wordsize-32 to... * sysdeps/mips/mips32/Implies: New file. * sysdeps/unix/mips/sysdep.h (PSEUDO_NOERRNO, PSEUDO_END_NOERRNO, ret_NOERRNO): New. (ret, PSEUDO_END): Moved past END. (PSEUDO): Moved to... * sysdeps/unix/mips/mips32/sysdep.h: New file. * sysdeps/unix/mips/mips64/n32/sysdep.h: Removed #undef PSEUDO. * sysdeps/unix/mips/mips64/n64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/mips/sysdep.h: Move to... * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: New file. * sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h: New file.
* configure.in: Add mips64* support.
* configure: Rebuilt.
* sysdeps/mips/bits/endian.h: Make it bi-endian.
* sysdeps/mips/mipsel/bits/endian.h: Removed.
* sysdeps/mips/mips64/n32/el/bits/endian.h: Removed.
* sysdeps/mips/mips64/n64/el/bits/endian.h: Removed.
* sysdeps/mips/mips32/Makefile (CC): Add -mabi=32.
* sysdeps/mips/mips64/n32/Makefile (CC): Add -mabi=n32.
* sysdeps/mips/mips64/n64/Makefile (CC): Add -mabi=64.
* sysdeps/mips/Implies: Moved wordsize-32 to...
* sysdeps/mips/mips32/Implies: New file.
* sysdeps/unix/mips/sysdep.h (PSEUDO_NOERRNO, PSEUDO_END_NOERRNO,
ret_NOERRNO): New.
(ret, PSEUDO_END): Moved past END.
(PSEUDO): Moved to...
* sysdeps/unix/mips/mips32/sysdep.h: New file.
* sysdeps/unix/mips/mips64/n32/sysdep.h: Removed #undef PSEUDO.
* sysdeps/unix/mips/mips64/n64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sysdep.h: Move to...
* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: New file.
* sysdeps/unix/sysv/linux/mips/mips32/kern64/sysdep.h: New file.
Diffstat (limited to 'sysdeps/unix/mips')
-rw-r--r-- | sysdeps/unix/mips/mips32/sysdep.h | 52 | ||||
-rw-r--r-- | sysdeps/unix/mips/mips64/n32/sysdep.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/mips/mips64/n64/sysdep.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/mips/sysdep.h | 52 |
4 files changed, 68 insertions, 38 deletions
diff --git a/sysdeps/unix/mips/mips32/sysdep.h b/sysdeps/unix/mips/mips32/sysdep.h new file mode 100644 index 0000000000..0b5d1186bb --- /dev/null +++ b/sysdeps/unix/mips/mips32/sysdep.h @@ -0,0 +1,52 @@ +/* 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). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include <sysdeps/unix/mips/sysdep.h> + +/* Note that while it's better structurally, going back to call __syscall_error + 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) \ + .align 2; \ + 99: la t9,__syscall_error; \ + jr t9; \ + ENTRY(name) \ + .set noreorder; \ + .cpload t9; \ + li v0, SYS_ify(syscall_name); \ + syscall; \ + .set reorder; \ + bne a3, zero, 99b; \ +L(syse1): +#else +#define PSEUDO(name, syscall_name, args) \ + .set noreorder; \ + .align 2; \ + 99: j __syscall_error; \ + nop; \ + ENTRY(name) \ + .set noreorder; \ + li v0, SYS_ify(syscall_name); \ + syscall; \ + .set reorder; \ + bne a3, zero, 99b; \ +L(syse1): +#endif diff --git a/sysdeps/unix/mips/mips64/n32/sysdep.h b/sysdeps/unix/mips/mips64/n32/sysdep.h index 3564c6b61e..ec93fadc04 100644 --- a/sysdeps/unix/mips/mips64/n32/sysdep.h +++ b/sysdeps/unix/mips/mips64/n32/sysdep.h @@ -22,7 +22,6 @@ #ifdef __ASSEMBLER__ -# undef PSEUDO /* Note that while it's better structurally, going back to call __syscall_error can make things confusing if you're debugging---it looks like it's jumping backwards into the previous fn. */ diff --git a/sysdeps/unix/mips/mips64/n64/sysdep.h b/sysdeps/unix/mips/mips64/n64/sysdep.h index 982d905a43..502b66797b 100644 --- a/sysdeps/unix/mips/mips64/n64/sysdep.h +++ b/sysdeps/unix/mips/mips64/n64/sysdep.h @@ -22,7 +22,6 @@ #ifdef __ASSEMBLER__ -# undef PSEUDO /* Note that while it's better structurally, going back to call __syscall_error can make things confusing if you're debugging---it looks like it's jumping backwards into the previous fn. */ diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h index 8ba84e2083..13a3752dc8 100644 --- a/sysdeps/unix/mips/sysdep.h +++ b/sysdeps/unix/mips/sysdep.h @@ -30,47 +30,27 @@ .ent name,0; \ name##: -/* Note that while it's better structurally, going back to call __syscall_error - 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) \ - .align 2; \ - 99: la t9,__syscall_error; \ - jr t9; \ - ENTRY(name) \ - .set noreorder; \ - .cpload t9; \ - li v0, SYS_ify(syscall_name); \ - syscall; \ - .set reorder; \ - bne a3, zero, 99b; \ -L(syse1): -#else -#define PSEUDO(name, syscall_name, args) \ - .set noreorder; \ - .align 2; \ - 99: j __syscall_error; \ - nop; \ - ENTRY(name) \ - .set noreorder; \ - li v0, SYS_ify(syscall_name); \ - syscall; \ - .set reorder; \ - bne a3, zero, 99b; \ -L(syse1): -#endif - -#undef PSEUDO_END -#define PSEUDO_END(sym) .end sym - -#define ret j ra ; nop - #undef END #define END(function) \ .end function; \ .size function,.-function +#define ret j ra ; nop + +#define PSEUDO_END(sym) .end sym; .size sym,.-sym + +#define PSEUDO_NOERRNO(name, syscall_name, args) \ + .align 2; \ + ENTRY(name) \ + .set noreorder; \ + li v0, SYS_ify(syscall_name); \ + syscall + +#undef PSEUDO_END_NOERRNO +#define PSEUDO_END_NOERRNO(sym) .end sym; .size sym,.-sym + +#define ret_NOERRNO ret + #define r0 v0 #define r1 v1 /* The mips move insn is d,s. */ |