diff options
author | Andreas Jaeger <aj@suse.de> | 2000-04-13 19:46:02 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2000-04-13 19:46:02 +0000 |
commit | 1cd0f06d0f6a42708fa18a1d54e30cc5aeed7667 (patch) | |
tree | 9190e0cfd90e06a91306c280cfb6583917ef0cc6 | |
parent | 547ff46273e7460f79a51ecda370116969eba182 (diff) | |
download | glibc-1cd0f06d0f6a42708fa18a1d54e30cc5aeed7667.zip glibc-1cd0f06d0f6a42708fa18a1d54e30cc5aeed7667.tar.gz glibc-1cd0f06d0f6a42708fa18a1d54e30cc5aeed7667.tar.bz2 |
2000-04-13 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/mips/pipe.S: Reorder instructions since .reorder is
default.
* sysdeps/mips/__longjmp.c (__longjmp): Use $25 to fix problems
with some applications.
Patches by Ralf Baechle <ralf@uni-koblenz.de>.
* sysdeps/mips/bsd-setjmp.S: Use __PIC__.
* sysdeps/mips/bsd-_setjmp.S: Likewise.
* sysdeps/mips/setjmp.S: Likewise.
-rw-r--r-- | sysdeps/mips/__longjmp.c | 4 | ||||
-rw-r--r-- | sysdeps/mips/bsd-_setjmp.S | 6 | ||||
-rw-r--r-- | sysdeps/mips/bsd-setjmp.S | 6 | ||||
-rw-r--r-- | sysdeps/mips/setjmp.S | 8 | ||||
-rw-r--r-- | sysdeps/unix/mips/pipe.S | 5 |
5 files changed, 14 insertions, 15 deletions
diff --git a/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c index e9ef5cf..a1920ca 100644 --- a/sysdeps/mips/__longjmp.c +++ b/sysdeps/mips/__longjmp.c @@ -69,7 +69,7 @@ __longjmp (env, val_arg) asm volatile ("lw $23, %0" : : "m" (env[0].__regs[7])); /* Get the PC. */ - asm volatile ("lw $31, %0" : : "m" (env[0].__pc)); + asm volatile ("lw $25, %0" : : "m" (env[0].__pc)); /* Give setjmp 1 if given a 0, or what they gave us if non-zero. */ if (val == 0) @@ -77,7 +77,7 @@ __longjmp (env, val_arg) else asm volatile ("move $2, %0" : : "r" (val)); - asm volatile ("j $31"); + asm volatile ("jr $25"); /* Avoid `volatile function does return' warnings. */ for (;;); diff --git a/sysdeps/mips/bsd-_setjmp.S b/sysdeps/mips/bsd-_setjmp.S index 6d841fc..bf7cb15 100644 --- a/sysdeps/mips/bsd-_setjmp.S +++ b/sysdeps/mips/bsd-_setjmp.S @@ -1,5 +1,5 @@ /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS version. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,12 +23,12 @@ #include <sysdep.h> -#ifdef PIC +#ifdef __PIC__ .option pic2 #endif ENTRY (_setjmp) .set noreorder -#ifdef PIC +#ifdef __PIC__ .cpload t9 la t9, C_SYMBOL_NAME (__sigsetjmp) jr t9 diff --git a/sysdeps/mips/bsd-setjmp.S b/sysdeps/mips/bsd-setjmp.S index 000aee4..bab312b 100644 --- a/sysdeps/mips/bsd-setjmp.S +++ b/sysdeps/mips/bsd-setjmp.S @@ -1,5 +1,5 @@ /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS version. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,12 +23,12 @@ #include <sysdep.h> -#ifdef PIC +#ifdef __PIC__ .option pic2 #endif ENTRY (setjmp) .set noreorder -#ifdef PIC +#ifdef __PIC__ .cpload t9 la t9, C_SYMBOL_NAME (__sigsetjmp) jr t9 diff --git a/sysdeps/mips/setjmp.S b/sysdeps/mips/setjmp.S index 607b5f2..804b27e 100644 --- a/sysdeps/mips/setjmp.S +++ b/sysdeps/mips/setjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,11 +21,11 @@ /* The function __sigsetjmp_aux saves all the registers, but it can't reliably access the stack or frame pointers, so we pass them in as extra arguments. */ -#ifdef PIC +#ifdef __PIC__ .option pic2 #endif ENTRY (__sigsetjmp) -#ifdef PIC +#ifdef __PIC__ .set noreorder .cpload t9 .set reorder @@ -36,7 +36,7 @@ ENTRY (__sigsetjmp) #else move a3, $fp #endif -#ifdef PIC +#ifdef __PIC__ la t9, __sigsetjmp_aux jr t9 #else diff --git a/sysdeps/unix/mips/pipe.S b/sysdeps/unix/mips/pipe.S index dac6174..7066ac7 100644 --- a/sysdeps/unix/mips/pipe.S +++ b/sysdeps/unix/mips/pipe.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995, 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe (brendan@zen.org). @@ -25,9 +25,8 @@ SYSCALL__ (pipe, 1) sw v1, 4(a0) /* Go out with a clean status. */ - j ra move v0, zero - nop + j ra .end __pipe weak_alias (__pipe, pipe) |