| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #include <linux/linkage.h> |
| 2 | |||||
| 3 | ENTRY(setjmp) | ||||
| 4 | add #(9*4), r4 | ||||
| 5 | sts.l pr, @-r4 | ||||
| 6 | mov.l r15, @-r4 | ||||
| 7 | mov.l r14, @-r4 | ||||
| 8 | mov.l r13, @-r4 | ||||
| 9 | mov.l r12, @-r4 | ||||
| 10 | mov.l r11, @-r4 | ||||
| 11 | mov.l r10, @-r4 | ||||
| 12 | mov.l r9, @-r4 | ||||
| 13 | mov.l r8, @-r4 | ||||
| 14 | rts | ||||
| 15 | mov #0, r0 | ||||
| 16 | |||||
| 17 | ENTRY(longjmp) | ||||
| 18 | mov.l @r4+, r8 | ||||
| 19 | mov.l @r4+, r9 | ||||
| 20 | mov.l @r4+, r10 | ||||
| 21 | mov.l @r4+, r11 | ||||
| 22 | mov.l @r4+, r12 | ||||
| 23 | mov.l @r4+, r13 | ||||
| 24 | mov.l @r4+, r14 | ||||
| 25 | mov.l @r4+, r15 | ||||
| 26 | lds.l @r4+, pr | ||||
| 27 | mov r5, r0 | ||||
| 28 | tst r0, r0 | ||||
| 29 | bf 1f | ||||
| 30 | mov #1, r0 ! in case val==0 | ||||
| 31 | 1: rts | ||||
| 32 | nop | ||||
| 33 | |||||