1//Original:/proj/frio/dv/testcases/seq/se_loop_mv2lb_stall/se_loop_mv2lb_stall.dsp 2# mach: bfin 3# sim: --environment operating 4 5#include "test.h" 6.include "testutils.inc" 7start 8 9///////////////////////////////////////////////////////////////////////////// 10///////////////////////// Include Files ///////////////////////////// 11///////////////////////////////////////////////////////////////////////////// 12 13include(std.inc) 14include(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 55INIT_R_REGS(0); 56 57 // Initialize Pregs 58INIT_P_REGS(0); 59 60 // Initialize ILBM Registers 61INIT_I_REGS(0); 62INIT_M_REGS(0); 63INIT_L_REGS(0); 64INIT_B_REGS(0); 65 66 // Initialize the Address of the Checkreg data segment 67 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 68CHECK_INIT(p5, 0x00BFFFFC); 69 70 // Setup User Stack 71LD32_LABEL(sp, USTACK); 72USP = SP; 73 74 // Setup Kernel Stack 75LD32_LABEL(sp, KSTACK); 76 77 // Setup Frame Pointer 78FP = SP; 79 80 // Setup Event Vector Table 81LD32(p0, EVT); 82 83LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 84 [ P0 ++ ] = R0; 85LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 86 [ P0 ++ ] = R0; 87LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 88 [ P0 ++ ] = R0; 89LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 90 [ P0 ++ ] = R0; 91 [ P0 ++ ] = R0; // IVT4 not used 92LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 93 [ P0 ++ ] = R0; 94LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 97 [ P0 ++ ] = R0; 98LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 99 [ P0 ++ ] = R0; 100LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 101 [ P0 ++ ] = R0; 102LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 103 [ P0 ++ ] = R0; 104LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 105 [ P0 ++ ] = R0; 106LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 107 [ P0 ++ ] = R0; 108LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 109 [ P0 ++ ] = R0; 110LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 111 [ P0 ++ ] = R0; 112LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 113 [ P0 ++ ] = R0; 114 115 // Setup the EVT_OVERRIDE MMR 116 R0 = 0; 117LD32(p0, EVT_OVERRIDE); 118 [ P0 ] = R0; 119 120 // Setup Interrupt Mask 121 R0 = -1; 122LD32(p0, IMASK); 123 [ P0 ] = R0; 124 125 // Return to Supervisor Code 126RAISE 15; 127NOP; 128 129LD32_LABEL(r0, USER_CODE); 130RETI = R0; 131RTI; 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 150RTE; 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 166RTN; 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 182RTX; 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 198RTI; 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 214RTI; 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 230RTI; 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 246RTI; 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 262RTI; 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 278RTI; 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 294RTI; 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 310RTI; 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 326RTI; 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 342RTI; 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 = 0x0100 (Z); 361 P2.H = 0x00f0; 362 363 // Loop 0 364LD32_LABEL(r0, L0T); 365LD32_LABEL(r1, L0B); 366LC0 = p1; 367LT0 = r0; 368 R0 = [ P2 ++ ]; 369LB0 = r1; 370L0T:R3 += 4; 371 R2 += 3; 372 R4 += 5; 373 R5 += 6; 374 R6 += 7; 375L0B:R7 += 8; 376 377 // Loop 0 378LD32_LABEL(r0, L1T); 379LD32_LABEL(r1, L1B); 380LT0 = r0; 381LC0 = p1; 382 R0 = [ P2 ++ ]; 383NOP; 384LB0 = r1; 385L1T:R4 += 5; 386 R2 += 3; 387 R3 += 4; 388 R5 += 6; 389 R6 += 7; 390L1B:R7 += 8; 391 392 // Loop 0 393LD32_LABEL(r0, L2T); 394LD32_LABEL(r1, L2B); 395LT0 = r0; 396LC0 = p1; 397 R0 = [ P2 ++ ]; 398NOP; 399NOP; 400LB0 = r1; 401L2T:R5 += 6; 402 R2 += 3; 403 R3 += 4; 404 R4 += 5; 405 R6 += 7; 406L2B:R7 += 8; 407 408 // Loop 0 409LD32_LABEL(r0, L3T); 410LD32_LABEL(r1, L3B); 411LT0 = r0; 412LC0 = p1; 413 R0 = [ P2 ++ ]; 414NOP; 415NOP; 416NOP; 417LB0 = r1; 418L3T:R2 += 3; 419 R5 += 6; 420 R6 += 7; 421 R3 += 4; 422 R4 += 5; 423L3B:R7 += 8; 424 425 // Loop 0 426LD32_LABEL(r0, L4T); 427LD32_LABEL(r1, L4B); 428LT0 = r0; 429LC0 = p1; 430 R0 = [ P2 ++ ]; 431NOP; 432NOP; 433NOP; 434NOP; 435LB0 = r1; 436L4T:R2 += 3; 437 R3 += 4; 438 R5 += 6; 439 R6 += 7; 440 R4 += 5; 441L4B:R7 += 8; 442 443 // Loop 0 444LD32_LABEL(r0, L5T); 445LD32_LABEL(r1, L5B); 446 [ -- SP ] = R1; 447SSYNC; 448LT0 = r0; 449LC0 = p0; 450 R0 = [ P2 ++ ]; 451LB0 = [sp++]; 452L5T:R2 += 3; 453 R3 += 4; 454 R5 += 6; 455 R6 += 7; 456 R4 += 5; 457L5B:R7 += 8; 458 459 460 // Loop 1 461LD32_LABEL(r0, M0T); 462LD32_LABEL(r1, M0B); 463LT1 = r0; 464LC1 = p1; 465 R0 = [ P2 ++ ]; 466LB1 = r1; 467M0T:R3 += 4; 468 R2 += 3; 469 R4 += 5; 470 R5 += 6; 471 R6 += 7; 472M0B:R7 += 8; 473 474 // Loop 1 475LD32_LABEL(r0, M1T); 476LD32_LABEL(r1, M1B); 477LT1 = r0; 478LC1 = p1; 479 R0 = [ P2 ++ ]; 480NOP; 481LB1 = r1; 482M1T:R4 += 5; 483 R2 += 3; 484 R3 += 4; 485 R5 += 6; 486 R6 += 7; 487M1B:R7 += 8; 488 489 // Loop 1 490LD32_LABEL(r0, M2T); 491LD32_LABEL(r1, M2B); 492LT1 = r0; 493LC1 = p1; 494 R0 = [ P2 ++ ]; 495NOP; 496NOP; 497LB1 = r1; 498M2T:R5 += 6; 499 R2 += 3; 500 R3 += 4; 501 R4 += 5; 502 R6 += 7; 503M2B:R7 += 8; 504 505 // Loop 1 506LD32_LABEL(r0, M3T); 507LD32_LABEL(r1, M3B); 508LT1 = r0; 509LC1 = p1; 510 R0 = [ P2 ++ ]; 511NOP; 512NOP; 513NOP; 514LB1 = r1; 515M3T:R2 += 3; 516 R5 += 6; 517 R6 += 7; 518 R3 += 4; 519 R4 += 5; 520M3B:R7 += 8; 521 522 // Loop 1 523LD32_LABEL(r0, M4T); 524LD32_LABEL(r1, M4B); 525LT1 = r0; 526LC1 = p1; 527 R0 = [ P2 ++ ]; 528NOP; 529NOP; 530NOP; 531NOP; 532LB1 = r1; 533M4T:R2 += 3; 534 R3 += 4; 535 R5 += 6; 536 R6 += 7; 537 R4 += 5; 538M4B:R7 += 8; 539 540 // Loop 1 541LD32_LABEL(r0, M5T); 542LD32_LABEL(r1, M5B); 543 [ -- SP ] = R1; 544SSYNC; 545LT1 = r0; 546LC1 = p0; 547 R0 = [ P2 ++ ]; 548LB1 = [sp++]; 549M5T:R2 += 3; 550 R3 += 4; 551 R5 += 6; 552 R6 += 7; 553 R4 += 5; 554M5B:R7 += 8; 555 556NOP; 557NOP; 558RTI; 559 560.dw 0xFFFF 561.dw 0xFFFF 562.dw 0xFFFF 563.dw 0xFFFF 564.dw 0xFFFF 565.dw 0xFFFF 566.dw 0xFFFF 567 568///////////////////////////////////////////////////////////////////////////// 569///////////////////////// USER CODE ///////////////////////////// 570///////////////////////////////////////////////////////////////////////////// 571 572 573 USER_CODE : 574 575NOP; 576NOP; 577NOP; 578NOP; 579dbg_pass; // Call Endtest Macro 580 581///////////////////////////////////////////////////////////////////////////// 582///////////////////////// DATA MEMRORY ///////////////////////////// 583///////////////////////////////////////////////////////////////////////////// 584 585.section MEM_0x00F00100,"aw" 586.dd 0x01010101; 587.dd 0x02020202; 588.dd 0x03030303; 589.dd 0x04040404; 590.dd 0x05050505; 591.dd 0x06060606; 592.dd 0x07070707; 593.dd 0x08080808; 594.dd 0x09090909; 595.dd 0x0a0a0a0a; 596.dd 0x0b0b0b0b; 597.dd 0x0c0c0c0c; 598.dd 0x0d0d0d0d; 599.dd 0x0e0e0e0e; 600.dd 0x0f0f0f0f; 601 602// Define Kernal Stack 603.section MEM_0x00F00210,"aw" 604 .space (STACKSIZE); 605 KSTACK : 606 607 .space (STACKSIZE); 608 USTACK : 609 610///////////////////////////////////////////////////////////////////////////// 611///////////////////////// END OF TEST ///////////////////////////// 612///////////////////////////////////////////////////////////////////////////// 613