chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
[PATCH] remove my test code
[elogind.git]
/
klibc
/
klibc
/
arch
/
sh
/
setjmp.S
1
#
2
# arch/sh/setjmp.S
3
#
4
# setjmp/longjmp for the SuperH architecture
5
#
6
7
#
8
# The jmp_buf is assumed to contain the following, in order:
9
#
10
# r8
11
# r9
12
# r10
13
# r11
14
# r12
15
# r13
16
# r14
17
# r15
18
# pr
19
#
20
21
.text
22
.align 2
23
24
.globl setjmp
25
.type setjmp, #function
26
27
setjmp:
28
add #(9*4), r4
29
sts.l pr, @-r4
30
mov.l r15, @-r4
31
mov.l r14, @-r4
32
mov.l r13, @-r4
33
mov.l r12, @-r4
34
mov.l r11, @-r4
35
mov.l r10, @-r4
36
mov.l r9, @-r4
37
mov.l r8, @-r4
38
rts
39
mov #0, r0
40
41
.size setjmp,.-setjmp
42
43
.align 2
44
.globl longjmp
45
.type setjmp, #function
46
47
longjmp:
48
mov.l @r4+, r8
49
mov.l @r4+, r9
50
mov.l @r4+, r10
51
mov.l @r4+, r11
52
mov.l @r4+, r12
53
mov.l @r4+, r13
54
mov.l @r4+, r14
55
mov.l @r4+, r15
56
lds.l @r4+, pr
57
mov r5, r0
58
tst r0, r0
59
bf 1f
60
mov #1, r0 ! in case val==0
61
1: rts
62
nop
63
64
.size longjmp,.-longjmp
65