Home | History | Annotate | Line # | Download | only in bfin
      1 //Original:/proj/frio/dv/testcases/seq/se_loop_kill/se_loop_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 
     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 LT0 = r0;
    369 LB0 = r1;
    370 EXCPT 0x5;      // Will kill mv2lc in EX3
    371 NOP;
    372 LC0 = P0;
    373 l0t:R3 += 3;
    374     R1 += 1;
    375     R4 += 4;
    376     R5 += 5;
    377     R6 += 6;
    378 l0b:R2 += 2;
    379 
    380 LD32_LABEL(r0, l2t);
    381 LD32_LABEL(r1, l2b);
    382 LT0 = r0;
    383 LB0 = r1;
    384 EXCPT 0x5;      // Will kill mv2lc in EX3 when stalled
    385 LC0 = [ SP ++ ];
    386 l2t:R3 += 3;
    387     R1 += 1;
    388     R4 += 4;
    389     R5 += 5;
    390     R6 += 6;
    391 l2b:R2 += 2;
    392 
    393 LD32_LABEL(r0, l1t);
    394 LD32_LABEL(r1, l1b);
    395 LT1 = r0;
    396 LB1 = r1;
    397 EXCPT 0x5;      // Will kill mv2lc in EX3 when stalled
    398 LC1 = [ SP ++ ];
    399 l1t:R3 += 3;
    400     R1 += 1;
    401     R4 += 4;
    402     R5 += 5;
    403     R6 += 6;
    404 l1b:R2 += 2;
    405 
    406 LD32_LABEL(r0, l3t);
    407 LD32_LABEL(r1, l3b);
    408 LT1 = r0;
    409 LB1 = r1;
    410 EXCPT 0x5;      // Will kill mv2lc in EX3
    411 NOP;
    412 LC1 = P0;
    413 l3t:R3 += 3;
    414     R1 += 1;
    415     R4 += 4;
    416     R5 += 5;
    417     R6 += 6;
    418 l3b:R2 += 2;
    419 
    420 EXCPT 0x6;      // Will kill Lsetup in EX2
    421 NOP;
    422 NOP;
    423 LSETUP ( l1e , l1e ) LC0 = P1;
    424 l1e:R7 += 1;
    425 
    426 EXCPT 0x6;      // Will kill Lsetup in EX2
    427 NOP;
    428 NOP;
    429 LSETUP ( m1e , m1e ) LC1 = P1;
    430 m1e:R7 += 1;
    431 
    432 EXCPT 0x6;      // Will kill Lsetup in EX1
    433 NOP;
    434 NOP;
    435 NOP;
    436 LSETUP ( l2e , l2e ) LC0 = P1;
    437 l2e:R7 += 1;
    438 
    439 EXCPT 0x6;      // Will kill Lsetup in EX1
    440 NOP;
    441 NOP;
    442 NOP;
    443 LSETUP ( m2e , m2e ) LC1 = P1;
    444 m2e:R7 += 1;
    445 
    446 NOP;
    447 NOP;
    448 NOP;
    449 
    450 EXCPT 0x6;      // Will kill Lsetup in EX2 when stalled
    451     R0 = [ P2 ++ ];
    452 LSETUP ( l3e , l3e ) LC0 = P1;
    453 l3e:R7 += 1;
    454 
    455 EXCPT 0x6;      // Will kill Lsetup in EX2 when stalled
    456     R0 = [ P2 ++ ];
    457 LSETUP ( m3e , m3e ) LC1 = P1;
    458 m3e:R7 += 1;
    459 
    460 EXCPT 0x6;      // Will kill Lsetup in EX1 when stalled
    461     R0 = [ P2 ++ ];
    462 NOP;
    463 LSETUP ( l4e , l4e ) LC0 = P1;
    464 l4e:R7 += 1;
    465 
    466 EXCPT 0x6;      // Will kill Lsetup in EX1 when stalled
    467     R0 = [ P2 ++ ];
    468 NOP;
    469 LSETUP ( m4e , m4e ) LC1 = P1;
    470 m4e:R7 += 1;
    471 
    472 NOP;
    473 NOP;
    474 RTI;
    475 
    476 .dw 0xFFFF
    477 .dw 0xFFFF
    478 .dw 0xFFFF
    479 .dw 0xFFFF
    480 .dw 0xFFFF
    481 .dw 0xFFFF
    482 .dw 0xFFFF
    483 
    484 /////////////////////////////////////////////////////////////////////////////
    485 ///////////////////////// USER CODE             /////////////////////////////
    486 /////////////////////////////////////////////////////////////////////////////
    487 
    488 
    489  USER_CODE :
    490 
    491 NOP;
    492 NOP;
    493 NOP;
    494 NOP;
    495 dbg_pass;        // Call Endtest Macro
    496 
    497 /////////////////////////////////////////////////////////////////////////////
    498 ///////////////////////// DATA MEMRORY          /////////////////////////////
    499 /////////////////////////////////////////////////////////////////////////////
    500 
    501 .section MEM_0x00F00100,"aw"
    502 .dd 0xdeadbeef;
    503 .section MEM_0x00F00200,"aw"
    504 .dd 0x01010101;
    505 .dd 0x02020202;
    506 .dd 0x03030303;
    507 .dd 0x04040404;
    508 
    509 // Define Kernal Stack
    510 .section MEM_0x00F00210,"aw"
    511     .space (STACKSIZE);
    512      KSTACK :
    513 
    514     .space (STACKSIZE);
    515      USTACK :
    516 
    517 /////////////////////////////////////////////////////////////////////////////
    518 ///////////////////////// END OF TEST           /////////////////////////////
    519 /////////////////////////////////////////////////////////////////////////////
    520