chiark / gitweb /
Make run_directory.c stat the place it is going to try to run.
[elogind.git] / klibc / klibc / arch / mips / setjmp.S
1 #
2 # arch/mips/setjmp.S
3 #
4 # setjmp/longjmp for the MIPS architecture
5 #
6 # The jmp_buf is assumed to contain the following, in order:
7 #       s0..s7
8 #       gp
9 #       sp
10 #       s8
11 #       ra
12 #       f20..f31
13 #       fcr31
14 #
15
16 #include <machine/asm.h>
17         
18 LEAF(setjmp)
19         sw      s0,  0(a0)
20         sw      s1,  4(a0)
21         sw      s2,  8(a0)
22         sw      s3, 12(a0)
23         sw      s4, 16(a0)
24         sw      s5, 20(a0)
25         sw      s6, 24(a0)
26         sw      s7, 28(a0)
27         sw      gp, 32(a0)
28         sw      sp, 36(a0)
29         sw      s8, 40(a0)
30         sw      ra, 44(a0)
31         cfc1    t0,$31
32         swc1    $f20,48(a0)
33         swc1    $f21,52(a0)
34         swc1    $f22,56(a0)
35         swc1    $f23,60(a0)
36         swc1    $f24,64(a0)
37         swc1    $f25,68(a0)
38         swc1    $f26,72(a0)
39         swc1    $f27,76(a0)
40         swc1    $f28,80(a0)
41         swc1    $f29,84(a0)
42         swc1    $f30,88(a0)
43         swc1    $f31,92(a0)
44         sw      t0,96(a0)
45         move    v0,zero
46         jr      ra
47         
48         END(setjmp)
49
50 LEAF(longjmp)
51         lw      s0,  0(a0)
52         lw      s1,  4(a0)
53         lw      s2,  8(a0)
54         lw      s3, 12(a0)
55         lw      s4, 16(a0)
56         lw      s5, 20(a0)
57         lw      s6, 24(a0)
58         lw      s7, 28(a0)
59         lw      gp, 32(a0)
60         lw      sp, 36(a0)
61         lw      s8, 40(a0)
62         lw      ra, 44(a0)
63         lw      t0, 96(a0)
64         lwc1    $f20,48(a0)
65         lwc1    $f21,52(a0)
66         lwc1    $f22,56(a0)
67         lwc1    $f23,60(a0)
68         lwc1    $f24,64(a0)
69         lwc1    $f25,68(a0)
70         lwc1    $f26,72(a0)
71         lwc1    $f27,76(a0)
72         lwc1    $f28,80(a0)
73         lwc1    $f29,84(a0)
74         lwc1    $f30,88(a0)
75         lwc1    $f31,92(a0)
76         ctc1    t0,$31
77         move    v0,a1
78         jr      ra
79
80         END(longjmp)
81         
82