Home | History | Annotate | Line # | Download | only in bfin
se_oneins_zoff.S revision 1.1
      1 //Original:/proj/frio/dv/testcases/seq/se_oneins_zoff/se_oneins_zoff.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 RTI;
    359 
    360 .dw 0xFFFF
    361 .dw 0xFFFF
    362 .dw 0xFFFF
    363 .dw 0xFFFF
    364 .dw 0xFFFF
    365 .dw 0xFFFF
    366 .dw 0xFFFF
    367 
    368 /////////////////////////////////////////////////////////////////////////////
    369 ///////////////////////// USER CODE             /////////////////////////////
    370 /////////////////////////////////////////////////////////////////////////////
    371 
    372 
    373  USER_CODE :
    374 
    375     P0 = 0x5 (Z);
    376     P1 = 0xa (Z);
    377 
    378     P2 = 0x0100 (Z);
    379     P2.H = 0x00f0;
    380 
    381 /////////////////////////////////////////////////////////////////////////////
    382 // Loop 0 (One instruction Zero-offset)
    383 /////////////////////////////////////////////////////////////////////////////
    384 
    385     R0 = [ P2 ++ ];
    386 LSETUP ( L0T , L0T ) LC0 = P0;
    387 L0T:R0 += 5;
    388 
    389     R1 = [ P2 ++ ];
    390 NOP;
    391 LSETUP ( L1T , L1T ) LC0 = P0;
    392 L1T:R1 += 5;
    393 
    394     R2 = [ P2 ++ ];
    395 NOP;
    396 NOP;
    397 LSETUP ( L2T , L2T ) LC0 = P0;
    398 L2T:R2 += 5;
    399 
    400     R3 = [ P2 ++ ];
    401 NOP;
    402 NOP;
    403 NOP;
    404 LSETUP ( L3T , L3T ) LC0 = P0;
    405 L3T:R3 += 5;
    406 
    407     R4 = [ P2 ++ ];
    408 NOP;
    409 NOP;
    410 NOP;
    411 NOP;
    412 LSETUP ( L4T , L4T ) LC0 = P0;
    413 L4T:R4 += 5;
    414 
    415 
    416 /////////////////////////////////////////////////////////////////////////////
    417 // Loop 1 (One instruction Zero-offset)
    418 /////////////////////////////////////////////////////////////////////////////
    419 
    420     R0 = [ P2 ++ ];
    421 LSETUP ( M0T , M0T ) LC1 = P0;
    422 M0T:R0 += 5;
    423 
    424     R1 = [ P2 ++ ];
    425 NOP;
    426 LSETUP ( M1T , M1T ) LC1 = P0;
    427 M1T:R1 += 5;
    428 
    429     R2 = [ P2 ++ ];
    430 NOP;
    431 NOP;
    432 LSETUP ( M2T , M2T ) LC1 = P0;
    433 M2T:R2 += 5;
    434 
    435     R3 = [ P2 ++ ];
    436 NOP;
    437 NOP;
    438 NOP;
    439 LSETUP ( M3T , M3T ) LC1 = P0;
    440 M3T:R3 += 5;
    441 
    442     R4 = [ P2 ++ ];
    443 NOP;
    444 NOP;
    445 NOP;
    446 NOP;
    447 LSETUP ( M4T , M4T ) LC1 = P0;
    448 M4T:R4 += 5;
    449 
    450 
    451 NOP;
    452 NOP;
    453 NOP;
    454 dbg_pass;        // Call Endtest Macro
    455 
    456 /////////////////////////////////////////////////////////////////////////////
    457 ///////////////////////// DATA MEMRORY          /////////////////////////////
    458 /////////////////////////////////////////////////////////////////////////////
    459 
    460 .section MEM_0x00F00100,"aw"
    461 .dd 0x01010101;
    462 .dd 0x02020202;
    463 .dd 0x03030303;
    464 .dd 0x04040404;
    465 .dd 0x05050505;
    466 .dd 0x06060606;
    467 .dd 0x07070707;
    468 .dd 0x08080808;
    469 .dd 0x09090909;
    470 .dd 0x0a0a0a0a;
    471 .dd 0x0b0b0b0b;
    472 .dd 0x0c0c0c0c;
    473 .dd 0x0d0d0d0d;
    474 .dd 0x0e0e0e0e;
    475 .dd 0x0f0f0f0f;
    476 
    477 // Define Kernal Stack
    478 .section MEM_0x00F00210,"aw"
    479     .space (STACKSIZE);
    480      KSTACK :
    481 
    482     .space (STACKSIZE);
    483      USTACK :
    484 
    485 /////////////////////////////////////////////////////////////////////////////
    486 ///////////////////////// END OF TEST           /////////////////////////////
    487 /////////////////////////////////////////////////////////////////////////////
    488