sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / se_loop_mv2lc_stall.S
1 //Original:/proj/frio/dv/testcases/seq/se_loop_mv2lc_stall/se_loop_mv2lc_stall.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 = 0x0100 (Z);
361 P2.H = 0x00f0;
362
363 // 2 pushes of P0 onto the Stack;
364 [ -- SP ] = P0;
365 [ -- SP ] = P0;
366
367 // Loop 0
368 LD32_LABEL(r0, L0T);
369 LD32_LABEL(r1, L0B);
370 LT0 = r0;
371 LB0 = r1;
372 R0 = [ P2 ++ ];
373 LC0 = p1;
374 L0T:R3 += 4;
375 R2 += 3;
376 R4 += 5;
377 R5 += 6;
378 R6 += 7;
379 L0B:R7 += 8;
380
381 // Loop 0
382 LD32_LABEL(r0, L1T);
383 LD32_LABEL(r1, L1B);
384 LT0 = r0;
385 LB0 = r1;
386 R0 = [ P2 ++ ];
387 NOP;
388 LC0 = p1;
389 L1T:R4 += 5;
390 R2 += 3;
391 R3 += 4;
392 R5 += 6;
393 R6 += 7;
394 L1B:R7 += 8;
395
396 // Loop 0
397 LD32_LABEL(r0, L2T);
398 LD32_LABEL(r1, L2B);
399 LT0 = r0;
400 LB0 = r1;
401 R0 = [ P2 ++ ];
402 NOP;
403 NOP;
404 LC0 = p1;
405 L2T:R5 += 6;
406 R2 += 3;
407 R3 += 4;
408 R4 += 5;
409 R6 += 7;
410 L2B:R7 += 8;
411
412 // Loop 0
413 LD32_LABEL(r0, L3T);
414 LD32_LABEL(r1, L3B);
415 LT0 = r0;
416 LB0 = r1;
417 R0 = [ P2 ++ ];
418 NOP;
419 NOP;
420 NOP;
421 LC0 = p1;
422 L3T:R2 += 3;
423 R5 += 6;
424 R6 += 7;
425 R3 += 4;
426 R4 += 5;
427 L3B:R7 += 8;
428
429 // Loop 0
430 LD32_LABEL(r0, L4T);
431 LD32_LABEL(r1, L4B);
432 LT0 = r0;
433 LB0 = r1;
434 R0 = [ P2 ++ ];
435 NOP;
436 NOP;
437 NOP;
438 NOP;
439 LC0 = p1;
440 L4T:R2 += 3;
441 R3 += 4;
442 R5 += 6;
443 R6 += 7;
444 R4 += 5;
445 L4B:R7 += 8;
446
447 // Loop 0
448 LD32_LABEL(r0, L5T);
449 LD32_LABEL(r1, L5B);
450 LT0 = r0;
451 LB0 = r1;
452 R0 = [ P2 ++ ];
453 LC0 = [sp++];
454 L5T:R2 += 3;
455 R3 += 4;
456 R5 += 6;
457 R6 += 7;
458 R4 += 5;
459 L5B:R7 += 8;
460
461
462 // Loop 1
463 LD32_LABEL(r0, M0T);
464 LD32_LABEL(r1, M0B);
465 LT1 = r0;
466 LB1 = r1;
467 R0 = [ P2 ++ ];
468 LC1 = p1;
469 M0T:R3 += 4;
470 R2 += 3;
471 R4 += 5;
472 R5 += 6;
473 R6 += 7;
474 M0B:R7 += 8;
475
476 // Loop 1
477 LD32_LABEL(r0, M1T);
478 LD32_LABEL(r1, M1B);
479 LT1 = r0;
480 LB1 = r1;
481 R0 = [ P2 ++ ];
482 NOP;
483 LC1 = p1;
484 M1T:R4 += 5;
485 R2 += 3;
486 R3 += 4;
487 R5 += 6;
488 R6 += 7;
489 M1B:R7 += 8;
490
491 // Loop 1
492 LD32_LABEL(r0, M2T);
493 LD32_LABEL(r1, M2B);
494 LT1 = r0;
495 LB1 = r1;
496 R0 = [ P2 ++ ];
497 NOP;
498 NOP;
499 LC1 = p1;
500 M2T:R5 += 6;
501 R2 += 3;
502 R3 += 4;
503 R4 += 5;
504 R6 += 7;
505 M2B:R7 += 8;
506
507 // Loop 1
508 LD32_LABEL(r0, M3T);
509 LD32_LABEL(r1, M3B);
510 LT1 = r0;
511 LB1 = r1;
512 R0 = [ P2 ++ ];
513 NOP;
514 NOP;
515 NOP;
516 LC1 = p1;
517 M3T:R2 += 3;
518 R5 += 6;
519 R6 += 7;
520 R3 += 4;
521 R4 += 5;
522 M3B:R7 += 8;
523
524 // Loop 1
525 LD32_LABEL(r0, M4T);
526 LD32_LABEL(r1, M4B);
527 LT1 = r0;
528 LB1 = r1;
529 R0 = [ P2 ++ ];
530 NOP;
531 NOP;
532 NOP;
533 NOP;
534 LC1 = p1;
535 M4T:R2 += 3;
536 R3 += 4;
537 R5 += 6;
538 R6 += 7;
539 R4 += 5;
540 M4B:R7 += 8;
541
542 // Loop 1
543 LD32_LABEL(r0, M5T);
544 LD32_LABEL(r1, M5B);
545 LT1 = r0;
546 LB1 = r1;
547 R0 = [ P2 ++ ];
548 LC1 = [sp++];
549 M5T:R2 += 3;
550 R3 += 4;
551 R5 += 6;
552 R6 += 7;
553 R4 += 5;
554 M5B:R7 += 8;
555
556 NOP;
557 NOP;
558 RTI;
559
560 .dw 0xFFFF
561 .dw 0xFFFF
562 .dw 0xFFFF
563 .dw 0xFFFF
564 .dw 0xFFFF
565 .dw 0xFFFF
566 .dw 0xFFFF
567
568 /////////////////////////////////////////////////////////////////////////////
569 ///////////////////////// USER CODE /////////////////////////////
570 /////////////////////////////////////////////////////////////////////////////
571
572
573 USER_CODE :
574
575 NOP;
576 NOP;
577 NOP;
578 NOP;
579 dbg_pass; // Call Endtest Macro
580
581 /////////////////////////////////////////////////////////////////////////////
582 ///////////////////////// DATA MEMRORY /////////////////////////////
583 /////////////////////////////////////////////////////////////////////////////
584
585 .section MEM_0x00F00100,"aw"
586 .dd 0x01010101;
587 .dd 0x02020202;
588 .dd 0x03030303;
589 .dd 0x04040404;
590 .dd 0x05050505;
591 .dd 0x06060606;
592 .dd 0x07070707;
593 .dd 0x08080808;
594 .dd 0x09090909;
595 .dd 0x0a0a0a0a;
596 .dd 0x0b0b0b0b;
597 .dd 0x0c0c0c0c;
598 .dd 0x0d0d0d0d;
599 .dd 0x0e0e0e0e;
600 .dd 0x0f0f0f0f;
601
602 // Define Kernal Stack
603 .section MEM_0x00F00210,"aw"
604 .space (STACKSIZE);
605 KSTACK :
606
607 .space (STACKSIZE);
608 USTACK :
609
610 /////////////////////////////////////////////////////////////////////////////
611 ///////////////////////// END OF TEST /////////////////////////////
612 /////////////////////////////////////////////////////////////////////////////
This page took 0.042082 seconds and 4 git commands to generate.