OSDN Git Service

hidden_def/hidden_proto: convert all users (I hope) termios split, add some missing...
[uclinux-h8/uClibc.git] / libc / sysdeps / linux / microblaze / __longjmp.S
1 /*
2  * libc/sysdeps/linux/microblaze/longjmp.S -- `longjmp' for microblaze
3  *
4  *  Copyright (C) 2003  John Williams <jwilliams@itee.uq.edu.au>
5  *  Copyright (C) 2001  NEC Corporation
6  *  Copyright (C) 2001  Miles Bader <miles@gnu.org>
7  *
8  * This file is subject to the terms and conditions of the GNU Lesser
9  * General Public License.  See the file COPYING.LIB in the main
10  * directory of this archive for more details.
11  * 
12  * Written by Miles Bader <miles@gnu.org>
13  */
14
15 #define _SETJMP_H
16 #define _ASM
17 #include <bits/setjmp.h>
18
19 #include <clinkage.h>
20
21         .text
22 C_ENTRY(__longjmp):
23         /* load registers from memory to r5 (arg0)*/
24         lwi     r1, r5, 0
25         lwi     r15, r5, 4
26         lwi     r18, r5, 8
27         lwi     r19, r5, 12
28         lwi     r20, r5, 16
29         lwi     r21, r5, 20 
30         lwi     r22, r5, 24 
31         lwi     r23, r5, 28
32         lwi     r24, r5, 32 
33         lwi     r25, r5, 36
34         lwi     r26, r5, 40
35         lwi     r27, r5, 44
36         lwi     r28, r5, 48
37         lwi     r29, r5, 52
38         lwi     r30, r5, 56
39         
40         addi    r3, r0, 1               // return val
41         rtsd    r15, 8                  // normal return
42         nop
43
44 C_END(__longjmp)
45
46 .weak C_SYMBOL_NAME(__sigprocmask)
47 C_SYMBOL_NAME(__sigprocmask) = C_SYMBOL_NAME(sigprocmask)
48
49 libc_hidden_def(__longjmp)