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.
This commit is contained in:
Andreas Jaeger 2000-04-13 19:46:02 +00:00
parent 547ff46273
commit 1cd0f06d0f
5 changed files with 14 additions and 15 deletions

View File

@ -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 (;;);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)