1
2
3
4
5
6
7
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