Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/sh/kernel/cpu/sh2a/ex.S
17359 views
1
/*
2
* arch/sh/kernel/cpu/sh2a/ex.S
3
*
4
* The SH-2A exception vector table
5
*
6
* Copyright (C) 2008 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
19
! exception no 0 to 255
20
exception_entry0:
21
no = 0
22
.rept 256
23
mov.l r1,@-sp
24
bra exception_trampoline0
25
mov #no,r1
26
no = no + 1
27
.endr
28
exception_trampoline0:
29
mov.l r0,@-sp
30
mov.l 1f,r0
31
extu.b r1,r1
32
jmp @r0
33
extu.w r1,r1
34
35
.align 2
36
1: .long exception_handler
37
38
! exception no 256 to 511
39
exception_entry1:
40
no = 0
41
.rept 256
42
mov.l r1,@-sp
43
bra exception_trampoline1
44
mov #no,r1
45
no = no + 1
46
.endr
47
exception_trampoline1:
48
mov.l r0,@-sp
49
extu.b r1,r1
50
movi20 #0x100,r0
51
add r0,r1
52
mov.l 1f,r0
53
jmp @r0
54
extu.w r1,r1
55
56
.align 2
57
1: .long exception_handler
58
59
!
60
! Exception Vector Base
61
!
62
.align 2
63
ENTRY(vbr_base)
64
vector = 0
65
.rept 256
66
.long exception_entry0 + vector * 6
67
vector = vector + 1
68
.endr
69
.rept 256
70
.long exception_entry1 + vector * 6
71
vector = vector + 1
72
.endr
73
74