1//Original:/proj/frio/dv/testcases/seq/se_loop_mv2lc/se_loop_mv2lc.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) 15include(symtable.inc) 16include(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 39INIT_R_REGS(0); 40 41 // Initialize Pregs 42INIT_P_REGS(0); 43 44 // Initialize ILBM Registers 45INIT_I_REGS(0); 46INIT_M_REGS(0); 47INIT_L_REGS(0); 48INIT_B_REGS(0); 49 50 // Initialize the Address of the Checkreg data segment 51 // **** THIS IS NEEDED WHENEVER CHECKREG IS USED **** 52CHECK_INIT_DEF(p5); //CHECK_INIT(p5, 0x00BFFFFC); 53 54 // Setup User Stack 55LD32_LABEL(sp, USTACK); 56USP = SP; 57 58 // Setup Kernel Stack 59LD32_LABEL(sp, KSTACK); 60 61 // Setup Frame Pointer 62FP = SP; 63 64 // Setup Event Vector Table 65LD32(p0, EVT0); 66 67LD32_LABEL(r0, EMU_ISR); // Emulation Handler (Int0) 68 [ P0 ++ ] = R0; 69LD32_LABEL(r0, RST_ISR); // Reset Handler (Int1) 70 [ P0 ++ ] = R0; 71LD32_LABEL(r0, NMI_ISR); // NMI Handler (Int2) 72 [ P0 ++ ] = R0; 73LD32_LABEL(r0, EXC_ISR); // Exception Handler (Int3) 74 [ P0 ++ ] = R0; 75 [ P0 ++ ] = R0; // IVT4 not used 76LD32_LABEL(r0, HWE_ISR); // HW Error Handler (Int5) 77 [ P0 ++ ] = R0; 78LD32_LABEL(r0, TMR_ISR); // Timer Handler (Int6) 79 [ P0 ++ ] = R0; 80LD32_LABEL(r0, IGV7_ISR); // IVG7 Handler 81 [ P0 ++ ] = R0; 82LD32_LABEL(r0, IGV8_ISR); // IVG8 Handler 83 [ P0 ++ ] = R0; 84LD32_LABEL(r0, IGV9_ISR); // IVG9 Handler 85 [ P0 ++ ] = R0; 86LD32_LABEL(r0, IGV10_ISR); // IVG10 Handler 87 [ P0 ++ ] = R0; 88LD32_LABEL(r0, IGV11_ISR); // IVG11 Handler 89 [ P0 ++ ] = R0; 90LD32_LABEL(r0, IGV12_ISR); // IVG12 Handler 91 [ P0 ++ ] = R0; 92LD32_LABEL(r0, IGV13_ISR); // IVG13 Handler 93 [ P0 ++ ] = R0; 94LD32_LABEL(r0, IGV14_ISR); // IVG14 Handler 95 [ P0 ++ ] = R0; 96LD32_LABEL(r0, IGV15_ISR); // IVG15 Handler 97 [ P0 ++ ] = R0; 98 99 // Setup the EVT_OVERRIDE MMR 100 R0 = 0; 101LD32(p0, EVT_OVERRIDE); 102 [ P0 ] = R0; 103 104 // Setup Interrupt Mask 105 R0 = -1; 106LD32(p0, IMASK); 107 [ P0 ] = R0; 108 109 // Return to Supervisor Code 110RAISE 15; 111NOP; 112 113LD32_LABEL(r0, USER_CODE); 114RETI = R0; 115RTI; 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 134RTE; 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 150RTN; 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 166RTX; 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 182RTI; 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 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///////////////////////// IGV7 ISR ///////////////////////////// 210///////////////////////////////////////////////////////////////////////////// 211 212 IGV7_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///////////////////////// IGV8 ISR ///////////////////////////// 226///////////////////////////////////////////////////////////////////////////// 227 228 IGV8_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///////////////////////// IGV9 ISR ///////////////////////////// 242///////////////////////////////////////////////////////////////////////////// 243 244 IGV9_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///////////////////////// IGV10 ISR ///////////////////////////// 258///////////////////////////////////////////////////////////////////////////// 259 260 IGV10_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///////////////////////// IGV11 ISR ///////////////////////////// 274///////////////////////////////////////////////////////////////////////////// 275 276 IGV11_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///////////////////////// IGV12 ISR ///////////////////////////// 290///////////////////////////////////////////////////////////////////////////// 291 292 IGV12_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///////////////////////// IGV13 ISR ///////////////////////////// 306///////////////////////////////////////////////////////////////////////////// 307 308 IGV13_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///////////////////////// IGV14 ISR ///////////////////////////// 322///////////////////////////////////////////////////////////////////////////// 323 324 IGV14_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///////////////////////// IGV15 ISR ///////////////////////////// 338///////////////////////////////////////////////////////////////////////////// 339 340 IGV15_ISR : 341 342 P0 = 0x5 (Z); 343 P1 = 0x3 (Z); 344 345 // Loop 0 346LD32_LABEL(r0, L0T); 347LD32_LABEL(r1, L0B); 348LT0 = r0; 349LB0 = r1; 350 351LC0 = P0; 352NOP; 353JUMP.S 2; 354 355JUMP.S 6; 356NOP; 357LC0 = P0; 358LC0 = P1; 359L0T:R2 += 3; 360 R3 += 4; 361 R4 += 5; 362 R5 += 6; 363 R6 += 7; 364L0B:R7 += 8; 365 366 // Loop 1 367LD32_LABEL(r0, L1T); 368LD32_LABEL(r1, L1B); 369LT1 = r0; 370LB1 = r1; 371 372LC1 = P0; 373NOP; 374JUMP.S 2; 375 376JUMP.S 6; 377NOP; 378LC1 = P0; 379LC1 = P1; 380L1T:R2 += 3; 381 R3 += 4; 382 R4 += 5; 383 R5 += 6; 384 R6 += 7; 385L1B:R7 += 8; 386 387 // Loop 0 388LSETUP ( L2T , L2T ) LC0 = P0; 389NOP; 390NOP; 391NOP; 392LC0 = P1; 393L2T:R2 += 1; 394 R3 += 2; 395 R4 += 3; 396 R5 += 4; 397 R6 += 5; 398L2B:R7 += 6; 399 400LC0 = P1; 401NOP; 402NOP; 403NOP; 404LSETUP ( L3T , L3T ) LC0 = P0; 405L3T:R2 += 1; 406 R3 += 2; 407 R4 += 3; 408 R5 += 4; 409 R6 += 5; 410L3B:R7 += 6; 411 412LSETUP ( L4T , L4B ) LC0 = P0; 413NOP; 414NOP; 415LC0 = P1; 416L4T:R2 += 1; 417L4B:R3 += 2; 418 R4 += 3; 419 R5 += 4; 420 R6 += 5; 421 R7 += 6; 422 423LC0 = P1; 424NOP; 425NOP; 426LSETUP ( L5T , L5B ) LC0 = P0; 427L5T:R2 += 1; 428L5B:R3 += 2; 429 R4 += 3; 430 R5 += 4; 431 R6 += 5; 432 R7 += 6; 433 434LSETUP ( L6T , L6B ) LC0 = P0; 435NOP; 436LC0 = P1; 437L6T:R2 += 1; 438 R3 += 2; 439L6B:R4 += 3; 440 R5 += 4; 441 R6 += 5; 442 R7 += 6; 443 444LC0 = P1; 445NOP; 446LSETUP ( L7T , L7B ) LC0 = P0; 447L7T:R2 += 1; 448 R3 += 2; 449L7B:R4 += 3; 450 R5 += 4; 451 R6 += 5; 452 R7 += 6; 453 454LSETUP ( L8T , L8B ) LC0 = P0; 455LC0 = P1; 456L8T:R2 += 1; 457 R3 += 2; 458 R4 += 3; 459L8B:R5 += 4; 460 R6 += 5; 461 R7 += 6; 462 463LC0 = P1; 464LSETUP ( L9T , L9B ) LC0 = P0; 465L9T:R2 += 1; 466 R3 += 2; 467 R4 += 3; 468L9B:R5 += 4; 469 R6 += 5; 470 R7 += 6; 471 472 473 // Loop 1 474LSETUP ( M2T , M2T ) LC1 = P0; 475NOP; 476NOP; 477NOP; 478LC1 = P1; 479M2T:R2 += 1; 480 R3 += 2; 481 R4 += 3; 482 R5 += 4; 483 R6 += 5; 484M2B:R7 += 6; 485 486LC1 = P1; 487NOP; 488NOP; 489NOP; 490LSETUP ( M3T , M3T ) LC1 = P0; 491M3T:R2 += 1; 492 R3 += 2; 493 R4 += 3; 494 R5 += 4; 495 R6 += 5; 496M3B:R7 += 6; 497 498LSETUP ( M4T , M4B ) LC1 = P0; 499NOP; 500NOP; 501LC1 = P1; 502M4T:R2 += 1; 503M4B:R3 += 2; 504 R4 += 3; 505 R5 += 4; 506 R6 += 5; 507 R7 += 6; 508 509LC1 = P1; 510NOP; 511NOP; 512LSETUP ( M5T , M5B ) LC1 = P0; 513M5T:R2 += 1; 514M5B:R3 += 2; 515 R4 += 3; 516 R5 += 4; 517 R6 += 5; 518 R7 += 6; 519 520LSETUP ( M6T , M6B ) LC1 = P0; 521NOP; 522LC1 = P1; 523M6T:R2 += 1; 524 R3 += 2; 525M6B:R4 += 3; 526 R5 += 4; 527 R6 += 5; 528 R7 += 6; 529 530LC1 = P1; 531NOP; 532LSETUP ( M7T , M7B ) LC1 = P0; 533M7T:R2 += 1; 534 R3 += 2; 535M7B:R4 += 3; 536 R5 += 4; 537 R6 += 5; 538 R7 += 6; 539 540LSETUP ( M8T , M8B ) LC1 = P0; 541LC1 = P1; 542M8T:R2 += 1; 543 R3 += 2; 544 R4 += 3; 545M8B:R5 += 4; 546 R6 += 5; 547 R7 += 6; 548 549LC1 = P1; 550LSETUP ( M9T , M9B ) LC1 = P0; 551M9T:R2 += 1; 552 R3 += 2; 553 R4 += 3; 554M9B:R5 += 4; 555 R6 += 5; 556 R7 += 6; 557 558 // Loop 0 559LSETUP ( N2T , N2B ) LC0 = P0 >> 1; 560NOP; 561NOP; 562NOP; 563LC0 = P1; 564N2T:R2 += 1; 565 R3 += 2; 566 R4 += 3; 567 R5 += 4; 568 R6 += 5; 569N2B:R7 += 6; 570 571LC0 = P1; 572NOP; 573NOP; 574NOP; 575LSETUP ( N3T , N3B ) LC0 = P0 >> 1; 576N3T:R2 += 1; 577 R3 += 2; 578 R4 += 3; 579 R5 += 4; 580 R6 += 5; 581N3B:R7 += 6; 582 583LSETUP ( N4T , N4B ) LC0 = P0 >> 1; 584NOP; 585NOP; 586LC0 = P1; 587N4T:R2 += 1; 588 R3 += 2; 589 R4 += 3; 590 R5 += 4; 591N4B:R6 += 5; 592 R7 += 6; 593 594LC0 = P1; 595NOP; 596NOP; 597LSETUP ( N5T , N5B ) LC0 = P0 >> 1; 598N5T:R2 += 1; 599 R3 += 2; 600 R4 += 3; 601 R5 += 4; 602N5B:R6 += 5; 603 R7 += 6; 604 605LSETUP ( N6T , N6B ) LC0 = P0 >> 1; 606NOP; 607LC0 = P1; 608N6T:R2 += 1; 609 R3 += 2; 610 R4 += 3; 611N6B:R5 += 4; 612 R6 += 5; 613 R7 += 6; 614 615LC0 = P1; 616NOP; 617LSETUP ( N7T , N7B ) LC0 = P0 >> 1; 618N7T:R2 += 1; 619 R3 += 2; 620 R4 += 3; 621N7B:R5 += 4; 622 R6 += 5; 623 R7 += 6; 624 625LSETUP ( N8T , N8T ) LC0 = P0 >> 1; 626LC0 = P1; 627N8T:R2 += 1; 628 R3 += 2; 629N8B:R4 += 3; 630 R5 += 4; 631 R6 += 5; 632 R7 += 6; 633 634LC0 = P1; 635LSETUP ( N9T , N9T ) LC0 = P0 >> 1; 636N9T:R2 += 1; 637 R3 += 2; 638N9B:R4 += 3; 639 R5 += 4; 640 R6 += 5; 641 R7 += 6; 642 643 644 // Loop 1 645LSETUP ( O2T , O2B ) LC1 = P0 >> 1; 646NOP; 647NOP; 648NOP; 649LC1 = P1; 650O2T:R2 += 1; 651 R3 += 2; 652 R4 += 3; 653 R5 += 4; 654 R6 += 5; 655O2B:R7 += 6; 656 657LC1 = P1; 658NOP; 659NOP; 660NOP; 661LSETUP ( O3T , O3B ) LC1 = P0 >> 1; 662O3T:R2 += 1; 663 R3 += 2; 664 R4 += 3; 665 R5 += 4; 666 R6 += 5; 667O3B:R7 += 6; 668 669LSETUP ( O4T , O4B ) LC1 = P0 >> 1; 670NOP; 671NOP; 672LC1 = P1; 673O4T:R2 += 1; 674 R3 += 2; 675 R4 += 3; 676 R5 += 4; 677O4B:R6 += 5; 678 R7 += 6; 679 680LC1 = P1; 681NOP; 682NOP; 683LSETUP ( O5T , O5B ) LC1 = P0 >> 1; 684O5T:R2 += 1; 685 R3 += 2; 686 R4 += 3; 687 R5 += 4; 688O5B:R6 += 5; 689 R7 += 6; 690 691LSETUP ( O6T , O6B ) LC1 = P0 >> 1; 692NOP; 693LC1 = P1; 694O6T:R2 += 1; 695 R3 += 2; 696 R4 += 3; 697O6B:R5 += 4; 698 R6 += 5; 699 R7 += 6; 700 701LC1 = P1; 702NOP; 703LSETUP ( O7T , O7B ) LC1 = P0 >> 1; 704O7T:R2 += 1; 705 R3 += 2; 706 R4 += 3; 707O7B:R5 += 4; 708 R6 += 5; 709 R7 += 6; 710 711LSETUP ( O8T , O8T ) LC1 = P0 >> 1; 712LC1 = P1; 713O8T:R2 += 1; 714 R3 += 2; 715O8B:R4 += 3; 716 R5 += 4; 717 R6 += 5; 718 R7 += 6; 719 720LC1 = P1; 721LSETUP ( O9T , O9T ) LC1 = P0 >> 1; 722O9T:R2 += 1; 723 R3 += 2; 724O9B:R4 += 3; 725 R5 += 4; 726 R6 += 5; 727 R7 += 6; 728 729 730NOP; 731NOP; 732RTI; 733 734.dw 0xFFFF 735.dw 0xFFFF 736.dw 0xFFFF 737.dw 0xFFFF 738.dw 0xFFFF 739.dw 0xFFFF 740.dw 0xFFFF 741 742///////////////////////////////////////////////////////////////////////////// 743///////////////////////// USER CODE ///////////////////////////// 744///////////////////////////////////////////////////////////////////////////// 745 746 747 USER_CODE : 748 749NOP; 750NOP; 751NOP; 752NOP; 753dbg_pass; // Call Endtest Macro 754 755///////////////////////////////////////////////////////////////////////////// 756///////////////////////// DATA MEMRORY ///////////////////////////// 757///////////////////////////////////////////////////////////////////////////// 758 759.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw" 760.dd 0xdeadbeef; 761.section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw" 762.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 763.dd 0x02020202; 764.dd 0x03030303; 765.dd 0x04040404; 766 767// Define Kernal Stack 768.data 769 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 770 KSTACK : 771 772 .space (STACKSIZE); 773 USTACK : 774 775///////////////////////////////////////////////////////////////////////////// 776///////////////////////// END OF TEST ///////////////////////////// 777///////////////////////////////////////////////////////////////////////////// 778