]>
Commit | Line | Data |
---|---|---|
a334319f UD |
1 | /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version. |
2 | Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004 | |
3 | Free Software Foundation, Inc. | |
478b92f0 | 4 | This file is part of the GNU C Library. |
28f540f4 | 5 | |
478b92f0 | 6 | The GNU C Library is free software; you can redistribute it and/or |
41bdb6e2 AJ |
7 | modify it under the terms of the GNU Lesser General Public |
8 | License as published by the Free Software Foundation; either | |
9 | version 2.1 of the License, or (at your option) any later version. | |
28f540f4 | 10 | |
478b92f0 UD |
11 | The GNU C Library is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 14 | Lesser General Public License for more details. |
28f540f4 | 15 | |
41bdb6e2 AJ |
16 | You should have received a copy of the GNU Lesser General Public |
17 | License along with the GNU C Library; if not, write to the Free | |
18 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |
19 | 02111-1307 USA. */ | |
28f540f4 | 20 | |
a334319f UD |
21 | /* This just does a tail-call to `__sigsetjmp (ARG, 0)'. |
22 | We cannot do it in C because it must be a tail-call, so frame-unwinding | |
23 | in setjmp doesn't clobber the state restored by longjmp. */ | |
28f540f4 | 24 | |
a334319f UD |
25 | #include <sgidefs.h> |
26 | #include <sysdep.h> | |
27 | #include <sys/asm.h> | |
28f540f4 | 28 | |
a334319f UD |
29 | #ifdef __PIC__ |
30 | .option pic2 | |
31 | #endif | |
32 | ENTRY (_setjmp) | |
33 | #ifdef __PIC__ | |
34 | SETUP_GP | |
35 | #endif | |
36 | SETUP_GP64 (v0, C_SYMBOL_NAME (_setjmp)) | |
37 | PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp) | |
38 | #if _MIPS_SIM == _ABIO32 | |
39 | nop | |
40 | #endif | |
41 | RESTORE_GP64 | |
42 | move a1, zero /* Pass a second argument of zero. */ | |
43 | #ifdef __PIC__ | |
44 | jr t9 | |
45 | #else | |
46 | j C_SYMBOL_NAME (__sigsetjmp) | |
47 | #endif | |
48 | .end _setjmp | |
9b4289aa | 49 | libc_hidden_def (_setjmp) |