Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
[linux-2.6] / arch / sh / kernel / cpu / sh2 / ex.S
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
21         mov.l   r1,@-sp
22         bra     exception_trampoline
23         mov     #no,r1
24 no      =       no + 1
25         .endr
26 exception_trampoline:
27         mov.l   r0,@-sp
28         mov.l   $exception_handler,r0
29         extu.b  r1,r1
30         jmp     @r0
31           extu.w        r1,r1
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
45         .long   exception_entry + vector * 6
46 vector  =       vector + 1
47         .endr