mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
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:
parent
547ff46273
commit
1cd0f06d0f
@ -69,7 +69,7 @@ __longjmp (env, val_arg)
|
|||||||
asm volatile ("lw $23, %0" : : "m" (env[0].__regs[7]));
|
asm volatile ("lw $23, %0" : : "m" (env[0].__regs[7]));
|
||||||
|
|
||||||
/* Get the PC. */
|
/* 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. */
|
/* Give setjmp 1 if given a 0, or what they gave us if non-zero. */
|
||||||
if (val == 0)
|
if (val == 0)
|
||||||
@ -77,7 +77,7 @@ __longjmp (env, val_arg)
|
|||||||
else
|
else
|
||||||
asm volatile ("move $2, %0" : : "r" (val));
|
asm volatile ("move $2, %0" : : "r" (val));
|
||||||
|
|
||||||
asm volatile ("j $31");
|
asm volatile ("jr $25");
|
||||||
|
|
||||||
/* Avoid `volatile function does return' warnings. */
|
/* Avoid `volatile function does return' warnings. */
|
||||||
for (;;);
|
for (;;);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS version.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -23,12 +23,12 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
.option pic2
|
.option pic2
|
||||||
#endif
|
#endif
|
||||||
ENTRY (_setjmp)
|
ENTRY (_setjmp)
|
||||||
.set noreorder
|
.set noreorder
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
.cpload t9
|
.cpload t9
|
||||||
la t9, C_SYMBOL_NAME (__sigsetjmp)
|
la t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||||
jr t9
|
jr t9
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS version.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -23,12 +23,12 @@
|
|||||||
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
.option pic2
|
.option pic2
|
||||||
#endif
|
#endif
|
||||||
ENTRY (setjmp)
|
ENTRY (setjmp)
|
||||||
.set noreorder
|
.set noreorder
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
.cpload t9
|
.cpload t9
|
||||||
la t9, C_SYMBOL_NAME (__sigsetjmp)
|
la t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||||
jr t9
|
jr t9
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
/* 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
|
reliably access the stack or frame pointers, so we pass them in as
|
||||||
extra arguments. */
|
extra arguments. */
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
.option pic2
|
.option pic2
|
||||||
#endif
|
#endif
|
||||||
ENTRY (__sigsetjmp)
|
ENTRY (__sigsetjmp)
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
.set noreorder
|
.set noreorder
|
||||||
.cpload t9
|
.cpload t9
|
||||||
.set reorder
|
.set reorder
|
||||||
@ -36,7 +36,7 @@ ENTRY (__sigsetjmp)
|
|||||||
#else
|
#else
|
||||||
move a3, $fp
|
move a3, $fp
|
||||||
#endif
|
#endif
|
||||||
#ifdef PIC
|
#ifdef __PIC__
|
||||||
la t9, __sigsetjmp_aux
|
la t9, __sigsetjmp_aux
|
||||||
jr t9
|
jr t9
|
||||||
#else
|
#else
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Brendan Kehoe (brendan@zen.org).
|
Contributed by Brendan Kehoe (brendan@zen.org).
|
||||||
|
|
||||||
@ -25,9 +25,8 @@ SYSCALL__ (pipe, 1)
|
|||||||
sw v1, 4(a0)
|
sw v1, 4(a0)
|
||||||
|
|
||||||
/* Go out with a clean status. */
|
/* Go out with a clean status. */
|
||||||
j ra
|
|
||||||
move v0, zero
|
move v0, zero
|
||||||
nop
|
j ra
|
||||||
.end __pipe
|
.end __pipe
|
||||||
|
|
||||||
weak_alias (__pipe, pipe)
|
weak_alias (__pipe, pipe)
|
||||||
|
Loading…
Reference in New Issue
Block a user