Home | History | Annotate | Line # | Download | only in bfin
      1 //Original:/proj/frio/dv/testcases/seq/se_loop_ppm/se_loop_ppm.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 
    344 LSETUP ( l0s , l0s ) LC0 = P0;
    345 l0s:[ -- SP ] = ( R7:5 );
    346 
    347 LSETUP ( l1s , l1e ) LC0 = P0;
    348 l1s:R5 += 1;
    349 l1e:[ -- SP ] = ( R7:5 );
    350 
    351 LSETUP ( l2s , l2e ) LC0 = P0;
    352 l2s:R5 += 1;
    353     R6 += 2;
    354 l2e:[ -- SP ] = ( R7:5 );
    355 
    356 LSETUP ( l3s , l3e ) LC0 = P0;
    357 l3s:R5 += 1;
    358     R6 += 2;
    359     R7 += 3;
    360 l3e:[ -- SP ] = ( R7:5 );
    361 
    362 LSETUP ( l4s , l4e ) LC0 = P0;
    363 l4s:R5 += 1;
    364     R6 += 2;
    365     R7 += 3;
    366     R4 += 4;
    367 l4e:[ -- SP ] = ( R7:4 );
    368 
    369 LSETUP ( l5s , l5e ) LC0 = P0;
    370 l5s:R5 += 1;
    371     R6 += 2;
    372     R7 += 3;
    373     R4 += 4;
    374     R5 += 3;
    375 l5e:[ -- SP ] = ( R7:4 );
    376 
    377 LSETUP ( l6s , l6e ) LC1 = P0;
    378 l6s:R5 += 1;
    379     R6 += 2;
    380     R7 += 3;
    381     R4 += 4;
    382     R5 += 3;
    383     R7 += 5;
    384 l6e:[ -- SP ] = ( R7:4 );
    385 
    386 NOP;
    387 
    388 LSETUP ( m0s , m0s ) LC1 = P0;
    389 m0s:[ -- SP ] = ( R7:5 );
    390 
    391 LSETUP ( m1s , m1e ) LC1 = P0;
    392 m1s:R5 += 1;
    393 m1e:[ -- SP ] = ( R7:5 );
    394 
    395 LSETUP ( m2s , m2e ) LC1 = P0;
    396 m2s:R5 += 1;
    397     R6 += 2;
    398 m2e:[ -- SP ] = ( R7:5 );
    399 
    400 LSETUP ( m3s , m3e ) LC1 = P0;
    401 m3s:R5 += 1;
    402     R6 += 2;
    403     R7 += 3;
    404 m3e:[ -- SP ] = ( R7:5 );
    405 
    406 LSETUP ( m4s , m4e ) LC1 = P0;
    407 m4s:R5 += 1;
    408     R6 += 2;
    409     R7 += 3;
    410     R4 += 4;
    411 m4e:[ -- SP ] = ( R7:4 );
    412 
    413 LSETUP ( m5s , m5e ) LC1 = P0;
    414 m5s:R5 += 1;
    415     R6 += 2;
    416     R7 += 3;
    417     R4 += 4;
    418     R5 += 3;
    419 m5e:[ -- SP ] = ( R7:4 );
    420 
    421 LSETUP ( m6s , m6e ) LC1 = P0;
    422 m6s:R5 += 1;
    423     R6 += 2;
    424     R7 += 3;
    425     R4 += 4;
    426     R5 += 3;
    427     R7 += 5;
    428 m6e:[ -- SP ] = ( R7:4 );
    429 
    430 NOP;
    431 NOP;
    432 RTI;
    433 
    434 .dw 0xFFFF
    435 .dw 0xFFFF
    436 .dw 0xFFFF
    437 .dw 0xFFFF
    438 .dw 0xFFFF
    439 .dw 0xFFFF
    440 .dw 0xFFFF
    441 
    442 /////////////////////////////////////////////////////////////////////////////
    443 ///////////////////////// USER CODE             /////////////////////////////
    444 /////////////////////////////////////////////////////////////////////////////
    445 
    446 
    447  USER_CODE :
    448 
    449 NOP;
    450 NOP;
    451 NOP;
    452 NOP;
    453 dbg_pass;        // Call Endtest Macro
    454 
    455 /////////////////////////////////////////////////////////////////////////////
    456 ///////////////////////// DATA MEMRORY          /////////////////////////////
    457 /////////////////////////////////////////////////////////////////////////////
    458 
    459 .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw"
    460 .dd 0xdeadbeef;
    461 .section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw"
    462 .dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
    463 .dd 0x02020202;
    464 .dd 0x03030303;
    465 .dd 0x04040404;
    466 
    467 // Define Kernal Stack
    468 .data
    469     .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >>
    470      KSTACK :
    471 
    472     .space (STACKSIZE);
    473      USTACK :
    474 
    475 /////////////////////////////////////////////////////////////////////////////
    476 ///////////////////////// END OF TEST           /////////////////////////////
    477 /////////////////////////////////////////////////////////////////////////////
    478