Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/arch/s390/setjmp.S
Parent Directory
|
Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File size: 1141 byte(s)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File size: 1141 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
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 | |
12 | #ifndef __s390x__ |
13 | |
14 | setjmp: |
15 | stm %r6,%r15,0(%r2) # save all general registers |
16 | std %f4,40(%r2) # save fp registers f4 and f6 |
17 | std %f6,48(%r2) |
18 | lhi %r2,0 # return 0 |
19 | br %r14 |
20 | |
21 | .size setjmp,.-setjmp |
22 | |
23 | .text |
24 | .align 4 |
25 | .globl longjmp |
26 | .type longjmp, @function |
27 | longjmp: |
28 | lr %r1,%r2 # jmp_buf |
29 | lr %r2,%r3 # return value |
30 | ld %f6,48(%r1) # restore all saved registers |
31 | ld %f4,40(%r1) |
32 | lm %r6,%r15,0(%r1) |
33 | br %r14 # return to restored address |
34 | |
35 | .size longjmp,.-longjmp |
36 | |
37 | #else |
38 | |
39 | setjmp: |
40 | stmg %r6,%r15,0(%r2) # save all general registers |
41 | std %f1,80(%r2) # save fp registers f4 and f6 |
42 | std %f3,88(%r2) |
43 | std %f5,96(%r2) |
44 | std %f7,104(%r2) |
45 | lghi %r2,0 # return 0 |
46 | br %r14 |
47 | |
48 | .size setjmp,.-setjmp |
49 | |
50 | .text |
51 | .align 4 |
52 | .globl longjmp |
53 | .type longjmp, @function |
54 | longjmp: |
55 | lgr %r1,%r2 # jmp_buf |
56 | lgr %r2,%r3 # return value |
57 | ld %f7,104(%r1) # restore all saved registers |
58 | ld %f5,96(%r1) |
59 | ld %f3,88(%r1) |
60 | ld %f1,80(%r1) |
61 | lmg %r6,%r15,0(%r1) |
62 | br %r14 # return to restored address |
63 | |
64 | .size longjmp,.-longjmp |
65 | |
66 | #endif |