]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/bfin/se_lsetup_kill.S
sim: bfin: import testsuite
[thirdparty/binutils-gdb.git] / sim / testsuite / sim / bfin / se_lsetup_kill.S
1 //Original:/proj/frio/dv/testcases/seq/se_lsetup_kill/se_lsetup_kill.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 CODE_ADDR_2 //
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 // Return to Supervisor Code
110 RAISE 15;
111 NOP;
112
113 LD32_LABEL(r0, USER_CODE);
114 RETI = R0;
115 RTI;
116
117 .dw 0xFFFF
118 .dw 0xFFFF
119 .dw 0xFFFF
120 .dw 0xFFFF
121 .dw 0xFFFF
122 .dw 0xFFFF
123 .dw 0xFFFF
124
125 /////////////////////////////////////////////////////////////////////////////
126
127
128 /////////////////////////////////////////////////////////////////////////////
129 ///////////////////////// EMU ISR /////////////////////////////
130 /////////////////////////////////////////////////////////////////////////////
131
132 EMU_ISR :
133
134 RTE;
135
136 .dw 0xFFFF
137 .dw 0xFFFF
138 .dw 0xFFFF
139 .dw 0xFFFF
140 .dw 0xFFFF
141 .dw 0xFFFF
142 .dw 0xFFFF
143
144 /////////////////////////////////////////////////////////////////////////////
145 ///////////////////////// NMI ISR /////////////////////////////
146 /////////////////////////////////////////////////////////////////////////////
147
148 NMI_ISR :
149
150 RTN;
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 ///////////////////////// EXC ISR /////////////////////////////
162 /////////////////////////////////////////////////////////////////////////////
163
164 EXC_ISR :
165
166 RTX;
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 ///////////////////////// HWE ISR /////////////////////////////
178 /////////////////////////////////////////////////////////////////////////////
179
180 HWE_ISR :
181
182 RTI;
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 ///////////////////////// TMR ISR /////////////////////////////
194 /////////////////////////////////////////////////////////////////////////////
195
196 TMR_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 ///////////////////////// IGV7 ISR /////////////////////////////
210 /////////////////////////////////////////////////////////////////////////////
211
212 IGV7_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 ///////////////////////// IGV8 ISR /////////////////////////////
226 /////////////////////////////////////////////////////////////////////////////
227
228 IGV8_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 ///////////////////////// IGV9 ISR /////////////////////////////
242 /////////////////////////////////////////////////////////////////////////////
243
244 IGV9_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 ///////////////////////// IGV10 ISR /////////////////////////////
258 /////////////////////////////////////////////////////////////////////////////
259
260 IGV10_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 ///////////////////////// IGV11 ISR /////////////////////////////
274 /////////////////////////////////////////////////////////////////////////////
275
276 IGV11_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 ///////////////////////// IGV12 ISR /////////////////////////////
290 /////////////////////////////////////////////////////////////////////////////
291
292 IGV12_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 ///////////////////////// IGV13 ISR /////////////////////////////
306 /////////////////////////////////////////////////////////////////////////////
307
308 IGV13_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 ///////////////////////// IGV14 ISR /////////////////////////////
322 /////////////////////////////////////////////////////////////////////////////
323
324 IGV14_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 ///////////////////////// IGV15 ISR /////////////////////////////
338 /////////////////////////////////////////////////////////////////////////////
339
340 IGV15_ISR :
341
342 P0 = 0x5 (Z);
343 P1 = 0xa (Z);
344
345 NOP;
346 NOP;
347 RTI;
348
349 .dw 0xFFFF
350 .dw 0xFFFF
351 .dw 0xFFFF
352 .dw 0xFFFF
353 .dw 0xFFFF
354 .dw 0xFFFF
355 .dw 0xFFFF
356
357 /////////////////////////////////////////////////////////////////////////////
358 ///////////////////////// USER CODE /////////////////////////////
359 /////////////////////////////////////////////////////////////////////////////
360
361
362 USER_CODE :
363
364 /////////////////////////////////////////////////////////////////////////////
365 // Loop 0 (Kill Lsetup in WB)
366 /////////////////////////////////////////////////////////////////////////////
367
368 EXCPT 0x5;
369 LSETUP ( L0T , L0T ) LC0 = P0;
370 L0T:R0 += 5;
371
372 EXCPT 0x5;
373 LSETUP ( L1T , L1B ) LC0 = P0;
374 L1T:R0 += 5;
375 L1B:R1 += 4;
376
377 EXCPT 0x5;
378 LSETUP ( L2T , L2B ) LC0 = P0;
379 L2T:R0 += 5;
380 R1 += 4;
381 L2B:R2 += 3;
382
383 EXCPT 0x5;
384 LSETUP ( L3T , L3B ) LC0 = P0;
385 L3T:R0 += 5;
386 R1 += 4;
387 R2 += 3;
388 L3B:R3 += 2;
389
390 EXCPT 0x5;
391 LSETUP ( L4T , L4B ) LC0 = P0;
392 L4T:R0 += 5;
393 R1 += 4;
394 R2 += 3;
395 R3 += 2;
396 L4B:R4 += 1;
397
398 /////////////////////////////////////////////////////////////////////////////
399 // Loop 1 (Kill Lsetup in WB)
400 /////////////////////////////////////////////////////////////////////////////
401
402 EXCPT 0x5;
403 LSETUP ( M0T , M0T ) LC1 = P0;
404 M0T:R0 += 5;
405
406 EXCPT 0x5;
407 LSETUP ( M1T , M1B ) LC1 = P0;
408 M1T:R0 += 5;
409 M1B:R1 += 4;
410
411 EXCPT 0x5;
412 LSETUP ( M2T , M2B ) LC1 = P0;
413 M2T:R0 += 5;
414 R1 += 4;
415 M2B:R2 += 3;
416
417 EXCPT 0x5;
418 LSETUP ( M3T , M3B ) LC1 = P0;
419 M3T:R0 += 5;
420 R1 += 4;
421 R2 += 3;
422 M3B:R3 += 2;
423
424 EXCPT 0x5;
425 LSETUP ( M4T , M4B ) LC1 = P0;
426 M4T:R0 += 5;
427 R1 += 4;
428 R2 += 3;
429 R3 += 2;
430 M4B:R4 += 1;
431
432 /////////////////////////////////////////////////////////////////////////////
433 // Loop 0 (Kill during the last iteration at each pipe stage)
434 /////////////////////////////////////////////////////////////////////////////
435
436 LSETUP ( N0T , N0B ) LC0 = P1;
437 NOP;
438 N0T:R0 = LC0;
439 CC = R0 == 1;
440 IF !CC JUMP N0B (BP);
441 R0 += 1;
442 R1 += 2;
443 EXCPT 0x5;
444 N0B:R2 += 3;
445
446 LSETUP ( N1T , N1B ) LC0 = P1;
447 NOP;
448 N1T:R0 = LC0;
449 R0 += 1;
450 R1 += 2;
451 CC = R0 == 1;
452 IF !CC JUMP N1B (BP);
453 EXCPT 0x5;
454 N1B:R2 += 3;
455
456 LSETUP ( N2T , N2B ) LC0 = P1;
457 NOP;
458 N2T:R0 = LC0;
459 CC = R0 == 1;
460 IF !CC JUMP N2B (BP);
461 R0 += 1;
462 R1 += 2;
463 EXCPT 0x5;
464 R3 += 4;
465 N2B:R2 += 3;
466
467 LSETUP ( N3T , N3B ) LC0 = P1;
468 NOP;
469 N3T:R0 = LC0;
470 R0 += 1;
471 R1 += 2;
472 CC = R0 == 1;
473 IF !CC JUMP N3B (BP);
474 EXCPT 0x5;
475 R3 += 4;
476 N3B:R2 += 3;
477
478 LSETUP ( N4T , N4B ) LC0 = P1;
479 NOP;
480 N4T:R0 = LC0;
481 CC = R0 == 1;
482 IF !CC JUMP N4B (BP);
483 R0 += 1;
484 R1 += 2;
485 EXCPT 0x5;
486 R3 += 4;
487 R4 += 5;
488 N4B:R2 += 3;
489
490 LSETUP ( N5T , N5B ) LC0 = P1;
491 NOP;
492 N5T:R0 = LC0;
493 R0 += 1;
494 R1 += 2;
495 CC = R0 == 1;
496 IF !CC JUMP N5B (BP);
497 EXCPT 0x5;
498 R3 += 4;
499 R4 += 5;
500 N5B:R2 += 3;
501
502 LSETUP ( N6T , N6B ) LC0 = P1;
503 NOP;
504 N6T:R0 = LC0;
505 CC = R0 == 1;
506 IF !CC JUMP N6B (BP);
507 R0 += 1;
508 R1 += 2;
509 EXCPT 0x5;
510 R3 += 4;
511 R4 += 5;
512 R5 += 6;
513 N6B:R2 += 3;
514
515 LSETUP ( N7T , N7B ) LC0 = P1;
516 NOP;
517 N7T:R0 = LC0;
518 R0 += 1;
519 R1 += 2;
520 CC = R0 == 1;
521 IF !CC JUMP N7B (BP);
522 EXCPT 0x5;
523 R3 += 4;
524 R4 += 5;
525 R5 += 6;
526 N7B:R2 += 3;
527
528 LSETUP ( N8T , N8B ) LC0 = P1;
529 NOP;
530 N8T:R0 = LC0;
531 CC = R0 == 1;
532 IF !CC JUMP N8B (BP);
533 R0 += 1;
534 R1 += 2;
535 EXCPT 0x5;
536 R3 += 4;
537 R4 += 5;
538 R5 += 6;
539 R6 += 7;
540 N8B:R2 += 3;
541
542 LSETUP ( N9T , N9B ) LC0 = P1;
543 NOP;
544 N9T:R0 = LC0;
545 R0 += 1;
546 R1 += 2;
547 CC = R0 == 1;
548 IF !CC JUMP N9B (BP);
549 EXCPT 0x5;
550 R3 += 4;
551 R4 += 5;
552 R5 += 6;
553 R6 += 7;
554 N9B:R2 += 3;
555
556 LSETUP ( NAT , NAB ) LC0 = P1;
557 NOP;
558 NAT:
559 R0 = LC0;
560 CC = R0 == 1;
561 IF !CC JUMP NAB (BP);
562 R0 += 1;
563 R1 += 2;
564 EXCPT 0x5;
565 R3 += 4;
566 R4 += 5;
567 R5 += 6;
568 R6 += 7;
569 R7 += 8;
570 NAB:
571 R2 += 3;
572
573 LSETUP ( NBT , NBB ) LC0 = P1;
574 NOP;
575 NBT:
576 R0 = LC0;
577 R0 += 1;
578 R1 += 2;
579 CC = R0 == 1;
580 IF !CC JUMP NBB (BP);
581 EXCPT 0x5;
582 R3 += 4;
583 R4 += 5;
584 R5 += 6;
585 R6 += 7;
586 R7 += 8;
587 NBB:
588 R2 += 3;
589
590
591 /////////////////////////////////////////////////////////////////////////////
592 // Loop 1 (Kill during the last iteration at each pipe stage)
593 /////////////////////////////////////////////////////////////////////////////
594
595 LSETUP ( O0T , O0B ) LC1 = P1;
596 NOP;
597 O0T:R0 = LC1;
598 CC = R0 == 1;
599 IF !CC JUMP O0B (BP);
600 R0 += 1;
601 R1 += 2;
602 EXCPT 0x5;
603 O0B:R2 += 3;
604
605 LSETUP ( O1T , O1B ) LC1 = P1;
606 NOP;
607 O1T:R0 = LC1;
608 R0 += 1;
609 R1 += 2;
610 CC = R0 == 1;
611 IF !CC JUMP O1B (BP);
612 EXCPT 0x5;
613 O1B:R2 += 3;
614
615 LSETUP ( O2T , O2B ) LC1 = P1;
616 NOP;
617 O2T:R0 = LC1;
618 CC = R0 == 1;
619 IF !CC JUMP O2B (BP);
620 R0 += 1;
621 R1 += 2;
622 EXCPT 0x5;
623 R3 += 4;
624 O2B:R2 += 3;
625
626 LSETUP ( O3T , O3B ) LC1 = P1;
627 NOP;
628 O3T:R0 = LC1;
629 R0 += 1;
630 R1 += 2;
631 CC = R0 == 1;
632 IF !CC JUMP O3B (BP);
633 EXCPT 0x5;
634 R3 += 4;
635 O3B:R2 += 3;
636
637 LSETUP ( O4T , O4B ) LC1 = P1;
638 NOP;
639 O4T:R0 = LC1;
640 CC = R0 == 1;
641 IF !CC JUMP O4B (BP);
642 R0 += 1;
643 R1 += 2;
644 EXCPT 0x5;
645 R3 += 4;
646 R4 += 5;
647 O4B:R2 += 3;
648
649 LSETUP ( O5T , O5B ) LC1 = P1;
650 NOP;
651 O5T:R0 = LC1;
652 R0 += 1;
653 R1 += 2;
654 CC = R0 == 1;
655 IF !CC JUMP O5B (BP);
656 EXCPT 0x5;
657 R3 += 4;
658 R4 += 5;
659 O5B:R2 += 3;
660
661 LSETUP ( O6T , O6B ) LC1 = P1;
662 NOP;
663 O6T:R0 = LC1;
664 CC = R0 == 1;
665 IF !CC JUMP O6B (BP);
666 R0 += 1;
667 R1 += 2;
668 EXCPT 0x5;
669 R3 += 4;
670 R4 += 5;
671 R5 += 6;
672 O6B:R2 += 3;
673
674 LSETUP ( O7T , O7B ) LC1 = P1;
675 NOP;
676 O7T:R0 = LC1;
677 R0 += 1;
678 R1 += 2;
679 CC = R0 == 1;
680 IF !CC JUMP O7B (BP);
681 EXCPT 0x5;
682 R3 += 4;
683 R4 += 5;
684 R5 += 6;
685 O7B:R2 += 3;
686
687 LSETUP ( O8T , O8B ) LC1 = P1;
688 NOP;
689 O8T:R0 = LC1;
690 CC = R0 == 1;
691 IF !CC JUMP O8B (BP);
692 R0 += 1;
693 R1 += 2;
694 EXCPT 0x5;
695 R3 += 4;
696 R4 += 5;
697 R5 += 6;
698 R6 += 7;
699 O8B:R2 += 3;
700
701 LSETUP ( O9T , O9B ) LC1 = P1;
702 NOP;
703 O9T:R0 = LC1;
704 R0 += 1;
705 R1 += 2;
706 CC = R0 == 1;
707 IF !CC JUMP O9B (BP);
708 EXCPT 0x5;
709 R3 += 4;
710 R4 += 5;
711 R5 += 6;
712 R6 += 7;
713 O9B:R2 += 3;
714
715 LSETUP ( OAT , OAB ) LC1 = P1;
716 NOP;
717 OAT:
718 R0 = LC1;
719 CC = R0 == 1;
720 IF !CC JUMP OAB (BP);
721 R0 += 1;
722 R1 += 2;
723 EXCPT 0x5;
724 R3 += 4;
725 R4 += 5;
726 R5 += 6;
727 R6 += 7;
728 R7 += 8;
729 OAB:
730 R2 += 3;
731
732 LSETUP ( OBT , OBB ) LC1 = P1;
733 NOP;
734 OBT:
735 R0 = LC1;
736 R0 += 1;
737 R1 += 2;
738 CC = R0 == 1;
739 IF !CC JUMP OBB (BP);
740 EXCPT 0x5;
741 R3 += 4;
742 R4 += 5;
743 R5 += 6;
744 R6 += 7;
745 R7 += 8;
746 OBB:
747 R2 += 3;
748
749 NOP;
750 NOP;
751 NOP;
752 dbg_pass; // Call Endtest Macro
753
754 /////////////////////////////////////////////////////////////////////////////
755 ///////////////////////// DATA MEMRORY /////////////////////////////
756 /////////////////////////////////////////////////////////////////////////////
757
758 .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
759 .dd 0xdeadbeef;
760 .section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
761 .dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
762 .dd 0x02020202;
763 .dd 0x03030303;
764 .dd 0x04040404;
765
766 // Define Kernal Stack
767 .data
768 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
769 KSTACK :
770
771 .space (STACKSIZE);
772 USTACK :
773
774 /////////////////////////////////////////////////////////////////////////////
775 ///////////////////////// END OF TEST /////////////////////////////
776 /////////////////////////////////////////////////////////////////////////////