chiark / gitweb /
[PATCH] added klibc version 0.82 (cvs tree) to the udev tree.
[elogind.git] / klibc / klibc / arch / s390 / setjmp.S
1 #
2 # arch/s390/setjmp.S
3 #
4 # setjmp/longjmp for the s390 architecture
5 #
6
7         .text
8         .align 4
9         .globl setjmp
10         .type setjmp, @function
11 setjmp:
12         stm     %r6,%r15,0(%r2)         # save all general registers
13         std     %f4,40(%r2)             # save fp registers f4 and f6
14         std     %f6,48(%r2)
15         lhi     %r2,0                   # return 0
16         br      %r14
17
18         .size setjmp,.-setjmp
19
20         .text
21         .align 4
22         .globl longjmp
23         .type longjmp, @function
24 longjmp:
25         lr      %r1,%r2                 # jmp_buf
26         lr      %r2,%r3                 # return value
27         ld      %f6,48(%r1)             # restore all saved registers
28         ld      %f4,40(%r1)
29         lm      %r6,%r15,0(%r1)
30         br      %r14                    # return to restored address
31
32         .size longjmp,.-longjmp