1 | /* SPDX-License-Identifier: GPL-2.0 |
2 | * |
3 | * arch/sh/kernel/cpu/sh2/ex.S |
4 | * |
5 | * The SH-2 exception vector table |
6 | * |
7 | * Copyright (C) 2005 Yoshinori Sato |
8 | */ |
9 | |
10 | #include <linux/linkage.h> |
11 | |
12 | ! |
13 | ! convert Exception Vector to Exception Number |
14 | ! |
15 | exception_entry: |
16 | no = 0 |
17 | .rept 256 |
18 | mov.l r1,@-sp |
19 | bra exception_trampoline |
20 | mov #no,r1 |
21 | no = no + 1 |
22 | .endr |
23 | exception_trampoline: |
24 | mov.l r0,@-sp |
25 | mov.l $exception_handler,r0 |
26 | extu.b r1,r1 |
27 | jmp @r0 |
28 | extu.w r1,r1 |
29 | |
30 | .align 2 |
31 | $exception_entry: |
32 | .long exception_entry |
33 | $exception_handler: |
34 | .long exception_handler |
35 | ! |
36 | ! Exception Vector Base |
37 | ! |
38 | .align 2 |
39 | ENTRY(vbr_base) |
40 | vector = 0 |
41 | .rept 256 |
42 | .long exception_entry + vector * 6 |
43 | vector = vector + 1 |
44 | .endr |
45 | |