Subversion Repositories HelenOS

Rev

Rev 220 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 220 Rev 238
1
#
1
#
2
# Copyright (C) 2005 Jakub Vana
2
# Copyright (C) 2005 Jakub Vana
3
# All rights reserved.
3
# All rights reserved.
4
#
4
#
5
# Redistribution and use in source and binary forms, with or without
5
# Redistribution and use in source and binary forms, with or without
6
# modification, are permitted provided that the following conditions
6
# modification, are permitted provided that the following conditions
7
# are met:
7
# are met:
8
#
8
#
9
# - Redistributions of source code must retain the above copyright
9
# - Redistributions of source code must retain the above copyright
10
#   notice, this list of conditions and the following disclaimer.
10
#   notice, this list of conditions and the following disclaimer.
11
# - Redistributions in binary form must reproduce the above copyright
11
# - Redistributions in binary form must reproduce the above copyright
12
#   notice, this list of conditions and the following disclaimer in the
12
#   notice, this list of conditions and the following disclaimer in the
13
#   documentation and/or other materials provided with the distribution.
13
#   documentation and/or other materials provided with the distribution.
14
# - The name of the author may not be used to endorse or promote products
14
# - The name of the author may not be used to endorse or promote products
15
#   derived from this software without specific prior written permission.
15
#   derived from this software without specific prior written permission.
16
#
16
#
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
#
27
#
28
 
28
 
29
 
29
 
30
 
30
 
-
 
31
 
-
 
32
dump_gregs:
-
 
33
mov r16 = REG_DUMP;;
-
 
34
st8 [r16] = r0;;
-
 
35
add r16 = 8,r16 ;;
-
 
36
st8 [r16] = r1;;
-
 
37
add r16 = 8,r16 ;;
-
 
38
st8 [r16] = r2;;
-
 
39
add r16 = 8,r16 ;;
-
 
40
st8 [r16] = r3;;
-
 
41
add r16 = 8,r16 ;;
-
 
42
st8 [r16] = r4;;
-
 
43
add r16 = 8,r16 ;;
-
 
44
st8 [r16] = r5;;
-
 
45
add r16 = 8,r16 ;;
-
 
46
st8 [r16] = r6;;
-
 
47
add r16 = 8,r16 ;;
-
 
48
st8 [r16] = r7;;
-
 
49
add r16 = 8,r16 ;;
-
 
50
st8 [r16] = r8;;
-
 
51
add r16 = 8,r16 ;;
-
 
52
st8 [r16] = r9;;
-
 
53
add r16 = 8,r16 ;;
-
 
54
st8 [r16] = r10;;
-
 
55
add r16 = 8,r16 ;;
-
 
56
st8 [r16] = r11;;
-
 
57
add r16 = 8,r16 ;;
-
 
58
st8 [r16] = r12;;
-
 
59
add r16 = 8,r16 ;;
-
 
60
st8 [r16] = r13;;
-
 
61
add r16 = 8,r16 ;;
-
 
62
st8 [r16] = r14;;
-
 
63
add r16 = 8,r16 ;;
-
 
64
st8 [r16] = r15;;
-
 
65
add r16 = 8,r16 ;;
-
 
66
 
-
 
67
bsw.1;;
-
 
68
mov r15 = r16;;
-
 
69
bsw.0;;
-
 
70
st8 [r16] = r15;;
-
 
71
add r16 = 8,r16 ;;
-
 
72
bsw.1;;
-
 
73
mov r15 = r17;;
-
 
74
bsw.0;;
-
 
75
st8 [r16] = r15;;
-
 
76
add r16 = 8,r16 ;;
-
 
77
bsw.1;;
-
 
78
mov r15 = r18;;
-
 
79
bsw.0;;
-
 
80
st8 [r16] = r15;;
-
 
81
add r16 = 8,r16 ;;
-
 
82
bsw.1;;
-
 
83
mov r15 = r19;;
-
 
84
bsw.0;;
-
 
85
st8 [r16] = r15;;
-
 
86
add r16 = 8,r16 ;;
-
 
87
bsw.1;;
-
 
88
mov r15 = r20;;
-
 
89
bsw.0;;
-
 
90
st8 [r16] = r15;;
-
 
91
add r16 = 8,r16 ;;
-
 
92
bsw.1;;
-
 
93
mov r15 = r21;;
-
 
94
bsw.0;;
-
 
95
st8 [r16] = r15;;
-
 
96
add r16 = 8,r16 ;;
-
 
97
bsw.1;;
-
 
98
mov r15 = r22;;
-
 
99
bsw.0;;
-
 
100
st8 [r16] = r15;;
-
 
101
add r16 = 8,r16 ;;
-
 
102
bsw.1;;
-
 
103
mov r15 = r23;;
-
 
104
bsw.0;;
-
 
105
st8 [r16] = r15;;
-
 
106
add r16 = 8,r16 ;;
-
 
107
bsw.1;;
-
 
108
mov r15 = r24;;
-
 
109
bsw.0;;
-
 
110
st8 [r16] = r15;;
-
 
111
add r16 = 8,r16 ;;
-
 
112
bsw.1;;
-
 
113
mov r15 = r25;;
-
 
114
bsw.0;;
-
 
115
st8 [r16] = r15;;
-
 
116
add r16 = 8,r16 ;;
-
 
117
bsw.1;;
-
 
118
mov r15 = r26;;
-
 
119
bsw.0;;
-
 
120
st8 [r16] = r15;;
-
 
121
add r16 = 8,r16 ;;
-
 
122
bsw.1;;
-
 
123
mov r15 = r27;;
-
 
124
bsw.0;;
-
 
125
st8 [r16] = r15;;
-
 
126
add r16 = 8,r16 ;;
-
 
127
bsw.1;;
-
 
128
mov r15 = r28;;
-
 
129
bsw.0;;
-
 
130
st8 [r16] = r15;;
-
 
131
add r16 = 8,r16 ;;
-
 
132
bsw.1;;
-
 
133
mov r15 = r29;;
-
 
134
bsw.0;;
-
 
135
st8 [r16] = r15;;
-
 
136
add r16 = 8,r16 ;;
-
 
137
bsw.1;;
-
 
138
mov r15 = r30;;
-
 
139
bsw.0;;
-
 
140
st8 [r16] = r15;;
-
 
141
add r16 = 8,r16 ;;
-
 
142
bsw.1;;
-
 
143
mov r15 = r31;;
-
 
144
bsw.0;;
-
 
145
st8 [r16] = r15;;
-
 
146
add r16 = 8,r16 ;;
-
 
147
 
-
 
148
 
-
 
149
st8 [r16] = r32;;
-
 
150
add r16 = 8,r16 ;;
-
 
151
st8 [r16] = r33;;
-
 
152
add r16 = 8,r16 ;;
-
 
153
st8 [r16] = r34;;
-
 
154
add r16 = 8,r16 ;;
-
 
155
st8 [r16] = r35;;
-
 
156
add r16 = 8,r16 ;;
-
 
157
st8 [r16] = r36;;
-
 
158
add r16 = 8,r16 ;;
-
 
159
st8 [r16] = r37;;
-
 
160
add r16 = 8,r16 ;;
-
 
161
st8 [r16] = r38;;
-
 
162
add r16 = 8,r16 ;;
-
 
163
st8 [r16] = r39;;
-
 
164
add r16 = 8,r16 ;;
-
 
165
st8 [r16] = r40;;
-
 
166
add r16 = 8,r16 ;;
-
 
167
st8 [r16] = r41;;
-
 
168
add r16 = 8,r16 ;;
-
 
169
st8 [r16] = r42;;
-
 
170
add r16 = 8,r16 ;;
-
 
171
st8 [r16] = r43;;
-
 
172
add r16 = 8,r16 ;;
-
 
173
st8 [r16] = r44;;
-
 
174
add r16 = 8,r16 ;;
-
 
175
st8 [r16] = r45;;
-
 
176
add r16 = 8,r16 ;;
-
 
177
st8 [r16] = r46;;
-
 
178
add r16 = 8,r16 ;;
-
 
179
st8 [r16] = r47;;
-
 
180
add r16 = 8,r16 ;;
-
 
181
st8 [r16] = r48;;
-
 
182
add r16 = 8,r16 ;;
-
 
183
st8 [r16] = r49;;
-
 
184
add r16 = 8,r16 ;;
-
 
185
st8 [r16] = r50;;
-
 
186
add r16 = 8,r16 ;;
-
 
187
st8 [r16] = r51;;
-
 
188
add r16 = 8,r16 ;;
-
 
189
st8 [r16] = r52;;
-
 
190
add r16 = 8,r16 ;;
-
 
191
st8 [r16] = r53;;
-
 
192
add r16 = 8,r16 ;;
-
 
193
st8 [r16] = r54;;
-
 
194
add r16 = 8,r16 ;;
-
 
195
st8 [r16] = r55;;
-
 
196
add r16 = 8,r16 ;;
-
 
197
st8 [r16] = r56;;
-
 
198
add r16 = 8,r16 ;;
-
 
199
st8 [r16] = r57;;
-
 
200
add r16 = 8,r16 ;;
-
 
201
st8 [r16] = r58;;
-
 
202
add r16 = 8,r16 ;;
-
 
203
st8 [r16] = r59;;
-
 
204
add r16 = 8,r16 ;;
-
 
205
st8 [r16] = r60;;
-
 
206
add r16 = 8,r16 ;;
-
 
207
st8 [r16] = r61;;
-
 
208
add r16 = 8,r16 ;;
-
 
209
st8 [r16] = r62;;
-
 
210
add r16 = 8,r16 ;;
-
 
211
st8 [r16] = r63;;
-
 
212
add r16 = 8,r16 ;;
-
 
213
 
-
 
214
 
-
 
215
 
-
 
216
st8 [r16] = r64;;
-
 
217
add r16 = 8,r16 ;;
-
 
218
st8 [r16] = r65;;
-
 
219
add r16 = 8,r16 ;;
-
 
220
st8 [r16] = r66;;
-
 
221
add r16 = 8,r16 ;;
-
 
222
st8 [r16] = r67;;
-
 
223
add r16 = 8,r16 ;;
-
 
224
st8 [r16] = r68;;
-
 
225
add r16 = 8,r16 ;;
-
 
226
st8 [r16] = r69;;
-
 
227
add r16 = 8,r16 ;;
-
 
228
st8 [r16] = r70;;
-
 
229
add r16 = 8,r16 ;;
-
 
230
st8 [r16] = r71;;
-
 
231
add r16 = 8,r16 ;;
-
 
232
st8 [r16] = r72;;
-
 
233
add r16 = 8,r16 ;;
-
 
234
st8 [r16] = r73;;
-
 
235
add r16 = 8,r16 ;;
-
 
236
st8 [r16] = r74;;
-
 
237
add r16 = 8,r16 ;;
-
 
238
st8 [r16] = r75;;
-
 
239
add r16 = 8,r16 ;;
-
 
240
st8 [r16] = r76;;
-
 
241
add r16 = 8,r16 ;;
-
 
242
st8 [r16] = r77;;
-
 
243
add r16 = 8,r16 ;;
-
 
244
st8 [r16] = r78;;
-
 
245
add r16 = 8,r16 ;;
-
 
246
st8 [r16] = r79;;
-
 
247
add r16 = 8,r16 ;;
-
 
248
st8 [r16] = r80;;
-
 
249
add r16 = 8,r16 ;;
-
 
250
st8 [r16] = r81;;
-
 
251
add r16 = 8,r16 ;;
-
 
252
st8 [r16] = r82;;
-
 
253
add r16 = 8,r16 ;;
-
 
254
st8 [r16] = r83;;
-
 
255
add r16 = 8,r16 ;;
-
 
256
st8 [r16] = r84;;
-
 
257
add r16 = 8,r16 ;;
-
 
258
st8 [r16] = r85;;
-
 
259
add r16 = 8,r16 ;;
-
 
260
st8 [r16] = r86;;
-
 
261
add r16 = 8,r16 ;;
-
 
262
st8 [r16] = r87;;
-
 
263
add r16 = 8,r16 ;;
-
 
264
st8 [r16] = r88;;
-
 
265
add r16 = 8,r16 ;;
-
 
266
st8 [r16] = r89;;
-
 
267
add r16 = 8,r16 ;;
-
 
268
st8 [r16] = r90;;
-
 
269
add r16 = 8,r16 ;;
-
 
270
st8 [r16] = r91;;
-
 
271
add r16 = 8,r16 ;;
-
 
272
st8 [r16] = r92;;
-
 
273
add r16 = 8,r16 ;;
-
 
274
st8 [r16] = r93;;
-
 
275
add r16 = 8,r16 ;;
-
 
276
st8 [r16] = r94;;
-
 
277
add r16 = 8,r16 ;;
-
 
278
st8 [r16] = r95;;
-
 
279
add r16 = 8,r16 ;;
-
 
280
 
-
 
281
 
-
 
282
 
-
 
283
st8 [r16] = r96;;
-
 
284
add r16 = 8,r16 ;;
-
 
285
st8 [r16] = r97;;
-
 
286
add r16 = 8,r16 ;;
-
 
287
st8 [r16] = r98;;
-
 
288
add r16 = 8,r16 ;;
-
 
289
st8 [r16] = r99;;
-
 
290
add r16 = 8,r16 ;;
-
 
291
st8 [r16] = r100;;
-
 
292
add r16 = 8,r16 ;;
-
 
293
st8 [r16] = r101;;
-
 
294
add r16 = 8,r16 ;;
-
 
295
st8 [r16] = r102;;
-
 
296
add r16 = 8,r16 ;;
-
 
297
st8 [r16] = r103;;
-
 
298
add r16 = 8,r16 ;;
-
 
299
st8 [r16] = r104;;
-
 
300
add r16 = 8,r16 ;;
-
 
301
st8 [r16] = r105;;
-
 
302
add r16 = 8,r16 ;;
-
 
303
st8 [r16] = r106;;
-
 
304
add r16 = 8,r16 ;;
-
 
305
st8 [r16] = r107;;
-
 
306
add r16 = 8,r16 ;;
-
 
307
st8 [r16] = r108;;
-
 
308
add r16 = 8,r16 ;;
-
 
309
st8 [r16] = r109;;
-
 
310
add r16 = 8,r16 ;;
-
 
311
st8 [r16] = r110;;
-
 
312
add r16 = 8,r16 ;;
-
 
313
st8 [r16] = r111;;
-
 
314
add r16 = 8,r16 ;;
-
 
315
st8 [r16] = r112;;
-
 
316
add r16 = 8,r16 ;;
-
 
317
st8 [r16] = r113;;
-
 
318
add r16 = 8,r16 ;;
-
 
319
st8 [r16] = r114;;
-
 
320
add r16 = 8,r16 ;;
-
 
321
st8 [r16] = r115;;
-
 
322
add r16 = 8,r16 ;;
-
 
323
st8 [r16] = r116;;
-
 
324
add r16 = 8,r16 ;;
-
 
325
st8 [r16] = r117;;
-
 
326
add r16 = 8,r16 ;;
-
 
327
st8 [r16] = r118;;
-
 
328
add r16 = 8,r16 ;;
-
 
329
st8 [r16] = r119;;
-
 
330
add r16 = 8,r16 ;;
-
 
331
st8 [r16] = r120;;
-
 
332
add r16 = 8,r16 ;;
-
 
333
st8 [r16] = r121;;
-
 
334
add r16 = 8,r16 ;;
-
 
335
st8 [r16] = r122;;
-
 
336
add r16 = 8,r16 ;;
-
 
337
st8 [r16] = r123;;
-
 
338
add r16 = 8,r16 ;;
-
 
339
st8 [r16] = r124;;
-
 
340
add r16 = 8,r16 ;;
-
 
341
st8 [r16] = r125;;
-
 
342
add r16 = 8,r16 ;;
-
 
343
st8 [r16] = r126;;
-
 
344
add r16 = 8,r16 ;;
-
 
345
st8 [r16] = r127;;
-
 
346
add r16 = 8,r16 ;;
-
 
347
 
-
 
348
 
-
 
349
 
-
 
350
br.ret.sptk.many b0;;
-
 
351
 
-
 
352
 
-
 
353
 
-
 
354
 
-
 
355
 
31
.macro Handler o h
356
.macro Handler o h
32
.org IVT + \o
357
.org IVT + \o
33
br \h;;
358
br \h;;
34
.endm
359
.endm
35
 
360
 
36
.macro Handler2 o 
361
.macro Handler2 o 
37
.org IVT + \o
362
.org IVT + \o
-
 
363
br.call.sptk.many b0 = dump_gregs;;
38
mov r12 = \o
364
mov r16 = \o ;;
-
 
365
bsw.1;;
39
br universal_handler;;
366
br universal_handler;;
40
.endm
367
.endm
41
 
368
 
42
 
369
 
43
 
370
 
44
.global IVT
371
.global IVT
45
.align 32768
372
.align 32768
46
IVT:
373
IVT:
47
 
374
 
48
 
375
 
49
Handler2 0x0000
376
Handler2 0x0000
50
Handler2 0x0400
377
Handler2 0x0400
51
Handler2 0x0800
378
Handler2 0x0800
52
Handler2 0x0c00
379
Handler2 0x0c00
53
Handler2 0x1000
380
Handler2 0x1000
54
Handler2 0x1400
381
Handler2 0x1400
55
Handler2 0x1800
382
Handler2 0x1800
56
Handler2 0x1c00
383
Handler2 0x1c00
57
Handler2 0x2000
384
Handler2 0x2000
58
Handler2 0x2400
385
Handler2 0x2400
59
Handler2 0x2800
386
Handler2 0x2800
60
Handler 0x2c00 break_instruction
387
Handler 0x2c00 break_instruction
61
Handler2 0x3000
388
Handler2 0x3000
62
Handler2 0x3400
389
Handler2 0x3400
63
Handler2 0x3800
390
Handler2 0x3800
64
Handler2 0x3c00
391
Handler2 0x3c00
65
Handler2 0x4000
392
Handler2 0x4000
66
Handler2 0x4400
393
Handler2 0x4400
67
Handler2 0x4800
394
Handler2 0x4800
68
Handler2 0x4c00
395
Handler2 0x4c00
69
 
396
 
70
Handler2 0x5000
397
Handler2 0x5000
71
Handler2 0x5100
398
Handler2 0x5100
72
Handler2 0x5200
399
Handler2 0x5200
73
Handler2 0x5300
400
Handler2 0x5300
74
Handler 0x5400 general_exception
401
#Handler 0x5400 general_exception
-
 
402
Handler2 0x5400
75
Handler2 0x5500
403
Handler2 0x5500
76
Handler2 0x5600
404
Handler2 0x5600
77
Handler2 0x5700
405
Handler2 0x5700
78
Handler2 0x5800
406
Handler2 0x5800
79
Handler2 0x5900
407
Handler2 0x5900
80
Handler2 0x5a00
408
Handler2 0x5a00
81
Handler2 0x5b00
409
Handler2 0x5b00
82
Handler2 0x5c00
410
Handler2 0x5c00
83
Handler2 0x5d00
411
Handler2 0x5d00
84
Handler2 0x5e00
412
Handler2 0x5e00
85
Handler2 0x5f00
413
Handler2 0x5f00
86
 
414
 
87
Handler2 0x6000
415
Handler2 0x6000
88
Handler2 0x6100
416
Handler2 0x6100
89
Handler2 0x6200
417
Handler2 0x6200
90
Handler2 0x6300
418
Handler2 0x6300
91
Handler2 0x6400
419
Handler2 0x6400
92
Handler2 0x6500
420
Handler2 0x6500
93
Handler2 0x6600
421
Handler2 0x6600
94
Handler2 0x6700
422
Handler2 0x6700
95
Handler2 0x6800
423
Handler2 0x6800
96
Handler2 0x6900
424
Handler2 0x6900
97
Handler2 0x6a00
425
Handler2 0x6a00
98
Handler2 0x6b00
426
Handler2 0x6b00
99
Handler2 0x6c00
427
Handler2 0x6c00
100
Handler2 0x6d00
428
Handler2 0x6d00
101
Handler2 0x6e00
429
Handler2 0x6e00
102
Handler2 0x6f00
430
Handler2 0x6f00
103
 
431
 
104
Handler2 0x7000
432
Handler2 0x7000
105
Handler2 0x7100
433
Handler2 0x7100
106
Handler2 0x7200
434
Handler2 0x7200
107
Handler2 0x7300
435
Handler2 0x7300
108
Handler2 0x7400
436
Handler2 0x7400
109
Handler2 0x7500
437
Handler2 0x7500
110
Handler2 0x7600
438
Handler2 0x7600
111
Handler2 0x7700
439
Handler2 0x7700
112
Handler2 0x7800
440
Handler2 0x7800
113
Handler2 0x7900
441
Handler2 0x7900
114
Handler2 0x7a00
442
Handler2 0x7a00
115
Handler2 0x7b00
443
Handler2 0x7b00
116
Handler2 0x7c00
444
Handler2 0x7c00
117
Handler2 0x7d00
445
Handler2 0x7d00
118
Handler2 0x7e00
446
Handler2 0x7e00
119
Handler2 0x7f00
447
Handler2 0x7f00
120
 
448
 
121
 
449
 
122
 
450
 
123
 
451
 
124
 
452
 
125
 
453
 
126
 
454
 
127
 
455
 
128
.align 32768
456
.align 32768
-
 
457
.global REG_DUMP
-
 
458
 
-
 
459
REG_DUMP:
129
.byte 0
460
.space 128*8
-
 
461
 
130
 
462