1 /* Machine generated by decgen.c */ 2 3 #include "lib9.h" 4 #include "isa.h" 5 #include "interp.h" 6 7 #define DIND(reg, xxx) (uchar*)((*(ulong*)(R.reg+R.PC->xxx.i.f))+R.PC->xxx.i.s) 8 static void 9 D00(void) 10 { 11 R.s = R.MP+R.PC->s.ind; 12 R.d = R.MP+R.PC->d.ind; 13 R.m = R.d; 14 } 15 static void 16 D01(void) 17 { 18 R.s = R.MP+R.PC->s.ind; 19 R.d = R.FP+R.PC->d.ind; 20 R.m = R.d; 21 } 22 static void 23 D02(void) 24 { 25 R.s = R.MP+R.PC->s.ind; 26 R.d = (uchar*)&R.PC->d.imm; 27 R.m = R.d; 28 } 29 static void 30 D03(void) 31 { 32 R.s = R.MP+R.PC->s.ind; 33 } 34 static void 35 D04(void) 36 { 37 R.s = R.MP+R.PC->s.ind; 38 R.d = DIND(MP, d); 39 R.m = R.d; 40 } 41 static void 42 D05(void) 43 { 44 R.s = R.MP+R.PC->s.ind; 45 R.d = DIND(FP, d); 46 R.m = R.d; 47 } 48 static void 49 D06(void) 50 { 51 R.s = R.MP+R.PC->s.ind; 52 } 53 static void 54 D07(void) 55 { 56 R.s = R.MP+R.PC->s.ind; 57 } 58 static void 59 D08(void) 60 { 61 R.s = R.FP+R.PC->s.ind; 62 R.d = R.MP+R.PC->d.ind; 63 R.m = R.d; 64 } 65 static void 66 D09(void) 67 { 68 R.s = R.FP+R.PC->s.ind; 69 R.d = R.FP+R.PC->d.ind; 70 R.m = R.d; 71 } 72 static void 73 D0A(void) 74 { 75 R.s = R.FP+R.PC->s.ind; 76 R.d = (uchar*)&R.PC->d.imm; 77 R.m = R.d; 78 } 79 static void 80 D0B(void) 81 { 82 R.s = R.FP+R.PC->s.ind; 83 } 84 static void 85 D0C(void) 86 { 87 R.s = R.FP+R.PC->s.ind; 88 R.d = DIND(MP, d); 89 R.m = R.d; 90 } 91 static void 92 D0D(void) 93 { 94 R.s = R.FP+R.PC->s.ind; 95 R.d = DIND(FP, d); 96 R.m = R.d; 97 } 98 static void 99 D0E(void) 100 { 101 R.s = R.FP+R.PC->s.ind; 102 } 103 static void 104 D0F(void) 105 { 106 R.s = R.FP+R.PC->s.ind; 107 } 108 static void 109 D10(void) 110 { 111 R.s = (uchar*)&R.PC->s.imm; 112 R.d = R.MP+R.PC->d.ind; 113 R.m = R.d; 114 } 115 static void 116 D11(void) 117 { 118 R.s = (uchar*)&R.PC->s.imm; 119 R.d = R.FP+R.PC->d.ind; 120 R.m = R.d; 121 } 122 static void 123 D12(void) 124 { 125 R.s = (uchar*)&R.PC->s.imm; 126 R.d = (uchar*)&R.PC->d.imm; 127 R.m = R.d; 128 } 129 static void 130 D13(void) 131 { 132 R.s = (uchar*)&R.PC->s.imm; 133 } 134 static void 135 D14(void) 136 { 137 R.s = (uchar*)&R.PC->s.imm; 138 R.d = DIND(MP, d); 139 R.m = R.d; 140 } 141 static void 142 D15(void) 143 { 144 R.s = (uchar*)&R.PC->s.imm; 145 R.d = DIND(FP, d); 146 R.m = R.d; 147 } 148 static void 149 D16(void) 150 { 151 R.s = (uchar*)&R.PC->s.imm; 152 } 153 static void 154 D17(void) 155 { 156 R.s = (uchar*)&R.PC->s.imm; 157 } 158 static void 159 D18(void) 160 { 161 R.d = R.MP+R.PC->d.ind; 162 R.m = R.d; 163 } 164 static void 165 D19(void) 166 { 167 R.d = R.FP+R.PC->d.ind; 168 R.m = R.d; 169 } 170 static void 171 D1A(void) 172 { 173 R.d = (uchar*)&R.PC->d.imm; 174 R.m = R.d; 175 } 176 static void 177 D1B(void) 178 { 179 } 180 static void 181 D1C(void) 182 { 183 R.d = DIND(MP, d); 184 R.m = R.d; 185 } 186 static void 187 D1D(void) 188 { 189 R.d = DIND(FP, d); 190 R.m = R.d; 191 } 192 static void 193 D1E(void) 194 { 195 } 196 static void 197 D1F(void) 198 { 199 } 200 static void 201 D20(void) 202 { 203 R.s = DIND(MP, s); 204 R.d = R.MP+R.PC->d.ind; 205 R.m = R.d; 206 } 207 static void 208 D21(void) 209 { 210 R.s = DIND(MP, s); 211 R.d = R.FP+R.PC->d.ind; 212 R.m = R.d; 213 } 214 static void 215 D22(void) 216 { 217 R.s = DIND(MP, s); 218 R.d = (uchar*)&R.PC->d.imm; 219 R.m = R.d; 220 } 221 static void 222 D23(void) 223 { 224 R.s = DIND(MP, s); 225 } 226 static void 227 D24(void) 228 { 229 R.s = DIND(MP, s); 230 R.d = DIND(MP, d); 231 R.m = R.d; 232 } 233 static void 234 D25(void) 235 { 236 R.s = DIND(MP, s); 237 R.d = DIND(FP, d); 238 R.m = R.d; 239 } 240 static void 241 D26(void) 242 { 243 R.s = DIND(MP, s); 244 } 245 static void 246 D27(void) 247 { 248 R.s = DIND(MP, s); 249 } 250 static void 251 D28(void) 252 { 253 R.s = DIND(FP, s); 254 R.d = R.MP+R.PC->d.ind; 255 R.m = R.d; 256 } 257 static void 258 D29(void) 259 { 260 R.s = DIND(FP, s); 261 R.d = R.FP+R.PC->d.ind; 262 R.m = R.d; 263 } 264 static void 265 D2A(void) 266 { 267 R.s = DIND(FP, s); 268 R.d = (uchar*)&R.PC->d.imm; 269 R.m = R.d; 270 } 271 static void 272 D2B(void) 273 { 274 R.s = DIND(FP, s); 275 } 276 static void 277 D2C(void) 278 { 279 R.s = DIND(FP, s); 280 R.d = DIND(MP, d); 281 R.m = R.d; 282 } 283 static void 284 D2D(void) 285 { 286 R.s = DIND(FP, s); 287 R.d = DIND(FP, d); 288 R.m = R.d; 289 } 290 static void 291 D2E(void) 292 { 293 R.s = DIND(FP, s); 294 } 295 static void 296 D2F(void) 297 { 298 R.s = DIND(FP, s); 299 } 300 static void 301 D30(void) 302 { 303 R.d = R.MP+R.PC->d.ind; 304 R.m = R.d; 305 } 306 static void 307 D31(void) 308 { 309 R.d = R.FP+R.PC->d.ind; 310 R.m = R.d; 311 } 312 static void 313 D32(void) 314 { 315 R.d = (uchar*)&R.PC->d.imm; 316 R.m = R.d; 317 } 318 static void 319 D33(void) 320 { 321 } 322 static void 323 D34(void) 324 { 325 R.d = DIND(MP, d); 326 R.m = R.d; 327 } 328 static void 329 D35(void) 330 { 331 R.d = DIND(FP, d); 332 R.m = R.d; 333 } 334 static void 335 D36(void) 336 { 337 } 338 static void 339 D37(void) 340 { 341 } 342 static void 343 D38(void) 344 { 345 R.d = R.MP+R.PC->d.ind; 346 R.m = R.d; 347 } 348 static void 349 D39(void) 350 { 351 R.d = R.FP+R.PC->d.ind; 352 R.m = R.d; 353 } 354 static void 355 D3A(void) 356 { 357 R.d = (uchar*)&R.PC->d.imm; 358 R.m = R.d; 359 } 360 static void 361 D3B(void) 362 { 363 } 364 static void 365 D3C(void) 366 { 367 R.d = DIND(MP, d); 368 R.m = R.d; 369 } 370 static void 371 D3D(void) 372 { 373 R.d = DIND(FP, d); 374 R.m = R.d; 375 } 376 static void 377 D3E(void) 378 { 379 } 380 static void 381 D3F(void) 382 { 383 } 384 static void 385 D40(void) 386 { 387 R.s = R.MP+R.PC->s.ind; 388 R.d = R.MP+R.PC->d.ind; 389 R.t = (short)R.PC->reg; 390 R.m = &R.t; 391 } 392 static void 393 D41(void) 394 { 395 R.s = R.MP+R.PC->s.ind; 396 R.d = R.FP+R.PC->d.ind; 397 R.t = (short)R.PC->reg; 398 R.m = &R.t; 399 } 400 static void 401 D42(void) 402 { 403 R.s = R.MP+R.PC->s.ind; 404 R.d = (uchar*)&R.PC->d.imm; 405 R.t = (short)R.PC->reg; 406 R.m = &R.t; 407 } 408 static void 409 D43(void) 410 { 411 R.s = R.MP+R.PC->s.ind; 412 } 413 static void 414 D44(void) 415 { 416 R.s = R.MP+R.PC->s.ind; 417 R.d = DIND(MP, d); 418 R.t = (short)R.PC->reg; 419 R.m = &R.t; 420 } 421 static void 422 D45(void) 423 { 424 R.s = R.MP+R.PC->s.ind; 425 R.d = DIND(FP, d); 426 R.t = (short)R.PC->reg; 427 R.m = &R.t; 428 } 429 static void 430 D46(void) 431 { 432 R.s = R.MP+R.PC->s.ind; 433 } 434 static void 435 D47(void) 436 { 437 R.s = R.MP+R.PC->s.ind; 438 } 439 static void 440 D48(void) 441 { 442 R.s = R.FP+R.PC->s.ind; 443 R.d = R.MP+R.PC->d.ind; 444 R.t = (short)R.PC->reg; 445 R.m = &R.t; 446 } 447 static void 448 D49(void) 449 { 450 R.s = R.FP+R.PC->s.ind; 451 R.d = R.FP+R.PC->d.ind; 452 R.t = (short)R.PC->reg; 453 R.m = &R.t; 454 } 455 static void 456 D4A(void) 457 { 458 R.s = R.FP+R.PC->s.ind; 459 R.d = (uchar*)&R.PC->d.imm; 460 R.t = (short)R.PC->reg; 461 R.m = &R.t; 462 } 463 static void 464 D4B(void) 465 { 466 R.s = R.FP+R.PC->s.ind; 467 } 468 static void 469 D4C(void) 470 { 471 R.s = R.FP+R.PC->s.ind; 472 R.d = DIND(MP, d); 473 R.t = (short)R.PC->reg; 474 R.m = &R.t; 475 } 476 static void 477 D4D(void) 478 { 479 R.s = R.FP+R.PC->s.ind; 480 R.d = DIND(FP, d); 481 R.t = (short)R.PC->reg; 482 R.m = &R.t; 483 } 484 static void 485 D4E(void) 486 { 487 R.s = R.FP+R.PC->s.ind; 488 } 489 static void 490 D4F(void) 491 { 492 R.s = R.FP+R.PC->s.ind; 493 } 494 static void 495 D50(void) 496 { 497 R.s = (uchar*)&R.PC->s.imm; 498 R.d = R.MP+R.PC->d.ind; 499 R.t = (short)R.PC->reg; 500 R.m = &R.t; 501 } 502 static void 503 D51(void) 504 { 505 R.s = (uchar*)&R.PC->s.imm; 506 R.d = R.FP+R.PC->d.ind; 507 R.t = (short)R.PC->reg; 508 R.m = &R.t; 509 } 510 static void 511 D52(void) 512 { 513 R.s = (uchar*)&R.PC->s.imm; 514 R.d = (uchar*)&R.PC->d.imm; 515 R.t = (short)R.PC->reg; 516 R.m = &R.t; 517 } 518 static void 519 D53(void) 520 { 521 R.s = (uchar*)&R.PC->s.imm; 522 } 523 static void 524 D54(void) 525 { 526 R.s = (uchar*)&R.PC->s.imm; 527 R.d = DIND(MP, d); 528 R.t = (short)R.PC->reg; 529 R.m = &R.t; 530 } 531 static void 532 D55(void) 533 { 534 R.s = (uchar*)&R.PC->s.imm; 535 R.d = DIND(FP, d); 536 R.t = (short)R.PC->reg; 537 R.m = &R.t; 538 } 539 static void 540 D56(void) 541 { 542 R.s = (uchar*)&R.PC->s.imm; 543 } 544 static void 545 D57(void) 546 { 547 R.s = (uchar*)&R.PC->s.imm; 548 } 549 static void 550 D58(void) 551 { 552 R.d = R.MP+R.PC->d.ind; 553 R.t = (short)R.PC->reg; 554 R.m = &R.t; 555 } 556 static void 557 D59(void) 558 { 559 R.d = R.FP+R.PC->d.ind; 560 R.t = (short)R.PC->reg; 561 R.m = &R.t; 562 } 563 static void 564 D5A(void) 565 { 566 R.d = (uchar*)&R.PC->d.imm; 567 R.t = (short)R.PC->reg; 568 R.m = &R.t; 569 } 570 static void 571 D5B(void) 572 { 573 } 574 static void 575 D5C(void) 576 { 577 R.d = DIND(MP, d); 578 R.t = (short)R.PC->reg; 579 R.m = &R.t; 580 } 581 static void 582 D5D(void) 583 { 584 R.d = DIND(FP, d); 585 R.t = (short)R.PC->reg; 586 R.m = &R.t; 587 } 588 static void 589 D5E(void) 590 { 591 } 592 static void 593 D5F(void) 594 { 595 } 596 static void 597 D60(void) 598 { 599 R.s = DIND(MP, s); 600 R.d = R.MP+R.PC->d.ind; 601 R.t = (short)R.PC->reg; 602 R.m = &R.t; 603 } 604 static void 605 D61(void) 606 { 607 R.s = DIND(MP, s); 608 R.d = R.FP+R.PC->d.ind; 609 R.t = (short)R.PC->reg; 610 R.m = &R.t; 611 } 612 static void 613 D62(void) 614 { 615 R.s = DIND(MP, s); 616 R.d = (uchar*)&R.PC->d.imm; 617 R.t = (short)R.PC->reg; 618 R.m = &R.t; 619 } 620 static void 621 D63(void) 622 { 623 R.s = DIND(MP, s); 624 } 625 static void 626 D64(void) 627 { 628 R.s = DIND(MP, s); 629 R.d = DIND(MP, d); 630 R.t = (short)R.PC->reg; 631 R.m = &R.t; 632 } 633 static void 634 D65(void) 635 { 636 R.s = DIND(MP, s); 637 R.d = DIND(FP, d); 638 R.t = (short)R.PC->reg; 639 R.m = &R.t; 640 } 641 static void 642 D66(void) 643 { 644 R.s = DIND(MP, s); 645 } 646 static void 647 D67(void) 648 { 649 R.s = DIND(MP, s); 650 } 651 static void 652 D68(void) 653 { 654 R.s = DIND(FP, s); 655 R.d = R.MP+R.PC->d.ind; 656 R.t = (short)R.PC->reg; 657 R.m = &R.t; 658 } 659 static void 660 D69(void) 661 { 662 R.s = DIND(FP, s); 663 R.d = R.FP+R.PC->d.ind; 664 R.t = (short)R.PC->reg; 665 R.m = &R.t; 666 } 667 static void 668 D6A(void) 669 { 670 R.s = DIND(FP, s); 671 R.d = (uchar*)&R.PC->d.imm; 672 R.t = (short)R.PC->reg; 673 R.m = &R.t; 674 } 675 static void 676 D6B(void) 677 { 678 R.s = DIND(FP, s); 679 } 680 static void 681 D6C(void) 682 { 683 R.s = DIND(FP, s); 684 R.d = DIND(MP, d); 685 R.t = (short)R.PC->reg; 686 R.m = &R.t; 687 } 688 static void 689 D6D(void) 690 { 691 R.s = DIND(FP, s); 692 R.d = DIND(FP, d); 693 R.t = (short)R.PC->reg; 694 R.m = &R.t; 695 } 696 static void 697 D6E(void) 698 { 699 R.s = DIND(FP, s); 700 } 701 static void 702 D6F(void) 703 { 704 R.s = DIND(FP, s); 705 } 706 static void 707 D70(void) 708 { 709 R.d = R.MP+R.PC->d.ind; 710 R.t = (short)R.PC->reg; 711 R.m = &R.t; 712 } 713 static void 714 D71(void) 715 { 716 R.d = R.FP+R.PC->d.ind; 717 R.t = (short)R.PC->reg; 718 R.m = &R.t; 719 } 720 static void 721 D72(void) 722 { 723 R.d = (uchar*)&R.PC->d.imm; 724 R.t = (short)R.PC->reg; 725 R.m = &R.t; 726 } 727 static void 728 D73(void) 729 { 730 } 731 static void 732 D74(void) 733 { 734 R.d = DIND(MP, d); 735 R.t = (short)R.PC->reg; 736 R.m = &R.t; 737 } 738 static void 739 D75(void) 740 { 741 R.d = DIND(FP, d); 742 R.t = (short)R.PC->reg; 743 R.m = &R.t; 744 } 745 static void 746 D76(void) 747 { 748 } 749 static void 750 D77(void) 751 { 752 } 753 static void 754 D78(void) 755 { 756 R.d = R.MP+R.PC->d.ind; 757 R.t = (short)R.PC->reg; 758 R.m = &R.t; 759 } 760 static void 761 D79(void) 762 { 763 R.d = R.FP+R.PC->d.ind; 764 R.t = (short)R.PC->reg; 765 R.m = &R.t; 766 } 767 static void 768 D7A(void) 769 { 770 R.d = (uchar*)&R.PC->d.imm; 771 R.t = (short)R.PC->reg; 772 R.m = &R.t; 773 } 774 static void 775 D7B(void) 776 { 777 } 778 static void 779 D7C(void) 780 { 781 R.d = DIND(MP, d); 782 R.t = (short)R.PC->reg; 783 R.m = &R.t; 784 } 785 static void 786 D7D(void) 787 { 788 R.d = DIND(FP, d); 789 R.t = (short)R.PC->reg; 790 R.m = &R.t; 791 } 792 static void 793 D7E(void) 794 { 795 } 796 static void 797 D7F(void) 798 { 799 } 800 static void 801 D80(void) 802 { 803 R.s = R.MP+R.PC->s.ind; 804 R.d = R.MP+R.PC->d.ind; 805 R.m = R.FP+R.PC->reg; 806 } 807 static void 808 D81(void) 809 { 810 R.s = R.MP+R.PC->s.ind; 811 R.d = R.FP+R.PC->d.ind; 812 R.m = R.FP+R.PC->reg; 813 } 814 static void 815 D82(void) 816 { 817 R.s = R.MP+R.PC->s.ind; 818 R.d = (uchar*)&R.PC->d.imm; 819 R.m = R.FP+R.PC->reg; 820 } 821 static void 822 D83(void) 823 { 824 R.s = R.MP+R.PC->s.ind; 825 } 826 static void 827 D84(void) 828 { 829 R.s = R.MP+R.PC->s.ind; 830 R.d = DIND(MP, d); 831 R.m = R.FP+R.PC->reg; 832 } 833 static void 834 D85(void) 835 { 836 R.s = R.MP+R.PC->s.ind; 837 R.d = DIND(FP, d); 838 R.m = R.FP+R.PC->reg; 839 } 840 static void 841 D86(void) 842 { 843 R.s = R.MP+R.PC->s.ind; 844 } 845 static void 846 D87(void) 847 { 848 R.s = R.MP+R.PC->s.ind; 849 } 850 static void 851 D88(void) 852 { 853 R.s = R.FP+R.PC->s.ind; 854 R.d = R.MP+R.PC->d.ind; 855 R.m = R.FP+R.PC->reg; 856 } 857 static void 858 D89(void) 859 { 860 R.s = R.FP+R.PC->s.ind; 861 R.d = R.FP+R.PC->d.ind; 862 R.m = R.FP+R.PC->reg; 863 } 864 static void 865 D8A(void) 866 { 867 R.s = R.FP+R.PC->s.ind; 868 R.d = (uchar*)&R.PC->d.imm; 869 R.m = R.FP+R.PC->reg; 870 } 871 static void 872 D8B(void) 873 { 874 R.s = R.FP+R.PC->s.ind; 875 } 876 static void 877 D8C(void) 878 { 879 R.s = R.FP+R.PC->s.ind; 880 R.d = DIND(MP, d); 881 R.m = R.FP+R.PC->reg; 882 } 883 static void 884 D8D(void) 885 { 886 R.s = R.FP+R.PC->s.ind; 887 R.d = DIND(FP, d); 888 R.m = R.FP+R.PC->reg; 889 } 890 static void 891 D8E(void) 892 { 893 R.s = R.FP+R.PC->s.ind; 894 } 895 static void 896 D8F(void) 897 { 898 R.s = R.FP+R.PC->s.ind; 899 } 900 static void 901 D90(void) 902 { 903 R.s = (uchar*)&R.PC->s.imm; 904 R.d = R.MP+R.PC->d.ind; 905 R.m = R.FP+R.PC->reg; 906 } 907 static void 908 D91(void) 909 { 910 R.s = (uchar*)&R.PC->s.imm; 911 R.d = R.FP+R.PC->d.ind; 912 R.m = R.FP+R.PC->reg; 913 } 914 static void 915 D92(void) 916 { 917 R.s = (uchar*)&R.PC->s.imm; 918 R.d = (uchar*)&R.PC->d.imm; 919 R.m = R.FP+R.PC->reg; 920 } 921 static void 922 D93(void) 923 { 924 R.s = (uchar*)&R.PC->s.imm; 925 } 926 static void 927 D94(void) 928 { 929 R.s = (uchar*)&R.PC->s.imm; 930 R.d = DIND(MP, d); 931 R.m = R.FP+R.PC->reg; 932 } 933 static void 934 D95(void) 935 { 936 R.s = (uchar*)&R.PC->s.imm; 937 R.d = DIND(FP, d); 938 R.m = R.FP+R.PC->reg; 939 } 940 static void 941 D96(void) 942 { 943 R.s = (uchar*)&R.PC->s.imm; 944 } 945 static void 946 D97(void) 947 { 948 R.s = (uchar*)&R.PC->s.imm; 949 } 950 static void 951 D98(void) 952 { 953 R.d = R.MP+R.PC->d.ind; 954 R.m = R.FP+R.PC->reg; 955 } 956 static void 957 D99(void) 958 { 959 R.d = R.FP+R.PC->d.ind; 960 R.m = R.FP+R.PC->reg; 961 } 962 static void 963 D9A(void) 964 { 965 R.d = (uchar*)&R.PC->d.imm; 966 R.m = R.FP+R.PC->reg; 967 } 968 static void 969 D9B(void) 970 { 971 } 972 static void 973 D9C(void) 974 { 975 R.d = DIND(MP, d); 976 R.m = R.FP+R.PC->reg; 977 } 978 static void 979 D9D(void) 980 { 981 R.d = DIND(FP, d); 982 R.m = R.FP+R.PC->reg; 983 } 984 static void 985 D9E(void) 986 { 987 } 988 static void 989 D9F(void) 990 { 991 } 992 static void 993 DA0(void) 994 { 995 R.s = DIND(MP, s); 996 R.d = R.MP+R.PC->d.ind; 997 R.m = R.FP+R.PC->reg; 998 } 999 static void 1000 DA1(void) 1001 { 1002 R.s = DIND(MP, s); 1003 R.d = R.FP+R.PC->d.ind; 1004 R.m = R.FP+R.PC->reg; 1005 } 1006 static void 1007 DA2(void) 1008 { 1009 R.s = DIND(MP, s); 1010 R.d = (uchar*)&R.PC->d.imm; 1011 R.m = R.FP+R.PC->reg; 1012 } 1013 static void 1014 DA3(void) 1015 { 1016 R.s = DIND(MP, s); 1017 } 1018 static void 1019 DA4(void) 1020 { 1021 R.s = DIND(MP, s); 1022 R.d = DIND(MP, d); 1023 R.m = R.FP+R.PC->reg; 1024 } 1025 static void 1026 DA5(void) 1027 { 1028 R.s = DIND(MP, s); 1029 R.d = DIND(FP, d); 1030 R.m = R.FP+R.PC->reg; 1031 } 1032 static void 1033 DA6(void) 1034 { 1035 R.s = DIND(MP, s); 1036 } 1037 static void 1038 DA7(void) 1039 { 1040 R.s = DIND(MP, s); 1041 } 1042 static void 1043 DA8(void) 1044 { 1045 R.s = DIND(FP, s); 1046 R.d = R.MP+R.PC->d.ind; 1047 R.m = R.FP+R.PC->reg; 1048 } 1049 static void 1050 DA9(void) 1051 { 1052 R.s = DIND(FP, s); 1053 R.d = R.FP+R.PC->d.ind; 1054 R.m = R.FP+R.PC->reg; 1055 } 1056 static void 1057 DAA(void) 1058 { 1059 R.s = DIND(FP, s); 1060 R.d = (uchar*)&R.PC->d.imm; 1061 R.m = R.FP+R.PC->reg; 1062 } 1063 static void 1064 DAB(void) 1065 { 1066 R.s = DIND(FP, s); 1067 } 1068 static void 1069 DAC(void) 1070 { 1071 R.s = DIND(FP, s); 1072 R.d = DIND(MP, d); 1073 R.m = R.FP+R.PC->reg; 1074 } 1075 static void 1076 DAD(void) 1077 { 1078 R.s = DIND(FP, s); 1079 R.d = DIND(FP, d); 1080 R.m = R.FP+R.PC->reg; 1081 } 1082 static void 1083 DAE(void) 1084 { 1085 R.s = DIND(FP, s); 1086 } 1087 static void 1088 DAF(void) 1089 { 1090 R.s = DIND(FP, s); 1091 } 1092 static void 1093 DB0(void) 1094 { 1095 R.d = R.MP+R.PC->d.ind; 1096 R.m = R.FP+R.PC->reg; 1097 } 1098 static void 1099 DB1(void) 1100 { 1101 R.d = R.FP+R.PC->d.ind; 1102 R.m = R.FP+R.PC->reg; 1103 } 1104 static void 1105 DB2(void) 1106 { 1107 R.d = (uchar*)&R.PC->d.imm; 1108 R.m = R.FP+R.PC->reg; 1109 } 1110 static void 1111 DB3(void) 1112 { 1113 } 1114 static void 1115 DB4(void) 1116 { 1117 R.d = DIND(MP, d); 1118 R.m = R.FP+R.PC->reg; 1119 } 1120 static void 1121 DB5(void) 1122 { 1123 R.d = DIND(FP, d); 1124 R.m = R.FP+R.PC->reg; 1125 } 1126 static void 1127 DB6(void) 1128 { 1129 } 1130 static void 1131 DB7(void) 1132 { 1133 } 1134 static void 1135 DB8(void) 1136 { 1137 R.d = R.MP+R.PC->d.ind; 1138 R.m = R.FP+R.PC->reg; 1139 } 1140 static void 1141 DB9(void) 1142 { 1143 R.d = R.FP+R.PC->d.ind; 1144 R.m = R.FP+R.PC->reg; 1145 } 1146 static void 1147 DBA(void) 1148 { 1149 R.d = (uchar*)&R.PC->d.imm; 1150 R.m = R.FP+R.PC->reg; 1151 } 1152 static void 1153 DBB(void) 1154 { 1155 } 1156 static void 1157 DBC(void) 1158 { 1159 R.d = DIND(MP, d); 1160 R.m = R.FP+R.PC->reg; 1161 } 1162 static void 1163 DBD(void) 1164 { 1165 R.d = DIND(FP, d); 1166 R.m = R.FP+R.PC->reg; 1167 } 1168 static void 1169 DBE(void) 1170 { 1171 } 1172 static void 1173 DBF(void) 1174 { 1175 } 1176 static void 1177 DC0(void) 1178 { 1179 R.s = R.MP+R.PC->s.ind; 1180 R.d = R.MP+R.PC->d.ind; 1181 R.m = R.MP+R.PC->reg; 1182 } 1183 static void 1184 DC1(void) 1185 { 1186 R.s = R.MP+R.PC->s.ind; 1187 R.d = R.FP+R.PC->d.ind; 1188 R.m = R.MP+R.PC->reg; 1189 } 1190 static void 1191 DC2(void) 1192 { 1193 R.s = R.MP+R.PC->s.ind; 1194 R.d = (uchar*)&R.PC->d.imm; 1195 R.m = R.MP+R.PC->reg; 1196 } 1197 static void 1198 DC3(void) 1199 { 1200 R.s = R.MP+R.PC->s.ind; 1201 } 1202 static void 1203 DC4(void) 1204 { 1205 R.s = R.MP+R.PC->s.ind; 1206 R.d = DIND(MP, d); 1207 R.m = R.MP+R.PC->reg; 1208 } 1209 static void 1210 DC5(void) 1211 { 1212 R.s = R.MP+R.PC->s.ind; 1213 R.d = DIND(FP, d); 1214 R.m = R.MP+R.PC->reg; 1215 } 1216 static void 1217 DC6(void) 1218 { 1219 R.s = R.MP+R.PC->s.ind; 1220 } 1221 static void 1222 DC7(void) 1223 { 1224 R.s = R.MP+R.PC->s.ind; 1225 } 1226 static void 1227 DC8(void) 1228 { 1229 R.s = R.FP+R.PC->s.ind; 1230 R.d = R.MP+R.PC->d.ind; 1231 R.m = R.MP+R.PC->reg; 1232 } 1233 static void 1234 DC9(void) 1235 { 1236 R.s = R.FP+R.PC->s.ind; 1237 R.d = R.FP+R.PC->d.ind; 1238 R.m = R.MP+R.PC->reg; 1239 } 1240 static void 1241 DCA(void) 1242 { 1243 R.s = R.FP+R.PC->s.ind; 1244 R.d = (uchar*)&R.PC->d.imm; 1245 R.m = R.MP+R.PC->reg; 1246 } 1247 static void 1248 DCB(void) 1249 { 1250 R.s = R.FP+R.PC->s.ind; 1251 } 1252 static void 1253 DCC(void) 1254 { 1255 R.s = R.FP+R.PC->s.ind; 1256 R.d = DIND(MP, d); 1257 R.m = R.MP+R.PC->reg; 1258 } 1259 static void 1260 DCD(void) 1261 { 1262 R.s = R.FP+R.PC->s.ind; 1263 R.d = DIND(FP, d); 1264 R.m = R.MP+R.PC->reg; 1265 } 1266 static void 1267 DCE(void) 1268 { 1269 R.s = R.FP+R.PC->s.ind; 1270 } 1271 static void 1272 DCF(void) 1273 { 1274 R.s = R.FP+R.PC->s.ind; 1275 } 1276 static void 1277 DD0(void) 1278 { 1279 R.s = (uchar*)&R.PC->s.imm; 1280 R.d = R.MP+R.PC->d.ind; 1281 R.m = R.MP+R.PC->reg; 1282 } 1283 static void 1284 DD1(void) 1285 { 1286 R.s = (uchar*)&R.PC->s.imm; 1287 R.d = R.FP+R.PC->d.ind; 1288 R.m = R.MP+R.PC->reg; 1289 } 1290 static void 1291 DD2(void) 1292 { 1293 R.s = (uchar*)&R.PC->s.imm; 1294 R.d = (uchar*)&R.PC->d.imm; 1295 R.m = R.MP+R.PC->reg; 1296 } 1297 static void 1298 DD3(void) 1299 { 1300 R.s = (uchar*)&R.PC->s.imm; 1301 } 1302 static void 1303 DD4(void) 1304 { 1305 R.s = (uchar*)&R.PC->s.imm; 1306 R.d = DIND(MP, d); 1307 R.m = R.MP+R.PC->reg; 1308 } 1309 static void 1310 DD5(void) 1311 { 1312 R.s = (uchar*)&R.PC->s.imm; 1313 R.d = DIND(FP, d); 1314 R.m = R.MP+R.PC->reg; 1315 } 1316 static void 1317 DD6(void) 1318 { 1319 R.s = (uchar*)&R.PC->s.imm; 1320 } 1321 static void 1322 DD7(void) 1323 { 1324 R.s = (uchar*)&R.PC->s.imm; 1325 } 1326 static void 1327 DD8(void) 1328 { 1329 R.d = R.MP+R.PC->d.ind; 1330 R.m = R.MP+R.PC->reg; 1331 } 1332 static void 1333 DD9(void) 1334 { 1335 R.d = R.FP+R.PC->d.ind; 1336 R.m = R.MP+R.PC->reg; 1337 } 1338 static void 1339 DDA(void) 1340 { 1341 R.d = (uchar*)&R.PC->d.imm; 1342 R.m = R.MP+R.PC->reg; 1343 } 1344 static void 1345 DDB(void) 1346 { 1347 } 1348 static void 1349 DDC(void) 1350 { 1351 R.d = DIND(MP, d); 1352 R.m = R.MP+R.PC->reg; 1353 } 1354 static void 1355 DDD(void) 1356 { 1357 R.d = DIND(FP, d); 1358 R.m = R.MP+R.PC->reg; 1359 } 1360 static void 1361 DDE(void) 1362 { 1363 } 1364 static void 1365 DDF(void) 1366 { 1367 } 1368 static void 1369 DE0(void) 1370 { 1371 R.s = DIND(MP, s); 1372 R.d = R.MP+R.PC->d.ind; 1373 R.m = R.MP+R.PC->reg; 1374 } 1375 static void 1376 DE1(void) 1377 { 1378 R.s = DIND(MP, s); 1379 R.d = R.FP+R.PC->d.ind; 1380 R.m = R.MP+R.PC->reg; 1381 } 1382 static void 1383 DE2(void) 1384 { 1385 R.s = DIND(MP, s); 1386 R.d = (uchar*)&R.PC->d.imm; 1387 R.m = R.MP+R.PC->reg; 1388 } 1389 static void 1390 DE3(void) 1391 { 1392 R.s = DIND(MP, s); 1393 } 1394 static void 1395 DE4(void) 1396 { 1397 R.s = DIND(MP, s); 1398 R.d = DIND(MP, d); 1399 R.m = R.MP+R.PC->reg; 1400 } 1401 static void 1402 DE5(void) 1403 { 1404 R.s = DIND(MP, s); 1405 R.d = DIND(FP, d); 1406 R.m = R.MP+R.PC->reg; 1407 } 1408 static void 1409 DE6(void) 1410 { 1411 R.s = DIND(MP, s); 1412 } 1413 static void 1414 DE7(void) 1415 { 1416 R.s = DIND(MP, s); 1417 } 1418 static void 1419 DE8(void) 1420 { 1421 R.s = DIND(FP, s); 1422 R.d = R.MP+R.PC->d.ind; 1423 R.m = R.MP+R.PC->reg; 1424 } 1425 static void 1426 DE9(void) 1427 { 1428 R.s = DIND(FP, s); 1429 R.d = R.FP+R.PC->d.ind; 1430 R.m = R.MP+R.PC->reg; 1431 } 1432 static void 1433 DEA(void) 1434 { 1435 R.s = DIND(FP, s); 1436 R.d = (uchar*)&R.PC->d.imm; 1437 R.m = R.MP+R.PC->reg; 1438 } 1439 static void 1440 DEB(void) 1441 { 1442 R.s = DIND(FP, s); 1443 } 1444 static void 1445 DEC(void) 1446 { 1447 R.s = DIND(FP, s); 1448 R.d = DIND(MP, d); 1449 R.m = R.MP+R.PC->reg; 1450 } 1451 static void 1452 DED(void) 1453 { 1454 R.s = DIND(FP, s); 1455 R.d = DIND(FP, d); 1456 R.m = R.MP+R.PC->reg; 1457 } 1458 static void 1459 DEE(void) 1460 { 1461 R.s = DIND(FP, s); 1462 } 1463 static void 1464 DEF(void) 1465 { 1466 R.s = DIND(FP, s); 1467 } 1468 static void 1469 DF0(void) 1470 { 1471 R.d = R.MP+R.PC->d.ind; 1472 R.m = R.MP+R.PC->reg; 1473 } 1474 static void 1475 DF1(void) 1476 { 1477 R.d = R.FP+R.PC->d.ind; 1478 R.m = R.MP+R.PC->reg; 1479 } 1480 static void 1481 DF2(void) 1482 { 1483 R.d = (uchar*)&R.PC->d.imm; 1484 R.m = R.MP+R.PC->reg; 1485 } 1486 static void 1487 DF3(void) 1488 { 1489 } 1490 static void 1491 DF4(void) 1492 { 1493 R.d = DIND(MP, d); 1494 R.m = R.MP+R.PC->reg; 1495 } 1496 static void 1497 DF5(void) 1498 { 1499 R.d = DIND(FP, d); 1500 R.m = R.MP+R.PC->reg; 1501 } 1502 static void 1503 DF6(void) 1504 { 1505 } 1506 static void 1507 DF7(void) 1508 { 1509 } 1510 static void 1511 DF8(void) 1512 { 1513 R.d = R.MP+R.PC->d.ind; 1514 R.m = R.MP+R.PC->reg; 1515 } 1516 static void 1517 DF9(void) 1518 { 1519 R.d = R.FP+R.PC->d.ind; 1520 R.m = R.MP+R.PC->reg; 1521 } 1522 static void 1523 DFA(void) 1524 { 1525 R.d = (uchar*)&R.PC->d.imm; 1526 R.m = R.MP+R.PC->reg; 1527 } 1528 static void 1529 DFB(void) 1530 { 1531 } 1532 static void 1533 DFC(void) 1534 { 1535 R.d = DIND(MP, d); 1536 R.m = R.MP+R.PC->reg; 1537 } 1538 static void 1539 DFD(void) 1540 { 1541 R.d = DIND(FP, d); 1542 R.m = R.MP+R.PC->reg; 1543 } 1544 static void 1545 DFE(void) 1546 { 1547 } 1548 static void 1549 DFF(void) 1550 { 1551 } 1552 1553 void (*dec[])(void) = 1554 { 1555 D00, 1556 D01, 1557 D02, 1558 D03, 1559 D04, 1560 D05, 1561 D06, 1562 D07, 1563 D08, 1564 D09, 1565 D0A, 1566 D0B, 1567 D0C, 1568 D0D, 1569 D0E, 1570 D0F, 1571 D10, 1572 D11, 1573 D12, 1574 D13, 1575 D14, 1576 D15, 1577 D16, 1578 D17, 1579 D18, 1580 D19, 1581 D1A, 1582 D1B, 1583 D1C, 1584 D1D, 1585 D1E, 1586 D1F, 1587 D20, 1588 D21, 1589 D22, 1590 D23, 1591 D24, 1592 D25, 1593 D26, 1594 D27, 1595 D28, 1596 D29, 1597 D2A, 1598 D2B, 1599 D2C, 1600 D2D, 1601 D2E, 1602 D2F, 1603 D30, 1604 D31, 1605 D32, 1606 D33, 1607 D34, 1608 D35, 1609 D36, 1610 D37, 1611 D38, 1612 D39, 1613 D3A, 1614 D3B, 1615 D3C, 1616 D3D, 1617 D3E, 1618 D3F, 1619 D40, 1620 D41, 1621 D42, 1622 D43, 1623 D44, 1624 D45, 1625 D46, 1626 D47, 1627 D48, 1628 D49, 1629 D4A, 1630 D4B, 1631 D4C, 1632 D4D, 1633 D4E, 1634 D4F, 1635 D50, 1636 D51, 1637 D52, 1638 D53, 1639 D54, 1640 D55, 1641 D56, 1642 D57, 1643 D58, 1644 D59, 1645 D5A, 1646 D5B, 1647 D5C, 1648 D5D, 1649 D5E, 1650 D5F, 1651 D60, 1652 D61, 1653 D62, 1654 D63, 1655 D64, 1656 D65, 1657 D66, 1658 D67, 1659 D68, 1660 D69, 1661 D6A, 1662 D6B, 1663 D6C, 1664 D6D, 1665 D6E, 1666 D6F, 1667 D70, 1668 D71, 1669 D72, 1670 D73, 1671 D74, 1672 D75, 1673 D76, 1674 D77, 1675 D78, 1676 D79, 1677 D7A, 1678 D7B, 1679 D7C, 1680 D7D, 1681 D7E, 1682 D7F, 1683 D80, 1684 D81, 1685 D82, 1686 D83, 1687 D84, 1688 D85, 1689 D86, 1690 D87, 1691 D88, 1692 D89, 1693 D8A, 1694 D8B, 1695 D8C, 1696 D8D, 1697 D8E, 1698 D8F, 1699 D90, 1700 D91, 1701 D92, 1702 D93, 1703 D94, 1704 D95, 1705 D96, 1706 D97, 1707 D98, 1708 D99, 1709 D9A, 1710 D9B, 1711 D9C, 1712 D9D, 1713 D9E, 1714 D9F, 1715 DA0, 1716 DA1, 1717 DA2, 1718 DA3, 1719 DA4, 1720 DA5, 1721 DA6, 1722 DA7, 1723 DA8, 1724 DA9, 1725 DAA, 1726 DAB, 1727 DAC, 1728 DAD, 1729 DAE, 1730 DAF, 1731 DB0, 1732 DB1, 1733 DB2, 1734 DB3, 1735 DB4, 1736 DB5, 1737 DB6, 1738 DB7, 1739 DB8, 1740 DB9, 1741 DBA, 1742 DBB, 1743 DBC, 1744 DBD, 1745 DBE, 1746 DBF, 1747 DC0, 1748 DC1, 1749 DC2, 1750 DC3, 1751 DC4, 1752 DC5, 1753 DC6, 1754 DC7, 1755 DC8, 1756 DC9, 1757 DCA, 1758 DCB, 1759 DCC, 1760 DCD, 1761 DCE, 1762 DCF, 1763 DD0, 1764 DD1, 1765 DD2, 1766 DD3, 1767 DD4, 1768 DD5, 1769 DD6, 1770 DD7, 1771 DD8, 1772 DD9, 1773 DDA, 1774 DDB, 1775 DDC, 1776 DDD, 1777 DDE, 1778 DDF, 1779 DE0, 1780 DE1, 1781 DE2, 1782 DE3, 1783 DE4, 1784 DE5, 1785 DE6, 1786 DE7, 1787 DE8, 1788 DE9, 1789 DEA, 1790 DEB, 1791 DEC, 1792 DED, 1793 DEE, 1794 DEF, 1795 DF0, 1796 DF1, 1797 DF2, 1798 DF3, 1799 DF4, 1800 DF5, 1801 DF6, 1802 DF7, 1803 DF8, 1804 DF9, 1805 DFA, 1806 DFB, 1807 DFC, 1808 DFD, 1809 DFE, 1810 DFF 1811 }; 1812