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