* hppa.h (pa_opcodes): Use "cX" completer instead of "cx" in fstqx
[external/binutils.git] / sim / testsuite / sim / bfin / se_loop_kill_01.S
1 //Original:/proj/frio/dv/testcases/seq/se_loop_kill_01/se_loop_kill_01.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
16 /////////////////////////////////////////////////////////////////////////////
17 ///////////////////////// Defines               /////////////////////////////
18 /////////////////////////////////////////////////////////////////////////////
19
20 #ifndef USER_CODE_SPACE
21 #define USER_CODE_SPACE  0x00000500
22 #endif
23 #ifndef STACKSIZE
24 #define STACKSIZE        0x00000010
25 #endif
26 #ifndef ITABLE
27 #define ITABLE           0xF0000000
28 #endif
29 #ifndef EVT
30 #define EVT              0xFFE02000
31 #endif
32 #ifndef EVT_OVERRIDE
33 #define EVT_OVERRIDE     0xFFE02100
34 #endif
35 #ifndef IMASK
36 #define IMASK            0xFFE02104
37 #endif
38 #ifndef DMEM_CONTROL
39 #define DMEM_CONTROL     0xFFE00004
40 #endif
41 #ifndef DCPLB_ADDR0
42 #define DCPLB_ADDR0      0xFFE00100
43 #endif
44 #ifndef DCPLB_DATA0
45 #define DCPLB_DATA0      0xFFE00200
46 #endif
47
48 /////////////////////////////////////////////////////////////////////////////
49 ///////////////////////// RESET ISR             /////////////////////////////
50 /////////////////////////////////////////////////////////////////////////////
51
52  RST_ISR :
53
54     // Initialize Dregs
55 INIT_R_REGS(0);
56
57     // Initialize Pregs
58 INIT_P_REGS(0);
59
60     // Initialize ILBM Registers
61 INIT_I_REGS(0);
62 INIT_M_REGS(0);
63 INIT_L_REGS(0);
64 INIT_B_REGS(0);
65
66     // Initialize the Address of the Checkreg data segment
67     // **** THIS IS NEEDED WHENEVER CHECKREG IS USED ****
68 CHECK_INIT(p5,   0x00BFFFFC);
69
70     // Setup User Stack
71 LD32_LABEL(sp, USTACK);
72 USP = SP;
73
74     // Setup Kernel Stack
75 LD32_LABEL(sp, KSTACK);
76
77     // Setup Frame Pointer
78 FP = SP;
79
80     // Setup Event Vector Table
81 LD32(p0, EVT);
82
83 LD32_LABEL(r0, EMU_ISR);    // Emulation Handler (Int0)
84     [ P0 ++ ] = R0;
85 LD32_LABEL(r0, RST_ISR);    // Reset Handler (Int1)
86     [ P0 ++ ] = R0;
87 LD32_LABEL(r0, NMI_ISR);    // NMI Handler (Int2)
88     [ P0 ++ ] = R0;
89 LD32_LABEL(r0, EXC_ISR);    // Exception Handler (Int3)
90     [ P0 ++ ] = R0;
91     [ P0 ++ ] = R0;                // IVT4 not used
92 LD32_LABEL(r0, HWE_ISR);    // HW Error Handler (Int5)
93     [ P0 ++ ] = R0;
94 LD32_LABEL(r0, TMR_ISR);    // Timer Handler (Int6)
95     [ P0 ++ ] = R0;
96 LD32_LABEL(r0, IGV7_ISR);   // IVG7 Handler
97     [ P0 ++ ] = R0;
98 LD32_LABEL(r0, IGV8_ISR);   // IVG8 Handler
99     [ P0 ++ ] = R0;
100 LD32_LABEL(r0, IGV9_ISR);   // IVG9 Handler
101     [ P0 ++ ] = R0;
102 LD32_LABEL(r0, IGV10_ISR);  // IVG10 Handler
103     [ P0 ++ ] = R0;
104 LD32_LABEL(r0, IGV11_ISR);  // IVG11 Handler
105     [ P0 ++ ] = R0;
106 LD32_LABEL(r0, IGV12_ISR);  // IVG12 Handler
107     [ P0 ++ ] = R0;
108 LD32_LABEL(r0, IGV13_ISR);  // IVG13 Handler
109     [ P0 ++ ] = R0;
110 LD32_LABEL(r0, IGV14_ISR);  // IVG14 Handler
111     [ P0 ++ ] = R0;
112 LD32_LABEL(r0, IGV15_ISR);  // IVG15 Handler
113     [ P0 ++ ] = R0;
114
115     // Setup the EVT_OVERRIDE MMR
116     R0 = 0;
117 LD32(p0, EVT_OVERRIDE);
118     [ P0 ] = R0;
119
120     // Setup Interrupt Mask
121     R0 = -1;
122 LD32(p0, IMASK);
123     [ P0 ] = R0;
124
125     // Return to Supervisor Code
126 RAISE 15;
127 NOP;
128
129 LD32_LABEL(r0, USER_CODE);
130 RETI = R0;
131 RTI;
132
133 .dw 0xFFFF
134 .dw 0xFFFF
135 .dw 0xFFFF
136 .dw 0xFFFF
137 .dw 0xFFFF
138 .dw 0xFFFF
139 .dw 0xFFFF
140
141 /////////////////////////////////////////////////////////////////////////////
142
143
144 /////////////////////////////////////////////////////////////////////////////
145 ///////////////////////// EMU ISR               /////////////////////////////
146 /////////////////////////////////////////////////////////////////////////////
147
148  EMU_ISR :
149
150 RTE;
151
152 .dw 0xFFFF
153 .dw 0xFFFF
154 .dw 0xFFFF
155 .dw 0xFFFF
156 .dw 0xFFFF
157 .dw 0xFFFF
158 .dw 0xFFFF
159
160 /////////////////////////////////////////////////////////////////////////////
161 ///////////////////////// NMI ISR               /////////////////////////////
162 /////////////////////////////////////////////////////////////////////////////
163
164  NMI_ISR :
165
166 RTN;
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
184 .dw 0xFFFF
185 .dw 0xFFFF
186 .dw 0xFFFF
187 .dw 0xFFFF
188 .dw 0xFFFF
189 .dw 0xFFFF
190 .dw 0xFFFF
191
192 /////////////////////////////////////////////////////////////////////////////
193 ///////////////////////// HWE ISR               /////////////////////////////
194 /////////////////////////////////////////////////////////////////////////////
195
196  HWE_ISR :
197
198 RTI;
199
200 .dw 0xFFFF
201 .dw 0xFFFF
202 .dw 0xFFFF
203 .dw 0xFFFF
204 .dw 0xFFFF
205 .dw 0xFFFF
206 .dw 0xFFFF
207
208 /////////////////////////////////////////////////////////////////////////////
209 ///////////////////////// TMR ISR               /////////////////////////////
210 /////////////////////////////////////////////////////////////////////////////
211
212  TMR_ISR :
213
214 RTI;
215
216 .dw 0xFFFF
217 .dw 0xFFFF
218 .dw 0xFFFF
219 .dw 0xFFFF
220 .dw 0xFFFF
221 .dw 0xFFFF
222 .dw 0xFFFF
223
224 /////////////////////////////////////////////////////////////////////////////
225 ///////////////////////// IGV7 ISR              /////////////////////////////
226 /////////////////////////////////////////////////////////////////////////////
227
228  IGV7_ISR :
229
230 RTI;
231
232 .dw 0xFFFF
233 .dw 0xFFFF
234 .dw 0xFFFF
235 .dw 0xFFFF
236 .dw 0xFFFF
237 .dw 0xFFFF
238 .dw 0xFFFF
239
240 /////////////////////////////////////////////////////////////////////////////
241 ///////////////////////// IGV8 ISR              /////////////////////////////
242 /////////////////////////////////////////////////////////////////////////////
243
244  IGV8_ISR :
245
246 RTI;
247
248 .dw 0xFFFF
249 .dw 0xFFFF
250 .dw 0xFFFF
251 .dw 0xFFFF
252 .dw 0xFFFF
253 .dw 0xFFFF
254 .dw 0xFFFF
255
256 /////////////////////////////////////////////////////////////////////////////
257 ///////////////////////// IGV9 ISR              /////////////////////////////
258 /////////////////////////////////////////////////////////////////////////////
259
260  IGV9_ISR :
261
262 RTI;
263
264 .dw 0xFFFF
265 .dw 0xFFFF
266 .dw 0xFFFF
267 .dw 0xFFFF
268 .dw 0xFFFF
269 .dw 0xFFFF
270 .dw 0xFFFF
271
272 /////////////////////////////////////////////////////////////////////////////
273 ///////////////////////// IGV10 ISR             /////////////////////////////
274 /////////////////////////////////////////////////////////////////////////////
275
276  IGV10_ISR :
277
278 RTI;
279
280 .dw 0xFFFF
281 .dw 0xFFFF
282 .dw 0xFFFF
283 .dw 0xFFFF
284 .dw 0xFFFF
285 .dw 0xFFFF
286 .dw 0xFFFF
287
288 /////////////////////////////////////////////////////////////////////////////
289 ///////////////////////// IGV11 ISR             /////////////////////////////
290 /////////////////////////////////////////////////////////////////////////////
291
292  IGV11_ISR :
293
294 RTI;
295
296 .dw 0xFFFF
297 .dw 0xFFFF
298 .dw 0xFFFF
299 .dw 0xFFFF
300 .dw 0xFFFF
301 .dw 0xFFFF
302 .dw 0xFFFF
303
304 /////////////////////////////////////////////////////////////////////////////
305 ///////////////////////// IGV12 ISR             /////////////////////////////
306 /////////////////////////////////////////////////////////////////////////////
307
308  IGV12_ISR :
309
310 RTI;
311
312 .dw 0xFFFF
313 .dw 0xFFFF
314 .dw 0xFFFF
315 .dw 0xFFFF
316 .dw 0xFFFF
317 .dw 0xFFFF
318 .dw 0xFFFF
319
320 /////////////////////////////////////////////////////////////////////////////
321 ///////////////////////// IGV13 ISR             /////////////////////////////
322 /////////////////////////////////////////////////////////////////////////////
323
324  IGV13_ISR :
325
326 RTI;
327
328 .dw 0xFFFF
329 .dw 0xFFFF
330 .dw 0xFFFF
331 .dw 0xFFFF
332 .dw 0xFFFF
333 .dw 0xFFFF
334 .dw 0xFFFF
335
336 /////////////////////////////////////////////////////////////////////////////
337 ///////////////////////// IGV14 ISR             /////////////////////////////
338 /////////////////////////////////////////////////////////////////////////////
339
340  IGV14_ISR :
341
342 RTI;
343
344 .dw 0xFFFF
345 .dw 0xFFFF
346 .dw 0xFFFF
347 .dw 0xFFFF
348 .dw 0xFFFF
349 .dw 0xFFFF
350 .dw 0xFFFF
351
352 /////////////////////////////////////////////////////////////////////////////
353 ///////////////////////// IGV15 ISR             /////////////////////////////
354 /////////////////////////////////////////////////////////////////////////////
355
356  IGV15_ISR :
357
358     P0 = 0x5 (Z);
359     P1 = 0x3 (Z);
360     P2 = 0x0200 (Z);
361     P2.H = 0x00F0;
362     [ -- SP ] = P0;
363     [ -- SP ] = P0;
364 SSYNC;
365
366 LD32_LABEL(r0, l0t);
367 LD32_LABEL(r1, l0b);
368     [ -- SP ] = R0;
369     [ -- SP ] = R1;
370 SSYNC;
371 LB0 = [sp++];
372 EXCPT 0x5;      // Will kill mv2lc in EX3
373 LC0 = P0;
374 LT0 = [sp++];
375 l0t:R3 += 3;
376     R1 += 1;
377     R4 += 4;
378     R5 += 5;
379     R6 += 6;
380 l0b:R2 += 2;
381
382 LD32_LABEL(r0, l2t);
383 LD32_LABEL(r1, l2b);
384 LT0 = r0;
385 LB0 = r1;
386 EXCPT 0x5;      // Will kill mv2lc in EX3 when stalled
387 LC0 = [ SP ++ ];
388 l2t:R3 += 3;
389     R1 += 1;
390     R4 += 4;
391     R5 += 5;
392     R6 += 6;
393 l2b:R2 += 2;
394
395 LD32_LABEL(r0, l1t);
396 LD32_LABEL(r1, l1b);
397 LT1 = r0;
398 LB1 = r1;
399 EXCPT 0x5;      // Will kill mv2lc in EX3 when stalled
400 LC1 = [ SP ++ ];
401 l1t:R3 += 3;
402     R1 += 1;
403     R4 += 4;
404     R5 += 5;
405     R6 += 6;
406 l1b:R2 += 2;
407
408 LD32_LABEL(r0, l3t);
409 LD32_LABEL(r1, l3b);
410 LT1 = r0;
411 LB1 = r1;
412 EXCPT 0x5;      // Will kill mv2lc in EX3
413 NOP;
414 LC1 = P0;
415 l3t:R3 += 3;
416     R1 += 1;
417     R4 += 4;
418     R5 += 5;
419     R6 += 6;
420 l3b:R2 += 2;
421
422 EXCPT 0x6;      // Will kill Lsetup in EX2
423 NOP;
424 NOP;
425 LSETUP ( l1e , l1e ) LC0 = P1;
426 l1e:R7 += 1;
427
428 EXCPT 0x6;      // Will kill Lsetup in EX2
429 NOP;
430 NOP;
431 LSETUP ( m1e , m1e ) LC1 = P1;
432 m1e:R7 += 1;
433
434 EXCPT 0x6;      // Will kill Lsetup in EX1
435 NOP;
436 NOP;
437 NOP;
438 LSETUP ( l2e , l2e ) LC0 = P1;
439 l2e:R7 += 1;
440
441 EXCPT 0x6;      // Will kill Lsetup in EX1
442 NOP;
443 NOP;
444 NOP;
445 LSETUP ( m2e , m2e ) LC1 = P1;
446 m2e:R7 += 1;
447
448 NOP;
449 NOP;
450 NOP;
451
452 EXCPT 0x6;      // Will kill Lsetup in EX2 when stalled
453     R0 = [ P2 ++ ];
454 LSETUP ( l3e , l3e ) LC0 = P1;
455 l3e:R7 += 1;
456
457 EXCPT 0x6;      // Will kill Lsetup in EX2 when stalled
458     R0 = [ P2 ++ ];
459 LSETUP ( m3e , m3e ) LC1 = P1;
460 m3e:R7 += 1;
461
462 EXCPT 0x6;      // Will kill Lsetup in EX1 when stalled
463     R0 = [ P2 ++ ];
464 NOP;
465 LSETUP ( l4e , l4e ) LC0 = P1;
466 l4e:R7 += 1;
467
468 EXCPT 0x6;      // Will kill Lsetup in EX1 when stalled
469     R0 = [ P2 ++ ];
470 NOP;
471 LSETUP ( m4e , m4e ) LC1 = P1;
472 m4e:R7 += 1;
473
474 NOP;
475 NOP;
476 RTI;
477
478 .dw 0xFFFF
479 .dw 0xFFFF
480 .dw 0xFFFF
481 .dw 0xFFFF
482 .dw 0xFFFF
483 .dw 0xFFFF
484 .dw 0xFFFF
485
486 /////////////////////////////////////////////////////////////////////////////
487 ///////////////////////// USER CODE             /////////////////////////////
488 /////////////////////////////////////////////////////////////////////////////
489
490
491  USER_CODE :
492
493 NOP;
494 NOP;
495 NOP;
496 NOP;
497 dbg_pass;        // Call Endtest Macro
498
499 /////////////////////////////////////////////////////////////////////////////
500 ///////////////////////// DATA MEMRORY          /////////////////////////////
501 /////////////////////////////////////////////////////////////////////////////
502
503 .section MEM_0x00F00100,"aw"
504 .dd 0xdeadbeef;
505 .section MEM_0x00F00200,"aw"
506 .dd 0x01010101;
507 .dd 0x02020202;
508 .dd 0x03030303;
509 .dd 0x04040404;
510
511 // Define Kernal Stack
512 .section MEM_0x00F00210,"aw"
513     .space (STACKSIZE);
514      KSTACK :
515
516     .space (STACKSIZE);
517      USTACK :
518
519 /////////////////////////////////////////////////////////////////////////////
520 ///////////////////////// END OF TEST           /////////////////////////////
521 /////////////////////////////////////////////////////////////////////////////