1 1.1 christos //Original:/proj/frio/dv/testcases/seq/se_mv2lp/se_mv2lp.dsp 2 1.1 christos # mach: bfin 3 1.1 christos # sim: --environment operating 4 1.1 christos 5 1.1 christos #include "test.h" 6 1.1 christos .include "testutils.inc" 7 1.1 christos start 8 1.1 christos 9 1.1 christos ///////////////////////////////////////////////////////////////////////////// 10 1.1 christos ///////////////////////// Include Files ///////////////////////////// 11 1.1 christos ///////////////////////////////////////////////////////////////////////////// 12 1.1 christos 13 1.1 christos include(std.inc) 14 1.1 christos include(selfcheck.inc) 15 1.1 christos include(symtable.inc) 16 1.1 christos include(mmrs.inc) 17 1.1 christos 18 1.1 christos ///////////////////////////////////////////////////////////////////////////// 19 1.1 christos ///////////////////////// Defines ///////////////////////////// 20 1.1 christos ///////////////////////////////////////////////////////////////////////////// 21 1.1 christos 22 1.1 christos #ifndef USER_CODE_SPACE 23 1.1 christos #define USER_CODE_SPACE CODE_ADDR_1 // 24 1.1 christos #endif 25 1.1 christos #ifndef STACKSIZE 26 1.1 christos #define STACKSIZE 0x00000010 27 1.1 christos #endif 28 1.1 christos #ifndef ITABLE 29 1.1 christos #define ITABLE CODE_ADDR_1 // 30 1.1 christos #endif 31 1.1 christos 32 1.1 christos ///////////////////////////////////////////////////////////////////////////// 33 1.1 christos ///////////////////////// RESET ISR ///////////////////////////// 34 1.1 christos ///////////////////////////////////////////////////////////////////////////// 35 1.1 christos 36 1.1 christos RST_ISR : 37 1.1 christos 38 1.1 christos // Initialize Dregs 39 1.1 christos INIT_R_REGS(0); 40 1.1 christos 41 1.1 christos // Initialize Pregs 42 1.1 christos INIT_P_REGS(0); 43 1.1 christos 44 1.1 christos // Initialize ILBM Registers 45 1.1 christos INIT_I_REGS(0); 46 1.1 christos INIT_M_REGS(0); 47 1.1 christos INIT_L_REGS(0); 48 1.1 christos INIT_B_REGS(0); 49 1.1 christos 50 1.1 christos // Initialize the Address of the Checkreg data segment 51 1.1 christos // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 52 1.1 christos CHECK_INIT_DEF(p5); //CHECK_INIT(p5, 0x00BFFFFC); 53 1.1 christos 54 1.1 christos // Setup User Stack 55 1.1 christos LD32_LABEL(sp, USTACK); 56 1.1 christos USP = SP; 57 1.1 christos 58 1.1 christos // Setup Kernel Stack 59 1.1 christos LD32_LABEL(sp, KSTACK); 60 1.1 christos 61 1.1 christos // Setup Frame Pointer 62 1.1 christos FP = SP; 63 1.1 christos 64 1.1 christos // Setup Event Vector Table 65 1.1 christos LD32(p0, EVT0); 66 1.1 christos 67 1.1 christos LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 68 1.1 christos [ P0 ++ ] = R0; 69 1.1 christos LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 70 1.1 christos [ P0 ++ ] = R0; 71 1.1 christos LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 72 1.1 christos [ P0 ++ ] = R0; 73 1.1 christos LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 74 1.1 christos [ P0 ++ ] = R0; 75 1.1 christos [ P0 ++ ] = R0; // IVT4 not used 76 1.1 christos LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 77 1.1 christos [ P0 ++ ] = R0; 78 1.1 christos LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 79 1.1 christos [ P0 ++ ] = R0; 80 1.1 christos LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 81 1.1 christos [ P0 ++ ] = R0; 82 1.1 christos LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 83 1.1 christos [ P0 ++ ] = R0; 84 1.1 christos LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 85 1.1 christos [ P0 ++ ] = R0; 86 1.1 christos LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 87 1.1 christos [ P0 ++ ] = R0; 88 1.1 christos LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 89 1.1 christos [ P0 ++ ] = R0; 90 1.1 christos LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 91 1.1 christos [ P0 ++ ] = R0; 92 1.1 christos LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 93 1.1 christos [ P0 ++ ] = R0; 94 1.1 christos LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 95 1.1 christos [ P0 ++ ] = R0; 96 1.1 christos LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 97 1.1 christos [ P0 ++ ] = R0; 98 1.1 christos 99 1.1 christos // Setup the EVT_OVERRIDE MMR 100 1.1 christos R0 = 0; 101 1.1 christos LD32(p0, EVT_OVERRIDE); 102 1.1 christos [ P0 ] = R0; 103 1.1 christos 104 1.1 christos // Setup Interrupt Mask 105 1.1 christos R0 = -1; 106 1.1 christos LD32(p0, IMASK); 107 1.1 christos [ P0 ] = R0; 108 1.1 christos 109 1.1 christos // Return to Supervisor Code 110 1.1 christos RAISE 15; 111 1.1 christos NOP; 112 1.1 christos 113 1.1 christos LD32_LABEL(r0, USER_CODE); 114 1.1 christos RETI = R0; 115 1.1 christos RTI; 116 1.1 christos 117 1.1 christos .dw 0xFFFF 118 1.1 christos .dw 0xFFFF 119 1.1 christos .dw 0xFFFF 120 1.1 christos .dw 0xFFFF 121 1.1 christos .dw 0xFFFF 122 1.1 christos .dw 0xFFFF 123 1.1 christos .dw 0xFFFF 124 1.1 christos 125 1.1 christos ///////////////////////////////////////////////////////////////////////////// 126 1.1 christos 127 1.1 christos 128 1.1 christos ///////////////////////////////////////////////////////////////////////////// 129 1.1 christos ///////////////////////// EMU ISR ///////////////////////////// 130 1.1 christos ///////////////////////////////////////////////////////////////////////////// 131 1.1 christos 132 1.1 christos EMU_ISR : 133 1.1 christos 134 1.1 christos RTE; 135 1.1 christos 136 1.1 christos .dw 0xFFFF 137 1.1 christos .dw 0xFFFF 138 1.1 christos .dw 0xFFFF 139 1.1 christos .dw 0xFFFF 140 1.1 christos .dw 0xFFFF 141 1.1 christos .dw 0xFFFF 142 1.1 christos .dw 0xFFFF 143 1.1 christos 144 1.1 christos ///////////////////////////////////////////////////////////////////////////// 145 1.1 christos ///////////////////////// NMI ISR ///////////////////////////// 146 1.1 christos ///////////////////////////////////////////////////////////////////////////// 147 1.1 christos 148 1.1 christos NMI_ISR : 149 1.1 christos 150 1.1 christos RTN; 151 1.1 christos 152 1.1 christos .dw 0xFFFF 153 1.1 christos .dw 0xFFFF 154 1.1 christos .dw 0xFFFF 155 1.1 christos .dw 0xFFFF 156 1.1 christos .dw 0xFFFF 157 1.1 christos .dw 0xFFFF 158 1.1 christos .dw 0xFFFF 159 1.1 christos 160 1.1 christos ///////////////////////////////////////////////////////////////////////////// 161 1.1 christos ///////////////////////// EXC ISR ///////////////////////////// 162 1.1 christos ///////////////////////////////////////////////////////////////////////////// 163 1.1 christos 164 1.1 christos EXC_ISR : 165 1.1 christos 166 1.1 christos RTX; 167 1.1 christos 168 1.1 christos .dw 0xFFFF 169 1.1 christos .dw 0xFFFF 170 1.1 christos .dw 0xFFFF 171 1.1 christos .dw 0xFFFF 172 1.1 christos .dw 0xFFFF 173 1.1 christos .dw 0xFFFF 174 1.1 christos .dw 0xFFFF 175 1.1 christos 176 1.1 christos ///////////////////////////////////////////////////////////////////////////// 177 1.1 christos ///////////////////////// HWE ISR ///////////////////////////// 178 1.1 christos ///////////////////////////////////////////////////////////////////////////// 179 1.1 christos 180 1.1 christos HWE_ISR : 181 1.1 christos 182 1.1 christos RTI; 183 1.1 christos 184 1.1 christos .dw 0xFFFF 185 1.1 christos .dw 0xFFFF 186 1.1 christos .dw 0xFFFF 187 1.1 christos .dw 0xFFFF 188 1.1 christos .dw 0xFFFF 189 1.1 christos .dw 0xFFFF 190 1.1 christos .dw 0xFFFF 191 1.1 christos 192 1.1 christos ///////////////////////////////////////////////////////////////////////////// 193 1.1 christos ///////////////////////// TMR ISR ///////////////////////////// 194 1.1 christos ///////////////////////////////////////////////////////////////////////////// 195 1.1 christos 196 1.1 christos TMR_ISR : 197 1.1 christos 198 1.1 christos RTI; 199 1.1 christos 200 1.1 christos .dw 0xFFFF 201 1.1 christos .dw 0xFFFF 202 1.1 christos .dw 0xFFFF 203 1.1 christos .dw 0xFFFF 204 1.1 christos .dw 0xFFFF 205 1.1 christos .dw 0xFFFF 206 1.1 christos .dw 0xFFFF 207 1.1 christos 208 1.1 christos ///////////////////////////////////////////////////////////////////////////// 209 1.1 christos ///////////////////////// IGV7 ISR ///////////////////////////// 210 1.1 christos ///////////////////////////////////////////////////////////////////////////// 211 1.1 christos 212 1.1 christos IGV7_ISR : 213 1.1 christos 214 1.1 christos RTI; 215 1.1 christos 216 1.1 christos .dw 0xFFFF 217 1.1 christos .dw 0xFFFF 218 1.1 christos .dw 0xFFFF 219 1.1 christos .dw 0xFFFF 220 1.1 christos .dw 0xFFFF 221 1.1 christos .dw 0xFFFF 222 1.1 christos .dw 0xFFFF 223 1.1 christos 224 1.1 christos ///////////////////////////////////////////////////////////////////////////// 225 1.1 christos ///////////////////////// IGV8 ISR ///////////////////////////// 226 1.1 christos ///////////////////////////////////////////////////////////////////////////// 227 1.1 christos 228 1.1 christos IGV8_ISR : 229 1.1 christos 230 1.1 christos RTI; 231 1.1 christos 232 1.1 christos .dw 0xFFFF 233 1.1 christos .dw 0xFFFF 234 1.1 christos .dw 0xFFFF 235 1.1 christos .dw 0xFFFF 236 1.1 christos .dw 0xFFFF 237 1.1 christos .dw 0xFFFF 238 1.1 christos .dw 0xFFFF 239 1.1 christos 240 1.1 christos ///////////////////////////////////////////////////////////////////////////// 241 1.1 christos ///////////////////////// IGV9 ISR ///////////////////////////// 242 1.1 christos ///////////////////////////////////////////////////////////////////////////// 243 1.1 christos 244 1.1 christos IGV9_ISR : 245 1.1 christos 246 1.1 christos RTI; 247 1.1 christos 248 1.1 christos .dw 0xFFFF 249 1.1 christos .dw 0xFFFF 250 1.1 christos .dw 0xFFFF 251 1.1 christos .dw 0xFFFF 252 1.1 christos .dw 0xFFFF 253 1.1 christos .dw 0xFFFF 254 1.1 christos .dw 0xFFFF 255 1.1 christos 256 1.1 christos ///////////////////////////////////////////////////////////////////////////// 257 1.1 christos ///////////////////////// IGV10 ISR ///////////////////////////// 258 1.1 christos ///////////////////////////////////////////////////////////////////////////// 259 1.1 christos 260 1.1 christos IGV10_ISR : 261 1.1 christos 262 1.1 christos RTI; 263 1.1 christos 264 1.1 christos .dw 0xFFFF 265 1.1 christos .dw 0xFFFF 266 1.1 christos .dw 0xFFFF 267 1.1 christos .dw 0xFFFF 268 1.1 christos .dw 0xFFFF 269 1.1 christos .dw 0xFFFF 270 1.1 christos .dw 0xFFFF 271 1.1 christos 272 1.1 christos ///////////////////////////////////////////////////////////////////////////// 273 1.1 christos ///////////////////////// IGV11 ISR ///////////////////////////// 274 1.1 christos ///////////////////////////////////////////////////////////////////////////// 275 1.1 christos 276 1.1 christos IGV11_ISR : 277 1.1 christos 278 1.1 christos RTI; 279 1.1 christos 280 1.1 christos .dw 0xFFFF 281 1.1 christos .dw 0xFFFF 282 1.1 christos .dw 0xFFFF 283 1.1 christos .dw 0xFFFF 284 1.1 christos .dw 0xFFFF 285 1.1 christos .dw 0xFFFF 286 1.1 christos .dw 0xFFFF 287 1.1 christos 288 1.1 christos ///////////////////////////////////////////////////////////////////////////// 289 1.1 christos ///////////////////////// IGV12 ISR ///////////////////////////// 290 1.1 christos ///////////////////////////////////////////////////////////////////////////// 291 1.1 christos 292 1.1 christos IGV12_ISR : 293 1.1 christos 294 1.1 christos RTI; 295 1.1 christos 296 1.1 christos .dw 0xFFFF 297 1.1 christos .dw 0xFFFF 298 1.1 christos .dw 0xFFFF 299 1.1 christos .dw 0xFFFF 300 1.1 christos .dw 0xFFFF 301 1.1 christos .dw 0xFFFF 302 1.1 christos .dw 0xFFFF 303 1.1 christos 304 1.1 christos ///////////////////////////////////////////////////////////////////////////// 305 1.1 christos ///////////////////////// IGV13 ISR ///////////////////////////// 306 1.1 christos ///////////////////////////////////////////////////////////////////////////// 307 1.1 christos 308 1.1 christos IGV13_ISR : 309 1.1 christos 310 1.1 christos RTI; 311 1.1 christos 312 1.1 christos .dw 0xFFFF 313 1.1 christos .dw 0xFFFF 314 1.1 christos .dw 0xFFFF 315 1.1 christos .dw 0xFFFF 316 1.1 christos .dw 0xFFFF 317 1.1 christos .dw 0xFFFF 318 1.1 christos .dw 0xFFFF 319 1.1 christos 320 1.1 christos ///////////////////////////////////////////////////////////////////////////// 321 1.1 christos ///////////////////////// IGV14 ISR ///////////////////////////// 322 1.1 christos ///////////////////////////////////////////////////////////////////////////// 323 1.1 christos 324 1.1 christos IGV14_ISR : 325 1.1 christos 326 1.1 christos RTI; 327 1.1 christos 328 1.1 christos .dw 0xFFFF 329 1.1 christos .dw 0xFFFF 330 1.1 christos .dw 0xFFFF 331 1.1 christos .dw 0xFFFF 332 1.1 christos .dw 0xFFFF 333 1.1 christos .dw 0xFFFF 334 1.1 christos .dw 0xFFFF 335 1.1 christos 336 1.1 christos ///////////////////////////////////////////////////////////////////////////// 337 1.1 christos ///////////////////////// IGV15 ISR ///////////////////////////// 338 1.1 christos ///////////////////////////////////////////////////////////////////////////// 339 1.1 christos 340 1.1 christos IGV15_ISR : 341 1.1 christos 342 1.1 christos RTI; 343 1.1 christos 344 1.1 christos .dw 0xFFFF 345 1.1 christos .dw 0xFFFF 346 1.1 christos .dw 0xFFFF 347 1.1 christos .dw 0xFFFF 348 1.1 christos .dw 0xFFFF 349 1.1 christos .dw 0xFFFF 350 1.1 christos .dw 0xFFFF 351 1.1 christos 352 1.1 christos ///////////////////////////////////////////////////////////////////////////// 353 1.1 christos ///////////////////////// USER CODE ///////////////////////////// 354 1.1 christos ///////////////////////////////////////////////////////////////////////////// 355 1.1 christos 356 1.1 christos 357 1.1 christos USER_CODE : 358 1.1 christos 359 1.1 christos P0 = 0x5 (Z); 360 1.1 christos P1 = 0xa (Z); 361 1.1 christos 362 1.1 christos P2 = 0x0100 (Z); 363 1.1 christos P2.H = 0x00f0; 364 1.1 christos 365 1.1 christos LD32_LABEL(r0, L0T); 366 1.1 christos LD32_LABEL(r1, L0B); 367 1.1 christos LSETUP ( L0T , L0B ) LC0 = P0; 368 1.1 christos L0T:R2 += 1; 369 1.1 christos R3 += 2; 370 1.1 christos R4 += 3; 371 1.1 christos R5 += 4; 372 1.1 christos R6 += 5; 373 1.1 christos R7 += 6; 374 1.1 christos R0 += 2; 375 1.1 christos R1 += 2; 376 1.1 christos LT0 = R0; 377 1.1 christos LB0 = R1; 378 1.1 christos L0B:R7 += 6; 379 1.1 christos R2 += 1; 380 1.1 christos R3 += 2; 381 1.1 christos R4 += 3; 382 1.1 christos R5 += 4; 383 1.1 christos R6 += 5; 384 1.1 christos 385 1.1 christos LD32_LABEL(r0, L1T); 386 1.1 christos LD32_LABEL(r1, L1B); 387 1.1 christos LSETUP ( L1T , L1B ) LC1 = P0; 388 1.1 christos L1T:R2 += 1; 389 1.1 christos R3 += 2; 390 1.1 christos R4 += 3; 391 1.1 christos R5 += 4; 392 1.1 christos R6 += 5; 393 1.1 christos R7 += 6; 394 1.1 christos R0 += 2; 395 1.1 christos R1 += 2; 396 1.1 christos LT1 = R0; 397 1.1 christos LB1 = R1; 398 1.1 christos L1B:R7 += 6; 399 1.1 christos R2 += 1; 400 1.1 christos R3 += 2; 401 1.1 christos R4 += 3; 402 1.1 christos R5 += 4; 403 1.1 christos R6 += 5; 404 1.1 christos 405 1.1 christos LD32_LABEL(r0, L2T); 406 1.1 christos LD32_LABEL(r1, L2B); 407 1.1 christos LSETUP ( L2T , L2B ) LC0 = P0; 408 1.1 christos L2T:R2 += 1; 409 1.1 christos R3 += 2; 410 1.1 christos R4 += 3; 411 1.1 christos R5 += 4; 412 1.1 christos R6 += 5; 413 1.1 christos R7 += 6; 414 1.1 christos R0 += 2; 415 1.1 christos R1 += -2; 416 1.1 christos LT0 = R0; 417 1.1 christos LB0 = R1; 418 1.1 christos R7 += 6; 419 1.1 christos R2 += 1; 420 1.1 christos R3 += 2; 421 1.1 christos R4 += 3; 422 1.1 christos R5 += 4; 423 1.1 christos L2B:R6 += 5; 424 1.1 christos 425 1.1 christos LD32_LABEL(r0, L3T); 426 1.1 christos LD32_LABEL(r1, L3B); 427 1.1 christos LSETUP ( L3T , L3B ) LC1 = P0; 428 1.1 christos L3T:R2 += 1; 429 1.1 christos R3 += 2; 430 1.1 christos R4 += 3; 431 1.1 christos R5 += 4; 432 1.1 christos R6 += 5; 433 1.1 christos R7 += 6; 434 1.1 christos R0 += 2; 435 1.1 christos R1 += -2; 436 1.1 christos LT1 = R0; 437 1.1 christos LB1 = R1; 438 1.1 christos R7 += 6; 439 1.1 christos R2 += 1; 440 1.1 christos R3 += 2; 441 1.1 christos R4 += 3; 442 1.1 christos R5 += 4; 443 1.1 christos L3B:R6 += 5; 444 1.1 christos 445 1.1 christos NOP; 446 1.1 christos NOP; 447 1.1 christos NOP; 448 1.1 christos dbg_pass; // Call Endtest Macro 449 1.1 christos 450 1.1 christos ///////////////////////////////////////////////////////////////////////////// 451 1.1 christos ///////////////////////// DATA MEMRORY ///////////////////////////// 452 1.1 christos ///////////////////////////////////////////////////////////////////////////// 453 1.1 christos 454 1.1 christos .section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw" 455 1.1 christos .dd 0x01010101; 456 1.1 christos .dd 0x02020202; 457 1.1 christos .dd 0x03030303; 458 1.1 christos .dd 0x04040404; 459 1.1 christos .dd 0x05050505; 460 1.1 christos .dd 0x06060606; 461 1.1 christos .dd 0x07070707; 462 1.1 christos .dd 0x08080808; 463 1.1 christos .dd 0x09090909; 464 1.1 christos .dd 0x0a0a0a0a; 465 1.1 christos .dd 0x0b0b0b0b; 466 1.1 christos .dd 0x0c0c0c0c; 467 1.1 christos .dd 0x0d0d0d0d; 468 1.1 christos .dd 0x0e0e0e0e; 469 1.1 christos .dd 0x0f0f0f0f; 470 1.1 christos 471 1.1 christos // Define Kernal Stack 472 1.1 christos .data 473 1.1 christos .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 474 1.1 christos KSTACK : 475 1.1 christos 476 1.1 christos .space (STACKSIZE); 477 1.1 christos USTACK : 478 1.1 christos 479 1.1 christos ///////////////////////////////////////////////////////////////////////////// 480 1.1 christos ///////////////////////// END OF TEST ///////////////////////////// 481 1.1 christos ///////////////////////////////////////////////////////////////////////////// 482