blob: 85b0bf81fc1d80c304ac01178f80cc68b8082d50 [file] [log] [blame]
Yoshinori Satode398402006-11-05 16:15:19 +09001/*
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!
18exception_entry:
19no = 0
20 .rept 256
Yoshinori Sato6e80f5e2008-07-10 01:20:03 +090021 mov.l r1,@-sp
Yoshinori Satode398402006-11-05 16:15:19 +090022 bra exception_trampoline
Yoshinori Sato6e80f5e2008-07-10 01:20:03 +090023 mov #no,r1
Yoshinori Satode398402006-11-05 16:15:19 +090024no = no + 1
25 .endr
26exception_trampoline:
Yoshinori Sato6e80f5e2008-07-10 01:20:03 +090027 mov.l r0,@-sp
28 mov.l $exception_handler,r0
29 extu.b r1,r1
30 jmp @r0
31 extu.w r1,r1
Yoshinori Satode398402006-11-05 16:15:19 +090032
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
42ENTRY(vbr_base)
43vector = 0
44 .rept 256
Yoshinori Sato6e80f5e2008-07-10 01:20:03 +090045 .long exception_entry + vector * 6
Yoshinori Satode398402006-11-05 16:15:19 +090046vector = vector + 1
47 .endr