xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/se_rts_rti.S (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/proj/frio/dv/testcases/seq/se_rts_rti/se_rts_rti.dsp
2# mach: bfin
3# sim: --environment operating
4
5#include "test.h"
6.include "testutils.inc"
7start
8
9/////////////////////////////////////////////////////////////////////////////
10///////////////////////// Include Files         /////////////////////////////
11/////////////////////////////////////////////////////////////////////////////
12
13include(std.inc)
14include(selfcheck.inc)
15include(symtable.inc)
16include(mmrs.inc)
17
18/////////////////////////////////////////////////////////////////////////////
19///////////////////////// Defines               /////////////////////////////
20/////////////////////////////////////////////////////////////////////////////
21
22#ifndef USER_CODE_SPACE
23#define USER_CODE_SPACE  CODE_ADDR_1   //
24#endif
25#ifndef STACKSIZE
26#define STACKSIZE        0x00000010
27#endif
28#ifndef ITABLE
29#define ITABLE           CODE_ADDR_2   //
30#endif
31
32/////////////////////////////////////////////////////////////////////////////
33///////////////////////// RESET ISR             /////////////////////////////
34/////////////////////////////////////////////////////////////////////////////
35
36 RST_ISR :
37
38    // Initialize Dregs
39INIT_R_REGS(0);
40
41    // Initialize Pregs
42INIT_P_REGS(0);
43
44    // Initialize ILBM Registers
45INIT_I_REGS(0);
46INIT_M_REGS(0);
47INIT_L_REGS(0);
48INIT_B_REGS(0);
49
50    // Initialize the Address of the Checkreg data segment
51    // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
52CHECK_INIT_DEF(p5); //CHECK_INIT(p5,   0x00BFFFFC);
53
54    // Setup User Stack
55LD32_LABEL(sp, USTACK);
56USP = SP;
57
58    // Setup Kernel Stack
59LD32_LABEL(sp, KSTACK);
60
61    // Setup Frame Pointer
62FP = SP;
63
64    // Setup Event Vector Table
65LD32(p0, EVT0);
66
67LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
68    [ P0 ++ ] = R0;
69LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
70    [ P0 ++ ] = R0;
71LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
72    [ P0 ++ ] = R0;
73LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
74    [ P0 ++ ] = R0;
75    [ P0 ++ ] = R0;                // IVT4 not used
76LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
77    [ P0 ++ ] = R0;
78LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
79    [ P0 ++ ] = R0;
80LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
81    [ P0 ++ ] = R0;
82LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
83    [ P0 ++ ] = R0;
84LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
85    [ P0 ++ ] = R0;
86LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
87    [ P0 ++ ] = R0;
88LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
89    [ P0 ++ ] = R0;
90LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
91    [ P0 ++ ] = R0;
92LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
93    [ P0 ++ ] = R0;
94LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
95    [ P0 ++ ] = R0;
96LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
97    [ P0 ++ ] = R0;
98
99    // Setup the EVT_OVERRIDE MMR
100    R0 = 0;
101LD32(p0, EVT_OVERRIDE);
102    [ P0 ] = R0;
103
104    // Setup Interrupt Mask
105    R0 = -1;
106LD32(p0, IMASK);
107    [ P0 ] = R0;
108
109    // Load RETS
110LD32_LABEL(r0, USER_CODE);
111RETS = R0;
112
113    // Return to Supervisor Code
114RAISE 2;
115RAISE 5;
116RAISE 6;
117RAISE 7;
118RAISE 8;
119RAISE 9;
120RAISE 10;
121RAISE 11;
122RAISE 12;
123RAISE 13;
124RAISE 14;
125RAISE 15;
126NOP;
127
128LD32_LABEL(r0, USER_CODE);
129RETI = R0;
130RTI;
131
132.dw 0xFFFF
133.dw 0xFFFF
134.dw 0xFFFF
135.dw 0xFFFF
136.dw 0xFFFF
137.dw 0xFFFF
138.dw 0xFFFF
139
140/////////////////////////////////////////////////////////////////////////////
141
142
143/////////////////////////////////////////////////////////////////////////////
144///////////////////////// EMU ISR               /////////////////////////////
145/////////////////////////////////////////////////////////////////////////////
146
147 EMU_ISR :
148
149RTE;
150
151.dw 0xFFFF
152.dw 0xFFFF
153.dw 0xFFFF
154.dw 0xFFFF
155.dw 0xFFFF
156.dw 0xFFFF
157.dw 0xFFFF
158
159/////////////////////////////////////////////////////////////////////////////
160///////////////////////// NMI ISR               /////////////////////////////
161/////////////////////////////////////////////////////////////////////////////
162
163 NMI_ISR :
164
165RTN;
166NOP;
167NOP;
168RTS;
169
170.dw 0xFFFF
171.dw 0xFFFF
172.dw 0xFFFF
173.dw 0xFFFF
174.dw 0xFFFF
175.dw 0xFFFF
176.dw 0xFFFF
177
178/////////////////////////////////////////////////////////////////////////////
179///////////////////////// EXC ISR               /////////////////////////////
180/////////////////////////////////////////////////////////////////////////////
181
182 EXC_ISR :
183
184RTX;
185NOP;
186NOP;
187RTS;
188
189.dw 0xFFFF
190.dw 0xFFFF
191.dw 0xFFFF
192.dw 0xFFFF
193.dw 0xFFFF
194.dw 0xFFFF
195.dw 0xFFFF
196
197/////////////////////////////////////////////////////////////////////////////
198///////////////////////// HWE ISR               /////////////////////////////
199/////////////////////////////////////////////////////////////////////////////
200
201 HWE_ISR :
202
203RTI;
204NOP;
205NOP;
206RTS;
207
208.dw 0xFFFF
209.dw 0xFFFF
210.dw 0xFFFF
211.dw 0xFFFF
212.dw 0xFFFF
213.dw 0xFFFF
214.dw 0xFFFF
215
216/////////////////////////////////////////////////////////////////////////////
217///////////////////////// TMR ISR               /////////////////////////////
218/////////////////////////////////////////////////////////////////////////////
219
220 TMR_ISR :
221
222RTI;
223NOP;
224NOP;
225RTS;
226
227.dw 0xFFFF
228.dw 0xFFFF
229.dw 0xFFFF
230.dw 0xFFFF
231.dw 0xFFFF
232.dw 0xFFFF
233.dw 0xFFFF
234
235/////////////////////////////////////////////////////////////////////////////
236///////////////////////// IGV7 ISR              /////////////////////////////
237/////////////////////////////////////////////////////////////////////////////
238
239 IGV7_ISR :
240
241RTI;
242NOP;
243NOP;
244RTS;
245
246.dw 0xFFFF
247.dw 0xFFFF
248.dw 0xFFFF
249.dw 0xFFFF
250.dw 0xFFFF
251.dw 0xFFFF
252.dw 0xFFFF
253
254/////////////////////////////////////////////////////////////////////////////
255///////////////////////// IGV8 ISR              /////////////////////////////
256/////////////////////////////////////////////////////////////////////////////
257
258 IGV8_ISR :
259
260RTI;
261NOP;
262NOP;
263RTS;
264
265.dw 0xFFFF
266.dw 0xFFFF
267.dw 0xFFFF
268.dw 0xFFFF
269.dw 0xFFFF
270.dw 0xFFFF
271.dw 0xFFFF
272
273/////////////////////////////////////////////////////////////////////////////
274///////////////////////// IGV9 ISR              /////////////////////////////
275/////////////////////////////////////////////////////////////////////////////
276
277 IGV9_ISR :
278
279RTI;
280NOP;
281NOP;
282RTS;
283
284.dw 0xFFFF
285.dw 0xFFFF
286.dw 0xFFFF
287.dw 0xFFFF
288.dw 0xFFFF
289.dw 0xFFFF
290.dw 0xFFFF
291
292/////////////////////////////////////////////////////////////////////////////
293///////////////////////// IGV10 ISR             /////////////////////////////
294/////////////////////////////////////////////////////////////////////////////
295
296 IGV10_ISR :
297
298RTI;
299NOP;
300NOP;
301RTS;
302
303.dw 0xFFFF
304.dw 0xFFFF
305.dw 0xFFFF
306.dw 0xFFFF
307.dw 0xFFFF
308.dw 0xFFFF
309.dw 0xFFFF
310
311/////////////////////////////////////////////////////////////////////////////
312///////////////////////// IGV11 ISR             /////////////////////////////
313/////////////////////////////////////////////////////////////////////////////
314
315 IGV11_ISR :
316
317RTI;
318NOP;
319NOP;
320RTS;
321
322.dw 0xFFFF
323.dw 0xFFFF
324.dw 0xFFFF
325.dw 0xFFFF
326.dw 0xFFFF
327.dw 0xFFFF
328.dw 0xFFFF
329
330/////////////////////////////////////////////////////////////////////////////
331///////////////////////// IGV12 ISR             /////////////////////////////
332/////////////////////////////////////////////////////////////////////////////
333
334 IGV12_ISR :
335
336RTI;
337NOP;
338NOP;
339RTS;
340
341.dw 0xFFFF
342.dw 0xFFFF
343.dw 0xFFFF
344.dw 0xFFFF
345.dw 0xFFFF
346.dw 0xFFFF
347.dw 0xFFFF
348
349/////////////////////////////////////////////////////////////////////////////
350///////////////////////// IGV13 ISR             /////////////////////////////
351/////////////////////////////////////////////////////////////////////////////
352
353 IGV13_ISR :
354
355RTI;
356NOP;
357NOP;
358RTS;
359
360.dw 0xFFFF
361.dw 0xFFFF
362.dw 0xFFFF
363.dw 0xFFFF
364.dw 0xFFFF
365.dw 0xFFFF
366.dw 0xFFFF
367
368/////////////////////////////////////////////////////////////////////////////
369///////////////////////// IGV14 ISR             /////////////////////////////
370/////////////////////////////////////////////////////////////////////////////
371
372 IGV14_ISR :
373
374RTI;
375NOP;
376NOP;
377RTS;
378
379.dw 0xFFFF
380.dw 0xFFFF
381.dw 0xFFFF
382.dw 0xFFFF
383.dw 0xFFFF
384.dw 0xFFFF
385.dw 0xFFFF
386
387/////////////////////////////////////////////////////////////////////////////
388///////////////////////// IGV15 ISR             /////////////////////////////
389/////////////////////////////////////////////////////////////////////////////
390
391 IGV15_ISR :
392
393RTI;
394NOP;
395NOP;
396RTS;
397
398.dw 0xFFFF
399.dw 0xFFFF
400.dw 0xFFFF
401.dw 0xFFFF
402.dw 0xFFFF
403.dw 0xFFFF
404.dw 0xFFFF
405
406/////////////////////////////////////////////////////////////////////////////
407///////////////////////// USER CODE             /////////////////////////////
408/////////////////////////////////////////////////////////////////////////////
409
410
411 USER_CODE :
412
413EXCPT 0x5;
414NOP;
415NOP;
416NOP;
417NOP;
418dbg_pass;        // Call Endtest Macro
419
420/////////////////////////////////////////////////////////////////////////////
421///////////////////////// DATA MEMRORY          /////////////////////////////
422/////////////////////////////////////////////////////////////////////////////
423
424.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
425.dd 0xdeadbeef;
426.section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
427.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
428.dd 0x02020202;
429.dd 0x03030303;
430.dd 0x04040404;
431
432// Define Kernal Stack
433.data
434    .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
435     KSTACK :
436
437    .space (STACKSIZE);
438     USTACK :
439
440/////////////////////////////////////////////////////////////////////////////
441///////////////////////// END OF TEST           /////////////////////////////
442/////////////////////////////////////////////////////////////////////////////
443