chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
volume_id: provide libvolume_id.a file
[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