sparc64: add basic support
[uclibc-ng.git] / libc / sysdeps / linux / arc / setjmp.S
blobb6a65f5790bd12abd46806b25d0427913eae3831
1 /*
2  * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
3  *
4  * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
5  */
7 #include <sysdep.h>
9 ;@ r0 = jump buffer into which regs will be saved
10 ;@ r1 = do we need to save signals
12 ENTRY(__sigsetjmp)
14         st_s r13, [r0]
15         st_s r14, [r0,4]
16         st   r15, [r0,8]
17         st   r16, [r0,12]
18         st   r17, [r0,16]
19         st   r18, [r0,20]
20         st   r19, [r0,24]
21         st   r20, [r0,28]
22         st   r21, [r0,32]
23         st   r22, [r0,36]
24         st   r23, [r0,40]
25         st   r24, [r0,44]
26         st   r25, [r0,48]
27         st   fp,  [r0,52]
28         st   sp,  [r0,56]
30         ; make a note of where longjmp will return to.
31         ; that will be right next to this setjmp call-site which will be
32         ; contained in blink, since "C" caller of this routine will do
33         ; a branch-n-link
35         st   blink, [r0,60]
36         b    __sigjmp_save
38 END(__sigsetjmp)
39 libc_hidden_def(__sigsetjmp)