Import 2.3.18pre1
[davej-history.git] / arch / sparc64 / kernel / ttable.S
blobb378756c02381c1233ed90c5c234cebb360150e7
1 /* $Id: ttable.S,v 1.29 1999/08/31 19:25:37 davem Exp $
2  * ttable.S: Sparc V9 Trap Table(s) with SpitFire extensions.
3  *
4  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
5  */
7 #include <linux/config.h>
9         .globl  sparc64_ttable_tl0, sparc64_ttable_tl1,
11 sparc64_ttable_tl0:
12 tl0_resv000:    BOOT_KERNEL BTRAP(0x1) BTRAP(0x2) BTRAP(0x3)
13 tl0_resv004:    BTRAP(0x4)  BTRAP(0x5) BTRAP(0x6) BTRAP(0x7)
14 tl0_iax:        TRAP_NOSAVE(__do_instruction_access_exception)
15 tl0_resv009:    BTRAP(0x9)
16 tl0_iae:        TRAP(do_iae)
17 tl0_resv00b:    BTRAP(0xb) BTRAP(0xc) BTRAP(0xd) BTRAP(0xe) BTRAP(0xf)
18 tl0_ill:        TRAP(do_illegal_instruction)
19 tl0_privop:     TRAP(do_privop)
20 tl0_resv012:    BTRAP(0x12) BTRAP(0x13) BTRAP(0x14) BTRAP(0x15) BTRAP(0x16) BTRAP(0x17)
21 tl0_resv018:    BTRAP(0x18) BTRAP(0x19) BTRAP(0x1a) BTRAP(0x1b) BTRAP(0x1c) BTRAP(0x1d)
22 tl0_resv01e:    BTRAP(0x1e) BTRAP(0x1f)
23 tl0_fpdis:      TRAP_NOSAVE(do_fpdis)
24 tl0_fpieee:     TRAP_SAVEFPU(do_fpieee)
25 tl0_fpother:    TRAP_SAVEFPU(do_fpother)
26 tl0_tof:        TRAP(do_tof)
27 tl0_cwin:       CLEAN_WINDOW
28 tl0_div0:       TRAP(do_div0)
29 tl0_resv029:    BTRAP(0x29) BTRAP(0x2a) BTRAP(0x2b) BTRAP(0x2c) BTRAP(0x2d) BTRAP(0x2e)
30 tl0_resv02f:    BTRAP(0x2f)
31 tl0_dax:        TRAP_NOSAVE(__do_data_access_exception)
32 tl0_resv031:    BTRAP(0x31)
33 tl0_dae:        TRAP(do_dae)
34 tl0_resv033:    BTRAP(0x33)
35 tl0_mna:        TRAP_NOSAVE(do_mna)
36 tl0_lddfmna:    TRAP_NOSAVE(do_lddfmna)
37 tl0_stdfmna:    TRAP_NOSAVE(do_stdfmna)
38 tl0_privact:    TRAP_NOSAVE(__do_privact)
39 tl0_resv038:    BTRAP(0x38) BTRAP(0x39) BTRAP(0x3a) BTRAP(0x3b) BTRAP(0x3c) BTRAP(0x3d)
40 tl0_resv03e:    BTRAP(0x3e) BTRAP(0x3f) BTRAP(0x40)
41 tl0_irq1:       TRAP_IRQ(handler_irq, 1)  TRAP_IRQ(handler_irq, 2)
42 tl0_irq3:       TRAP_IRQ(handler_irq, 3)  TRAP_IRQ(handler_irq, 4)
43 tl0_irq5:       TRAP_IRQ(handler_irq, 5)  TRAP_IRQ(handler_irq, 6)
44 tl0_irq7:       TRAP_IRQ(handler_irq, 7)  TRAP_IRQ(handler_irq, 8)
45 tl0_irq9:       TRAP_IRQ(handler_irq, 9)  TRAP_IRQ(handler_irq, 10)
46 tl0_irq11:      TRAP_IRQ(handler_irq, 11) TRAP_IRQ(handler_irq, 12)
47 tl0_irq13:      TRAP_IRQ(handler_irq, 13)
48 #ifndef __SMP__
49 tl0_irq14:      TRAP_IRQ(handler_irq, 14)
50 #else
51 tl0_irq14:      TICK_SMP_IRQ
52 #endif
53 tl0_irq15:      TRAP_IRQ(handler_irq, 15)
54 tl0_resv050:    BTRAP(0x50) BTRAP(0x51) BTRAP(0x52) BTRAP(0x53) BTRAP(0x54) BTRAP(0x55)
55 tl0_resv056:    BTRAP(0x56) BTRAP(0x57) BTRAP(0x58) BTRAP(0x59) BTRAP(0x5a) BTRAP(0x5b)
56 tl0_resv05c:    BTRAP(0x5c) BTRAP(0x5d) BTRAP(0x5e) BTRAP(0x5f)
57 tl0_ivec:       TRAP_IVEC
58 tl0_paw:        TRAP(do_paw)
59 tl0_vaw:        TRAP(do_vaw)
60 tl0_cee:        TRAP_NOSAVE(cee_trap)
61 tl0_iamiss:
62 #include        "itlb_base.S"
63 tl0_damiss:
64 #include        "dtlb_base.S"
65 tl0_daprot:
66 #include        "dtlb_prot.S"
67 tl0_resv070:    BTRAP(0x70) BTRAP(0x71) BTRAP(0x72) BTRAP(0x73) BTRAP(0x74) BTRAP(0x75)
68 tl0_resv076:    BTRAP(0x76) BTRAP(0x77) BTRAP(0x78) BTRAP(0x79) BTRAP(0x7a) BTRAP(0x7b)
69 tl0_resv07c:    BTRAP(0x7c) BTRAP(0x7d) BTRAP(0x7e) BTRAP(0x7f)
70 tl0_s0n:        SPILL_0_NORMAL
71 tl0_s1n:        SPILL_1_NORMAL
72 tl0_s2n:        SPILL_2_NORMAL
73 tl0_s3n:        SPILL_3_NORMAL
74 tl0_s4n:        SPILL_4_NORMAL
75 tl0_s5n:        SPILL_5_NORMAL
76 tl0_s6n:        SPILL_6_NORMAL
77 tl0_s7n:        SPILL_7_NORMAL
78 tl0_s0o:        SPILL_0_OTHER
79 tl0_s1o:        SPILL_1_OTHER
80 tl0_s2o:        SPILL_2_OTHER
81 tl0_s3o:        SPILL_3_OTHER
82 tl0_s4o:        SPILL_4_OTHER
83 tl0_s5o:        SPILL_5_OTHER
84 tl0_s6o:        SPILL_6_OTHER
85 tl0_s7o:        SPILL_7_OTHER
86 tl0_f0n:        FILL_0_NORMAL
87 tl0_f1n:        FILL_1_NORMAL
88 tl0_f2n:        FILL_2_NORMAL
89 tl0_f3n:        FILL_3_NORMAL
90 tl0_f4n:        FILL_4_NORMAL
91 tl0_f5n:        FILL_5_NORMAL
92 tl0_f6n:        FILL_6_NORMAL
93 tl0_f7n:        FILL_7_NORMAL
94 tl0_f0o:        FILL_0_OTHER
95 tl0_f1o:        FILL_1_OTHER
96 tl0_f2o:        FILL_2_OTHER
97 tl0_f3o:        FILL_3_OTHER
98 tl0_f4o:        FILL_4_OTHER
99 tl0_f5o:        FILL_5_OTHER
100 tl0_f6o:        FILL_6_OTHER
101 tl0_f7o:        FILL_7_OTHER
102 tl0_sunos:      SUNOS_SYSCALL_TRAP
103 tl0_bkpt:       BREAKPOINT_TRAP
104 tl0_resv102:    BTRAP(0x102)
105 tl0_flushw:     FLUSH_WINDOW_TRAP
106 tl0_resv104:    BTRAP(0x104) BTRAP(0x105) BTRAP(0x106) BTRAP(0x107)
107                 .globl tl0_solaris
108 tl0_solaris:    SOLARIS_SYSCALL_TRAP
109 tl0_netbsd:     NETBSD_SYSCALL_TRAP
110 tl0_resv10a:    BTRAP(0x10a) BTRAP(0x10b) BTRAP(0x10c) BTRAP(0x10d) BTRAP(0x10e)
111 tl0_resv10f:    BTRAP(0x10f)
112 tl0_linux32:    LINUX_32BIT_SYSCALL_TRAP
113 tl0_oldlinux64: LINUX_64BIT_SYSCALL_TRAP
114 tl0_resv112:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_18,0x112) TRAP_UTRAP(UT_TRAP_INSTRUCTION_19,0x113)
115 tl0_resv114:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_20,0x114) TRAP_UTRAP(UT_TRAP_INSTRUCTION_21,0x115)
116 tl0_resv116:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_22,0x116) TRAP_UTRAP(UT_TRAP_INSTRUCTION_23,0x117)
117 tl0_resv118:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_24,0x118) TRAP_UTRAP(UT_TRAP_INSTRUCTION_25,0x119)
118 tl0_resv11a:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_26,0x11a) TRAP_UTRAP(UT_TRAP_INSTRUCTION_27,0x11b)
119 tl0_resv11c:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_28,0x11c) TRAP_UTRAP(UT_TRAP_INSTRUCTION_29,0x11d)
120 tl0_resv11e:    TRAP_UTRAP(UT_TRAP_INSTRUCTION_30,0x11e) TRAP_UTRAP(UT_TRAP_INSTRUCTION_31,0x11f)
121 tl0_getcc:      GETCC_TRAP
122 tl0_setcc:      SETCC_TRAP
123 tl0_resv122:    BTRAP(0x122) BTRAP(0x123) BTRAP(0x124) BTRAP(0x125) BTRAP(0x126)
124 tl0_solindir:   INDIRECT_SOLARIS_SYSCALL(156)
125 tl0_resv128:    BTRAP(0x128) BTRAP(0x129) BTRAP(0x12a) BTRAP(0x12b) BTRAP(0x12c)
126 tl0_resv12d:    BTRAP(0x12d) BTRAP(0x12e) BTRAP(0x12f) BTRAP(0x130) BTRAP(0x131)
127 tl0_resv132:    BTRAP(0x132) BTRAP(0x133) BTRAP(0x134) BTRAP(0x135) BTRAP(0x136)
128 tl0_resv137:    BTRAP(0x137) BTRAP(0x138) BTRAP(0x139) BTRAP(0x13a) BTRAP(0x13b)
129 tl0_resv13c:    BTRAP(0x13c) BTRAP(0x13d) BTRAP(0x13e) BTRAP(0x13f) BTRAP(0x140)
130 tl0_resv141:    BTRAP(0x141) BTRAP(0x142) BTRAP(0x143) BTRAP(0x144) BTRAP(0x145)
131 tl0_resv146:    BTRAP(0x146) BTRAP(0x147) BTRAP(0x148) BTRAP(0x149) BTRAP(0x14a)
132 tl0_resv14b:    BTRAP(0x14b) BTRAP(0x14c) BTRAP(0x14d) BTRAP(0x14e) BTRAP(0x14f)
133 tl0_resv150:    BTRAP(0x150) BTRAP(0x151) BTRAP(0x152) BTRAP(0x153) BTRAP(0x154)
134 tl0_resv155:    BTRAP(0x155) BTRAP(0x156) BTRAP(0x157) BTRAP(0x158) BTRAP(0x159)
135 tl0_resv15a:    BTRAP(0x15a) BTRAP(0x15b) BTRAP(0x15c) BTRAP(0x15d) BTRAP(0x15e)
136 tl0_resv15f:    BTRAP(0x15f) BTRAP(0x160) BTRAP(0x161) BTRAP(0x162) BTRAP(0x163)
137 tl0_resv164:    BTRAP(0x164) BTRAP(0x165) BTRAP(0x166) BTRAP(0x167) BTRAP(0x168)
138 tl0_resv169:    BTRAP(0x169) BTRAP(0x16a) BTRAP(0x16b) BTRAP(0x16c)
139 tl0_linux64:    LINUX_64BIT_SYSCALL_TRAP
140 tl0_gsctx:      TRAP(sparc64_get_context) TRAP(sparc64_set_context)
141 tl0_resv170:    BTRAP(0x170) BTRAP(0x171) 
142 #ifdef CONFIG_EC_FLUSH_TRAP
143                                           TRAP(cache_flush_trap)
144 #else
145                                           BTRAP(0x172)
146 #endif
147 tl0_resv173:    BTRAP(0x173) BTRAP(0x174) BTRAP(0x175) BTRAP(0x176) BTRAP(0x177)
148 tl0_resv178:    BTRAP(0x178) BTRAP(0x179) BTRAP(0x17a) BTRAP(0x17b) BTRAP(0x17c)
149 tl0_resv17d:    BTRAP(0x17d) BTRAP(0x17e) BTRAP(0x17f)
150 #define BTRAPS(x) BTRAP(x) BTRAP(x+1) BTRAP(x+2) BTRAP(x+3) BTRAP(x+4) BTRAP(x+5) BTRAP(x+6) BTRAP(x+7)
151 tl0_resv180:    BTRAPS(0x180) BTRAPS(0x188)
152 tl0_resv190:    BTRAPS(0x190) BTRAPS(0x198)
153 tl0_resv1a0:    BTRAPS(0x1a0) BTRAPS(0x1a8)
154 tl0_resv1b0:    BTRAPS(0x1b0) BTRAPS(0x1b8)
155 tl0_resv1c0:    BTRAPS(0x1c0) BTRAPS(0x1c8)
156 tl0_resv1d0:    BTRAPS(0x1d0) BTRAPS(0x1d8)
157 tl0_resv1e0:    BTRAPS(0x1e0) BTRAPS(0x1e8)
158 tl0_resv1f0:    BTRAPS(0x1f0) BTRAPS(0x1f8)
160 sparc64_ttable_tl1:
161 tl1_resv000:    BOOT_KERNEL    BTRAPTL1(0x1) BTRAPTL1(0x2) BTRAPTL1(0x3)
162 tl1_resv004:    BTRAPTL1(0x4)  BTRAPTL1(0x5) BTRAPTL1(0x6) BTRAPTL1(0x7)
163 tl1_iax:        TRAP_NOSAVE(__do_instruction_access_exception_tl1)
164 tl1_resv009:    BTRAPTL1(0x9)
165 tl1_iae:        TRAPTL1(do_iae_tl1)
166 tl1_resv00b:    BTRAPTL1(0xb) BTRAPTL1(0xc) BTRAPTL1(0xd) BTRAPTL1(0xe) BTRAPTL1(0xf)
167 tl1_ill:        TRAPTL1(do_ill_tl1)
168 tl1_privop:     BTRAPTL1(0x11)
169 tl1_resv012:    BTRAPTL1(0x12) BTRAPTL1(0x13) BTRAPTL1(0x14) BTRAPTL1(0x15)
170 tl1_resv016:    BTRAPTL1(0x16) BTRAPTL1(0x17) BTRAPTL1(0x18) BTRAPTL1(0x19)
171 tl1_resv01a:    BTRAPTL1(0x1a) BTRAPTL1(0x1b) BTRAPTL1(0x1c) BTRAPTL1(0x1d)
172 tl1_resv01e:    BTRAPTL1(0x1e) BTRAPTL1(0x1f)
173 tl1_fpdis:      TRAP_NOSAVE(do_fpdis)
174 tl1_fpieee:     TRAPTL1(do_fpieee_tl1)
175 tl1_fpother:    TRAPTL1(do_fpother_tl1)
176 tl1_tof:        TRAPTL1(do_tof_tl1)
177 tl1_cwin:       CLEAN_WINDOW
178 tl1_div0:       TRAPTL1(do_div0_tl1)
179 tl1_resv029:    BTRAPTL1(0x29) BTRAPTL1(0x2a) BTRAPTL1(0x2b) BTRAPTL1(0x2c)
180 tl1_resv02d:    BTRAPTL1(0x2d) BTRAPTL1(0x2e) BTRAPTL1(0x2f)
181 tl1_dax:        TRAP_NOSAVE(__do_data_access_exception_tl1)
182 tl1_resv031:    BTRAPTL1(0x31)
183 tl1_dae:        TRAPTL1(do_dae_tl1)
184 tl1_resv033:    BTRAPTL1(0x33)
185 tl1_mna:        TRAP_NOSAVE(do_mna)
186 tl1_lddfmna:    TRAPTL1(do_lddfmna_tl1)
187 tl1_stdfmna:    TRAPTL1(do_stdfmna_tl1)
188 tl1_privact:    BTRAPTL1(0x37)
189 tl1_resv038:    BTRAPTL1(0x38) BTRAPTL1(0x39) BTRAPTL1(0x3a) BTRAPTL1(0x3b)
190 tl1_resv03c:    BTRAPTL1(0x3c) BTRAPTL1(0x3d) BTRAPTL1(0x3e) BTRAPTL1(0x3f)
191 tl1_resv040:    BTRAPTL1(0x40)
192 tl1_irq1:       TRAP_IRQ(do_irq_tl1, 1)  TRAP_IRQ(do_irq_tl1, 2)  TRAP_IRQ(do_irq_tl1, 3)
193 tl1_irq4:       TRAP_IRQ(do_irq_tl1, 4)  TRAP_IRQ(do_irq_tl1, 5)  TRAP_IRQ(do_irq_tl1, 6)
194 tl1_irq7:       TRAP_IRQ(do_irq_tl1, 7)  TRAP_IRQ(do_irq_tl1, 8)  TRAP_IRQ(do_irq_tl1, 9)
195 tl1_irq10:      TRAP_IRQ(do_irq_tl1, 10) TRAP_IRQ(do_irq_tl1, 11)
196 tl1_irq12:      TRAP_IRQ(do_irq_tl1, 12) TRAP_IRQ(do_irq_tl1, 13)
197 tl1_irq14:      TRAP_IRQ(do_irq_tl1, 14) TRAP_IRQ(do_irq_tl1, 15)
198 tl1_resv050:    BTRAPTL1(0x50) BTRAPTL1(0x51) BTRAPTL1(0x52) BTRAPTL1(0x53)
199 tl1_resv054:    BTRAPTL1(0x54) BTRAPTL1(0x55) BTRAPTL1(0x56) BTRAPTL1(0x57)
200 tl1_resv058:    BTRAPTL1(0x58) BTRAPTL1(0x59) BTRAPTL1(0x5a) BTRAPTL1(0x5b)
201 tl1_resv05c:    BTRAPTL1(0x5c) BTRAPTL1(0x5d) BTRAPTL1(0x5e) BTRAPTL1(0x5f)
202 tl1_ivec:       TRAP_IVEC
203 tl1_paw:        TRAPTL1(do_paw_tl1)
204 tl1_vaw:        TRAPTL1(do_vaw_tl1)
205 tl1_cee:        TRAPTL1_CEE
206 tl1_iamiss:     BTRAPTL1(0x64) BTRAPTL1(0x65) BTRAPTL1(0x66) BTRAPTL1(0x67)
207 tl1_damiss:
208 #include        "dtlb_backend.S"
209 tl1_daprot:
210 #include        "dtlb_prot.S"
211 tl1_resv070:    BTRAPTL1(0x70) BTRAPTL1(0x71) BTRAPTL1(0x72) BTRAPTL1(0x73)
212 tl1_resv074:    BTRAPTL1(0x74) BTRAPTL1(0x75) BTRAPTL1(0x76) BTRAPTL1(0x77)
213 tl1_resv078:    BTRAPTL1(0x78) BTRAPTL1(0x79) BTRAPTL1(0x7a) BTRAPTL1(0x7b)
214 tl1_resv07c:    BTRAPTL1(0x7c) BTRAPTL1(0x7d) BTRAPTL1(0x7e) BTRAPTL1(0x7f)
215 tl1_s0n:        SPILL_0_NORMAL
216 tl1_s1n:        SPILL_1_NORMAL
217 tl1_s2n:        SPILL_2_NORMAL
218 tl1_s3n:        SPILL_3_NORMAL
219 tl1_s4n:        SPILL_4_NORMAL
220 tl1_s5n:        SPILL_5_NORMAL
221 tl1_s6n:        SPILL_6_NORMAL
222 tl1_s7n:        SPILL_7_NORMAL
223 tl1_s0o:        SPILL_0_OTHER
224 tl1_s1o:        SPILL_1_OTHER
225 tl1_s2o:        SPILL_2_OTHER
226 tl1_s3o:        SPILL_3_OTHER
227 tl1_s4o:        SPILL_4_OTHER
228 tl1_s5o:        SPILL_5_OTHER
229 tl1_s6o:        SPILL_6_OTHER
230 tl1_s7o:        SPILL_7_OTHER
231 tl1_f0n:        FILL_0_NORMAL
232 tl1_f1n:        FILL_1_NORMAL
233 tl1_f2n:        FILL_2_NORMAL
234 tl1_f3n:        FILL_3_NORMAL
235 tl1_f4n:        FILL_4_NORMAL
236 tl1_f5n:        FILL_5_NORMAL
237 tl1_f6n:        FILL_6_NORMAL
238 tl1_f7n:        FILL_7_NORMAL
239 tl1_f0o:        FILL_0_OTHER
240 tl1_f1o:        FILL_1_OTHER
241 tl1_f2o:        FILL_2_OTHER
242 tl1_f3o:        FILL_3_OTHER
243 tl1_f4o:        FILL_4_OTHER
244 tl1_f5o:        FILL_5_OTHER
245 tl1_f6o:        FILL_6_OTHER
246 tl1_f7o:        FILL_7_OTHER