1 //Original:/proj/frio/dv/testcases/seq/se_loop_kill_dcr_01/se_loop_kill_dcr_01.dsp
3 # sim: --environment operating
6 .include "testutils.inc"
9 /////////////////////////////////////////////////////////////////////////////
10 ///////////////////////// Include Files /////////////////////////////
11 /////////////////////////////////////////////////////////////////////////////
14 include(selfcheck.inc)
18 /////////////////////////////////////////////////////////////////////////////
19 ///////////////////////// Defines /////////////////////////////
20 /////////////////////////////////////////////////////////////////////////////
22 #ifndef USER_CODE_SPACE
23 #define USER_CODE_SPACE CODE_ADDR_1 //
26 #define STACKSIZE 0x00000010
29 #define ITABLE CODE_ADDR_2 //
32 /////////////////////////////////////////////////////////////////////////////
33 ///////////////////////// RESET ISR /////////////////////////////
34 /////////////////////////////////////////////////////////////////////////////
44 // Initialize ILBM Registers
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);
55 LD32_LABEL(sp, USTACK);
59 LD32_LABEL(sp, KSTACK);
61 // Setup Frame Pointer
64 // Setup Event Vector Table
67 LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0)
69 LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1)
71 LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2)
73 LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3)
75 [ P0 ++ ] = R0; // IVT4 not used
76 LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5)
78 LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6)
80 LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler
82 LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler
84 LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler
86 LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler
88 LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler
90 LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler
92 LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler
94 LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler
96 LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler
99 // Setup the EVT_OVERRIDE MMR
101 LD32(p0, EVT_OVERRIDE);
104 // Setup Interrupt Mask
109 // Return to Supervisor Code
113 LD32_LABEL(r0, USER_CODE);
125 /////////////////////////////////////////////////////////////////////////////
128 /////////////////////////////////////////////////////////////////////////////
129 ///////////////////////// EMU ISR /////////////////////////////
130 /////////////////////////////////////////////////////////////////////////////
144 /////////////////////////////////////////////////////////////////////////////
145 ///////////////////////// NMI ISR /////////////////////////////
146 /////////////////////////////////////////////////////////////////////////////
160 /////////////////////////////////////////////////////////////////////////////
161 ///////////////////////// EXC ISR /////////////////////////////
162 /////////////////////////////////////////////////////////////////////////////
176 /////////////////////////////////////////////////////////////////////////////
177 ///////////////////////// HWE ISR /////////////////////////////
178 /////////////////////////////////////////////////////////////////////////////
192 /////////////////////////////////////////////////////////////////////////////
193 ///////////////////////// TMR ISR /////////////////////////////
194 /////////////////////////////////////////////////////////////////////////////
208 /////////////////////////////////////////////////////////////////////////////
209 ///////////////////////// IGV7 ISR /////////////////////////////
210 /////////////////////////////////////////////////////////////////////////////
224 /////////////////////////////////////////////////////////////////////////////
225 ///////////////////////// IGV8 ISR /////////////////////////////
226 /////////////////////////////////////////////////////////////////////////////
240 /////////////////////////////////////////////////////////////////////////////
241 ///////////////////////// IGV9 ISR /////////////////////////////
242 /////////////////////////////////////////////////////////////////////////////
256 /////////////////////////////////////////////////////////////////////////////
257 ///////////////////////// IGV10 ISR /////////////////////////////
258 /////////////////////////////////////////////////////////////////////////////
272 /////////////////////////////////////////////////////////////////////////////
273 ///////////////////////// IGV11 ISR /////////////////////////////
274 /////////////////////////////////////////////////////////////////////////////
288 /////////////////////////////////////////////////////////////////////////////
289 ///////////////////////// IGV12 ISR /////////////////////////////
290 /////////////////////////////////////////////////////////////////////////////
304 /////////////////////////////////////////////////////////////////////////////
305 ///////////////////////// IGV13 ISR /////////////////////////////
306 /////////////////////////////////////////////////////////////////////////////
320 /////////////////////////////////////////////////////////////////////////////
321 ///////////////////////// IGV14 ISR /////////////////////////////
322 /////////////////////////////////////////////////////////////////////////////
336 /////////////////////////////////////////////////////////////////////////////
337 ///////////////////////// IGV15 ISR /////////////////////////////
338 /////////////////////////////////////////////////////////////////////////////
348 /////////////////////////////////////////////////////////////////////////////
349 // Loop 0 (with Kill WB)
350 /////////////////////////////////////////////////////////////////////////////
352 // Kill Valid Dcr in WB
353 LSETUP ( L0T , L0T ) LC0 = P0;
357 // Kill Valid Dcr in EX3
358 LSETUP ( L1T , L1B ) LC0 = P0;
363 // Kill Valid Dcr in EX2
364 LSETUP ( L2T , L2B ) LC0 = P0;
370 // Kill Valid Dcr in EX1
371 LSETUP ( L3T , L3B ) LC0 = P0;
378 // Kill Valid Dcr in AC
379 LSETUP ( L4T , L4B ) LC0 = P0;
387 // Kill Valid Dcr in WB, EX3
388 LSETUP ( L5T , L5T ) LC0 = P1;
392 // Kill Valid Dcr in EX3, EX2
393 LSETUP ( L6T , L6T ) LC0 = P1;
398 // Kill Valid Dcr in EX2, EX1
399 LSETUP ( L7T , L7T ) LC0 = P1;
405 // Kill Valid Dcr in EX1, AC
406 LSETUP ( L8T , L8T ) LC0 = P1;
413 // Kill Valid Dcr in WB, EX3, EX2
414 LSETUP ( L9T , L9T ) LC0 = P2;
418 // Kill Valid Dcr in EX3, EX2, EX1
419 LSETUP ( LAT , LAT ) LC0 = P2;
425 // Kill Valid Dcr in EX2, EX1, AC
426 LSETUP ( LBT , LBT ) LC0 = P2;
433 // Kill Valid Dcr in WB, EX3, EX2, EX1
434 LSETUP ( LCT , LCT ) LC0 = P3;
439 // Kill Valid Dcr in EX3, EX2, EX1, AC
440 LSETUP ( LDT , LDT ) LC0 = P3;
446 // Kill Valid Dcr in WB, EX3, EX2, EX1, AC
447 LSETUP ( LET , LET ) LC0 = P4;
452 // Kill Valid Dcr in WB, EX2
453 LSETUP ( LFT , LFB ) LC0 = P1;
459 // Kill Valid Dcr in WB, EX1
460 LSETUP ( LGT , LGB ) LC0 = P1;
467 // Kill Valid Dcr in WB, AC
468 LSETUP ( LHT , LHB ) LC0 = P1;
476 // Kill Valid Dcr in EX3, EX1
477 LSETUP ( LIT , LIB ) LC0 = P1;
484 // Kill Valid Dcr in EX3, AC
485 LSETUP ( LJT , LJB ) LC0 = P1;
492 // Kill Valid Dcr in EX2, AC
493 LSETUP ( LKT , LKB ) LC0 = P1;
501 // Kill Valid Dcr in WB, EX2, AC
502 LSETUP ( LLT , LLB ) LC0 = P2;
509 /////////////////////////////////////////////////////////////////////////////
510 // Loop 1 (with Kill WB)
511 /////////////////////////////////////////////////////////////////////////////
513 // Kill Valid Dcr in WB
514 LSETUP ( M0T , M0T ) LC1 = P0;
518 // Kill Valid Dcr in EX3
519 LSETUP ( M1T , M1B ) LC1 = P0;
524 // Kill Valid Dcr in EX2
525 LSETUP ( M2T , M2B ) LC1 = P0;
531 // Kill Valid Dcr in EX1
532 LSETUP ( M3T , M3B ) LC1 = P0;
539 // Kill Valid Dcr in AC
540 LSETUP ( M4T , M4B ) LC1 = P0;
548 // Kill Valid Dcr in WB, EX3
549 LSETUP ( M5T , M5T ) LC1 = P1;
553 // Kill Valid Dcr in EX3, EX2
554 LSETUP ( M6T , M6T ) LC1 = P1;
559 // Kill Valid Dcr in EX2, EX1
560 LSETUP ( M7T , M7T ) LC1 = P1;
566 // Kill Valid Dcr in EX1, AC
567 LSETUP ( M8T , M8T ) LC1 = P1;
574 // Kill Valid Dcr in WB, EX3, EX2
575 LSETUP ( M9T , M9T ) LC1 = P2;
579 // Kill Valid Dcr in EX3, EX2, EX1
580 LSETUP ( MAT , MAT ) LC1 = P2;
586 // Kill Valid Dcr in EX2, EX1, AC
587 LSETUP ( MBT , MBT ) LC1 = P2;
594 // Kill Valid Dcr in WB, EX3, EX2, EX1
595 LSETUP ( MCT , MCT ) LC1 = P3;
600 // Kill Valid Dcr in EX3, EX2, EX1, AC
601 LSETUP ( MDT , MDT ) LC1 = P3;
607 // Kill Valid Dcr in WB, EX3, EX2, EX1, AC
608 LSETUP ( MET , MET ) LC1 = P4;
613 // Kill Valid Dcr in WB, EX2
614 LSETUP ( MFT , MFB ) LC1 = P1;
620 // Kill Valid Dcr in WB, EX1
621 LSETUP ( MGT , MGB ) LC1 = P1;
628 // Kill Valid Dcr in WB, AC
629 LSETUP ( MHT , MHB ) LC1 = P1;
637 // Kill Valid Dcr in EX3, EX1
638 LSETUP ( MIT , MIB ) LC1 = P1;
645 // Kill Valid Dcr in EX3, AC
646 LSETUP ( MJT , MJB ) LC1 = P1;
653 // Kill Valid Dcr in EX2, AC
654 LSETUP ( MKT , MKB ) LC1 = P1;
662 // Kill Valid Dcr in WB, EX2, AC
663 LSETUP ( MLT , MLB ) LC1 = P2;
669 /////////////////////////////////////////////////////////////////////////////
670 // Loop 0 (with Kill EX3)
671 /////////////////////////////////////////////////////////////////////////////
676 // Kill %Valid Dcr in EX3
677 LSETUP ( N1T , N1T ) LC0 = P0;
681 // Kill Valid Dcr in EX2
682 LSETUP ( N2T , N2B ) LC0 = P0;
687 // Kill Valid Dcr in EX1
688 LSETUP ( N3T , N3B ) LC0 = P0;
694 // Kill Valid Dcr in AC
695 LSETUP ( N4T , N4B ) LC0 = P0;
702 // Kill Valid Dcr in EX3, EX2
703 LSETUP ( N6T , N6T ) LC0 = P1;
707 // Kill Valid Dcr in EX2, EX1
708 LSETUP ( N7T , N7T ) LC0 = P1;
713 // Kill Valid Dcr in EX1, AC
714 LSETUP ( N8T , N8T ) LC0 = P1;
720 // Kill Valid Dcr in EX3, EX2, EX1
721 LSETUP ( NAT , NAT ) LC0 = P2;
726 // Kill Valid Dcr in EX2, EX1, AC
727 LSETUP ( NBT , NBT ) LC0 = P2;
733 // Kill Valid Dcr in EX3, EX2, EX1, AC
734 LSETUP ( NDT , NDT ) LC0 = P3;
739 // Kill Valid Dcr in EX3, EX1
740 LSETUP ( NIT , NIB ) LC0 = P1;
746 // Kill Valid Dcr in EX3, AC
747 LSETUP ( NJT , NJB ) LC0 = P1;
754 // Kill Valid Dcr in EX2, AC
755 LSETUP ( NKT , NKB ) LC0 = P1;
762 /////////////////////////////////////////////////////////////////////////////
763 // Loop 1 (with Kill EX3)
764 /////////////////////////////////////////////////////////////////////////////
766 // Kill %Valid Dcr in EX3
767 LSETUP ( O1T , O1T ) LC1 = P0;
771 // Kill Valid Dcr in EX2
772 LSETUP ( O2T , O2B ) LC1 = P0;
777 // Kill Valid Dcr in EX1
778 LSETUP ( O3T , O3B ) LC1 = P0;
784 // Kill Valid Dcr in AC
785 LSETUP ( O4T , O4B ) LC1 = P0;
792 // Kill Valid Dcr in EX3, EX2
793 LSETUP ( O6T , O6T ) LC1 = P1;
797 // Kill Valid Dcr in EX2, EX1
798 LSETUP ( O7T , O7T ) LC1 = P1;
803 // Kill Valid Dcr in EX1, AC
804 LSETUP ( O8T , O8T ) LC1 = P1;
810 // Kill Valid Dcr in EX3, EX2, EX1
811 LSETUP ( OAT , OAT ) LC1 = P2;
816 // Kill Valid Dcr in EX2, EX1, AC
817 LSETUP ( OBT , OBT ) LC1 = P2;
823 // Kill Valid Dcr in EX3, EX2, EX1, AC
824 LSETUP ( ODT , ODT ) LC1 = P3;
829 // Kill Valid Dcr in EX3, EX1
830 LSETUP ( OIT , OIB ) LC1 = P1;
836 // Kill Valid Dcr in EX3, AC
837 LSETUP ( OJT , OJB ) LC1 = P1;
844 // Kill Valid Dcr in EX2, AC
845 LSETUP ( OKT , OKB ) LC1 = P1;
852 /////////////////////////////////////////////////////////////////////////////
853 // Loop 0 (with Kill AC)
854 /////////////////////////////////////////////////////////////////////////////
856 // Kill Valid Dcr in AC
857 LSETUP ( P4T , P4T ) LC0 = P0;
861 /////////////////////////////////////////////////////////////////////////////
862 // Loop 1 (with Kill AC)
863 /////////////////////////////////////////////////////////////////////////////
865 // Kill Valid Dcr in AC
866 LSETUP ( Q4T , Q4T ) LC1 = P0;
882 /////////////////////////////////////////////////////////////////////////////
883 ///////////////////////// USER CODE /////////////////////////////
884 /////////////////////////////////////////////////////////////////////////////
893 dbg_pass; // Call Endtest Macro
895 /////////////////////////////////////////////////////////////////////////////
896 ///////////////////////// DATA MEMRORY /////////////////////////////
897 /////////////////////////////////////////////////////////////////////////////
899 .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
901 .section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
902 .dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
907 // Define Kernal Stack
909 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
915 /////////////////////////////////////////////////////////////////////////////
916 ///////////////////////// END OF TEST /////////////////////////////
917 /////////////////////////////////////////////////////////////////////////////