1//Original:/proj/frio/dv/testcases/seq/se_lsetup_kill/se_lsetup_kill.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 = 0xa (Z); 344 345NOP; 346NOP; 347RTI; 348 349.dw 0xFFFF 350.dw 0xFFFF 351.dw 0xFFFF 352.dw 0xFFFF 353.dw 0xFFFF 354.dw 0xFFFF 355.dw 0xFFFF 356 357///////////////////////////////////////////////////////////////////////////// 358///////////////////////// USER CODE ///////////////////////////// 359///////////////////////////////////////////////////////////////////////////// 360 361 362 USER_CODE : 363 364///////////////////////////////////////////////////////////////////////////// 365// Loop 0 (Kill Lsetup in WB) 366///////////////////////////////////////////////////////////////////////////// 367 368EXCPT 0x5; 369LSETUP ( L0T , L0T ) LC0 = P0; 370L0T:R0 += 5; 371 372EXCPT 0x5; 373LSETUP ( L1T , L1B ) LC0 = P0; 374L1T:R0 += 5; 375L1B:R1 += 4; 376 377EXCPT 0x5; 378LSETUP ( L2T , L2B ) LC0 = P0; 379L2T:R0 += 5; 380 R1 += 4; 381L2B:R2 += 3; 382 383EXCPT 0x5; 384LSETUP ( L3T , L3B ) LC0 = P0; 385L3T:R0 += 5; 386 R1 += 4; 387 R2 += 3; 388L3B:R3 += 2; 389 390EXCPT 0x5; 391LSETUP ( L4T , L4B ) LC0 = P0; 392L4T:R0 += 5; 393 R1 += 4; 394 R2 += 3; 395 R3 += 2; 396L4B:R4 += 1; 397 398///////////////////////////////////////////////////////////////////////////// 399// Loop 1 (Kill Lsetup in WB) 400///////////////////////////////////////////////////////////////////////////// 401 402EXCPT 0x5; 403LSETUP ( M0T , M0T ) LC1 = P0; 404M0T:R0 += 5; 405 406EXCPT 0x5; 407LSETUP ( M1T , M1B ) LC1 = P0; 408M1T:R0 += 5; 409M1B:R1 += 4; 410 411EXCPT 0x5; 412LSETUP ( M2T , M2B ) LC1 = P0; 413M2T:R0 += 5; 414 R1 += 4; 415M2B:R2 += 3; 416 417EXCPT 0x5; 418LSETUP ( M3T , M3B ) LC1 = P0; 419M3T:R0 += 5; 420 R1 += 4; 421 R2 += 3; 422M3B:R3 += 2; 423 424EXCPT 0x5; 425LSETUP ( M4T , M4B ) LC1 = P0; 426M4T:R0 += 5; 427 R1 += 4; 428 R2 += 3; 429 R3 += 2; 430M4B:R4 += 1; 431 432///////////////////////////////////////////////////////////////////////////// 433// Loop 0 (Kill during the last iteration at each pipe stage) 434///////////////////////////////////////////////////////////////////////////// 435 436LSETUP ( N0T , N0B ) LC0 = P1; 437NOP; 438N0T:R0 = LC0; 439CC = R0 == 1; 440IF !CC JUMP N0B (BP); 441 R0 += 1; 442 R1 += 2; 443EXCPT 0x5; 444N0B:R2 += 3; 445 446LSETUP ( N1T , N1B ) LC0 = P1; 447NOP; 448N1T:R0 = LC0; 449 R0 += 1; 450 R1 += 2; 451CC = R0 == 1; 452IF !CC JUMP N1B (BP); 453EXCPT 0x5; 454N1B:R2 += 3; 455 456LSETUP ( N2T , N2B ) LC0 = P1; 457NOP; 458N2T:R0 = LC0; 459CC = R0 == 1; 460IF !CC JUMP N2B (BP); 461 R0 += 1; 462 R1 += 2; 463EXCPT 0x5; 464 R3 += 4; 465N2B:R2 += 3; 466 467LSETUP ( N3T , N3B ) LC0 = P1; 468NOP; 469N3T:R0 = LC0; 470 R0 += 1; 471 R1 += 2; 472CC = R0 == 1; 473IF !CC JUMP N3B (BP); 474EXCPT 0x5; 475 R3 += 4; 476N3B:R2 += 3; 477 478LSETUP ( N4T , N4B ) LC0 = P1; 479NOP; 480N4T:R0 = LC0; 481CC = R0 == 1; 482IF !CC JUMP N4B (BP); 483 R0 += 1; 484 R1 += 2; 485EXCPT 0x5; 486 R3 += 4; 487 R4 += 5; 488N4B:R2 += 3; 489 490LSETUP ( N5T , N5B ) LC0 = P1; 491NOP; 492N5T:R0 = LC0; 493 R0 += 1; 494 R1 += 2; 495CC = R0 == 1; 496IF !CC JUMP N5B (BP); 497EXCPT 0x5; 498 R3 += 4; 499 R4 += 5; 500N5B:R2 += 3; 501 502LSETUP ( N6T , N6B ) LC0 = P1; 503NOP; 504N6T:R0 = LC0; 505CC = R0 == 1; 506IF !CC JUMP N6B (BP); 507 R0 += 1; 508 R1 += 2; 509EXCPT 0x5; 510 R3 += 4; 511 R4 += 5; 512 R5 += 6; 513N6B:R2 += 3; 514 515LSETUP ( N7T , N7B ) LC0 = P1; 516NOP; 517N7T:R0 = LC0; 518 R0 += 1; 519 R1 += 2; 520CC = R0 == 1; 521IF !CC JUMP N7B (BP); 522EXCPT 0x5; 523 R3 += 4; 524 R4 += 5; 525 R5 += 6; 526N7B:R2 += 3; 527 528LSETUP ( N8T , N8B ) LC0 = P1; 529NOP; 530N8T:R0 = LC0; 531CC = R0 == 1; 532IF !CC JUMP N8B (BP); 533 R0 += 1; 534 R1 += 2; 535EXCPT 0x5; 536 R3 += 4; 537 R4 += 5; 538 R5 += 6; 539 R6 += 7; 540N8B:R2 += 3; 541 542LSETUP ( N9T , N9B ) LC0 = P1; 543NOP; 544N9T:R0 = LC0; 545 R0 += 1; 546 R1 += 2; 547CC = R0 == 1; 548IF !CC JUMP N9B (BP); 549EXCPT 0x5; 550 R3 += 4; 551 R4 += 5; 552 R5 += 6; 553 R6 += 7; 554N9B:R2 += 3; 555 556LSETUP ( NAT , NAB ) LC0 = P1; 557NOP; 558NAT: 559 R0 = LC0; 560CC = R0 == 1; 561IF !CC JUMP NAB (BP); 562 R0 += 1; 563 R1 += 2; 564EXCPT 0x5; 565 R3 += 4; 566 R4 += 5; 567 R5 += 6; 568 R6 += 7; 569 R7 += 8; 570NAB: 571 R2 += 3; 572 573LSETUP ( NBT , NBB ) LC0 = P1; 574NOP; 575NBT: 576 R0 = LC0; 577 R0 += 1; 578 R1 += 2; 579CC = R0 == 1; 580IF !CC JUMP NBB (BP); 581EXCPT 0x5; 582 R3 += 4; 583 R4 += 5; 584 R5 += 6; 585 R6 += 7; 586 R7 += 8; 587NBB: 588 R2 += 3; 589 590 591///////////////////////////////////////////////////////////////////////////// 592// Loop 1 (Kill during the last iteration at each pipe stage) 593///////////////////////////////////////////////////////////////////////////// 594 595LSETUP ( O0T , O0B ) LC1 = P1; 596NOP; 597O0T:R0 = LC1; 598CC = R0 == 1; 599IF !CC JUMP O0B (BP); 600 R0 += 1; 601 R1 += 2; 602EXCPT 0x5; 603O0B:R2 += 3; 604 605LSETUP ( O1T , O1B ) LC1 = P1; 606NOP; 607O1T:R0 = LC1; 608 R0 += 1; 609 R1 += 2; 610CC = R0 == 1; 611IF !CC JUMP O1B (BP); 612EXCPT 0x5; 613O1B:R2 += 3; 614 615LSETUP ( O2T , O2B ) LC1 = P1; 616NOP; 617O2T:R0 = LC1; 618CC = R0 == 1; 619IF !CC JUMP O2B (BP); 620 R0 += 1; 621 R1 += 2; 622EXCPT 0x5; 623 R3 += 4; 624O2B:R2 += 3; 625 626LSETUP ( O3T , O3B ) LC1 = P1; 627NOP; 628O3T:R0 = LC1; 629 R0 += 1; 630 R1 += 2; 631CC = R0 == 1; 632IF !CC JUMP O3B (BP); 633EXCPT 0x5; 634 R3 += 4; 635O3B:R2 += 3; 636 637LSETUP ( O4T , O4B ) LC1 = P1; 638NOP; 639O4T:R0 = LC1; 640CC = R0 == 1; 641IF !CC JUMP O4B (BP); 642 R0 += 1; 643 R1 += 2; 644EXCPT 0x5; 645 R3 += 4; 646 R4 += 5; 647O4B:R2 += 3; 648 649LSETUP ( O5T , O5B ) LC1 = P1; 650NOP; 651O5T:R0 = LC1; 652 R0 += 1; 653 R1 += 2; 654CC = R0 == 1; 655IF !CC JUMP O5B (BP); 656EXCPT 0x5; 657 R3 += 4; 658 R4 += 5; 659O5B:R2 += 3; 660 661LSETUP ( O6T , O6B ) LC1 = P1; 662NOP; 663O6T:R0 = LC1; 664CC = R0 == 1; 665IF !CC JUMP O6B (BP); 666 R0 += 1; 667 R1 += 2; 668EXCPT 0x5; 669 R3 += 4; 670 R4 += 5; 671 R5 += 6; 672O6B:R2 += 3; 673 674LSETUP ( O7T , O7B ) LC1 = P1; 675NOP; 676O7T:R0 = LC1; 677 R0 += 1; 678 R1 += 2; 679CC = R0 == 1; 680IF !CC JUMP O7B (BP); 681EXCPT 0x5; 682 R3 += 4; 683 R4 += 5; 684 R5 += 6; 685O7B:R2 += 3; 686 687LSETUP ( O8T , O8B ) LC1 = P1; 688NOP; 689O8T:R0 = LC1; 690CC = R0 == 1; 691IF !CC JUMP O8B (BP); 692 R0 += 1; 693 R1 += 2; 694EXCPT 0x5; 695 R3 += 4; 696 R4 += 5; 697 R5 += 6; 698 R6 += 7; 699O8B:R2 += 3; 700 701LSETUP ( O9T , O9B ) LC1 = P1; 702NOP; 703O9T:R0 = LC1; 704 R0 += 1; 705 R1 += 2; 706CC = R0 == 1; 707IF !CC JUMP O9B (BP); 708EXCPT 0x5; 709 R3 += 4; 710 R4 += 5; 711 R5 += 6; 712 R6 += 7; 713O9B:R2 += 3; 714 715LSETUP ( OAT , OAB ) LC1 = P1; 716NOP; 717OAT: 718 R0 = LC1; 719CC = R0 == 1; 720IF !CC JUMP OAB (BP); 721 R0 += 1; 722 R1 += 2; 723EXCPT 0x5; 724 R3 += 4; 725 R4 += 5; 726 R5 += 6; 727 R6 += 7; 728 R7 += 8; 729OAB: 730 R2 += 3; 731 732LSETUP ( OBT , OBB ) LC1 = P1; 733NOP; 734OBT: 735 R0 = LC1; 736 R0 += 1; 737 R1 += 2; 738CC = R0 == 1; 739IF !CC JUMP OBB (BP); 740EXCPT 0x5; 741 R3 += 4; 742 R4 += 5; 743 R5 += 6; 744 R6 += 7; 745 R7 += 8; 746OBB: 747 R2 += 3; 748 749NOP; 750NOP; 751NOP; 752dbg_pass; // Call Endtest Macro 753 754///////////////////////////////////////////////////////////////////////////// 755///////////////////////// DATA MEMRORY ///////////////////////////// 756///////////////////////////////////////////////////////////////////////////// 757 758.section MEM_DATA_ADDR_1 //.data 0x00F00100,"aw" 759.dd 0xdeadbeef; 760.section MEM_(DATA_ADDR_1 + 0x100) //.data 0x00F00200,"aw" 761.dd 0x01010101; //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 762.dd 0x02020202; 763.dd 0x03030303; 764.dd 0x04040404; 765 766// Define Kernal Stack 767.data 768 .space (STACKSIZE); //<< WARNING: LINE MAY NEED MANUAL TRANSLATION >> 769 KSTACK : 770 771 .space (STACKSIZE); 772 USTACK : 773 774///////////////////////////////////////////////////////////////////////////// 775///////////////////////// END OF TEST ///////////////////////////// 776///////////////////////////////////////////////////////////////////////////// 777