Commit | Line | Data |
---|---|---|
de398406 YS |
1 | /* |
2 | * arch/sh/kernel/cpu/sh2/ex.S | |
3 | * | |
4 | * The SH-2 exception vector table | |
5 | * | |
6 | * Copyright (C) 2005 Yoshinori Sato | |
7 | * | |
8 | * This file is subject to the terms and conditions of the GNU General Public | |
9 | * License. See the file "COPYING" in the main directory of this archive | |
10 | * for more details. | |
11 | */ | |
12 | ||
13 | #include <linux/linkage.h> | |
14 | ||
15 | ! | |
16 | ! convert Exception Vector to Exception Number | |
17 | ! | |
18 | exception_entry: | |
19 | no = 0 | |
20 | .rept 256 | |
6e80f5e8 | 21 | mov.l r1,@-sp |
de398406 | 22 | bra exception_trampoline |
6e80f5e8 | 23 | mov #no,r1 |
de398406 YS |
24 | no = no + 1 |
25 | .endr | |
26 | exception_trampoline: | |
6e80f5e8 YS |
27 | mov.l r0,@-sp |
28 | mov.l $exception_handler,r0 | |
29 | extu.b r1,r1 | |
30 | jmp @r0 | |
31 | extu.w r1,r1 | |
de398406 YS |
32 | |
33 | .align 2 | |
34 | $exception_entry: | |
35 | .long exception_entry | |
36 | $exception_handler: | |
37 | .long exception_handler | |
38 | ! | |
39 | ! Exception Vector Base | |
40 | ! | |
41 | .align 2 | |
42 | ENTRY(vbr_base) | |
43 | vector = 0 | |
44 | .rept 256 | |
6e80f5e8 | 45 | .long exception_entry + vector * 6 |
de398406 YS |
46 | vector = vector + 1 |
47 | .endr |