source: mainline/arch/ia64/src/ivt.S@ 2f08a55d

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 2f08a55d was 60f6b7c, checked in by Jakub Vana <jakub.vana@…>, 20 years ago

Register dump on IA-64 exceptions

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