mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-30 12:31:53 +08:00
Implement __sigsetjmp instead of __setjmp; call __sigsetjmp_aux instead of
__setjmp_aux.
This commit is contained in:
parent
0df328ab41
commit
e5eb42c555
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992, 1994 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
|
||||
@ -18,12 +18,12 @@ Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
/* The function __setjmp_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
|
||||
extra arguments. */
|
||||
ENTRY (__setjmp)
|
||||
lda $27, __setjmp_aux /* Load address to jump to. */
|
||||
ENTRY (__sigsetjmp)
|
||||
lda $27, __sigsetjmp_aux/* Load address to jump to. */
|
||||
bis $15, $15, $17 /* Pass FP as 2nd arg. */
|
||||
bis $30, $30, $18 /* Pass SP as 3nd arg. */
|
||||
jmp $31, ($27), __setjmp_aux /* Call __setjmp_aux. */
|
||||
.end __setjmp
|
||||
jmp $31, ($27), __sigsetjmp_aux /* Call __sigsetjmp_aux. */
|
||||
.end __sigsetjmp
|
||||
|
@ -18,15 +18,14 @@ Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <sysdep.h>
|
||||
|
||||
/* The function __setjmp_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
|
||||
extra arguments. */
|
||||
ENTRY (__setjmp)
|
||||
ENTRY (__sigsetjmp)
|
||||
move a1, sp
|
||||
#ifdef __sgi__
|
||||
move a2, fp
|
||||
#else
|
||||
move a2, $fp
|
||||
#endif
|
||||
j __setjmp_aux
|
||||
|
||||
j __sigsetjmp_aux
|
||||
|
Loading…
Reference in New Issue
Block a user