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