Home | History | Annotate | Line # | Download | only in bfin
      1 //Original:/proj/frio/dv/testcases/seq/se_loop_lr/se_loop_lr.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 = 0x3 (Z);
    344 
    345 
    346 LD32_LABEL(r0, l1e);
    347 LSETUP ( l1e , l1e ) LC0 = P1;
    348 l1s:LT0 = R0;
    349 l1e:[ -- SP ] = R7;
    350 
    351 
    352 LD32_LABEL(r0, ls1);
    353 LSETUP ( l2s , l2e ) LC0 = P0;
    354 l2s:LB0 = R0;
    355 ls1:R6 += 2;
    356 l2e:[ -- SP ] = ( R7:5 );
    357 
    358 
    359 LD32_LABEL(r0, ls2);
    360 LD32_LABEL(r1, ls3);
    361 LSETUP ( l3s , l3e ) LC0 = P0;
    362 l3s:LT0 = R0;
    363 ls2:LB0 = R1;
    364 ls3:R7 += 3;
    365 l3e:[ -- SP ] = ( R7:5 );
    366 
    367 
    368 LD32_LABEL(r0, ls4);
    369 LD32_LABEL(r1, ls5);
    370 LSETUP ( l4s , l4e ) LC0 = P0;
    371 l4s:LT0 = R0;
    372 LB0 = r1;
    373 ls4:R7 += 3;
    374 ls5:R4 += 4;
    375 l4e:[ -- SP ] = ( R7:4 );
    376 
    377 LD32_LABEL(r0, ls6);
    378 LD32_LABEL(r1, ls7);
    379 LSETUP ( l5s , l5e ) LC0 = P0;
    380 l5s:LB0 = R1;
    381 LT0 = r0;
    382 ls6:R7 += 3;
    383     R4 += 4;
    384     R5 += 3;
    385 ls7:R6 += 3;
    386 l5e:[ -- SP ] = ( R7:4 );
    387 
    388 LD32_LABEL(r0, ls8);
    389 LD32_LABEL(r1, ls9);
    390 LSETUP ( l6s , l6e ) LC0 = P0;
    391 l6s:R5 += 1;
    392 LB0 = r1;
    393 LT0 = r0;
    394 ls8:R7 += 3;
    395     R4 += 4;
    396     R5 += 3;
    397     R7 += 5;
    398 ls9:R7 += 5;
    399 l6e:[ -- SP ] = ( R7:4 );
    400 
    401 
    402 NOP;
    403 NOP;
    404 
    405 LD32_LABEL(r0, m1e);
    406 LSETUP ( m1e , m1e ) LC1 = P1;
    407 m1s:LT0 = R0;
    408 m1e:[ -- SP ] = R7;
    409 
    410 
    411 LD32_LABEL(r0, ms1);
    412 LSETUP ( m2s , m2e ) LC1 = P0;
    413 m2s:LB0 = R0;
    414 ms1:R6 += 2;
    415 m2e:[ -- SP ] = ( R7:5 );
    416 
    417 
    418 LD32_LABEL(r0, ms2);
    419 LD32_LABEL(r1, ms3);
    420 LSETUP ( m3s , m3e ) LC1 = P0;
    421 m3s:LT0 = R0;
    422 ms2:LB0 = R1;
    423 ms3:R7 += 3;
    424 m3e:[ -- SP ] = ( R7:5 );
    425 
    426 
    427 LD32_LABEL(r0, ms4);
    428 LD32_LABEL(r1, ms5);
    429 LSETUP ( m4s , m4e ) LC1 = P0;
    430 m4s:LT0 = R0;
    431 LB0 = r1;
    432 ms4:R7 += 3;
    433 ms5:R4 += 4;
    434 m4e:[ -- SP ] = ( R7:4 );
    435 
    436 LD32_LABEL(r0, ms6);
    437 LD32_LABEL(r1, ms7);
    438 LSETUP ( m5s , m5e ) LC1 = P0;
    439 m5s:LB0 = R1;
    440 LT0 = r0;
    441 ms6:R7 += 3;
    442     R4 += 4;
    443     R5 += 3;
    444 ms7:R6 += 3;
    445 m5e:[ -- SP ] = ( R7:4 );
    446 
    447 LD32_LABEL(r0, ms8);
    448 LD32_LABEL(r1, ms9);
    449 LSETUP ( m6s , m6e ) LC1 = P0;
    450 m6s:R5 += 1;
    451 LB0 = r1;
    452 LT0 = r0;
    453 ms8:R7 += 3;
    454     R4 += 4;
    455     R5 += 3;
    456     R7 += 5;
    457 ms9:R7 += 5;
    458 m6e:[ -- SP ] = ( R7:4 );
    459 
    460 NOP;
    461 NOP;
    462 RTI;
    463 
    464 .dw 0xFFFF
    465 .dw 0xFFFF
    466 .dw 0xFFFF
    467 .dw 0xFFFF
    468 .dw 0xFFFF
    469 .dw 0xFFFF
    470 .dw 0xFFFF
    471 
    472 /////////////////////////////////////////////////////////////////////////////
    473 ///////////////////////// USER CODE             /////////////////////////////
    474 /////////////////////////////////////////////////////////////////////////////
    475 
    476 
    477  USER_CODE :
    478 
    479 NOP;
    480 NOP;
    481 NOP;
    482 NOP;
    483 dbg_pass;        // Call Endtest Macro
    484 
    485 /////////////////////////////////////////////////////////////////////////////
    486 ///////////////////////// DATA MEMORY          /////////////////////////////
    487 /////////////////////////////////////////////////////////////////////////////
    488 
    489 .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
    490 .dd 0xdeadbeef;
    491 .section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
    492 .dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
    493 .dd 0x02020202;
    494 .dd 0x03030303;
    495 .dd 0x04040404;
    496 
    497 // Define Kernal Stack
    498 .data
    499     .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
    500      KSTACK :
    501 
    502     .space (STACKSIZE);
    503      USTACK :
    504 
    505 /////////////////////////////////////////////////////////////////////////////
    506 ///////////////////////// END OF TEST           /////////////////////////////
    507 /////////////////////////////////////////////////////////////////////////////
    508