1//Original:/proj/frio/dv/testcases/seq/se_undefinedinstruction1/se_undefinedinstruction1.dsp 2// Description: 16 bit "holes" Undefined Instructions in Supervisor Mode 3# mach: bfin 4# sim: --environment operating 5 6#include "test.h" 7.include "testutils.inc" 8start 9 10// 11// Constants and Defines 12// 13 14include(gen_int.inc) 15include(selfcheck.inc) 16include(std.inc) 17include(mmrs.inc) 18include(symtable.inc) 19 20#ifndef STACKSIZE 21#define STACKSIZE 0x10 // change for how much stack you need 22#endif 23#ifndef ITABLE 24#define ITABLE 0xF0000000 25#endif 26 27GEN_INT_INIT(ITABLE) // set location for interrupt table 28 29// 30// Reset/Bootstrap Code 31// (Here we should set the processor operating modes, initialize registers, 32// etc.) 33// 34 35BOOT: 36INIT_R_REGS(0); // initialize general purpose regs 37 38INIT_P_REGS(0); // initialize the pointers 39 40INIT_I_REGS(0); // initialize the dsp address regs 41INIT_M_REGS(0); 42INIT_L_REGS(0); 43INIT_B_REGS(0); 44 45CLI R1; // inhibit events during MMR writes 46 47LD32_LABEL(sp, USTACK); // setup the user stack pointer 48USP = SP; 49 50LD32_LABEL(sp, KSTACK); // setup the kernel stack pointer 51FP = SP; // and frame pointer 52 53LD32(p0, EVT0); // Setup Event Vectors and Handlers 54 55 P0 += 4; // EVT0 not used (Emulation) 56 57 P0 += 4; // EVT1 not used (Reset) 58 59LD32_LABEL(r0, NHANDLE); // NMI Handler (Int2) 60 [ P0 ++ ] = R0; 61 62LD32_LABEL(r0, XHANDLE); // Exception Handler (Int3) 63 [ P0 ++ ] = R0; 64 65 P0 += 4; // EVT4 not used (Global Interrupt Enable) 66 67LD32_LABEL(r0, HWHANDLE); // HW Error Handler (Int5) 68 [ P0 ++ ] = R0; 69 70LD32_LABEL(r0, THANDLE); // Timer Handler (Int6) 71 [ P0 ++ ] = R0; 72 73LD32_LABEL(r0, I7HANDLE); // IVG7 Handler 74 [ P0 ++ ] = R0; 75 76LD32_LABEL(r0, I8HANDLE); // IVG8 Handler 77 [ P0 ++ ] = R0; 78 79LD32_LABEL(r0, I9HANDLE); // IVG9 Handler 80 [ P0 ++ ] = R0; 81 82LD32_LABEL(r0, I10HANDLE);// IVG10 Handler 83 [ P0 ++ ] = R0; 84 85LD32_LABEL(r0, I11HANDLE);// IVG11 Handler 86 [ P0 ++ ] = R0; 87 88LD32_LABEL(r0, I12HANDLE);// IVG12 Handler 89 [ P0 ++ ] = R0; 90 91LD32_LABEL(r0, I13HANDLE);// IVG13 Handler 92 [ P0 ++ ] = R0; 93 94LD32_LABEL(r0, I14HANDLE);// IVG14 Handler 95 [ P0 ++ ] = R0; 96 97LD32_LABEL(r0, I15HANDLE);// IVG15 Handler 98 [ P0 ++ ] = R0; 99 100LD32(p0, EVT_OVERRIDE); 101 R0 = 0; 102 [ P0 ++ ] = R0; 103 104 R1 = -1; // Change this to mask interrupts (*) 105CSYNC; // wait for MMR writes to finish 106STI R1; // sync and reenable events (implicit write to IMASK) 107 108DUMMY: 109 110 A0 = 0; // reset accumulators 111 A1 = 0; 112 113 R0 = 0 (Z); 114 115LT0 = r0; // set loop counters to something deterministic 116LB0 = r0; 117LC0 = r0; 118LT1 = r0; 119LB1 = r0; 120LC1 = r0; 121 122ASTAT = r0; // reset other internal regs 123SYSCFG = r0; 124RETS = r0; // prevent X's breaking LINK instruction 125 126// The following code sets up the test for running in USER mode 127 128LD32_LABEL(r0, STARTUSER);// One gets to user mode by doing a 129 // ReturnFromInterrupt (RTI) 130RETI = r0; // We need to load the return address 131 132// Comment the following line for a USER Mode test 133 134JUMP STARTSUP; // jump to code start for SUPERVISOR mode 135 136RTI; 137 138STARTSUP: 139LD32_LABEL(p1, BEGIN); 140 141LD32(p0, EVT15); 142 143CLI R1; // inhibit events during write to MMR 144 [ P0 ] = P1; // IVG15 (General) handler (Int 15) load with start 145CSYNC; // wait for it 146STI R1; // reenable events with proper imask 147 148RAISE 15; // after we RTI, INT 15 should be taken 149 150RTI; 151 152// 153// The Main Program 154// 155 156STARTUSER: 157 158LINK 0; // change for how much stack frame space you need. 159 160JUMP BEGIN; 161 162//********************************************************************* 163 164BEGIN: 165 166 // COMMENT the following line for USER MODE tests 167 [ -- SP ] = RETI; // enable interrupts in supervisor mode 168 169 // **** YOUR CODE GOES HERE **** 170 171 // count of UI's will be in r5, which was initialized to 0 by header 172 173 174 .dw 0x1 ; 175 .dw 0x2 ; 176 .dw 0x3 ; 177 .dw 0x4 ; 178 .dw 0x5 ; 179 .dw 0x6 ; 180 .dw 0x7 ; 181 .dw 0x8 ; 182 .dw 0x9 ; 183 .dw 0xA ; 184 .dw 0xB ; 185 .dw 0xC ; 186 .dw 0xD ; 187 .dw 0xE ; 188 .dw 0xF ; 189 .dw 0x15 ; 190 .dw 0x16 ; 191 .dw 0x17 ; 192 .dw 0x18 ; 193 .dw 0x19 ; 194 .dw 0x1A ; 195 .dw 0x1B ; 196 .dw 0x1C ; 197 .dw 0x1D ; 198 .dw 0x1E ; 199 .dw 0x1F ; 200 .dw 0x21 ; 201 .dw 0x22 ; 202 .dw 0x26 ; 203 .dw 0x27 ; // XXX: hardware doesnt trigger illegal exception ? 204 .dw 0x28 ; 205 .dw 0x29 ; 206 .dw 0x2A ; 207 .dw 0x2B ; 208 .dw 0x2C ; 209 .dw 0x2D ; 210 .dw 0x2E ; 211 .dw 0x2F ; 212 .dw 0x38 ; 213 .dw 0x39 ; 214 .dw 0x3A ; 215 .dw 0x3B ; 216 .dw 0x3C ; 217 .dw 0x3D ; 218 .dw 0x3E ; 219 .dw 0x3F ; 220 .dw 0x48 ; 221 .dw 0x49 ; 222 .dw 0x4A ; 223 .dw 0x4B ; 224 .dw 0x4C ; 225 .dw 0x4D ; 226 .dw 0x4E ; 227 .dw 0x4F ; 228 .dw 0x58 ; 229 .dw 0x59 ; 230 .dw 0x5A ; 231 .dw 0x5B ; 232 .dw 0x5C ; 233 .dw 0x5D ; 234 .dw 0x5E ; 235 .dw 0x5F ; 236 .dw 0x68 ; 237 .dw 0x69 ; 238 .dw 0x6A ; 239 .dw 0x6B ; 240 .dw 0x6C ; 241 .dw 0x6D ; 242 .dw 0x6E ; 243 .dw 0x6F ; 244 .dw 0x78 ; 245 .dw 0x79 ; 246 .dw 0x7A ; 247 .dw 0x7B ; 248 .dw 0x7C ; 249 .dw 0x7D ; 250 .dw 0x7E ; 251 .dw 0x7F ; 252 .dw 0x88 ; 253 .dw 0x89 ; 254 .dw 0x8A ; 255 .dw 0x8B ; 256 .dw 0x8C ; 257 .dw 0x8D ; 258 .dw 0x8E ; 259 .dw 0x8F ; 260 .dw 0xB8 ; 261 .dw 0xB9 ; 262 .dw 0xBA ; 263 .dw 0xBB ; 264 .dw 0xBC ; 265 .dw 0xBD ; 266 .dw 0xBE ; 267 .dw 0xBF ; 268 .dw 0xC0 ; 269 .dw 0xC1 ; 270 .dw 0xC2 ; 271 .dw 0xC3 ; 272 .dw 0xC4 ; 273 .dw 0xC5 ; 274 .dw 0xC6 ; 275 .dw 0xC7 ; 276 .dw 0xC8 ; 277 .dw 0xC9 ; 278 .dw 0xCA ; 279 .dw 0xCB ; 280 .dw 0xCC ; 281 .dw 0xCD ; 282 .dw 0xCE ; 283 .dw 0xCF ; 284 .dw 0xD0 ; 285 .dw 0xD1 ; 286 .dw 0xD2 ; 287 .dw 0xD3 ; 288 .dw 0xD4 ; 289 .dw 0xD5 ; 290 .dw 0xD6 ; 291 .dw 0xD7 ; 292 .dw 0xD8 ; 293 .dw 0xD9 ; 294 .dw 0xDA ; 295 .dw 0xDB ; 296 .dw 0xDC ; 297 .dw 0xDD ; 298 .dw 0xDE ; 299 .dw 0xDF ; 300 .dw 0xE0 ; 301 .dw 0xE1 ; 302 .dw 0xE2 ; 303 .dw 0xE3 ; 304 .dw 0xE4 ; 305 .dw 0xE5 ; 306 .dw 0xE6 ; 307 .dw 0xE7 ; 308 .dw 0xE8 ; 309 .dw 0xE9 ; 310 .dw 0xEA ; 311 .dw 0xEB ; 312 .dw 0xEC ; 313 .dw 0xED ; 314 .dw 0xEE ; 315 .dw 0xEF ; 316 .dw 0xF0 ; 317 .dw 0xF1 ; 318 .dw 0xF2 ; 319 .dw 0xF3 ; 320 .dw 0xF4 ; 321 .dw 0xF5 ; 322 .dw 0xF6 ; 323 .dw 0xF7 ; 324 .dw 0xF8 ; 325 .dw 0xF9 ; 326 .dw 0xFA ; 327 .dw 0xFB ; 328 .dw 0xFC ; 329 .dw 0xFD ; 330 .dw 0xFE ; 331 .dw 0xFF ; 332 .dw 0x220 ; 333 .dw 0x221 ; 334 .dw 0x222 ; 335 .dw 0x223 ; 336 .dw 0x224 ; 337 .dw 0x225 ; 338 .dw 0x226 ; 339 .dw 0x227 ; 340 .dw 0x228 ; 341 .dw 0x229 ; 342 .dw 0x22A ; 343 .dw 0x22B ; 344 .dw 0x22C ; 345 .dw 0x22D ; 346 .dw 0x22E ; 347 .dw 0x22F ; 348 .dw 0x230 ; 349 .dw 0x231 ; 350 .dw 0x232 ; 351 .dw 0x233 ; 352 .dw 0x234 ; 353 .dw 0x235 ; 354 .dw 0x236 ; 355 .dw 0x237 ; 356 .dw 0x238 ; 357 .dw 0x239 ; 358 .dw 0x23A ; 359 .dw 0x23B ; 360 .dw 0x23C ; 361 .dw 0x23D ; 362 .dw 0x23E ; 363 .dw 0x23F ; 364 .dw 0x280 ; 365 .dw 0x281 ; 366 .dw 0x282 ; 367 .dw 0x283 ; 368 .dw 0x284 ; 369 .dw 0x285 ; 370 .dw 0x286 ; 371 .dw 0x287 ; 372 .dw 0x288 ; 373 .dw 0x289 ; 374 .dw 0x28A ; 375 .dw 0x28B ; 376 .dw 0x28C ; 377 .dw 0x28D ; 378 .dw 0x28E ; 379 .dw 0x28F ; 380 .dw 0x290 ; 381 .dw 0x291 ; 382 .dw 0x292 ; 383 .dw 0x293 ; 384 .dw 0x294 ; 385 .dw 0x295 ; 386 .dw 0x296 ; 387 .dw 0x297 ; 388 .dw 0x298 ; 389 .dw 0x299 ; 390 .dw 0x29A ; 391 .dw 0x29B ; 392 .dw 0x29C ; 393 .dw 0x29D ; 394 .dw 0x29E ; 395 .dw 0x29F ; 396 .dw 0x2A0 ; 397 .dw 0x2A1 ; 398 .dw 0x2A2 ; 399 .dw 0x2A3 ; 400 .dw 0x2A4 ; 401 .dw 0x2A5 ; 402 .dw 0x2A6 ; 403 .dw 0x2A7 ; 404 .dw 0x2A8 ; 405 .dw 0x2A9 ; 406 .dw 0x2AA ; 407 .dw 0x2AB ; 408 .dw 0x2AC ; 409 .dw 0x2AD ; 410 .dw 0x2AE ; 411 .dw 0x2AF ; 412 .dw 0x2B0 ; 413 .dw 0x2B1 ; 414 .dw 0x2B2 ; 415 .dw 0x2B3 ; 416 .dw 0x2B4 ; 417 .dw 0x2B5 ; 418 .dw 0x2B6 ; 419 .dw 0x2B7 ; 420 .dw 0x2B8 ; 421 .dw 0x2B9 ; 422 .dw 0x2BA ; 423 .dw 0x2BB ; 424 .dw 0x2BC ; 425 .dw 0x2BD ; 426 .dw 0x2BE ; 427 .dw 0x2BF ; 428 .dw 0x2C0 ; 429 .dw 0x2C1 ; 430 .dw 0x2C2 ; 431 .dw 0x2C3 ; 432 .dw 0x2C4 ; 433 .dw 0x2C5 ; 434 .dw 0x2C6 ; 435 .dw 0x2C7 ; 436 .dw 0x2C8 ; 437 .dw 0x2C9 ; 438 .dw 0x2CA ; 439 .dw 0x2CB ; 440 .dw 0x2CC ; 441 .dw 0x2CD ; 442 .dw 0x2CE ; 443 .dw 0x2CF ; 444 .dw 0x2D0 ; 445 .dw 0x2D1 ; 446 .dw 0x2D2 ; 447 .dw 0x2D3 ; 448 .dw 0x2D4 ; 449 .dw 0x2D5 ; 450 .dw 0x2D6 ; 451 .dw 0x2D7 ; 452 .dw 0x2D8 ; 453 .dw 0x2D9 ; 454 .dw 0x2DA ; 455 .dw 0x2DB ; 456 .dw 0x2DC ; 457 .dw 0x2DD ; 458 .dw 0x2DE ; 459 .dw 0x2DF ; 460 .dw 0x2E0 ; 461 .dw 0x2E1 ; 462 .dw 0x2E2 ; 463 .dw 0x2E3 ; 464 .dw 0x2E4 ; 465 .dw 0x2E5 ; 466 .dw 0x2E6 ; 467 .dw 0x2E7 ; 468 .dw 0x2E8 ; 469 .dw 0x2E9 ; 470 .dw 0x2EA ; 471 .dw 0x2EB ; 472 .dw 0x2EC ; 473 .dw 0x2ED ; 474 .dw 0x2EE ; 475 .dw 0x2EF ; 476 .dw 0x2F0 ; 477 .dw 0x2F1 ; 478 .dw 0x2F2 ; 479 .dw 0x2F3 ; 480 .dw 0x2F4 ; 481 .dw 0x2F5 ; 482 .dw 0x2F6 ; 483 .dw 0x2F7 ; 484 .dw 0x2F8 ; 485 .dw 0x2F9 ; 486 .dw 0x2FA ; 487 .dw 0x2FB ; 488 .dw 0x2FC ; 489 .dw 0x2FD ; 490 .dw 0x2FE ; 491 .dw 0x2FF ; 492 .dw 0x4600 ; 493 .dw 0x4601 ; 494 .dw 0x4602 ; 495 .dw 0x4603 ; 496 .dw 0x4604 ; 497 .dw 0x4605 ; 498 .dw 0x4606 ; 499 .dw 0x4607 ; 500 .dw 0x4608 ; 501 .dw 0x4609 ; 502 .dw 0x460A ; 503 .dw 0x460B ; 504 .dw 0x460C ; 505 .dw 0x460D ; 506 .dw 0x460E ; 507 .dw 0x460F ; 508 .dw 0x4610 ; 509 .dw 0x4611 ; 510 .dw 0x4612 ; 511 .dw 0x4613 ; 512 .dw 0x4614 ; 513 .dw 0x4615 ; 514 .dw 0x4616 ; 515 .dw 0x4617 ; 516 .dw 0x4618 ; 517 .dw 0x4619 ; 518 .dw 0x461A ; 519 .dw 0x461B ; 520 .dw 0x461C ; 521 .dw 0x461D ; 522 .dw 0x461E ; 523 .dw 0x461F ; 524 .dw 0x4620 ; 525 .dw 0x4621 ; 526 .dw 0x4622 ; 527 .dw 0x4623 ; 528 .dw 0x4624 ; 529 .dw 0x4625 ; 530 .dw 0x4626 ; 531 .dw 0x4627 ; 532 .dw 0x4628 ; 533 .dw 0x4629 ; 534 .dw 0x462A ; 535 .dw 0x462B ; 536 .dw 0x462C ; 537 .dw 0x462D ; 538 .dw 0x462E ; 539 .dw 0x462F ; 540 .dw 0x4630 ; 541 .dw 0x4631 ; 542 .dw 0x4632 ; 543 .dw 0x4633 ; 544 .dw 0x4634 ; 545 .dw 0x4635 ; 546 .dw 0x4636 ; 547 .dw 0x4637 ; 548 .dw 0x4638 ; 549 .dw 0x4639 ; 550 .dw 0x463A ; 551 .dw 0x463B ; 552 .dw 0x463C ; 553 .dw 0x463D ; 554 .dw 0x463E ; 555 .dw 0x463F ; 556 .dw 0x4640 ; 557 .dw 0x4641 ; 558 .dw 0x4642 ; 559 .dw 0x4643 ; 560 .dw 0x4644 ; 561 .dw 0x4645 ; 562 .dw 0x4646 ; 563 .dw 0x4647 ; 564 .dw 0x4648 ; 565 .dw 0x4649 ; 566 .dw 0x464A ; 567 .dw 0x464B ; 568 .dw 0x464C ; 569 .dw 0x464D ; 570 .dw 0x464E ; 571 .dw 0x464F ; 572 .dw 0x4650 ; 573 .dw 0x4651 ; 574 .dw 0x4652 ; 575 .dw 0x4653 ; 576 .dw 0x4654 ; 577 .dw 0x4655 ; 578 .dw 0x4656 ; 579 .dw 0x4657 ; 580 .dw 0x4658 ; 581 .dw 0x4659 ; 582 .dw 0x465A ; 583 .dw 0x465B ; 584 .dw 0x465C ; 585 .dw 0x465D ; 586 .dw 0x465E ; 587 .dw 0x465F ; 588 .dw 0x4660 ; 589 .dw 0x4661 ; 590 .dw 0x4662 ; 591 .dw 0x4663 ; 592 .dw 0x4664 ; 593 .dw 0x4665 ; 594 .dw 0x4666 ; 595 .dw 0x4667 ; 596 .dw 0x4668 ; 597 .dw 0x4669 ; 598 .dw 0x466A ; 599 .dw 0x466B ; 600 .dw 0x466C ; 601 .dw 0x466D ; 602 .dw 0x466E ; 603 .dw 0x466F ; 604 .dw 0x4670 ; 605 .dw 0x4671 ; 606 .dw 0x4672 ; 607 .dw 0x4673 ; 608 .dw 0x4674 ; 609 .dw 0x4675 ; 610 .dw 0x4676 ; 611 .dw 0x4677 ; 612 .dw 0x4678 ; 613 .dw 0x4679 ; 614 .dw 0x467A ; 615 .dw 0x467B ; 616 .dw 0x467C ; 617 .dw 0x467D ; 618 .dw 0x467E ; 619 .dw 0x467F ; 620 .dw 0x4680 ; 621 .dw 0x4681 ; 622 .dw 0x4682 ; 623 .dw 0x4683 ; 624 .dw 0x4684 ; 625 .dw 0x4685 ; 626 .dw 0x4686 ; 627 .dw 0x4687 ; 628 .dw 0x4688 ; 629 .dw 0x4689 ; 630 .dw 0x468A ; 631 .dw 0x468B ; 632 .dw 0x468C ; 633 .dw 0x468D ; 634 .dw 0x468E ; 635 .dw 0x468F ; 636 .dw 0x4690 ; 637 .dw 0x4691 ; 638 .dw 0x4692 ; 639 .dw 0x4693 ; 640 .dw 0x4694 ; 641 .dw 0x4695 ; 642 .dw 0x4696 ; 643 .dw 0x4697 ; 644 .dw 0x4698 ; 645 .dw 0x4699 ; 646 .dw 0x469A ; 647 .dw 0x469B ; 648 .dw 0x469C ; 649 .dw 0x469D ; 650 .dw 0x469E ; 651 .dw 0x469F ; 652 .dw 0x46A0 ; 653 .dw 0x46A1 ; 654 .dw 0x46A2 ; 655 .dw 0x46A3 ; 656 .dw 0x46A4 ; 657 .dw 0x46A5 ; 658 .dw 0x46A6 ; 659 .dw 0x46A7 ; 660 .dw 0x46A8 ; 661 .dw 0x46A9 ; 662 .dw 0x46AA ; 663 .dw 0x46AB ; 664 .dw 0x46AC ; 665 .dw 0x46AD ; 666 .dw 0x46AE ; 667 .dw 0x46AF ; 668 .dw 0x46B0 ; 669 .dw 0x46B1 ; 670 .dw 0x46B2 ; 671 .dw 0x46B3 ; 672 .dw 0x46B4 ; 673 .dw 0x46B5 ; 674 .dw 0x46B6 ; 675 .dw 0x46B7 ; 676 .dw 0x46B8 ; 677 .dw 0x46B9 ; 678 .dw 0x46BA ; 679 .dw 0x46BB ; 680 .dw 0x46BC ; 681 .dw 0x46BD ; 682 .dw 0x46BE ; 683 .dw 0x46BF ; 684 .dw 0x46C0 ; 685 .dw 0x46C1 ; 686 .dw 0x46C2 ; 687 .dw 0x46C3 ; 688 .dw 0x46C4 ; 689 .dw 0x46C5 ; 690 .dw 0x46C6 ; 691 .dw 0x46C7 ; 692 .dw 0x46C8 ; 693 .dw 0x46C9 ; 694 .dw 0x46CA ; 695 .dw 0x46CB ; 696 .dw 0x46CC ; 697 .dw 0x46CD ; 698 .dw 0x46CE ; 699 .dw 0x46CF ; 700 .dw 0x46D0 ; 701 .dw 0x46D1 ; 702 .dw 0x46D2 ; 703 .dw 0x46D3 ; 704 .dw 0x46D4 ; 705 .dw 0x46D5 ; 706 .dw 0x46D6 ; 707 .dw 0x46D7 ; 708 .dw 0x46D8 ; 709 .dw 0x46D9 ; 710 .dw 0x46DA ; 711 .dw 0x46DB ; 712 .dw 0x46DC ; 713 .dw 0x46DD ; 714 .dw 0x46DE ; 715 .dw 0x46DF ; 716 .dw 0x46E0 ; 717 .dw 0x46E1 ; 718 .dw 0x46E2 ; 719 .dw 0x46E3 ; 720 .dw 0x46E4 ; 721 .dw 0x46E5 ; 722 .dw 0x46E6 ; 723 .dw 0x46E7 ; 724 .dw 0x46E8 ; 725 .dw 0x46E9 ; 726 .dw 0x46EA ; 727 .dw 0x46EB ; 728 .dw 0x46EC ; 729 .dw 0x46ED ; 730 .dw 0x46EE ; 731 .dw 0x46EF ; 732 .dw 0x46F0 ; 733 .dw 0x46F1 ; 734 .dw 0x46F2 ; 735 .dw 0x46F3 ; 736 .dw 0x46F4 ; 737 .dw 0x46F5 ; 738 .dw 0x46F6 ; 739 .dw 0x46F7 ; 740 .dw 0x46F8 ; 741 .dw 0x46F9 ; 742 .dw 0x46FA ; 743 .dw 0x46FB ; 744 .dw 0x46FC ; 745 .dw 0x46FD ; 746 .dw 0x46FE ; 747 .dw 0x46FF ; 748 .dw 0x4700 ; 749 .dw 0x4701 ; 750 .dw 0x4702 ; 751 .dw 0x4703 ; 752 .dw 0x4704 ; 753 .dw 0x4705 ; 754 .dw 0x4706 ; 755 .dw 0x4707 ; 756 .dw 0x4708 ; 757 .dw 0x4709 ; 758 .dw 0x470A ; 759 .dw 0x470B ; 760 .dw 0x470C ; 761 .dw 0x470D ; 762 .dw 0x470E ; 763 .dw 0x470F ; 764 .dw 0x4710 ; 765 .dw 0x4711 ; 766 .dw 0x4712 ; 767 .dw 0x4713 ; 768 .dw 0x4714 ; 769 .dw 0x4715 ; 770 .dw 0x4716 ; 771 .dw 0x4717 ; 772 .dw 0x4718 ; 773 .dw 0x4719 ; 774 .dw 0x471A ; 775 .dw 0x471B ; 776 .dw 0x471C ; 777 .dw 0x471D ; 778 .dw 0x471E ; 779 .dw 0x471F ; 780 .dw 0x4720 ; 781 .dw 0x4721 ; 782 .dw 0x4722 ; 783 .dw 0x4723 ; 784 .dw 0x4724 ; 785 .dw 0x4725 ; 786 .dw 0x4726 ; 787 .dw 0x4727 ; 788 .dw 0x4728 ; 789 .dw 0x4729 ; 790 .dw 0x472A ; 791 .dw 0x472B ; 792 .dw 0x472C ; 793 .dw 0x472D ; 794 .dw 0x472E ; 795 .dw 0x472F ; 796 .dw 0x4730 ; 797 .dw 0x4731 ; 798 .dw 0x4732 ; 799 .dw 0x4733 ; 800 .dw 0x4734 ; 801 .dw 0x4735 ; 802 .dw 0x4736 ; 803 .dw 0x4737 ; 804 .dw 0x4738 ; 805 .dw 0x4739 ; 806 .dw 0x473A ; 807 .dw 0x473B ; 808 .dw 0x473C ; 809 .dw 0x473D ; 810 .dw 0x473E ; 811 .dw 0x473F ; 812 .dw 0x4740 ; 813 .dw 0x4741 ; 814 .dw 0x4742 ; 815 .dw 0x4743 ; 816 .dw 0x4744 ; 817 .dw 0x4745 ; 818 .dw 0x4746 ; 819 .dw 0x4747 ; 820 .dw 0x4748 ; 821 .dw 0x4749 ; 822 .dw 0x474A ; 823 .dw 0x474B ; 824 .dw 0x474C ; 825 .dw 0x474D ; 826 .dw 0x474E ; 827 .dw 0x474F ; 828 .dw 0x4750 ; 829 .dw 0x4751 ; 830 .dw 0x4752 ; 831 .dw 0x4753 ; 832 .dw 0x4754 ; 833 .dw 0x4755 ; 834 .dw 0x4756 ; 835 .dw 0x4757 ; 836 .dw 0x4758 ; 837 .dw 0x4759 ; 838 .dw 0x475A ; 839 .dw 0x475B ; 840 .dw 0x475C ; 841 .dw 0x475D ; 842 .dw 0x475E ; 843 .dw 0x475F ; 844 .dw 0x4760 ; 845 .dw 0x4761 ; 846 .dw 0x4762 ; 847 .dw 0x4763 ; 848 .dw 0x4764 ; 849 .dw 0x4765 ; 850 .dw 0x4766 ; 851 .dw 0x4767 ; 852 .dw 0x4768 ; 853 .dw 0x4769 ; 854 .dw 0x476A ; 855 .dw 0x476B ; 856 .dw 0x476C ; 857 .dw 0x476D ; 858 .dw 0x476E ; 859 .dw 0x476F ; 860 .dw 0x4770 ; 861 .dw 0x4771 ; 862 .dw 0x4772 ; 863 .dw 0x4773 ; 864 .dw 0x4774 ; 865 .dw 0x4775 ; 866 .dw 0x4776 ; 867 .dw 0x4777 ; 868 .dw 0x4778 ; 869 .dw 0x4779 ; 870 .dw 0x477A ; 871 .dw 0x477B ; 872 .dw 0x477C ; 873 .dw 0x477D ; 874 .dw 0x477E ; 875 .dw 0x477F ; 876 .dw 0x4780 ; 877 .dw 0x4781 ; 878 .dw 0x4782 ; 879 .dw 0x4783 ; 880 .dw 0x4784 ; 881 .dw 0x4785 ; 882 .dw 0x4786 ; 883 .dw 0x4787 ; 884 .dw 0x4788 ; 885 .dw 0x4789 ; 886 .dw 0x478A ; 887 .dw 0x478B ; 888 .dw 0x478C ; 889 .dw 0x478D ; 890 .dw 0x478E ; 891 .dw 0x478F ; 892 .dw 0x4790 ; 893 .dw 0x4791 ; 894 .dw 0x4792 ; 895 .dw 0x4793 ; 896 .dw 0x4794 ; 897 .dw 0x4795 ; 898 .dw 0x4796 ; 899 .dw 0x4797 ; 900 .dw 0x4798 ; 901 .dw 0x4799 ; 902 .dw 0x479A ; 903 .dw 0x479B ; 904 .dw 0x479C ; 905 .dw 0x479D ; 906 .dw 0x479E ; 907 .dw 0x479F ; 908 .dw 0x47A0 ; 909 .dw 0x47A1 ; 910 .dw 0x47A2 ; 911 .dw 0x47A3 ; 912 .dw 0x47A4 ; 913 .dw 0x47A5 ; 914 .dw 0x47A6 ; 915 .dw 0x47A7 ; 916 .dw 0x47A8 ; 917 .dw 0x47A9 ; 918 .dw 0x47AA ; 919 .dw 0x47AB ; 920 .dw 0x47AC ; 921 .dw 0x47AD ; 922 .dw 0x47AE ; 923 .dw 0x47AF ; 924 .dw 0x47B0 ; 925 .dw 0x47B1 ; 926 .dw 0x47B2 ; 927 .dw 0x47B3 ; 928 .dw 0x47B4 ; 929 .dw 0x47B5 ; 930 .dw 0x47B6 ; 931 .dw 0x47B7 ; 932 .dw 0x47B8 ; 933 .dw 0x47B9 ; 934 .dw 0x47BA ; 935 .dw 0x47BB ; 936 .dw 0x47BC ; 937 .dw 0x47BD ; 938 .dw 0x47BE ; 939 .dw 0x47BF ; 940 .dw 0x47C0 ; 941 .dw 0x47C1 ; 942 .dw 0x47C2 ; 943 .dw 0x47C3 ; 944 .dw 0x47C4 ; 945 .dw 0x47C5 ; 946 .dw 0x47C6 ; 947 .dw 0x47C7 ; 948 .dw 0x47C8 ; 949 .dw 0x47C9 ; 950 .dw 0x47CA ; 951 .dw 0x47CB ; 952 .dw 0x47CC ; 953 .dw 0x47CD ; 954 .dw 0x47CE ; 955 .dw 0x47CF ; 956 .dw 0x47D0 ; 957 .dw 0x47D1 ; 958 .dw 0x47D2 ; 959 .dw 0x47D3 ; 960 .dw 0x47D4 ; 961 .dw 0x47D5 ; 962 .dw 0x47D6 ; 963 .dw 0x47D7 ; 964 .dw 0x47D8 ; 965 .dw 0x47D9 ; 966 .dw 0x47DA ; 967 .dw 0x47DB ; 968 .dw 0x47DC ; 969 .dw 0x47DD ; 970 .dw 0x47DE ; 971 .dw 0x47DF ; 972 .dw 0x47E0 ; 973 .dw 0x47E1 ; 974 .dw 0x47E2 ; 975 .dw 0x47E3 ; 976 .dw 0x47E4 ; 977 .dw 0x47E5 ; 978 .dw 0x47E6 ; 979 .dw 0x47E7 ; 980 .dw 0x47E8 ; 981 .dw 0x47E9 ; 982 .dw 0x47EA ; 983 .dw 0x47EB ; 984 .dw 0x47EC ; 985 .dw 0x47ED ; 986 .dw 0x47EE ; 987 .dw 0x47EF ; 988 .dw 0x47F0 ; 989 .dw 0x47F1 ; 990 .dw 0x47F2 ; 991 .dw 0x47F3 ; 992 .dw 0x47F4 ; 993 .dw 0x47F5 ; 994 .dw 0x47F6 ; 995 .dw 0x47F7 ; 996 .dw 0x47F8 ; 997 .dw 0x47F9 ; 998 .dw 0x47FA ; 999 .dw 0x47FB ; 1000 .dw 0x47FC ; 1001 .dw 0x47FD ; 1002 .dw 0x47FE ; 1003 .dw 0x47FF ; 1004 1005CHECK_INIT_DEF(p0); //CHECK_INIT(p0, 0xFF7FFFFC); 1006 // Xhandler counts all EXCAUSE = 0x21; 1007CHECKREG(r5, 830); // count of all 16 bit UI's. 1008 1009END: 1010dbg_pass; // End the test 1011 1012//********************************************************************* 1013 1014// 1015// Handlers for Events 1016// 1017 1018NHANDLE: // NMI Handler 2 1019RTN; 1020 1021XHANDLE: // Exception Handler 3 1022 // 16 bit illegal opcode handler - skips bad instruction 1023 1024 [ -- SP ] = ASTAT; // save what we damage 1025 [ -- SP ] = ( R7:6 ); 1026 R7 = SEQSTAT; 1027 R7 <<= 26; 1028 R7 >>= 26; // only want EXCAUSE 1029 R6 = 0x21; // EXCAUSE 0x21 means I-Fetch Undefined Instruction 1030CC = r7 == r6; 1031IF CC JUMP UNDEFINEDINSTRUCTION; // If EXCAUSE != 0x21 then leave 1032 1033JUMP.S OUT; // if the EXCAUSE is wrong the test will infinite loop 1034 1035UNDEFINEDINSTRUCTION: 1036 R7 = RETX; // Fix up return address 1037 1038 R7 += 2; // skip offending 16 bit instruction 1039 1040RETX = r7; // and put back in RETX 1041 1042 R5 += 1; // Increment global counter 1043 1044OUT: 1045 ( R7:6 ) = [ SP ++ ]; 1046ASTAT = [sp++]; 1047 1048RTX; 1049 1050HWHANDLE: // HW Error Handler 5 1051RTI; 1052 1053THANDLE: // Timer Handler 6 1054RTI; 1055 1056I7HANDLE: // IVG 7 Handler 1057RTI; 1058 1059I8HANDLE: // IVG 8 Handler 1060RTI; 1061 1062I9HANDLE: // IVG 9 Handler 1063RTI; 1064 1065I10HANDLE: // IVG 10 Handler 1066RTI; 1067 1068I11HANDLE: // IVG 11 Handler 1069RTI; 1070 1071I12HANDLE: // IVG 12 Handler 1072RTI; 1073 1074I13HANDLE: // IVG 13 Handler 1075RTI; 1076 1077I14HANDLE: // IVG 14 Handler 1078RTI; 1079 1080I15HANDLE: // IVG 15 Handler 1081RTI; 1082 1083 1084 // padding for the icache 1085 1086EXCPT 0; EXCPT 0; EXCPT 0; EXCPT 0; EXCPT 0; EXCPT 0; EXCPT 0; 1087 1088// 1089// Data Segment 1090// 1091 1092.data 1093DATA: 1094 .space (0x10); 1095 1096// Stack Segments (Both Kernel and User) 1097 1098 .space (STACKSIZE); 1099KSTACK: 1100 1101 .space (STACKSIZE); 1102USTACK: 1103