diff options
Diffstat (limited to 'arch/sh/kernel/kgdb_jmp.S')
-rw-r--r-- | arch/sh/kernel/kgdb_jmp.S | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/sh/kernel/kgdb_jmp.S b/arch/sh/kernel/kgdb_jmp.S new file mode 100644 index 000000000000..339bb1d7ff0b --- /dev/null +++ b/arch/sh/kernel/kgdb_jmp.S | |||
@@ -0,0 +1,33 @@ | |||
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 | |||