Linux-libre 5.4.49-gnu
[librecmc/linux-libre.git] / arch / sh / kernel / cpu / sh2 / ex.S
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