Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[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   r0,@-sp
22         mov     #no,r0
23         bra     exception_trampoline
24         and     #0xff,r0
25 no      =       no + 1
26         .endr
27 exception_trampoline:
28         mov.l   r1,@-sp
29         mov.l   $exception_handler,r1
30         jmp     @r1
31
32         .align  2
33 $exception_entry:
34         .long   exception_entry
35 $exception_handler:
36         .long   exception_handler
37 !
38 ! Exception Vector Base
39 !
40         .align  2
41 ENTRY(vbr_base)
42 vector  =       0
43         .rept   256
44         .long   exception_entry + vector * 8
45 vector  =       vector + 1
46         .endr