OLD | NEW |
1 #line 1 "rl78-decode.opc" | 1 #line 1 "rl78-decode.opc" |
2 /* -*- c -*- */ | 2 /* -*- c -*- */ |
| 3 #include "sysdep.h" |
3 #include <stdio.h> | 4 #include <stdio.h> |
4 #include <stdlib.h> | 5 #include <stdlib.h> |
5 #include <string.h> | 6 #include <string.h> |
6 | |
7 #include "config.h" | |
8 #include "ansidecl.h" | 7 #include "ansidecl.h" |
9 #include "opcode/rl78.h" | 8 #include "opcode/rl78.h" |
10 | 9 |
11 static int trace = 0; | 10 static int trace = 0; |
12 | 11 |
13 typedef struct | 12 typedef struct |
14 { | 13 { |
15 RL78_Opcode_Decoded * rl78; | 14 RL78_Opcode_Decoded * rl78; |
16 int (* getbyte)(void *); | 15 int (* getbyte)(void *); |
17 void * ptr; | 16 void * ptr; |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 case 0x08: | 255 case 0x08: |
257 { | 256 { |
258 /** 0000 1000 xch a, x
*/ | 257 /** 0000 1000 xch a, x
*/ |
259 if (trace) | 258 if (trace) |
260 { | 259 { |
261 printf ("\033[33m%s\033[0m %02x\n", | 260 printf ("\033[33m%s\033[0m %02x\n", |
262 "/** 0000 1000 xch a, x
*/", | 261 "/** 0000 1000 xch a, x
*/", |
263 op[0]); | 262 op[0]); |
264 } | 263 } |
265 SYNTAX("xch a, x"); | 264 SYNTAX("xch a, x"); |
266 #line 1205 "rl78-decode.opc" | 265 #line 1210 "rl78-decode.opc" |
267 ID(xch); DR(A); SR(X); | 266 ID(xch); DR(A); SR(X); |
268 | 267 |
269 /*----------------------------------------------------------------------
*/ | 268 /*----------------------------------------------------------------------
*/ |
270 | 269 |
271 } | 270 } |
272 break; | 271 break; |
273 case 0x09: | 272 case 0x09: |
274 { | 273 { |
275 /** 0000 1001 mov %0, %e1%1
*/ | 274 /** 0000 1001 mov %0, %e1%1
*/ |
276 if (trace) | 275 if (trace) |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
579 case 0x20: | 578 case 0x20: |
580 { | 579 { |
581 /** 0010 0000 subw %0, #%1
*/ | 580 /** 0010 0000 subw %0, #%1
*/ |
582 if (trace) | 581 if (trace) |
583 { | 582 { |
584 printf ("\033[33m%s\033[0m %02x\n", | 583 printf ("\033[33m%s\033[0m %02x\n", |
585 "/** 0010 0000 subw %0, #%1
*/", | 584 "/** 0010 0000 subw %0, #%1
*/", |
586 op[0]); | 585 op[0]); |
587 } | 586 } |
588 SYNTAX("subw %0, #%1"); | 587 SYNTAX("subw %0, #%1"); |
589 #line 1169 "rl78-decode.opc" | 588 #line 1174 "rl78-decode.opc" |
590 ID(sub); W(); DR(SP); SC(IMMU(1)); Fzac; | 589 ID(sub); W(); DR(SP); SC(IMMU(1)); Fzac; |
591 | 590 |
592 /*----------------------------------------------------------------------
*/ | 591 /*----------------------------------------------------------------------
*/ |
593 | 592 |
594 } | 593 } |
595 break; | 594 break; |
596 case 0x21: | 595 case 0x21: |
597 case 0x23: | 596 case 0x23: |
598 case 0x25: | 597 case 0x25: |
599 case 0x27: | 598 case 0x27: |
600 { | 599 { |
601 /** 0010 0rw1 subw %0, %1
*/ | 600 /** 0010 0rw1 subw %0, %1
*/ |
602 #line 1163 "rl78-decode.opc" | 601 #line 1168 "rl78-decode.opc" |
603 int rw AU = (op[0] >> 1) & 0x03; | 602 int rw AU = (op[0] >> 1) & 0x03; |
604 if (trace) | 603 if (trace) |
605 { | 604 { |
606 printf ("\033[33m%s\033[0m %02x\n", | 605 printf ("\033[33m%s\033[0m %02x\n", |
607 "/** 0010 0rw1 subw %0, %1
*/", | 606 "/** 0010 0rw1 subw %0, %1
*/", |
608 op[0]); | 607 op[0]); |
609 printf (" rw = 0x%x\n", rw); | 608 printf (" rw = 0x%x\n", rw); |
610 } | 609 } |
611 SYNTAX("subw %0, %1"); | 610 SYNTAX("subw %0, %1"); |
612 #line 1163 "rl78-decode.opc" | 611 #line 1168 "rl78-decode.opc" |
613 ID(sub); W(); DR(AX); SRW(rw); Fzac; | 612 ID(sub); W(); DR(AX); SRW(rw); Fzac; |
614 | 613 |
615 } | 614 } |
616 break; | 615 break; |
617 case 0x22: | 616 case 0x22: |
618 { | 617 { |
619 /** 0010 0010 subw %0, %e1%!1
*/ | 618 /** 0010 0010 subw %0, %e1%!1
*/ |
620 if (trace) | 619 if (trace) |
621 { | 620 { |
622 printf ("\033[33m%s\033[0m %02x\n", | 621 printf ("\033[33m%s\033[0m %02x\n", |
623 "/** 0010 0010 subw %0, %e1%!1
*/", | 622 "/** 0010 0010 subw %0, %e1%!1
*/", |
624 op[0]); | 623 op[0]); |
625 } | 624 } |
626 SYNTAX("subw %0, %e1%!1"); | 625 SYNTAX("subw %0, %e1%!1"); |
627 #line 1154 "rl78-decode.opc" | 626 #line 1159 "rl78-decode.opc" |
628 ID(sub); W(); DR(AX); SM(None, IMMU(2)); Fzac; | 627 ID(sub); W(); DR(AX); SM(None, IMMU(2)); Fzac; |
629 | 628 |
630 } | 629 } |
631 break; | 630 break; |
632 case 0x24: | 631 case 0x24: |
633 { | 632 { |
634 /** 0010 0100 subw %0, #%1
*/ | 633 /** 0010 0100 subw %0, #%1
*/ |
635 if (trace) | 634 if (trace) |
636 { | 635 { |
637 printf ("\033[33m%s\033[0m %02x\n", | 636 printf ("\033[33m%s\033[0m %02x\n", |
638 "/** 0010 0100 subw %0, #%1
*/", | 637 "/** 0010 0100 subw %0, #%1
*/", |
639 op[0]); | 638 op[0]); |
640 } | 639 } |
641 SYNTAX("subw %0, #%1"); | 640 SYNTAX("subw %0, #%1"); |
642 #line 1160 "rl78-decode.opc" | 641 #line 1165 "rl78-decode.opc" |
643 ID(sub); W(); DR(AX); SC(IMMU(2)); Fzac; | 642 ID(sub); W(); DR(AX); SC(IMMU(2)); Fzac; |
644 | 643 |
645 } | 644 } |
646 break; | 645 break; |
647 case 0x26: | 646 case 0x26: |
648 { | 647 { |
649 /** 0010 0110 subw %0, %1
*/ | 648 /** 0010 0110 subw %0, %1
*/ |
650 if (trace) | 649 if (trace) |
651 { | 650 { |
652 printf ("\033[33m%s\033[0m %02x\n", | 651 printf ("\033[33m%s\033[0m %02x\n", |
653 "/** 0010 0110 subw %0, %1
*/", | 652 "/** 0010 0110 subw %0, %1
*/", |
654 op[0]); | 653 op[0]); |
655 } | 654 } |
656 SYNTAX("subw %0, %1"); | 655 SYNTAX("subw %0, %1"); |
657 #line 1166 "rl78-decode.opc" | 656 #line 1171 "rl78-decode.opc" |
658 ID(sub); W(); DR(AX); SM(None, SADDR); Fzac; | 657 ID(sub); W(); DR(AX); SM(None, SADDR); Fzac; |
659 | 658 |
660 } | 659 } |
661 break; | 660 break; |
662 case 0x28: | 661 case 0x28: |
663 { | 662 { |
664 /** 0010 1000 mov %e0%0, %1
*/ | 663 /** 0010 1000 mov %e0%0, %1
*/ |
665 if (trace) | 664 if (trace) |
666 { | 665 { |
667 printf ("\033[33m%s\033[0m %02x\n", | 666 printf ("\033[33m%s\033[0m %02x\n", |
(...skipping 24 matching lines...) Expand all Loading... |
692 case 0x2a: | 691 case 0x2a: |
693 { | 692 { |
694 /** 0010 1010 sub %0, #%1
*/ | 693 /** 0010 1010 sub %0, #%1
*/ |
695 if (trace) | 694 if (trace) |
696 { | 695 { |
697 printf ("\033[33m%s\033[0m %02x\n", | 696 printf ("\033[33m%s\033[0m %02x\n", |
698 "/** 0010 1010 sub %0, #%1
*/", | 697 "/** 0010 1010 sub %0, #%1
*/", |
699 op[0]); | 698 op[0]); |
700 } | 699 } |
701 SYNTAX("sub %0, #%1"); | 700 SYNTAX("sub %0, #%1"); |
702 #line 1117 "rl78-decode.opc" | 701 #line 1122 "rl78-decode.opc" |
703 ID(sub); DM(None, SADDR); SC(IMMU(1)); Fzac; | 702 ID(sub); DM(None, SADDR); SC(IMMU(1)); Fzac; |
704 | 703 |
705 /*----------------------------------------------------------------------
*/ | 704 /*----------------------------------------------------------------------
*/ |
706 | 705 |
707 } | 706 } |
708 break; | 707 break; |
709 case 0x2b: | 708 case 0x2b: |
710 { | 709 { |
711 /** 0010 1011 sub %0, %1
*/ | 710 /** 0010 1011 sub %0, %1
*/ |
712 if (trace) | 711 if (trace) |
713 { | 712 { |
714 printf ("\033[33m%s\033[0m %02x\n", | 713 printf ("\033[33m%s\033[0m %02x\n", |
715 "/** 0010 1011 sub %0, %1
*/", | 714 "/** 0010 1011 sub %0, %1
*/", |
716 op[0]); | 715 op[0]); |
717 } | 716 } |
718 SYNTAX("sub %0, %1"); | 717 SYNTAX("sub %0, %1"); |
719 #line 1111 "rl78-decode.opc" | 718 #line 1116 "rl78-decode.opc" |
720 ID(sub); DR(A); SM(None, SADDR); Fzac; | 719 ID(sub); DR(A); SM(None, SADDR); Fzac; |
721 | 720 |
722 } | 721 } |
723 break; | 722 break; |
724 case 0x2c: | 723 case 0x2c: |
725 { | 724 { |
726 /** 0010 1100 sub %0, #%1
*/ | 725 /** 0010 1100 sub %0, #%1
*/ |
727 if (trace) | 726 if (trace) |
728 { | 727 { |
729 printf ("\033[33m%s\033[0m %02x\n", | 728 printf ("\033[33m%s\033[0m %02x\n", |
730 "/** 0010 1100 sub %0, #%1
*/", | 729 "/** 0010 1100 sub %0, #%1
*/", |
731 op[0]); | 730 op[0]); |
732 } | 731 } |
733 SYNTAX("sub %0, #%1"); | 732 SYNTAX("sub %0, #%1"); |
734 #line 1105 "rl78-decode.opc" | 733 #line 1110 "rl78-decode.opc" |
735 ID(sub); DR(A); SC(IMMU(1)); Fzac; | 734 ID(sub); DR(A); SC(IMMU(1)); Fzac; |
736 | 735 |
737 } | 736 } |
738 break; | 737 break; |
739 case 0x2d: | 738 case 0x2d: |
740 { | 739 { |
741 /** 0010 1101 sub %0, %e1%1
*/ | 740 /** 0010 1101 sub %0, %e1%1
*/ |
742 if (trace) | 741 if (trace) |
743 { | 742 { |
744 printf ("\033[33m%s\033[0m %02x\n", | 743 printf ("\033[33m%s\033[0m %02x\n", |
745 "/** 0010 1101 sub %0, %e1%1
*/", | 744 "/** 0010 1101 sub %0, %e1%1
*/", |
746 op[0]); | 745 op[0]); |
747 } | 746 } |
748 SYNTAX("sub %0, %e1%1"); | 747 SYNTAX("sub %0, %e1%1"); |
749 #line 1093 "rl78-decode.opc" | 748 #line 1098 "rl78-decode.opc" |
750 ID(sub); DR(A); SM(HL, 0); Fzac; | 749 ID(sub); DR(A); SM(HL, 0); Fzac; |
751 | 750 |
752 } | 751 } |
753 break; | 752 break; |
754 case 0x2e: | 753 case 0x2e: |
755 { | 754 { |
756 /** 0010 1110 sub %0, %e1%1
*/ | 755 /** 0010 1110 sub %0, %e1%1
*/ |
757 if (trace) | 756 if (trace) |
758 { | 757 { |
759 printf ("\033[33m%s\033[0m %02x\n", | 758 printf ("\033[33m%s\033[0m %02x\n", |
760 "/** 0010 1110 sub %0, %e1%1
*/", | 759 "/** 0010 1110 sub %0, %e1%1
*/", |
761 op[0]); | 760 op[0]); |
762 } | 761 } |
763 SYNTAX("sub %0, %e1%1"); | 762 SYNTAX("sub %0, %e1%1"); |
764 #line 1099 "rl78-decode.opc" | 763 #line 1104 "rl78-decode.opc" |
765 ID(sub); DR(A); SM(HL, IMMU(1)); Fzac; | 764 ID(sub); DR(A); SM(HL, IMMU(1)); Fzac; |
766 | 765 |
767 } | 766 } |
768 break; | 767 break; |
769 case 0x2f: | 768 case 0x2f: |
770 { | 769 { |
771 /** 0010 1111 sub %0, %e1%!1
*/ | 770 /** 0010 1111 sub %0, %e1%!1
*/ |
772 if (trace) | 771 if (trace) |
773 { | 772 { |
774 printf ("\033[33m%s\033[0m %02x\n", | 773 printf ("\033[33m%s\033[0m %02x\n", |
775 "/** 0010 1111 sub %0, %e1%!1
*/", | 774 "/** 0010 1111 sub %0, %e1%!1
*/", |
776 op[0]); | 775 op[0]); |
777 } | 776 } |
778 SYNTAX("sub %0, %e1%!1"); | 777 SYNTAX("sub %0, %e1%!1"); |
779 #line 1090 "rl78-decode.opc" | 778 #line 1095 "rl78-decode.opc" |
780 ID(sub); DR(A); SM(None, IMMU(2)); Fzac; | 779 ID(sub); DR(A); SM(None, IMMU(2)); Fzac; |
781 | 780 |
782 } | 781 } |
783 break; | 782 break; |
784 case 0x30: | 783 case 0x30: |
785 case 0x32: | 784 case 0x32: |
786 case 0x34: | 785 case 0x34: |
787 case 0x36: | 786 case 0x36: |
788 { | 787 { |
789 /** 0011 0rg0 movw %0, #%1
*/ | 788 /** 0011 0rg0 movw %0, #%1
*/ |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
916 } | 915 } |
917 SYNTAX("bf %1, $%a0"); | 916 SYNTAX("bf %1, $%a0"); |
918 #line 336 "rl78-decode.opc" | 917 #line 336 "rl78-decode.opc" |
919 ID(branch_cond); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(F); | 918 ID(branch_cond); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(F); |
920 | 919 |
921 } | 920 } |
922 break; | 921 break; |
923 case 0x07: | 922 case 0x07: |
924 { | 923 { |
925 /** 0011 0001 0cnt 0111 shl %0, %1
*/ | 924 /** 0011 0001 0cnt 0111 shl %0, %1
*/ |
926 #line 1046 "rl78-decode.opc" | 925 #line 1051 "rl78-decode.opc" |
927 int cnt AU = (op[1] >> 4) & 0x07; | 926 int cnt AU = (op[1] >> 4) & 0x07; |
928 if (trace) | 927 if (trace) |
929 { | 928 { |
930 printf ("\033[33m%s\033[0m %02x %02x\n", | 929 printf ("\033[33m%s\033[0m %02x %02x\n", |
931 "/** 0011 0001 0cnt 0111 shl %0, %1
*/", | 930 "/** 0011 0001 0cnt 0111 shl %0, %1
*/", |
932 op[0], op[1]); | 931 op[0], op[1]); |
933 printf (" cnt = 0x%x\n", cnt); | 932 printf (" cnt = 0x%x\n", cnt); |
934 } | 933 } |
935 SYNTAX("shl %0, %1"); | 934 SYNTAX("shl %0, %1"); |
936 #line 1046 "rl78-decode.opc" | 935 #line 1051 "rl78-decode.opc" |
937 ID(shl); DR(C); SC(cnt); | 936 ID(shl); DR(C); SC(cnt); |
938 | 937 |
939 } | 938 } |
940 break; | 939 break; |
941 case 0x08: | 940 case 0x08: |
942 { | 941 { |
943 /** 0011 0001 0cnt 1000 shl %0, %1
*/ | 942 /** 0011 0001 0cnt 1000 shl %0, %1
*/ |
944 #line 1043 "rl78-decode.opc" | 943 #line 1048 "rl78-decode.opc" |
945 int cnt AU = (op[1] >> 4) & 0x07; | 944 int cnt AU = (op[1] >> 4) & 0x07; |
946 if (trace) | 945 if (trace) |
947 { | 946 { |
948 printf ("\033[33m%s\033[0m %02x %02x\n", | 947 printf ("\033[33m%s\033[0m %02x %02x\n", |
949 "/** 0011 0001 0cnt 1000 shl %0, %1
*/", | 948 "/** 0011 0001 0cnt 1000 shl %0, %1
*/", |
950 op[0], op[1]); | 949 op[0], op[1]); |
951 printf (" cnt = 0x%x\n", cnt); | 950 printf (" cnt = 0x%x\n", cnt); |
952 } | 951 } |
953 SYNTAX("shl %0, %1"); | 952 SYNTAX("shl %0, %1"); |
954 #line 1043 "rl78-decode.opc" | 953 #line 1048 "rl78-decode.opc" |
955 ID(shl); DR(B); SC(cnt); | 954 ID(shl); DR(B); SC(cnt); |
956 | 955 |
957 } | 956 } |
958 break; | 957 break; |
959 case 0x09: | 958 case 0x09: |
960 { | 959 { |
961 /** 0011 0001 0cnt 1001 shl %0, %1
*/ | 960 /** 0011 0001 0cnt 1001 shl %0, %1
*/ |
962 #line 1040 "rl78-decode.opc" | 961 #line 1045 "rl78-decode.opc" |
963 int cnt AU = (op[1] >> 4) & 0x07; | 962 int cnt AU = (op[1] >> 4) & 0x07; |
964 if (trace) | 963 if (trace) |
965 { | 964 { |
966 printf ("\033[33m%s\033[0m %02x %02x\n", | 965 printf ("\033[33m%s\033[0m %02x %02x\n", |
967 "/** 0011 0001 0cnt 1001 shl %0, %1
*/", | 966 "/** 0011 0001 0cnt 1001 shl %0, %1
*/", |
968 op[0], op[1]); | 967 op[0], op[1]); |
969 printf (" cnt = 0x%x\n", cnt); | 968 printf (" cnt = 0x%x\n", cnt); |
970 } | 969 } |
971 SYNTAX("shl %0, %1"); | 970 SYNTAX("shl %0, %1"); |
972 #line 1040 "rl78-decode.opc" | 971 #line 1045 "rl78-decode.opc" |
973 ID(shl); DR(A); SC(cnt); | 972 ID(shl); DR(A); SC(cnt); |
974 | 973 |
975 } | 974 } |
976 break; | 975 break; |
977 case 0x0a: | 976 case 0x0a: |
978 { | 977 { |
979 /** 0011 0001 0cnt 1010 shr %0, %1
*/ | 978 /** 0011 0001 0cnt 1010 shr %0, %1
*/ |
980 #line 1057 "rl78-decode.opc" | 979 #line 1062 "rl78-decode.opc" |
981 int cnt AU = (op[1] >> 4) & 0x07; | 980 int cnt AU = (op[1] >> 4) & 0x07; |
982 if (trace) | 981 if (trace) |
983 { | 982 { |
984 printf ("\033[33m%s\033[0m %02x %02x\n", | 983 printf ("\033[33m%s\033[0m %02x %02x\n", |
985 "/** 0011 0001 0cnt 1010 shr %0, %1
*/", | 984 "/** 0011 0001 0cnt 1010 shr %0, %1
*/", |
986 op[0], op[1]); | 985 op[0], op[1]); |
987 printf (" cnt = 0x%x\n", cnt); | 986 printf (" cnt = 0x%x\n", cnt); |
988 } | 987 } |
989 SYNTAX("shr %0, %1"); | 988 SYNTAX("shr %0, %1"); |
990 #line 1057 "rl78-decode.opc" | 989 #line 1062 "rl78-decode.opc" |
991 ID(shr); DR(A); SC(cnt); | 990 ID(shr); DR(A); SC(cnt); |
992 | 991 |
993 } | 992 } |
994 break; | 993 break; |
995 case 0x0b: | 994 case 0x0b: |
996 { | 995 { |
997 /** 0011 0001 0cnt 1011 sar %0, %1
*/ | 996 /** 0011 0001 0cnt 1011 sar %0, %1
*/ |
998 #line 1004 "rl78-decode.opc" | 997 #line 1009 "rl78-decode.opc" |
999 int cnt AU = (op[1] >> 4) & 0x07; | 998 int cnt AU = (op[1] >> 4) & 0x07; |
1000 if (trace) | 999 if (trace) |
1001 { | 1000 { |
1002 printf ("\033[33m%s\033[0m %02x %02x\n", | 1001 printf ("\033[33m%s\033[0m %02x %02x\n", |
1003 "/** 0011 0001 0cnt 1011 sar %0, %1
*/", | 1002 "/** 0011 0001 0cnt 1011 sar %0, %1
*/", |
1004 op[0], op[1]); | 1003 op[0], op[1]); |
1005 printf (" cnt = 0x%x\n", cnt); | 1004 printf (" cnt = 0x%x\n", cnt); |
1006 } | 1005 } |
1007 SYNTAX("sar %0, %1"); | 1006 SYNTAX("sar %0, %1"); |
1008 #line 1004 "rl78-decode.opc" | 1007 #line 1009 "rl78-decode.opc" |
1009 ID(sar); DR(A); SC(cnt); | 1008 ID(sar); DR(A); SC(cnt); |
1010 | 1009 |
1011 } | 1010 } |
1012 break; | 1011 break; |
1013 case 0x0c: | 1012 case 0x0c: |
1014 case 0x8c: | 1013 case 0x8c: |
1015 { | 1014 { |
1016 /** 0011 0001 wcnt 1100 shlw %0, %1
*/ | 1015 /** 0011 0001 wcnt 1100 shlw %0, %1
*/ |
1017 #line 1052 "rl78-decode.opc" | 1016 #line 1057 "rl78-decode.opc" |
1018 int wcnt AU = (op[1] >> 4) & 0x0f; | 1017 int wcnt AU = (op[1] >> 4) & 0x0f; |
1019 if (trace) | 1018 if (trace) |
1020 { | 1019 { |
1021 printf ("\033[33m%s\033[0m %02x %02x\n", | 1020 printf ("\033[33m%s\033[0m %02x %02x\n", |
1022 "/** 0011 0001 wcnt 1100 shlw %0, %1
*/", | 1021 "/** 0011 0001 wcnt 1100 shlw %0, %1
*/", |
1023 op[0], op[1]); | 1022 op[0], op[1]); |
1024 printf (" wcnt = 0x%x\n", wcnt); | 1023 printf (" wcnt = 0x%x\n", wcnt); |
1025 } | 1024 } |
1026 SYNTAX("shlw %0, %1"); | 1025 SYNTAX("shlw %0, %1"); |
1027 #line 1052 "rl78-decode.opc" | 1026 #line 1057 "rl78-decode.opc" |
1028 ID(shl); W(); DR(BC); SC(wcnt); | 1027 ID(shl); W(); DR(BC); SC(wcnt); |
1029 | 1028 |
1030 /*----------------------------------------------------------------
------*/ | 1029 /*----------------------------------------------------------------
------*/ |
1031 | 1030 |
1032 } | 1031 } |
1033 break; | 1032 break; |
1034 case 0x0d: | 1033 case 0x0d: |
1035 case 0x8d: | 1034 case 0x8d: |
1036 { | 1035 { |
1037 /** 0011 0001 wcnt 1101 shlw %0, %1
*/ | 1036 /** 0011 0001 wcnt 1101 shlw %0, %1
*/ |
1038 #line 1049 "rl78-decode.opc" | 1037 #line 1054 "rl78-decode.opc" |
1039 int wcnt AU = (op[1] >> 4) & 0x0f; | 1038 int wcnt AU = (op[1] >> 4) & 0x0f; |
1040 if (trace) | 1039 if (trace) |
1041 { | 1040 { |
1042 printf ("\033[33m%s\033[0m %02x %02x\n", | 1041 printf ("\033[33m%s\033[0m %02x %02x\n", |
1043 "/** 0011 0001 wcnt 1101 shlw %0, %1
*/", | 1042 "/** 0011 0001 wcnt 1101 shlw %0, %1
*/", |
1044 op[0], op[1]); | 1043 op[0], op[1]); |
1045 printf (" wcnt = 0x%x\n", wcnt); | 1044 printf (" wcnt = 0x%x\n", wcnt); |
1046 } | 1045 } |
1047 SYNTAX("shlw %0, %1"); | 1046 SYNTAX("shlw %0, %1"); |
1048 #line 1049 "rl78-decode.opc" | 1047 #line 1054 "rl78-decode.opc" |
1049 ID(shl); W(); DR(AX); SC(wcnt); | 1048 ID(shl); W(); DR(AX); SC(wcnt); |
1050 | 1049 |
1051 } | 1050 } |
1052 break; | 1051 break; |
1053 case 0x0e: | 1052 case 0x0e: |
1054 case 0x8e: | 1053 case 0x8e: |
1055 { | 1054 { |
1056 /** 0011 0001 wcnt 1110 shrw %0, %1
*/ | 1055 /** 0011 0001 wcnt 1110 shrw %0, %1
*/ |
1057 #line 1060 "rl78-decode.opc" | 1056 #line 1065 "rl78-decode.opc" |
1058 int wcnt AU = (op[1] >> 4) & 0x0f; | 1057 int wcnt AU = (op[1] >> 4) & 0x0f; |
1059 if (trace) | 1058 if (trace) |
1060 { | 1059 { |
1061 printf ("\033[33m%s\033[0m %02x %02x\n", | 1060 printf ("\033[33m%s\033[0m %02x %02x\n", |
1062 "/** 0011 0001 wcnt 1110 shrw %0, %1
*/", | 1061 "/** 0011 0001 wcnt 1110 shrw %0, %1
*/", |
1063 op[0], op[1]); | 1062 op[0], op[1]); |
1064 printf (" wcnt = 0x%x\n", wcnt); | 1063 printf (" wcnt = 0x%x\n", wcnt); |
1065 } | 1064 } |
1066 SYNTAX("shrw %0, %1"); | 1065 SYNTAX("shrw %0, %1"); |
1067 #line 1060 "rl78-decode.opc" | 1066 #line 1065 "rl78-decode.opc" |
1068 ID(shr); W(); DR(AX); SC(wcnt); | 1067 ID(shr); W(); DR(AX); SC(wcnt); |
1069 | 1068 |
1070 /*----------------------------------------------------------------
------*/ | 1069 /*----------------------------------------------------------------
------*/ |
1071 | 1070 |
1072 } | 1071 } |
1073 break; | 1072 break; |
1074 case 0x0f: | 1073 case 0x0f: |
1075 case 0x8f: | 1074 case 0x8f: |
1076 { | 1075 { |
1077 /** 0011 0001 wcnt 1111 sarw %0, %1
*/ | 1076 /** 0011 0001 wcnt 1111 sarw %0, %1
*/ |
1078 #line 1007 "rl78-decode.opc" | 1077 #line 1012 "rl78-decode.opc" |
1079 int wcnt AU = (op[1] >> 4) & 0x0f; | 1078 int wcnt AU = (op[1] >> 4) & 0x0f; |
1080 if (trace) | 1079 if (trace) |
1081 { | 1080 { |
1082 printf ("\033[33m%s\033[0m %02x %02x\n", | 1081 printf ("\033[33m%s\033[0m %02x %02x\n", |
1083 "/** 0011 0001 wcnt 1111 sarw %0, %1
*/", | 1082 "/** 0011 0001 wcnt 1111 sarw %0, %1
*/", |
1084 op[0], op[1]); | 1083 op[0], op[1]); |
1085 printf (" wcnt = 0x%x\n", wcnt); | 1084 printf (" wcnt = 0x%x\n", wcnt); |
1086 } | 1085 } |
1087 SYNTAX("sarw %0, %1"); | 1086 SYNTAX("sarw %0, %1"); |
1088 #line 1007 "rl78-decode.opc" | 1087 #line 1012 "rl78-decode.opc" |
1089 ID(sar); W(); DR(AX); SC(wcnt); | 1088 ID(sar); W(); DR(AX); SC(wcnt); |
1090 | 1089 |
1091 /*----------------------------------------------------------------
------*/ | 1090 /*----------------------------------------------------------------
------*/ |
1092 | 1091 |
1093 } | 1092 } |
1094 break; | 1093 break; |
1095 case 0x80: | 1094 case 0x80: |
1096 { | 1095 { |
1097 /** 0011 0001 1bit 0000 btclr %s1, $%a0
*/ | 1096 /** 0011 0001 1bit 0000 btclr %s1, $%a0
*/ |
1098 #line 392 "rl78-decode.opc" | 1097 #line 392 "rl78-decode.opc" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1201 } | 1200 } |
1202 break; | 1201 break; |
1203 default: UNSUPPORTED(); break; | 1202 default: UNSUPPORTED(); break; |
1204 } | 1203 } |
1205 break; | 1204 break; |
1206 case 0x33: | 1205 case 0x33: |
1207 case 0x35: | 1206 case 0x35: |
1208 case 0x37: | 1207 case 0x37: |
1209 { | 1208 { |
1210 /** 0011 0ra1 xchw %0, %1
*/ | 1209 /** 0011 0ra1 xchw %0, %1
*/ |
1211 #line 1210 "rl78-decode.opc" | 1210 #line 1215 "rl78-decode.opc" |
1212 int ra AU = (op[0] >> 1) & 0x03; | 1211 int ra AU = (op[0] >> 1) & 0x03; |
1213 if (trace) | 1212 if (trace) |
1214 { | 1213 { |
1215 printf ("\033[33m%s\033[0m %02x\n", | 1214 printf ("\033[33m%s\033[0m %02x\n", |
1216 "/** 0011 0ra1 xchw %0, %1
*/", | 1215 "/** 0011 0ra1 xchw %0, %1
*/", |
1217 op[0]); | 1216 op[0]); |
1218 printf (" ra = 0x%x\n", ra); | 1217 printf (" ra = 0x%x\n", ra); |
1219 } | 1218 } |
1220 SYNTAX("xchw %0, %1"); | 1219 SYNTAX("xchw %0, %1"); |
1221 #line 1210 "rl78-decode.opc" | 1220 #line 1215 "rl78-decode.opc" |
1222 ID(xch); W(); DR(AX); SRW(ra); | 1221 ID(xch); W(); DR(AX); SRW(ra); |
1223 | 1222 |
1224 /*----------------------------------------------------------------------
*/ | 1223 /*----------------------------------------------------------------------
*/ |
1225 | 1224 |
1226 } | 1225 } |
1227 break; | 1226 break; |
1228 case 0x38: | 1227 case 0x38: |
1229 { | 1228 { |
1230 /** 0011 1000 mov %e0%0, #%1
*/ | 1229 /** 0011 1000 mov %e0%0, #%1
*/ |
1231 if (trace) | 1230 if (trace) |
(...skipping 26 matching lines...) Expand all Loading... |
1258 case 0x3a: | 1257 case 0x3a: |
1259 { | 1258 { |
1260 /** 0011 1010 subc %0, #%1
*/ | 1259 /** 0011 1010 subc %0, #%1
*/ |
1261 if (trace) | 1260 if (trace) |
1262 { | 1261 { |
1263 printf ("\033[33m%s\033[0m %02x\n", | 1262 printf ("\033[33m%s\033[0m %02x\n", |
1264 "/** 0011 1010 subc %0, #%1
*/", | 1263 "/** 0011 1010 subc %0, #%1
*/", |
1265 op[0]); | 1264 op[0]); |
1266 } | 1265 } |
1267 SYNTAX("subc %0, #%1"); | 1266 SYNTAX("subc %0, #%1"); |
1268 #line 1149 "rl78-decode.opc" | 1267 #line 1154 "rl78-decode.opc" |
1269 ID(subc); DM(None, SADDR); SC(IMMU(1)); Fzac; | 1268 ID(subc); DM(None, SADDR); SC(IMMU(1)); Fzac; |
1270 | 1269 |
1271 /*----------------------------------------------------------------------
*/ | 1270 /*----------------------------------------------------------------------
*/ |
1272 | 1271 |
1273 } | 1272 } |
1274 break; | 1273 break; |
1275 case 0x3b: | 1274 case 0x3b: |
1276 { | 1275 { |
1277 /** 0011 1011 subc %0, %1
*/ | 1276 /** 0011 1011 subc %0, %1
*/ |
1278 if (trace) | 1277 if (trace) |
1279 { | 1278 { |
1280 printf ("\033[33m%s\033[0m %02x\n", | 1279 printf ("\033[33m%s\033[0m %02x\n", |
1281 "/** 0011 1011 subc %0, %1
*/", | 1280 "/** 0011 1011 subc %0, %1
*/", |
1282 op[0]); | 1281 op[0]); |
1283 } | 1282 } |
1284 SYNTAX("subc %0, %1"); | 1283 SYNTAX("subc %0, %1"); |
1285 #line 1146 "rl78-decode.opc" | 1284 #line 1151 "rl78-decode.opc" |
1286 ID(subc); DR(A); SM(None, SADDR); Fzac; | 1285 ID(subc); DR(A); SM(None, SADDR); Fzac; |
1287 | 1286 |
1288 } | 1287 } |
1289 break; | 1288 break; |
1290 case 0x3c: | 1289 case 0x3c: |
1291 { | 1290 { |
1292 /** 0011 1100 subc %0, #%1
*/ | 1291 /** 0011 1100 subc %0, #%1
*/ |
1293 if (trace) | 1292 if (trace) |
1294 { | 1293 { |
1295 printf ("\033[33m%s\033[0m %02x\n", | 1294 printf ("\033[33m%s\033[0m %02x\n", |
1296 "/** 0011 1100 subc %0, #%1
*/", | 1295 "/** 0011 1100 subc %0, #%1
*/", |
1297 op[0]); | 1296 op[0]); |
1298 } | 1297 } |
1299 SYNTAX("subc %0, #%1"); | 1298 SYNTAX("subc %0, #%1"); |
1300 #line 1137 "rl78-decode.opc" | 1299 #line 1142 "rl78-decode.opc" |
1301 ID(subc); DR(A); SC(IMMU(1)); Fzac; | 1300 ID(subc); DR(A); SC(IMMU(1)); Fzac; |
1302 | 1301 |
1303 } | 1302 } |
1304 break; | 1303 break; |
1305 case 0x3d: | 1304 case 0x3d: |
1306 { | 1305 { |
1307 /** 0011 1101 subc %0, %e1%1
*/ | 1306 /** 0011 1101 subc %0, %e1%1
*/ |
1308 if (trace) | 1307 if (trace) |
1309 { | 1308 { |
1310 printf ("\033[33m%s\033[0m %02x\n", | 1309 printf ("\033[33m%s\033[0m %02x\n", |
1311 "/** 0011 1101 subc %0, %e1%1
*/", | 1310 "/** 0011 1101 subc %0, %e1%1
*/", |
1312 op[0]); | 1311 op[0]); |
1313 } | 1312 } |
1314 SYNTAX("subc %0, %e1%1"); | 1313 SYNTAX("subc %0, %e1%1"); |
1315 #line 1125 "rl78-decode.opc" | 1314 #line 1130 "rl78-decode.opc" |
1316 ID(subc); DR(A); SM(HL, 0); Fzac; | 1315 ID(subc); DR(A); SM(HL, 0); Fzac; |
1317 | 1316 |
1318 } | 1317 } |
1319 break; | 1318 break; |
1320 case 0x3e: | 1319 case 0x3e: |
1321 { | 1320 { |
1322 /** 0011 1110 subc %0, %e1%1
*/ | 1321 /** 0011 1110 subc %0, %e1%1
*/ |
1323 if (trace) | 1322 if (trace) |
1324 { | 1323 { |
1325 printf ("\033[33m%s\033[0m %02x\n", | 1324 printf ("\033[33m%s\033[0m %02x\n", |
1326 "/** 0011 1110 subc %0, %e1%1
*/", | 1325 "/** 0011 1110 subc %0, %e1%1
*/", |
1327 op[0]); | 1326 op[0]); |
1328 } | 1327 } |
1329 SYNTAX("subc %0, %e1%1"); | 1328 SYNTAX("subc %0, %e1%1"); |
1330 #line 1134 "rl78-decode.opc" | 1329 #line 1139 "rl78-decode.opc" |
1331 ID(subc); DR(A); SM(HL, IMMU(1)); Fzac; | 1330 ID(subc); DR(A); SM(HL, IMMU(1)); Fzac; |
1332 | 1331 |
1333 } | 1332 } |
1334 break; | 1333 break; |
1335 case 0x3f: | 1334 case 0x3f: |
1336 { | 1335 { |
1337 /** 0011 1111 subc %0, %e1%!1
*/ | 1336 /** 0011 1111 subc %0, %e1%!1
*/ |
1338 if (trace) | 1337 if (trace) |
1339 { | 1338 { |
1340 printf ("\033[33m%s\033[0m %02x\n", | 1339 printf ("\033[33m%s\033[0m %02x\n", |
1341 "/** 0011 1111 subc %0, %e1%!1
*/", | 1340 "/** 0011 1111 subc %0, %e1%!1
*/", |
1342 op[0]); | 1341 op[0]); |
1343 } | 1342 } |
1344 SYNTAX("subc %0, %e1%!1"); | 1343 SYNTAX("subc %0, %e1%!1"); |
1345 #line 1122 "rl78-decode.opc" | 1344 #line 1127 "rl78-decode.opc" |
1346 ID(subc); DR(A); SM(None, IMMU(2)); Fzac; | 1345 ID(subc); DR(A); SM(None, IMMU(2)); Fzac; |
1347 | 1346 |
1348 } | 1347 } |
1349 break; | 1348 break; |
1350 case 0x40: | 1349 case 0x40: |
1351 { | 1350 { |
1352 /** 0100 0000 cmp %e0%!0, #%1
*/ | 1351 /** 0100 0000 cmp %e0%!0, #%1
*/ |
1353 if (trace) | 1352 if (trace) |
1354 { | 1353 { |
1355 printf ("\033[33m%s\033[0m %02x\n", | 1354 printf ("\033[33m%s\033[0m %02x\n", |
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1857 case 0x20: | 1856 case 0x20: |
1858 case 0x21: | 1857 case 0x21: |
1859 case 0x22: | 1858 case 0x22: |
1860 case 0x23: | 1859 case 0x23: |
1861 case 0x24: | 1860 case 0x24: |
1862 case 0x25: | 1861 case 0x25: |
1863 case 0x26: | 1862 case 0x26: |
1864 case 0x27: | 1863 case 0x27: |
1865 { | 1864 { |
1866 /** 0110 0001 0010 0reg sub %0, %1
*/ | 1865 /** 0110 0001 0010 0reg sub %0, %1
*/ |
1867 #line 1114 "rl78-decode.opc" | 1866 #line 1119 "rl78-decode.opc" |
1868 int reg AU = op[1] & 0x07; | 1867 int reg AU = op[1] & 0x07; |
1869 if (trace) | 1868 if (trace) |
1870 { | 1869 { |
1871 printf ("\033[33m%s\033[0m %02x %02x\n", | 1870 printf ("\033[33m%s\033[0m %02x %02x\n", |
1872 "/** 0110 0001 0010 0reg sub %0, %1
*/", | 1871 "/** 0110 0001 0010 0reg sub %0, %1
*/", |
1873 op[0], op[1]); | 1872 op[0], op[1]); |
1874 printf (" reg = 0x%x\n", reg); | 1873 printf (" reg = 0x%x\n", reg); |
1875 } | 1874 } |
1876 SYNTAX("sub %0, %1"); | 1875 SYNTAX("sub %0, %1"); |
1877 #line 1114 "rl78-decode.opc" | 1876 #line 1119 "rl78-decode.opc" |
1878 ID(sub); DRB(reg); SR(A); Fzac; | 1877 ID(sub); DRB(reg); SR(A); Fzac; |
1879 | 1878 |
1880 } | 1879 } |
1881 break; | 1880 break; |
1882 case 0x28: | 1881 case 0x28: |
1883 case 0x2a: | 1882 case 0x2a: |
1884 case 0x2b: | 1883 case 0x2b: |
1885 case 0x2c: | 1884 case 0x2c: |
1886 case 0x2d: | 1885 case 0x2d: |
1887 case 0x2e: | 1886 case 0x2e: |
1888 case 0x2f: | 1887 case 0x2f: |
1889 { | 1888 { |
1890 /** 0110 0001 0010 1rba sub %0, %1
*/ | 1889 /** 0110 0001 0010 1rba sub %0, %1
*/ |
1891 #line 1108 "rl78-decode.opc" | 1890 #line 1113 "rl78-decode.opc" |
1892 int rba AU = op[1] & 0x07; | 1891 int rba AU = op[1] & 0x07; |
1893 if (trace) | 1892 if (trace) |
1894 { | 1893 { |
1895 printf ("\033[33m%s\033[0m %02x %02x\n", | 1894 printf ("\033[33m%s\033[0m %02x %02x\n", |
1896 "/** 0110 0001 0010 1rba sub %0, %1
*/", | 1895 "/** 0110 0001 0010 1rba sub %0, %1
*/", |
1897 op[0], op[1]); | 1896 op[0], op[1]); |
1898 printf (" rba = 0x%x\n", rba); | 1897 printf (" rba = 0x%x\n", rba); |
1899 } | 1898 } |
1900 SYNTAX("sub %0, %1"); | 1899 SYNTAX("sub %0, %1"); |
1901 #line 1108 "rl78-decode.opc" | 1900 #line 1113 "rl78-decode.opc" |
1902 ID(sub); DR(A); SRB(rba); Fzac; | 1901 ID(sub); DR(A); SRB(rba); Fzac; |
1903 | 1902 |
1904 } | 1903 } |
1905 break; | 1904 break; |
1906 case 0x29: | 1905 case 0x29: |
1907 { | 1906 { |
1908 /** 0110 0001 0010 1001 subw %0, %e1%1
*/ | 1907 /** 0110 0001 0010 1001 subw %0, %e1%1
*/ |
1909 if (trace) | 1908 if (trace) |
1910 { | 1909 { |
1911 printf ("\033[33m%s\033[0m %02x %02x\n", | 1910 printf ("\033[33m%s\033[0m %02x %02x\n", |
1912 "/** 0110 0001 0010 1001 subw %0, %e1%
1 */", | 1911 "/** 0110 0001 0010 1001 subw %0, %e1%
1 */", |
1913 op[0], op[1]); | 1912 op[0], op[1]); |
1914 } | 1913 } |
1915 SYNTAX("subw %0, %e1%1"); | 1914 SYNTAX("subw %0, %e1%1"); |
1916 #line 1157 "rl78-decode.opc" | 1915 #line 1162 "rl78-decode.opc" |
1917 ID(sub); W(); DR(AX); SM(HL, IMMU(1)); Fzac; | 1916 ID(sub); W(); DR(AX); SM(HL, IMMU(1)); Fzac; |
1918 | 1917 |
1919 } | 1918 } |
1920 break; | 1919 break; |
1921 case 0x30: | 1920 case 0x30: |
1922 case 0x31: | 1921 case 0x31: |
1923 case 0x32: | 1922 case 0x32: |
1924 case 0x33: | 1923 case 0x33: |
1925 case 0x34: | 1924 case 0x34: |
1926 case 0x35: | 1925 case 0x35: |
1927 case 0x36: | 1926 case 0x36: |
1928 case 0x37: | 1927 case 0x37: |
1929 { | 1928 { |
1930 /** 0110 0001 0011 0reg subc %0, %1
*/ | 1929 /** 0110 0001 0011 0reg subc %0, %1
*/ |
1931 #line 1143 "rl78-decode.opc" | 1930 #line 1148 "rl78-decode.opc" |
1932 int reg AU = op[1] & 0x07; | 1931 int reg AU = op[1] & 0x07; |
1933 if (trace) | 1932 if (trace) |
1934 { | 1933 { |
1935 printf ("\033[33m%s\033[0m %02x %02x\n", | 1934 printf ("\033[33m%s\033[0m %02x %02x\n", |
1936 "/** 0110 0001 0011 0reg subc %0, %1
*/", | 1935 "/** 0110 0001 0011 0reg subc %0, %1
*/", |
1937 op[0], op[1]); | 1936 op[0], op[1]); |
1938 printf (" reg = 0x%x\n", reg); | 1937 printf (" reg = 0x%x\n", reg); |
1939 } | 1938 } |
1940 SYNTAX("subc %0, %1"); | 1939 SYNTAX("subc %0, %1"); |
1941 #line 1143 "rl78-decode.opc" | 1940 #line 1148 "rl78-decode.opc" |
1942 ID(subc); DRB(reg); SR(A); Fzac; | 1941 ID(subc); DRB(reg); SR(A); Fzac; |
1943 | 1942 |
1944 } | 1943 } |
1945 break; | 1944 break; |
1946 case 0x38: | 1945 case 0x38: |
1947 case 0x3a: | 1946 case 0x3a: |
1948 case 0x3b: | 1947 case 0x3b: |
1949 case 0x3c: | 1948 case 0x3c: |
1950 case 0x3d: | 1949 case 0x3d: |
1951 case 0x3e: | 1950 case 0x3e: |
1952 case 0x3f: | 1951 case 0x3f: |
1953 { | 1952 { |
1954 /** 0110 0001 0011 1rba subc %0, %1
*/ | 1953 /** 0110 0001 0011 1rba subc %0, %1
*/ |
1955 #line 1140 "rl78-decode.opc" | 1954 #line 1145 "rl78-decode.opc" |
1956 int rba AU = op[1] & 0x07; | 1955 int rba AU = op[1] & 0x07; |
1957 if (trace) | 1956 if (trace) |
1958 { | 1957 { |
1959 printf ("\033[33m%s\033[0m %02x %02x\n", | 1958 printf ("\033[33m%s\033[0m %02x %02x\n", |
1960 "/** 0110 0001 0011 1rba subc %0, %1
*/", | 1959 "/** 0110 0001 0011 1rba subc %0, %1
*/", |
1961 op[0], op[1]); | 1960 op[0], op[1]); |
1962 printf (" rba = 0x%x\n", rba); | 1961 printf (" rba = 0x%x\n", rba); |
1963 } | 1962 } |
1964 SYNTAX("subc %0, %1"); | 1963 SYNTAX("subc %0, %1"); |
1965 #line 1140 "rl78-decode.opc" | 1964 #line 1145 "rl78-decode.opc" |
1966 ID(subc); DR(A); SRB(rba); Fzac; | 1965 ID(subc); DR(A); SRB(rba); Fzac; |
1967 | 1966 |
1968 } | 1967 } |
1969 break; | 1968 break; |
1970 case 0x40: | 1969 case 0x40: |
1971 case 0x41: | 1970 case 0x41: |
1972 case 0x42: | 1971 case 0x42: |
1973 case 0x43: | 1972 case 0x43: |
1974 case 0x44: | 1973 case 0x44: |
1975 case 0x45: | 1974 case 0x45: |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2098 case 0x60: | 2097 case 0x60: |
2099 case 0x61: | 2098 case 0x61: |
2100 case 0x62: | 2099 case 0x62: |
2101 case 0x63: | 2100 case 0x63: |
2102 case 0x64: | 2101 case 0x64: |
2103 case 0x65: | 2102 case 0x65: |
2104 case 0x66: | 2103 case 0x66: |
2105 case 0x67: | 2104 case 0x67: |
2106 { | 2105 { |
2107 /** 0110 0001 0110 0reg or %0, %1
*/ | 2106 /** 0110 0001 0110 0reg or %0, %1
*/ |
2108 #line 932 "rl78-decode.opc" | 2107 #line 937 "rl78-decode.opc" |
2109 int reg AU = op[1] & 0x07; | 2108 int reg AU = op[1] & 0x07; |
2110 if (trace) | 2109 if (trace) |
2111 { | 2110 { |
2112 printf ("\033[33m%s\033[0m %02x %02x\n", | 2111 printf ("\033[33m%s\033[0m %02x %02x\n", |
2113 "/** 0110 0001 0110 0reg or %0, %1
*/", | 2112 "/** 0110 0001 0110 0reg or %0, %1
*/", |
2114 op[0], op[1]); | 2113 op[0], op[1]); |
2115 printf (" reg = 0x%x\n", reg); | 2114 printf (" reg = 0x%x\n", reg); |
2116 } | 2115 } |
2117 SYNTAX("or %0, %1"); | 2116 SYNTAX("or %0, %1"); |
2118 #line 932 "rl78-decode.opc" | 2117 #line 937 "rl78-decode.opc" |
2119 ID(or); DRB(reg); SR(A); Fz; | 2118 ID(or); DRB(reg); SR(A); Fz; |
2120 | 2119 |
2121 } | 2120 } |
2122 break; | 2121 break; |
2123 case 0x68: | 2122 case 0x68: |
2124 case 0x6a: | 2123 case 0x6a: |
2125 case 0x6b: | 2124 case 0x6b: |
2126 case 0x6c: | 2125 case 0x6c: |
2127 case 0x6d: | 2126 case 0x6d: |
2128 case 0x6e: | 2127 case 0x6e: |
2129 case 0x6f: | 2128 case 0x6f: |
2130 { | 2129 { |
2131 /** 0110 0001 0110 1rba or %0, %1
*/ | 2130 /** 0110 0001 0110 1rba or %0, %1
*/ |
2132 #line 929 "rl78-decode.opc" | 2131 #line 934 "rl78-decode.opc" |
2133 int rba AU = op[1] & 0x07; | 2132 int rba AU = op[1] & 0x07; |
2134 if (trace) | 2133 if (trace) |
2135 { | 2134 { |
2136 printf ("\033[33m%s\033[0m %02x %02x\n", | 2135 printf ("\033[33m%s\033[0m %02x %02x\n", |
2137 "/** 0110 0001 0110 1rba or %0, %1
*/", | 2136 "/** 0110 0001 0110 1rba or %0, %1
*/", |
2138 op[0], op[1]); | 2137 op[0], op[1]); |
2139 printf (" rba = 0x%x\n", rba); | 2138 printf (" rba = 0x%x\n", rba); |
2140 } | 2139 } |
2141 SYNTAX("or %0, %1"); | 2140 SYNTAX("or %0, %1"); |
2142 #line 929 "rl78-decode.opc" | 2141 #line 934 "rl78-decode.opc" |
2143 ID(or); DR(A); SRB(rba); Fz; | 2142 ID(or); DR(A); SRB(rba); Fz; |
2144 | 2143 |
2145 } | 2144 } |
2146 break; | 2145 break; |
2147 case 0x69: | 2146 case 0x69: |
2148 { | 2147 { |
2149 /** 0110 0001 0110 1001 dec %e0%0
*/ | 2148 /** 0110 0001 0110 1001 dec %e0%0
*/ |
2150 if (trace) | 2149 if (trace) |
2151 { | 2150 { |
2152 printf ("\033[33m%s\033[0m %02x %02x\n", | 2151 printf ("\033[33m%s\033[0m %02x %02x\n", |
2153 "/** 0110 0001 0110 1001 dec %e0%0
*/", | 2152 "/** 0110 0001 0110 1001 dec %e0%0
*/", |
2154 op[0], op[1]); | 2153 op[0], op[1]); |
2155 } | 2154 } |
2156 SYNTAX("dec %e0%0"); | 2155 SYNTAX("dec %e0%0"); |
2157 #line 530 "rl78-decode.opc" | 2156 #line 530 "rl78-decode.opc" |
2158 ID(sub); DM(HL, IMMU(1)); SC(1); Fza; | 2157 ID(sub); DM(HL, IMMU(1)); SC(1); Fza; |
2159 | 2158 |
2160 } | 2159 } |
2161 break; | 2160 break; |
2162 case 0x70: | 2161 case 0x70: |
2163 case 0x71: | 2162 case 0x71: |
2164 case 0x72: | 2163 case 0x72: |
2165 case 0x73: | 2164 case 0x73: |
2166 case 0x74: | 2165 case 0x74: |
2167 case 0x75: | 2166 case 0x75: |
2168 case 0x76: | 2167 case 0x76: |
2169 case 0x77: | 2168 case 0x77: |
2170 { | 2169 { |
2171 /** 0110 0001 0111 0reg xor %0, %1
*/ | 2170 /** 0110 0001 0111 0reg xor %0, %1
*/ |
2172 #line 1236 "rl78-decode.opc" | 2171 #line 1241 "rl78-decode.opc" |
2173 int reg AU = op[1] & 0x07; | 2172 int reg AU = op[1] & 0x07; |
2174 if (trace) | 2173 if (trace) |
2175 { | 2174 { |
2176 printf ("\033[33m%s\033[0m %02x %02x\n", | 2175 printf ("\033[33m%s\033[0m %02x %02x\n", |
2177 "/** 0110 0001 0111 0reg xor %0, %1
*/", | 2176 "/** 0110 0001 0111 0reg xor %0, %1
*/", |
2178 op[0], op[1]); | 2177 op[0], op[1]); |
2179 printf (" reg = 0x%x\n", reg); | 2178 printf (" reg = 0x%x\n", reg); |
2180 } | 2179 } |
2181 SYNTAX("xor %0, %1"); | 2180 SYNTAX("xor %0, %1"); |
2182 #line 1236 "rl78-decode.opc" | 2181 #line 1241 "rl78-decode.opc" |
2183 ID(xor); DRB(reg); SR(A); Fz; | 2182 ID(xor); DRB(reg); SR(A); Fz; |
2184 | 2183 |
2185 } | 2184 } |
2186 break; | 2185 break; |
2187 case 0x78: | 2186 case 0x78: |
2188 case 0x7a: | 2187 case 0x7a: |
2189 case 0x7b: | 2188 case 0x7b: |
2190 case 0x7c: | 2189 case 0x7c: |
2191 case 0x7d: | 2190 case 0x7d: |
2192 case 0x7e: | 2191 case 0x7e: |
2193 case 0x7f: | 2192 case 0x7f: |
2194 { | 2193 { |
2195 /** 0110 0001 0111 1rba xor %0, %1
*/ | 2194 /** 0110 0001 0111 1rba xor %0, %1
*/ |
2196 #line 1233 "rl78-decode.opc" | 2195 #line 1238 "rl78-decode.opc" |
2197 int rba AU = op[1] & 0x07; | 2196 int rba AU = op[1] & 0x07; |
2198 if (trace) | 2197 if (trace) |
2199 { | 2198 { |
2200 printf ("\033[33m%s\033[0m %02x %02x\n", | 2199 printf ("\033[33m%s\033[0m %02x %02x\n", |
2201 "/** 0110 0001 0111 1rba xor %0, %1
*/", | 2200 "/** 0110 0001 0111 1rba xor %0, %1
*/", |
2202 op[0], op[1]); | 2201 op[0], op[1]); |
2203 printf (" rba = 0x%x\n", rba); | 2202 printf (" rba = 0x%x\n", rba); |
2204 } | 2203 } |
2205 SYNTAX("xor %0, %1"); | 2204 SYNTAX("xor %0, %1"); |
2206 #line 1233 "rl78-decode.opc" | 2205 #line 1238 "rl78-decode.opc" |
2207 ID(xor); DR(A); SRB(rba); Fz; | 2206 ID(xor); DR(A); SRB(rba); Fz; |
2208 | 2207 |
2209 } | 2208 } |
2210 break; | 2209 break; |
2211 case 0x79: | 2210 case 0x79: |
2212 { | 2211 { |
2213 /** 0110 0001 0111 1001 incw %e0%0
*/ | 2212 /** 0110 0001 0111 1001 incw %e0%0
*/ |
2214 if (trace) | 2213 if (trace) |
2215 { | 2214 { |
2216 printf ("\033[33m%s\033[0m %02x %02x\n", | 2215 printf ("\033[33m%s\033[0m %02x %02x\n", |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2310 break; | 2309 break; |
2311 case 0x88: | 2310 case 0x88: |
2312 case 0x8a: | 2311 case 0x8a: |
2313 case 0x8b: | 2312 case 0x8b: |
2314 case 0x8c: | 2313 case 0x8c: |
2315 case 0x8d: | 2314 case 0x8d: |
2316 case 0x8e: | 2315 case 0x8e: |
2317 case 0x8f: | 2316 case 0x8f: |
2318 { | 2317 { |
2319 /** 0110 0001 1000 1reg xch %0, %1
*/ | 2318 /** 0110 0001 1000 1reg xch %0, %1
*/ |
2320 #line 1195 "rl78-decode.opc" | 2319 #line 1200 "rl78-decode.opc" |
2321 int reg AU = op[1] & 0x07; | 2320 int reg AU = op[1] & 0x07; |
2322 if (trace) | 2321 if (trace) |
2323 { | 2322 { |
2324 printf ("\033[33m%s\033[0m %02x %02x\n", | 2323 printf ("\033[33m%s\033[0m %02x %02x\n", |
2325 "/** 0110 0001 1000 1reg xch %0, %1
*/", | 2324 "/** 0110 0001 1000 1reg xch %0, %1
*/", |
2326 op[0], op[1]); | 2325 op[0], op[1]); |
2327 printf (" reg = 0x%x\n", reg); | 2326 printf (" reg = 0x%x\n", reg); |
2328 } | 2327 } |
2329 SYNTAX("xch %0, %1"); | 2328 SYNTAX("xch %0, %1"); |
2330 #line 1195 "rl78-decode.opc" | 2329 #line 1200 "rl78-decode.opc" |
2331 /* Note: DECW uses reg == X, so this must follow DECW */ | 2330 /* Note: DECW uses reg == X, so this must follow DECW */ |
2332 ID(xch); DR(A); SRB(reg); | 2331 ID(xch); DR(A); SRB(reg); |
2333 | 2332 |
2334 } | 2333 } |
2335 break; | 2334 break; |
2336 case 0x89: | 2335 case 0x89: |
2337 { | 2336 { |
2338 /** 0110 0001 1000 1001 decw %e0%0
*/ | 2337 /** 0110 0001 1000 1001 decw %e0%0
*/ |
2339 if (trace) | 2338 if (trace) |
2340 { | 2339 { |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2382 case 0xa1: | 2381 case 0xa1: |
2383 { | 2382 { |
2384 /** 0110 0001 1010 000 sub %0, %e1%1
*/ | 2383 /** 0110 0001 1010 000 sub %0, %e1%1
*/ |
2385 if (trace) | 2384 if (trace) |
2386 { | 2385 { |
2387 printf ("\033[33m%s\033[0m %02x %02x\n", | 2386 printf ("\033[33m%s\033[0m %02x %02x\n", |
2388 "/** 0110 0001 1010 000 sub %0, %e1%
1 */", | 2387 "/** 0110 0001 1010 000 sub %0, %e1%
1 */", |
2389 op[0], op[1]); | 2388 op[0], op[1]); |
2390 } | 2389 } |
2391 SYNTAX("sub %0, %e1%1"); | 2390 SYNTAX("sub %0, %e1%1"); |
2392 #line 1096 "rl78-decode.opc" | 2391 #line 1101 "rl78-decode.opc" |
2393 ID(sub); DR(A); SM2(HL, B, 0); Fzac; | 2392 ID(sub); DR(A); SM2(HL, B, 0); Fzac; |
2394 | 2393 |
2395 } | 2394 } |
2396 break; | 2395 break; |
2397 case 0xa2: | 2396 case 0xa2: |
2398 { | 2397 { |
2399 /** 0110 0001 1010 0010 sub %0, %e1%1
*/ | 2398 /** 0110 0001 1010 0010 sub %0, %e1%1
*/ |
2400 if (trace) | 2399 if (trace) |
2401 { | 2400 { |
2402 printf ("\033[33m%s\033[0m %02x %02x\n", | 2401 printf ("\033[33m%s\033[0m %02x %02x\n", |
2403 "/** 0110 0001 1010 0010 sub %0, %e1%
1 */", | 2402 "/** 0110 0001 1010 0010 sub %0, %e1%
1 */", |
2404 op[0], op[1]); | 2403 op[0], op[1]); |
2405 } | 2404 } |
2406 SYNTAX("sub %0, %e1%1"); | 2405 SYNTAX("sub %0, %e1%1"); |
2407 #line 1102 "rl78-decode.opc" | 2406 #line 1107 "rl78-decode.opc" |
2408 ID(sub); DR(A); SM2(HL, C, 0); Fzac; | 2407 ID(sub); DR(A); SM2(HL, C, 0); Fzac; |
2409 | 2408 |
2410 } | 2409 } |
2411 break; | 2410 break; |
2412 case 0xa8: | 2411 case 0xa8: |
2413 { | 2412 { |
2414 /** 0110 0001 1010 1000 xch %0, %1
*/ | 2413 /** 0110 0001 1010 1000 xch %0, %1
*/ |
2415 if (trace) | 2414 if (trace) |
2416 { | 2415 { |
2417 printf ("\033[33m%s\033[0m %02x %02x\n", | 2416 printf ("\033[33m%s\033[0m %02x %02x\n", |
2418 "/** 0110 0001 1010 1000 xch %0, %1
*/", | 2417 "/** 0110 0001 1010 1000 xch %0, %1
*/", |
2419 op[0], op[1]); | 2418 op[0], op[1]); |
2420 } | 2419 } |
2421 SYNTAX("xch %0, %1"); | 2420 SYNTAX("xch %0, %1"); |
2422 #line 1199 "rl78-decode.opc" | 2421 #line 1204 "rl78-decode.opc" |
2423 ID(xch); DR(A); SM(None, SADDR); | 2422 ID(xch); DR(A); SM(None, SADDR); |
2424 | 2423 |
2425 } | 2424 } |
2426 break; | 2425 break; |
2427 case 0xa9: | 2426 case 0xa9: |
2428 { | 2427 { |
2429 /** 0110 0001 1010 1001 xch %0, %e1%1
*/ | 2428 /** 0110 0001 1010 1001 xch %0, %e1%1
*/ |
2430 if (trace) | 2429 if (trace) |
2431 { | 2430 { |
2432 printf ("\033[33m%s\033[0m %02x %02x\n", | 2431 printf ("\033[33m%s\033[0m %02x %02x\n", |
2433 "/** 0110 0001 1010 1001 xch %0, %e1%
1 */", | 2432 "/** 0110 0001 1010 1001 xch %0, %e1%
1 */", |
2434 op[0], op[1]); | 2433 op[0], op[1]); |
2435 } | 2434 } |
2436 SYNTAX("xch %0, %e1%1"); | 2435 SYNTAX("xch %0, %e1%1"); |
2437 #line 1192 "rl78-decode.opc" | 2436 #line 1197 "rl78-decode.opc" |
2438 ID(xch); DR(A); SM2(HL, C, 0); | 2437 ID(xch); DR(A); SM2(HL, C, 0); |
2439 | 2438 |
2440 } | 2439 } |
2441 break; | 2440 break; |
2442 case 0xaa: | 2441 case 0xaa: |
2443 { | 2442 { |
2444 /** 0110 0001 1010 1010 xch %0, %e1%!1
*/ | 2443 /** 0110 0001 1010 1010 xch %0, %e1%!1
*/ |
2445 if (trace) | 2444 if (trace) |
2446 { | 2445 { |
2447 printf ("\033[33m%s\033[0m %02x %02x\n", | 2446 printf ("\033[33m%s\033[0m %02x %02x\n", |
2448 "/** 0110 0001 1010 1010 xch %0, %e1%
!1 */", | 2447 "/** 0110 0001 1010 1010 xch %0, %e1%
!1 */", |
2449 op[0], op[1]); | 2448 op[0], op[1]); |
2450 } | 2449 } |
2451 SYNTAX("xch %0, %e1%!1"); | 2450 SYNTAX("xch %0, %e1%!1"); |
2452 #line 1174 "rl78-decode.opc" | 2451 #line 1179 "rl78-decode.opc" |
2453 ID(xch); DR(A); SM(None, IMMU(2)); | 2452 ID(xch); DR(A); SM(None, IMMU(2)); |
2454 | 2453 |
2455 } | 2454 } |
2456 break; | 2455 break; |
2457 case 0xab: | 2456 case 0xab: |
2458 { | 2457 { |
2459 /** 0110 0001 1010 1011 xch %0, %1
*/ | 2458 /** 0110 0001 1010 1011 xch %0, %1
*/ |
2460 if (trace) | 2459 if (trace) |
2461 { | 2460 { |
2462 printf ("\033[33m%s\033[0m %02x %02x\n", | 2461 printf ("\033[33m%s\033[0m %02x %02x\n", |
2463 "/** 0110 0001 1010 1011 xch %0, %1
*/", | 2462 "/** 0110 0001 1010 1011 xch %0, %1
*/", |
2464 op[0], op[1]); | 2463 op[0], op[1]); |
2465 } | 2464 } |
2466 SYNTAX("xch %0, %1"); | 2465 SYNTAX("xch %0, %1"); |
2467 #line 1202 "rl78-decode.opc" | 2466 #line 1207 "rl78-decode.opc" |
2468 ID(xch); DR(A); SM(None, SFR); | 2467 ID(xch); DR(A); SM(None, SFR); |
2469 | 2468 |
2470 } | 2469 } |
2471 break; | 2470 break; |
2472 case 0xac: | 2471 case 0xac: |
2473 { | 2472 { |
2474 /** 0110 0001 1010 1100 xch %0, %e1%1
*/ | 2473 /** 0110 0001 1010 1100 xch %0, %e1%1
*/ |
2475 if (trace) | 2474 if (trace) |
2476 { | 2475 { |
2477 printf ("\033[33m%s\033[0m %02x %02x\n", | 2476 printf ("\033[33m%s\033[0m %02x %02x\n", |
2478 "/** 0110 0001 1010 1100 xch %0, %e1%
1 */", | 2477 "/** 0110 0001 1010 1100 xch %0, %e1%
1 */", |
2479 op[0], op[1]); | 2478 op[0], op[1]); |
2480 } | 2479 } |
2481 SYNTAX("xch %0, %e1%1"); | 2480 SYNTAX("xch %0, %e1%1"); |
2482 #line 1183 "rl78-decode.opc" | 2481 #line 1188 "rl78-decode.opc" |
2483 ID(xch); DR(A); SM(HL, 0); | 2482 ID(xch); DR(A); SM(HL, 0); |
2484 | 2483 |
2485 } | 2484 } |
2486 break; | 2485 break; |
2487 case 0xad: | 2486 case 0xad: |
2488 { | 2487 { |
2489 /** 0110 0001 1010 1101 xch %0, %e1%1
*/ | 2488 /** 0110 0001 1010 1101 xch %0, %e1%1
*/ |
2490 if (trace) | 2489 if (trace) |
2491 { | 2490 { |
2492 printf ("\033[33m%s\033[0m %02x %02x\n", | 2491 printf ("\033[33m%s\033[0m %02x %02x\n", |
2493 "/** 0110 0001 1010 1101 xch %0, %e1%
1 */", | 2492 "/** 0110 0001 1010 1101 xch %0, %e1%
1 */", |
2494 op[0], op[1]); | 2493 op[0], op[1]); |
2495 } | 2494 } |
2496 SYNTAX("xch %0, %e1%1"); | 2495 SYNTAX("xch %0, %e1%1"); |
2497 #line 1189 "rl78-decode.opc" | 2496 #line 1194 "rl78-decode.opc" |
2498 ID(xch); DR(A); SM(HL, IMMU(1)); | 2497 ID(xch); DR(A); SM(HL, IMMU(1)); |
2499 | 2498 |
2500 } | 2499 } |
2501 break; | 2500 break; |
2502 case 0xae: | 2501 case 0xae: |
2503 { | 2502 { |
2504 /** 0110 0001 1010 1110 xch %0, %e1%1
*/ | 2503 /** 0110 0001 1010 1110 xch %0, %e1%1
*/ |
2505 if (trace) | 2504 if (trace) |
2506 { | 2505 { |
2507 printf ("\033[33m%s\033[0m %02x %02x\n", | 2506 printf ("\033[33m%s\033[0m %02x %02x\n", |
2508 "/** 0110 0001 1010 1110 xch %0, %e1%
1 */", | 2507 "/** 0110 0001 1010 1110 xch %0, %e1%
1 */", |
2509 op[0], op[1]); | 2508 op[0], op[1]); |
2510 } | 2509 } |
2511 SYNTAX("xch %0, %e1%1"); | 2510 SYNTAX("xch %0, %e1%1"); |
2512 #line 1177 "rl78-decode.opc" | 2511 #line 1182 "rl78-decode.opc" |
2513 ID(xch); DR(A); SM(DE, 0); | 2512 ID(xch); DR(A); SM(DE, 0); |
2514 | 2513 |
2515 } | 2514 } |
2516 break; | 2515 break; |
2517 case 0xaf: | 2516 case 0xaf: |
2518 { | 2517 { |
2519 /** 0110 0001 1010 1111 xch %0, %e1%1
*/ | 2518 /** 0110 0001 1010 1111 xch %0, %e1%1
*/ |
2520 if (trace) | 2519 if (trace) |
2521 { | 2520 { |
2522 printf ("\033[33m%s\033[0m %02x %02x\n", | 2521 printf ("\033[33m%s\033[0m %02x %02x\n", |
2523 "/** 0110 0001 1010 1111 xch %0, %e1%
1 */", | 2522 "/** 0110 0001 1010 1111 xch %0, %e1%
1 */", |
2524 op[0], op[1]); | 2523 op[0], op[1]); |
2525 } | 2524 } |
2526 SYNTAX("xch %0, %e1%1"); | 2525 SYNTAX("xch %0, %e1%1"); |
2527 #line 1180 "rl78-decode.opc" | 2526 #line 1185 "rl78-decode.opc" |
2528 ID(xch); DR(A); SM(DE, IMMU(1)); | 2527 ID(xch); DR(A); SM(DE, IMMU(1)); |
2529 | 2528 |
2530 } | 2529 } |
2531 break; | 2530 break; |
2532 case 0xb0: | 2531 case 0xb0: |
2533 { | 2532 { |
2534 /** 0110 0001 1011 0000 subc %0, %e1%1
*/ | 2533 /** 0110 0001 1011 0000 subc %0, %e1%1
*/ |
2535 if (trace) | 2534 if (trace) |
2536 { | 2535 { |
2537 printf ("\033[33m%s\033[0m %02x %02x\n", | 2536 printf ("\033[33m%s\033[0m %02x %02x\n", |
2538 "/** 0110 0001 1011 0000 subc %0, %e1%
1 */", | 2537 "/** 0110 0001 1011 0000 subc %0, %e1%
1 */", |
2539 op[0], op[1]); | 2538 op[0], op[1]); |
2540 } | 2539 } |
2541 SYNTAX("subc %0, %e1%1"); | 2540 SYNTAX("subc %0, %e1%1"); |
2542 #line 1128 "rl78-decode.opc" | 2541 #line 1133 "rl78-decode.opc" |
2543 ID(subc); DR(A); SM2(HL, B, 0); Fzac; | 2542 ID(subc); DR(A); SM2(HL, B, 0); Fzac; |
2544 | 2543 |
2545 } | 2544 } |
2546 break; | 2545 break; |
2547 case 0xb2: | 2546 case 0xb2: |
2548 { | 2547 { |
2549 /** 0110 0001 1011 0010 subc %0, %e1%1
*/ | 2548 /** 0110 0001 1011 0010 subc %0, %e1%1
*/ |
2550 if (trace) | 2549 if (trace) |
2551 { | 2550 { |
2552 printf ("\033[33m%s\033[0m %02x %02x\n", | 2551 printf ("\033[33m%s\033[0m %02x %02x\n", |
2553 "/** 0110 0001 1011 0010 subc %0, %e1%
1 */", | 2552 "/** 0110 0001 1011 0010 subc %0, %e1%
1 */", |
2554 op[0], op[1]); | 2553 op[0], op[1]); |
2555 } | 2554 } |
2556 SYNTAX("subc %0, %e1%1"); | 2555 SYNTAX("subc %0, %e1%1"); |
2557 #line 1131 "rl78-decode.opc" | 2556 #line 1136 "rl78-decode.opc" |
2558 ID(subc); DR(A); SM2(HL, C, 0); Fzac; | 2557 ID(subc); DR(A); SM2(HL, C, 0); Fzac; |
2559 | 2558 |
2560 } | 2559 } |
2561 break; | 2560 break; |
2562 case 0xb8: | 2561 case 0xb8: |
2563 { | 2562 { |
2564 /** 0110 0001 1011 1000 mov %0, %1
*/ | 2563 /** 0110 0001 1011 1000 mov %0, %1
*/ |
2565 if (trace) | 2564 if (trace) |
2566 { | 2565 { |
2567 printf ("\033[33m%s\033[0m %02x %02x\n", | 2566 printf ("\033[33m%s\033[0m %02x %02x\n", |
2568 "/** 0110 0001 1011 1000 mov %0, %1
*/", | 2567 "/** 0110 0001 1011 1000 mov %0, %1
*/", |
2569 op[0], op[1]); | 2568 op[0], op[1]); |
2570 } | 2569 } |
2571 SYNTAX("mov %0, %1"); | 2570 SYNTAX("mov %0, %1"); |
2572 #line 702 "rl78-decode.opc" | 2571 #line 702 "rl78-decode.opc" |
2573 ID(mov); DR(ES); SM(None, SADDR); | 2572 ID(mov); DR(ES); SM(None, SADDR); |
2574 | 2573 |
2575 } | 2574 } |
2576 break; | 2575 break; |
2577 case 0xb9: | 2576 case 0xb9: |
2578 { | 2577 { |
2579 /** 0110 0001 1011 1001 xch %0, %e1%1
*/ | 2578 /** 0110 0001 1011 1001 xch %0, %e1%1
*/ |
2580 if (trace) | 2579 if (trace) |
2581 { | 2580 { |
2582 printf ("\033[33m%s\033[0m %02x %02x\n", | 2581 printf ("\033[33m%s\033[0m %02x %02x\n", |
2583 "/** 0110 0001 1011 1001 xch %0, %e1%
1 */", | 2582 "/** 0110 0001 1011 1001 xch %0, %e1%
1 */", |
2584 op[0], op[1]); | 2583 op[0], op[1]); |
2585 } | 2584 } |
2586 SYNTAX("xch %0, %e1%1"); | 2585 SYNTAX("xch %0, %e1%1"); |
2587 #line 1186 "rl78-decode.opc" | 2586 #line 1191 "rl78-decode.opc" |
2588 ID(xch); DR(A); SM2(HL, B, 0); | 2587 ID(xch); DR(A); SM2(HL, B, 0); |
2589 | 2588 |
2590 } | 2589 } |
2591 break; | 2590 break; |
2592 case 0xc0: | 2591 case 0xc0: |
2593 { | 2592 { |
2594 /** 0110 0001 1100 0000 cmp %0, %e1%1
*/ | 2593 /** 0110 0001 1100 0000 cmp %0, %e1%1
*/ |
2595 if (trace) | 2594 if (trace) |
2596 { | 2595 { |
2597 printf ("\033[33m%s\033[0m %02x %02x\n", | 2596 printf ("\033[33m%s\033[0m %02x %02x\n", |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2637 case 0xc8: | 2636 case 0xc8: |
2638 { | 2637 { |
2639 /** 0110 0001 1100 1000 sk%c1
*/ | 2638 /** 0110 0001 1100 1000 sk%c1
*/ |
2640 if (trace) | 2639 if (trace) |
2641 { | 2640 { |
2642 printf ("\033[33m%s\033[0m %02x %02x\n", | 2641 printf ("\033[33m%s\033[0m %02x %02x\n", |
2643 "/** 0110 0001 1100 1000 sk%c1
*/", | 2642 "/** 0110 0001 1100 1000 sk%c1
*/", |
2644 op[0], op[1]); | 2643 op[0], op[1]); |
2645 } | 2644 } |
2646 SYNTAX("sk%c1"); | 2645 SYNTAX("sk%c1"); |
2647 #line 1065 "rl78-decode.opc" | 2646 #line 1070 "rl78-decode.opc" |
2648 ID(skip); COND(C); | 2647 ID(skip); COND(C); |
2649 | 2648 |
2650 } | 2649 } |
2651 break; | 2650 break; |
2652 case 0xc9: | 2651 case 0xc9: |
2653 { | 2652 { |
2654 /** 0110 0001 1100 1001 mov %0, %e1%1
*/ | 2653 /** 0110 0001 1100 1001 mov %0, %e1%1
*/ |
2655 if (trace) | 2654 if (trace) |
2656 { | 2655 { |
2657 printf ("\033[33m%s\033[0m %02x %02x\n", | 2656 printf ("\033[33m%s\033[0m %02x %02x\n", |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2722 case 0xcd: | 2721 case 0xcd: |
2723 { | 2722 { |
2724 /** 0110 0001 1100 1101 pop %s0
*/ | 2723 /** 0110 0001 1100 1101 pop %s0
*/ |
2725 if (trace) | 2724 if (trace) |
2726 { | 2725 { |
2727 printf ("\033[33m%s\033[0m %02x %02x\n", | 2726 printf ("\033[33m%s\033[0m %02x %02x\n", |
2728 "/** 0110 0001 1100 1101 pop %s0
*/", | 2727 "/** 0110 0001 1100 1101 pop %s0
*/", |
2729 op[0], op[1]); | 2728 op[0], op[1]); |
2730 } | 2729 } |
2731 SYNTAX("pop %s0"); | 2730 SYNTAX("pop %s0"); |
2732 #line 960 "rl78-decode.opc" | 2731 #line 965 "rl78-decode.opc" |
2733 ID(mov); W(); DR(PSW); SPOP(); | 2732 ID(mov); W(); DR(PSW); SPOP(); |
2734 | 2733 |
2735 /*----------------------------------------------------------------
------*/ | 2734 /*----------------------------------------------------------------
------*/ |
2736 | 2735 |
2737 } | 2736 } |
2738 break; | 2737 break; |
2739 case 0xce: | 2738 case 0xce: |
2740 { | 2739 { |
2741 /** 0110 0001 1100 1110 movs %e0%0, %1
*/ | 2740 /** 0110 0001 1100 1110 movs %e0%0, %1
*/ |
2742 if (trace) | 2741 if (trace) |
2743 { | 2742 { |
2744 printf ("\033[33m%s\033[0m %02x %02x\n", | 2743 printf ("\033[33m%s\033[0m %02x %02x\n", |
2745 "/** 0110 0001 1100 1110 movs %e0%0, %
1 */", | 2744 "/** 0110 0001 1100 1110 movs %e0%0, %
1 */", |
2746 op[0], op[1]); | 2745 op[0], op[1]); |
2747 } | 2746 } |
2748 SYNTAX("movs %e0%0, %1"); | 2747 SYNTAX("movs %e0%0, %1"); |
2749 #line 787 "rl78-decode.opc" | 2748 #line 787 "rl78-decode.opc" |
2750 ID(mov); DM(HL, IMMU(1)); SR(X); Fzc; | 2749 ID(mov); DM(HL, IMMU(1)); SR(X); Fzc; |
2751 | 2750 |
2752 /*----------------------------------------------------------------
------*/ | 2751 /*----------------------------------------------------------------
------*/ |
2753 | 2752 |
2754 } | 2753 } |
2755 break; | 2754 break; |
2756 case 0xcf: | 2755 case 0xcf: |
2757 case 0xdf: | 2756 case 0xdf: |
2758 case 0xef: | 2757 case 0xef: |
2759 case 0xff: | 2758 case 0xff: |
2760 { | 2759 { |
2761 /** 0110 0001 11rb 1111 sel rb%1
*/ | 2760 /** 0110 0001 11rb 1111 sel rb%1
*/ |
2762 #line 1012 "rl78-decode.opc" | 2761 #line 1017 "rl78-decode.opc" |
2763 int rb AU = (op[1] >> 4) & 0x03; | 2762 int rb AU = (op[1] >> 4) & 0x03; |
2764 if (trace) | 2763 if (trace) |
2765 { | 2764 { |
2766 printf ("\033[33m%s\033[0m %02x %02x\n", | 2765 printf ("\033[33m%s\033[0m %02x %02x\n", |
2767 "/** 0110 0001 11rb 1111 sel rb%1
*/", | 2766 "/** 0110 0001 11rb 1111 sel rb%1
*/", |
2768 op[0], op[1]); | 2767 op[0], op[1]); |
2769 printf (" rb = 0x%x\n", rb); | 2768 printf (" rb = 0x%x\n", rb); |
2770 } | 2769 } |
2771 SYNTAX("sel rb%1"); | 2770 SYNTAX("sel rb%1"); |
2772 #line 1012 "rl78-decode.opc" | 2771 #line 1017 "rl78-decode.opc" |
2773 ID(sel); SC(rb); | 2772 ID(sel); SC(rb); |
2774 | 2773 |
2775 /*----------------------------------------------------------------
------*/ | 2774 /*----------------------------------------------------------------
------*/ |
2776 | 2775 |
2777 } | 2776 } |
2778 break; | 2777 break; |
2779 case 0xd0: | 2778 case 0xd0: |
2780 { | 2779 { |
2781 /** 0110 0001 1101 0000 and %0, %e1%1
*/ | 2780 /** 0110 0001 1101 0000 and %0, %e1%1
*/ |
2782 if (trace) | 2781 if (trace) |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2824 case 0xd8: | 2823 case 0xd8: |
2825 { | 2824 { |
2826 /** 0110 0001 1101 1000 sk%c1
*/ | 2825 /** 0110 0001 1101 1000 sk%c1
*/ |
2827 if (trace) | 2826 if (trace) |
2828 { | 2827 { |
2829 printf ("\033[33m%s\033[0m %02x %02x\n", | 2828 printf ("\033[33m%s\033[0m %02x %02x\n", |
2830 "/** 0110 0001 1101 1000 sk%c1
*/", | 2829 "/** 0110 0001 1101 1000 sk%c1
*/", |
2831 op[0], op[1]); | 2830 op[0], op[1]); |
2832 } | 2831 } |
2833 SYNTAX("sk%c1"); | 2832 SYNTAX("sk%c1"); |
2834 #line 1071 "rl78-decode.opc" | 2833 #line 1076 "rl78-decode.opc" |
2835 ID(skip); COND(NC); | 2834 ID(skip); COND(NC); |
2836 | 2835 |
2837 } | 2836 } |
2838 break; | 2837 break; |
2839 case 0xd9: | 2838 case 0xd9: |
2840 { | 2839 { |
2841 /** 0110 0001 1101 1001 mov %e0%0, %1
*/ | 2840 /** 0110 0001 1101 1001 mov %e0%0, %1
*/ |
2842 if (trace) | 2841 if (trace) |
2843 { | 2842 { |
2844 printf ("\033[33m%s\033[0m %02x %02x\n", | 2843 printf ("\033[33m%s\033[0m %02x %02x\n", |
2845 "/** 0110 0001 1101 1001 mov %e0%0, %
1 */", | 2844 "/** 0110 0001 1101 1001 mov %e0%0, %
1 */", |
2846 op[0], op[1]); | 2845 op[0], op[1]); |
2847 } | 2846 } |
2848 SYNTAX("mov %e0%0, %1"); | 2847 SYNTAX("mov %e0%0, %1"); |
2849 #line 606 "rl78-decode.opc" | 2848 #line 606 "rl78-decode.opc" |
2850 ID(mov); DM2(HL, B, 0); SR(A); | 2849 ID(mov); DM2(HL, B, 0); SR(A); |
2851 | 2850 |
2852 } | 2851 } |
2853 break; | 2852 break; |
2854 case 0xdb: | 2853 case 0xdb: |
2855 { | 2854 { |
2856 /** 0110 0001 1101 1011 ror %0, %1
*/ | 2855 /** 0110 0001 1101 1011 ror %0, %1
*/ |
2857 if (trace) | 2856 if (trace) |
2858 { | 2857 { |
2859 printf ("\033[33m%s\033[0m %02x %02x\n", | 2858 printf ("\033[33m%s\033[0m %02x %02x\n", |
2860 "/** 0110 0001 1101 1011 ror %0, %1
*/", | 2859 "/** 0110 0001 1101 1011 ror %0, %1
*/", |
2861 op[0], op[1]); | 2860 op[0], op[1]); |
2862 } | 2861 } |
2863 SYNTAX("ror %0, %1"); | 2862 SYNTAX("ror %0, %1"); |
2864 #line 993 "rl78-decode.opc" | 2863 #line 998 "rl78-decode.opc" |
2865 ID(ror); DR(A); SC(1); | 2864 ID(ror); DR(A); SC(1); |
2866 | 2865 |
2867 } | 2866 } |
2868 break; | 2867 break; |
2869 case 0xdc: | 2868 case 0xdc: |
2870 { | 2869 { |
2871 /** 0110 0001 1101 1100 rolc %0, %1
*/ | 2870 /** 0110 0001 1101 1100 rolc %0, %1
*/ |
2872 if (trace) | 2871 if (trace) |
2873 { | 2872 { |
2874 printf ("\033[33m%s\033[0m %02x %02x\n", | 2873 printf ("\033[33m%s\033[0m %02x %02x\n", |
2875 "/** 0110 0001 1101 1100 rolc %0, %1
*/", | 2874 "/** 0110 0001 1101 1100 rolc %0, %1
*/", |
2876 op[0], op[1]); | 2875 op[0], op[1]); |
2877 } | 2876 } |
2878 SYNTAX("rolc %0, %1"); | 2877 SYNTAX("rolc %0, %1"); |
2879 #line 987 "rl78-decode.opc" | 2878 #line 992 "rl78-decode.opc" |
2880 ID(rolc); DR(A); SC(1); | 2879 ID(rolc); DR(A); SC(1); |
2881 | 2880 |
2882 } | 2881 } |
2883 break; | 2882 break; |
2884 case 0xdd: | 2883 case 0xdd: |
2885 { | 2884 { |
2886 /** 0110 0001 1101 1101 push %s1
*/ | 2885 /** 0110 0001 1101 1101 push %s1
*/ |
2887 if (trace) | 2886 if (trace) |
2888 { | 2887 { |
2889 printf ("\033[33m%s\033[0m %02x %02x\n", | 2888 printf ("\033[33m%s\033[0m %02x %02x\n", |
2890 "/** 0110 0001 1101 1101 push %s1
*/", | 2889 "/** 0110 0001 1101 1101 push %s1
*/", |
2891 op[0], op[1]); | 2890 op[0], op[1]); |
2892 } | 2891 } |
2893 SYNTAX("push %s1"); | 2892 SYNTAX("push %s1"); |
2894 #line 968 "rl78-decode.opc" | 2893 #line 973 "rl78-decode.opc" |
2895 ID(mov); W(); DPUSH(); SR(PSW); | 2894 ID(mov); W(); DPUSH(); SR(PSW); |
2896 | 2895 |
2897 /*----------------------------------------------------------------
------*/ | 2896 /*----------------------------------------------------------------
------*/ |
2898 | 2897 |
2899 } | 2898 } |
2900 break; | 2899 break; |
2901 case 0xde: | 2900 case 0xde: |
2902 { | 2901 { |
2903 /** 0110 0001 1101 1110 cmps %0, %e1%1
*/ | 2902 /** 0110 0001 1101 1110 cmps %0, %e1%1
*/ |
2904 if (trace) | 2903 if (trace) |
(...skipping 13 matching lines...) Expand all Loading... |
2918 case 0xe0: | 2917 case 0xe0: |
2919 { | 2918 { |
2920 /** 0110 0001 1110 0000 or %0, %e1%1
*/ | 2919 /** 0110 0001 1110 0000 or %0, %e1%1
*/ |
2921 if (trace) | 2920 if (trace) |
2922 { | 2921 { |
2923 printf ("\033[33m%s\033[0m %02x %02x\n", | 2922 printf ("\033[33m%s\033[0m %02x %02x\n", |
2924 "/** 0110 0001 1110 0000 or %0, %e1%
1 */", | 2923 "/** 0110 0001 1110 0000 or %0, %e1%
1 */", |
2925 op[0], op[1]); | 2924 op[0], op[1]); |
2926 } | 2925 } |
2927 SYNTAX("or %0, %e1%1"); | 2926 SYNTAX("or %0, %e1%1"); |
2928 #line 917 "rl78-decode.opc" | 2927 #line 922 "rl78-decode.opc" |
2929 ID(or); DR(A); SM2(HL, B, 0); Fz; | 2928 ID(or); DR(A); SM2(HL, B, 0); Fz; |
2930 | 2929 |
2931 } | 2930 } |
2932 break; | 2931 break; |
2933 case 0xe2: | 2932 case 0xe2: |
2934 { | 2933 { |
2935 /** 0110 0001 1110 0010 or %0, %e1%1
*/ | 2934 /** 0110 0001 1110 0010 or %0, %e1%1
*/ |
2936 if (trace) | 2935 if (trace) |
2937 { | 2936 { |
2938 printf ("\033[33m%s\033[0m %02x %02x\n", | 2937 printf ("\033[33m%s\033[0m %02x %02x\n", |
2939 "/** 0110 0001 1110 0010 or %0, %e1%
1 */", | 2938 "/** 0110 0001 1110 0010 or %0, %e1%
1 */", |
2940 op[0], op[1]); | 2939 op[0], op[1]); |
2941 } | 2940 } |
2942 SYNTAX("or %0, %e1%1"); | 2941 SYNTAX("or %0, %e1%1"); |
2943 #line 923 "rl78-decode.opc" | 2942 #line 928 "rl78-decode.opc" |
2944 ID(or); DR(A); SM2(HL, C, 0); Fz; | 2943 ID(or); DR(A); SM2(HL, C, 0); Fz; |
2945 | 2944 |
2946 } | 2945 } |
2947 break; | 2946 break; |
2948 case 0xe3: | 2947 case 0xe3: |
2949 { | 2948 { |
2950 /** 0110 0001 1110 0011 sk%c1
*/ | 2949 /** 0110 0001 1110 0011 sk%c1
*/ |
2951 if (trace) | 2950 if (trace) |
2952 { | 2951 { |
2953 printf ("\033[33m%s\033[0m %02x %02x\n", | 2952 printf ("\033[33m%s\033[0m %02x %02x\n", |
2954 "/** 0110 0001 1110 0011 sk%c1
*/", | 2953 "/** 0110 0001 1110 0011 sk%c1
*/", |
2955 op[0], op[1]); | 2954 op[0], op[1]); |
2956 } | 2955 } |
2957 SYNTAX("sk%c1"); | 2956 SYNTAX("sk%c1"); |
2958 #line 1068 "rl78-decode.opc" | 2957 #line 1073 "rl78-decode.opc" |
2959 ID(skip); COND(H); | 2958 ID(skip); COND(H); |
2960 | 2959 |
2961 } | 2960 } |
2962 break; | 2961 break; |
2963 case 0xe8: | 2962 case 0xe8: |
2964 { | 2963 { |
2965 /** 0110 0001 1110 1000 sk%c1
*/ | 2964 /** 0110 0001 1110 1000 sk%c1
*/ |
2966 if (trace) | 2965 if (trace) |
2967 { | 2966 { |
2968 printf ("\033[33m%s\033[0m %02x %02x\n", | 2967 printf ("\033[33m%s\033[0m %02x %02x\n", |
2969 "/** 0110 0001 1110 1000 sk%c1
*/", | 2968 "/** 0110 0001 1110 1000 sk%c1
*/", |
2970 op[0], op[1]); | 2969 op[0], op[1]); |
2971 } | 2970 } |
2972 SYNTAX("sk%c1"); | 2971 SYNTAX("sk%c1"); |
2973 #line 1080 "rl78-decode.opc" | 2972 #line 1085 "rl78-decode.opc" |
2974 ID(skip); COND(Z); | 2973 ID(skip); COND(Z); |
2975 | 2974 |
2976 /*----------------------------------------------------------------
------*/ | 2975 /*----------------------------------------------------------------
------*/ |
2977 | 2976 |
2978 } | 2977 } |
2979 break; | 2978 break; |
2980 case 0xe9: | 2979 case 0xe9: |
2981 { | 2980 { |
2982 /** 0110 0001 1110 1001 mov %0, %e1%1
*/ | 2981 /** 0110 0001 1110 1001 mov %0, %e1%1
*/ |
2983 if (trace) | 2982 if (trace) |
(...skipping 11 matching lines...) Expand all Loading... |
2995 case 0xeb: | 2994 case 0xeb: |
2996 { | 2995 { |
2997 /** 0110 0001 1110 1011 rol %0, %1
*/ | 2996 /** 0110 0001 1110 1011 rol %0, %1
*/ |
2998 if (trace) | 2997 if (trace) |
2999 { | 2998 { |
3000 printf ("\033[33m%s\033[0m %02x %02x\n", | 2999 printf ("\033[33m%s\033[0m %02x %02x\n", |
3001 "/** 0110 0001 1110 1011 rol %0, %1
*/", | 3000 "/** 0110 0001 1110 1011 rol %0, %1
*/", |
3002 op[0], op[1]); | 3001 op[0], op[1]); |
3003 } | 3002 } |
3004 SYNTAX("rol %0, %1"); | 3003 SYNTAX("rol %0, %1"); |
3005 #line 984 "rl78-decode.opc" | 3004 #line 989 "rl78-decode.opc" |
3006 ID(rol); DR(A); SC(1); | 3005 ID(rol); DR(A); SC(1); |
3007 | 3006 |
3008 } | 3007 } |
3009 break; | 3008 break; |
3010 case 0xec: | 3009 case 0xec: |
3011 { | 3010 { |
3012 /** 0110 0001 1110 1100 retb
*/ | 3011 /** 0110 0001 1110 1100 retb
*/ |
3013 if (trace) | 3012 if (trace) |
3014 { | 3013 { |
3015 printf ("\033[33m%s\033[0m %02x %02x\n", | 3014 printf ("\033[33m%s\033[0m %02x %02x\n", |
3016 "/** 0110 0001 1110 1100 retb
*/", | 3015 "/** 0110 0001 1110 1100 retb
*/", |
3017 op[0], op[1]); | 3016 op[0], op[1]); |
3018 } | 3017 } |
3019 SYNTAX("retb"); | 3018 SYNTAX("retb"); |
3020 #line 979 "rl78-decode.opc" | 3019 #line 984 "rl78-decode.opc" |
3021 ID(reti); | 3020 ID(reti); |
3022 | 3021 |
3023 /*----------------------------------------------------------------
------*/ | 3022 /*----------------------------------------------------------------
------*/ |
3024 | 3023 |
3025 } | 3024 } |
3026 break; | 3025 break; |
3027 case 0xed: | 3026 case 0xed: |
3028 { | 3027 { |
3029 /** 0110 0001 1110 1101 halt
*/ | 3028 /** 0110 0001 1110 1101 halt
*/ |
3030 if (trace) | 3029 if (trace) |
3031 { | 3030 { |
3032 printf ("\033[33m%s\033[0m %02x %02x\n", | 3031 printf ("\033[33m%s\033[0m %02x %02x\n", |
3033 "/** 0110 0001 1110 1101 halt
*/", | 3032 "/** 0110 0001 1110 1101 halt
*/", |
3034 op[0], op[1]); | 3033 op[0], op[1]); |
3035 } | 3034 } |
3036 SYNTAX("halt"); | 3035 SYNTAX("halt"); |
3037 #line 555 "rl78-decode.opc" | 3036 #line 555 "rl78-decode.opc" |
3038 ID(halt); | 3037 ID(halt); |
3039 | 3038 |
3040 /*----------------------------------------------------------------
------*/ | 3039 /*----------------------------------------------------------------
------*/ |
3041 | 3040 |
3042 } | 3041 } |
3043 break; | 3042 break; |
3044 case 0xee: | 3043 case 0xee: |
3045 case 0xfe: | 3044 case 0xfe: |
3046 { | 3045 { |
3047 /** 0110 0001 111r 1110 rolwc %0, %1
*/ | 3046 /** 0110 0001 111r 1110 rolwc %0, %1
*/ |
3048 #line 990 "rl78-decode.opc" | 3047 #line 995 "rl78-decode.opc" |
3049 int r AU = (op[1] >> 4) & 0x01; | 3048 int r AU = (op[1] >> 4) & 0x01; |
3050 if (trace) | 3049 if (trace) |
3051 { | 3050 { |
3052 printf ("\033[33m%s\033[0m %02x %02x\n", | 3051 printf ("\033[33m%s\033[0m %02x %02x\n", |
3053 "/** 0110 0001 111r 1110 rolwc %0, %1
*/", | 3052 "/** 0110 0001 111r 1110 rolwc %0, %1
*/", |
3054 op[0], op[1]); | 3053 op[0], op[1]); |
3055 printf (" r = 0x%x\n", r); | 3054 printf (" r = 0x%x\n", r); |
3056 } | 3055 } |
3057 SYNTAX("rolwc %0, %1"); | 3056 SYNTAX("rolwc %0, %1"); |
3058 #line 990 "rl78-decode.opc" | 3057 #line 995 "rl78-decode.opc" |
3059 ID(rolc); W(); DRW(r); SC(1); | 3058 ID(rolc); W(); DRW(r); SC(1); |
3060 | 3059 |
3061 } | 3060 } |
3062 break; | 3061 break; |
3063 case 0xf0: | 3062 case 0xf0: |
3064 { | 3063 { |
3065 /** 0110 0001 1111 0000 xor %0, %e1%1
*/ | 3064 /** 0110 0001 1111 0000 xor %0, %e1%1
*/ |
3066 if (trace) | 3065 if (trace) |
3067 { | 3066 { |
3068 printf ("\033[33m%s\033[0m %02x %02x\n", | 3067 printf ("\033[33m%s\033[0m %02x %02x\n", |
3069 "/** 0110 0001 1111 0000 xor %0, %e1%
1 */", | 3068 "/** 0110 0001 1111 0000 xor %0, %e1%
1 */", |
3070 op[0], op[1]); | 3069 op[0], op[1]); |
3071 } | 3070 } |
3072 SYNTAX("xor %0, %e1%1"); | 3071 SYNTAX("xor %0, %e1%1"); |
3073 #line 1221 "rl78-decode.opc" | 3072 #line 1226 "rl78-decode.opc" |
3074 ID(xor); DR(A); SM2(HL, B, 0); Fz; | 3073 ID(xor); DR(A); SM2(HL, B, 0); Fz; |
3075 | 3074 |
3076 } | 3075 } |
3077 break; | 3076 break; |
3078 case 0xf2: | 3077 case 0xf2: |
3079 { | 3078 { |
3080 /** 0110 0001 1111 0010 xor %0, %e1%1
*/ | 3079 /** 0110 0001 1111 0010 xor %0, %e1%1
*/ |
3081 if (trace) | 3080 if (trace) |
3082 { | 3081 { |
3083 printf ("\033[33m%s\033[0m %02x %02x\n", | 3082 printf ("\033[33m%s\033[0m %02x %02x\n", |
3084 "/** 0110 0001 1111 0010 xor %0, %e1%
1 */", | 3083 "/** 0110 0001 1111 0010 xor %0, %e1%
1 */", |
3085 op[0], op[1]); | 3084 op[0], op[1]); |
3086 } | 3085 } |
3087 SYNTAX("xor %0, %e1%1"); | 3086 SYNTAX("xor %0, %e1%1"); |
3088 #line 1227 "rl78-decode.opc" | 3087 #line 1232 "rl78-decode.opc" |
3089 ID(xor); DR(A); SM2(HL, C, 0); Fz; | 3088 ID(xor); DR(A); SM2(HL, C, 0); Fz; |
3090 | 3089 |
3091 } | 3090 } |
3092 break; | 3091 break; |
3093 case 0xf3: | 3092 case 0xf3: |
3094 { | 3093 { |
3095 /** 0110 0001 1111 0011 sk%c1
*/ | 3094 /** 0110 0001 1111 0011 sk%c1
*/ |
3096 if (trace) | 3095 if (trace) |
3097 { | 3096 { |
3098 printf ("\033[33m%s\033[0m %02x %02x\n", | 3097 printf ("\033[33m%s\033[0m %02x %02x\n", |
3099 "/** 0110 0001 1111 0011 sk%c1
*/", | 3098 "/** 0110 0001 1111 0011 sk%c1
*/", |
3100 op[0], op[1]); | 3099 op[0], op[1]); |
3101 } | 3100 } |
3102 SYNTAX("sk%c1"); | 3101 SYNTAX("sk%c1"); |
3103 #line 1074 "rl78-decode.opc" | 3102 #line 1079 "rl78-decode.opc" |
3104 ID(skip); COND(NH); | 3103 ID(skip); COND(NH); |
3105 | 3104 |
3106 } | 3105 } |
3107 break; | 3106 break; |
3108 case 0xf8: | 3107 case 0xf8: |
3109 { | 3108 { |
3110 /** 0110 0001 1111 1000 sk%c1
*/ | 3109 /** 0110 0001 1111 1000 sk%c1
*/ |
3111 if (trace) | 3110 if (trace) |
3112 { | 3111 { |
3113 printf ("\033[33m%s\033[0m %02x %02x\n", | 3112 printf ("\033[33m%s\033[0m %02x %02x\n", |
3114 "/** 0110 0001 1111 1000 sk%c1
*/", | 3113 "/** 0110 0001 1111 1000 sk%c1
*/", |
3115 op[0], op[1]); | 3114 op[0], op[1]); |
3116 } | 3115 } |
3117 SYNTAX("sk%c1"); | 3116 SYNTAX("sk%c1"); |
3118 #line 1077 "rl78-decode.opc" | 3117 #line 1082 "rl78-decode.opc" |
3119 ID(skip); COND(NZ); | 3118 ID(skip); COND(NZ); |
3120 | 3119 |
3121 } | 3120 } |
3122 break; | 3121 break; |
3123 case 0xf9: | 3122 case 0xf9: |
3124 { | 3123 { |
3125 /** 0110 0001 1111 1001 mov %e0%0, %1
*/ | 3124 /** 0110 0001 1111 1001 mov %e0%0, %1
*/ |
3126 if (trace) | 3125 if (trace) |
3127 { | 3126 { |
3128 printf ("\033[33m%s\033[0m %02x %02x\n", | 3127 printf ("\033[33m%s\033[0m %02x %02x\n", |
3129 "/** 0110 0001 1111 1001 mov %e0%0, %
1 */", | 3128 "/** 0110 0001 1111 1001 mov %e0%0, %
1 */", |
3130 op[0], op[1]); | 3129 op[0], op[1]); |
3131 } | 3130 } |
3132 SYNTAX("mov %e0%0, %1"); | 3131 SYNTAX("mov %e0%0, %1"); |
3133 #line 615 "rl78-decode.opc" | 3132 #line 615 "rl78-decode.opc" |
3134 ID(mov); DM2(HL, C, 0); SR(A); | 3133 ID(mov); DM2(HL, C, 0); SR(A); |
3135 | 3134 |
3136 } | 3135 } |
3137 break; | 3136 break; |
3138 case 0xfb: | 3137 case 0xfb: |
3139 { | 3138 { |
3140 /** 0110 0001 1111 1011 rorc %0, %1
*/ | 3139 /** 0110 0001 1111 1011 rorc %0, %1
*/ |
3141 if (trace) | 3140 if (trace) |
3142 { | 3141 { |
3143 printf ("\033[33m%s\033[0m %02x %02x\n", | 3142 printf ("\033[33m%s\033[0m %02x %02x\n", |
3144 "/** 0110 0001 1111 1011 rorc %0, %1
*/", | 3143 "/** 0110 0001 1111 1011 rorc %0, %1
*/", |
3145 op[0], op[1]); | 3144 op[0], op[1]); |
3146 } | 3145 } |
3147 SYNTAX("rorc %0, %1"); | 3146 SYNTAX("rorc %0, %1"); |
3148 #line 996 "rl78-decode.opc" | 3147 #line 1001 "rl78-decode.opc" |
3149 ID(rorc); DR(A); SC(1); | 3148 ID(rorc); DR(A); SC(1); |
3150 | 3149 |
3151 /*----------------------------------------------------------------
------*/ | 3150 /*----------------------------------------------------------------
------*/ |
3152 | 3151 |
3153 /* Note that the branch insns need to be listed before the shift | 3152 /* Note that the branch insns need to be listed before the shift |
3154 ones, as "shift count of zero" means "branch insn" */ | 3153 ones, as "shift count of zero" means "branch insn" */ |
3155 | 3154 |
3156 } | 3155 } |
3157 break; | 3156 break; |
3158 case 0xfc: | 3157 case 0xfc: |
3159 { | 3158 { |
3160 /** 0110 0001 1111 1100 reti
*/ | 3159 /** 0110 0001 1111 1100 reti
*/ |
3161 if (trace) | 3160 if (trace) |
3162 { | 3161 { |
3163 printf ("\033[33m%s\033[0m %02x %02x\n", | 3162 printf ("\033[33m%s\033[0m %02x %02x\n", |
3164 "/** 0110 0001 1111 1100 reti
*/", | 3163 "/** 0110 0001 1111 1100 reti
*/", |
3165 op[0], op[1]); | 3164 op[0], op[1]); |
3166 } | 3165 } |
3167 SYNTAX("reti"); | 3166 SYNTAX("reti"); |
3168 #line 976 "rl78-decode.opc" | 3167 #line 981 "rl78-decode.opc" |
3169 ID(reti); | 3168 ID(reti); |
3170 | 3169 |
3171 } | 3170 } |
3172 break; | 3171 break; |
3173 case 0xfd: | 3172 case 0xfd: |
3174 { | 3173 { |
3175 /** 0110 0001 1111 1101 stop
*/ | 3174 /** 0110 0001 1111 1101 stop
*/ |
3176 if (trace) | 3175 if (trace) |
3177 { | 3176 { |
3178 printf ("\033[33m%s\033[0m %02x %02x\n", | 3177 printf ("\033[33m%s\033[0m %02x %02x\n", |
3179 "/** 0110 0001 1111 1101 stop
*/", | 3178 "/** 0110 0001 1111 1101 stop
*/", |
3180 op[0], op[1]); | 3179 op[0], op[1]); |
3181 } | 3180 } |
3182 SYNTAX("stop"); | 3181 SYNTAX("stop"); |
3183 #line 1085 "rl78-decode.opc" | 3182 #line 1090 "rl78-decode.opc" |
3184 ID(stop); | 3183 ID(stop); |
3185 | 3184 |
3186 /*----------------------------------------------------------------
------*/ | 3185 /*----------------------------------------------------------------
------*/ |
3187 | 3186 |
3188 } | 3187 } |
3189 break; | 3188 break; |
3190 default: UNSUPPORTED(); break; | 3189 default: UNSUPPORTED(); break; |
3191 } | 3190 } |
3192 break; | 3191 break; |
3193 case 0x68: | 3192 case 0x68: |
(...skipping 29 matching lines...) Expand all Loading... |
3223 case 0x6a: | 3222 case 0x6a: |
3224 { | 3223 { |
3225 /** 0110 1010 or %0, #%1
*/ | 3224 /** 0110 1010 or %0, #%1
*/ |
3226 if (trace) | 3225 if (trace) |
3227 { | 3226 { |
3228 printf ("\033[33m%s\033[0m %02x\n", | 3227 printf ("\033[33m%s\033[0m %02x\n", |
3229 "/** 0110 1010 or %0, #%1
*/", | 3228 "/** 0110 1010 or %0, #%1
*/", |
3230 op[0]); | 3229 op[0]); |
3231 } | 3230 } |
3232 SYNTAX("or %0, #%1"); | 3231 SYNTAX("or %0, #%1"); |
3233 #line 938 "rl78-decode.opc" | 3232 #line 943 "rl78-decode.opc" |
3234 ID(or); DM(None, SADDR); SC(IMMU(1)); Fz; | 3233 ID(or); DM(None, SADDR); SC(IMMU(1)); Fz; |
3235 | 3234 |
3236 /*----------------------------------------------------------------------
*/ | 3235 /*----------------------------------------------------------------------
*/ |
3237 | 3236 |
3238 } | 3237 } |
3239 break; | 3238 break; |
3240 case 0x6b: | 3239 case 0x6b: |
3241 { | 3240 { |
3242 /** 0110 1011 or %0, %1
*/ | 3241 /** 0110 1011 or %0, %1
*/ |
3243 if (trace) | 3242 if (trace) |
3244 { | 3243 { |
3245 printf ("\033[33m%s\033[0m %02x\n", | 3244 printf ("\033[33m%s\033[0m %02x\n", |
3246 "/** 0110 1011 or %0, %1
*/", | 3245 "/** 0110 1011 or %0, %1
*/", |
3247 op[0]); | 3246 op[0]); |
3248 } | 3247 } |
3249 SYNTAX("or %0, %1"); | 3248 SYNTAX("or %0, %1"); |
3250 #line 935 "rl78-decode.opc" | 3249 #line 940 "rl78-decode.opc" |
3251 ID(or); DR(A); SM(None, SADDR); Fz; | 3250 ID(or); DR(A); SM(None, SADDR); Fz; |
3252 | 3251 |
3253 } | 3252 } |
3254 break; | 3253 break; |
3255 case 0x6c: | 3254 case 0x6c: |
3256 { | 3255 { |
3257 /** 0110 1100 or %0, #%1
*/ | 3256 /** 0110 1100 or %0, #%1
*/ |
3258 if (trace) | 3257 if (trace) |
3259 { | 3258 { |
3260 printf ("\033[33m%s\033[0m %02x\n", | 3259 printf ("\033[33m%s\033[0m %02x\n", |
3261 "/** 0110 1100 or %0, #%1
*/", | 3260 "/** 0110 1100 or %0, #%1
*/", |
3262 op[0]); | 3261 op[0]); |
3263 } | 3262 } |
3264 SYNTAX("or %0, #%1"); | 3263 SYNTAX("or %0, #%1"); |
3265 #line 926 "rl78-decode.opc" | 3264 #line 931 "rl78-decode.opc" |
3266 ID(or); DR(A); SC(IMMU(1)); Fz; | 3265 ID(or); DR(A); SC(IMMU(1)); Fz; |
3267 | 3266 |
3268 } | 3267 } |
3269 break; | 3268 break; |
3270 case 0x6d: | 3269 case 0x6d: |
3271 { | 3270 { |
3272 /** 0110 1101 or %0, %e1%1
*/ | 3271 /** 0110 1101 or %0, %e1%1
*/ |
3273 if (trace) | 3272 if (trace) |
3274 { | 3273 { |
3275 printf ("\033[33m%s\033[0m %02x\n", | 3274 printf ("\033[33m%s\033[0m %02x\n", |
3276 "/** 0110 1101 or %0, %e1%1
*/", | 3275 "/** 0110 1101 or %0, %e1%1
*/", |
3277 op[0]); | 3276 op[0]); |
3278 } | 3277 } |
3279 SYNTAX("or %0, %e1%1"); | 3278 SYNTAX("or %0, %e1%1"); |
3280 #line 914 "rl78-decode.opc" | 3279 #line 919 "rl78-decode.opc" |
3281 ID(or); DR(A); SM(HL, 0); Fz; | 3280 ID(or); DR(A); SM(HL, 0); Fz; |
3282 | 3281 |
3283 } | 3282 } |
3284 break; | 3283 break; |
3285 case 0x6e: | 3284 case 0x6e: |
3286 { | 3285 { |
3287 /** 0110 1110 or %0, %e1%1
*/ | 3286 /** 0110 1110 or %0, %e1%1
*/ |
3288 if (trace) | 3287 if (trace) |
3289 { | 3288 { |
3290 printf ("\033[33m%s\033[0m %02x\n", | 3289 printf ("\033[33m%s\033[0m %02x\n", |
3291 "/** 0110 1110 or %0, %e1%1
*/", | 3290 "/** 0110 1110 or %0, %e1%1
*/", |
3292 op[0]); | 3291 op[0]); |
3293 } | 3292 } |
3294 SYNTAX("or %0, %e1%1"); | 3293 SYNTAX("or %0, %e1%1"); |
3295 #line 920 "rl78-decode.opc" | 3294 #line 925 "rl78-decode.opc" |
3296 ID(or); DR(A); SM(HL, IMMU(1)); Fz; | 3295 ID(or); DR(A); SM(HL, IMMU(1)); Fz; |
3297 | 3296 |
3298 } | 3297 } |
3299 break; | 3298 break; |
3300 case 0x6f: | 3299 case 0x6f: |
3301 { | 3300 { |
3302 /** 0110 1111 or %0, %e1%!1
*/ | 3301 /** 0110 1111 or %0, %e1%!1
*/ |
3303 if (trace) | 3302 if (trace) |
3304 { | 3303 { |
3305 printf ("\033[33m%s\033[0m %02x\n", | 3304 printf ("\033[33m%s\033[0m %02x\n", |
3306 "/** 0110 1111 or %0, %e1%!1
*/", | 3305 "/** 0110 1111 or %0, %e1%!1
*/", |
3307 op[0]); | 3306 op[0]); |
3308 } | 3307 } |
3309 SYNTAX("or %0, %e1%!1"); | 3308 SYNTAX("or %0, %e1%!1"); |
3310 #line 911 "rl78-decode.opc" | 3309 #line 916 "rl78-decode.opc" |
3311 ID(or); DR(A); SM(None, IMMU(2)); Fz; | 3310 ID(or); DR(A); SM(None, IMMU(2)); Fz; |
3312 | 3311 |
3313 } | 3312 } |
3314 break; | 3313 break; |
3315 case 0x70: | 3314 case 0x70: |
3316 case 0x72: | 3315 case 0x72: |
3317 case 0x73: | 3316 case 0x73: |
3318 case 0x74: | 3317 case 0x74: |
3319 case 0x75: | 3318 case 0x75: |
3320 case 0x76: | 3319 case 0x76: |
(...skipping 22 matching lines...) Expand all Loading... |
3343 case 0x00: | 3342 case 0x00: |
3344 case 0x10: | 3343 case 0x10: |
3345 case 0x20: | 3344 case 0x20: |
3346 case 0x30: | 3345 case 0x30: |
3347 case 0x40: | 3346 case 0x40: |
3348 case 0x50: | 3347 case 0x50: |
3349 case 0x60: | 3348 case 0x60: |
3350 case 0x70: | 3349 case 0x70: |
3351 { | 3350 { |
3352 /** 0111 0001 0bit 0000 set1 %e0%!0
*/ | 3351 /** 0111 0001 0bit 0000 set1 %e0%!0
*/ |
3353 #line 1017 "rl78-decode.opc" | 3352 #line 1022 "rl78-decode.opc" |
3354 int bit AU = (op[1] >> 4) & 0x07; | 3353 int bit AU = (op[1] >> 4) & 0x07; |
3355 if (trace) | 3354 if (trace) |
3356 { | 3355 { |
3357 printf ("\033[33m%s\033[0m %02x %02x\n", | 3356 printf ("\033[33m%s\033[0m %02x %02x\n", |
3358 "/** 0111 0001 0bit 0000 set1 %e0%!0
*/", | 3357 "/** 0111 0001 0bit 0000 set1 %e0%!0
*/", |
3359 op[0], op[1]); | 3358 op[0], op[1]); |
3360 printf (" bit = 0x%x\n", bit); | 3359 printf (" bit = 0x%x\n", bit); |
3361 } | 3360 } |
3362 SYNTAX("set1 %e0%!0"); | 3361 SYNTAX("set1 %e0%!0"); |
3363 #line 1017 "rl78-decode.opc" | 3362 #line 1022 "rl78-decode.opc" |
3364 ID(mov); DM(None, IMMU(2)); DB(bit); SC(1); | 3363 ID(mov); DM(None, IMMU(2)); DB(bit); SC(1); |
3365 | 3364 |
3366 } | 3365 } |
3367 break; | 3366 break; |
3368 case 0x01: | 3367 case 0x01: |
3369 case 0x11: | 3368 case 0x11: |
3370 case 0x21: | 3369 case 0x21: |
3371 case 0x31: | 3370 case 0x31: |
3372 case 0x41: | 3371 case 0x41: |
3373 case 0x51: | 3372 case 0x51: |
(...skipping 19 matching lines...) Expand all Loading... |
3393 case 0x02: | 3392 case 0x02: |
3394 case 0x12: | 3393 case 0x12: |
3395 case 0x22: | 3394 case 0x22: |
3396 case 0x32: | 3395 case 0x32: |
3397 case 0x42: | 3396 case 0x42: |
3398 case 0x52: | 3397 case 0x52: |
3399 case 0x62: | 3398 case 0x62: |
3400 case 0x72: | 3399 case 0x72: |
3401 { | 3400 { |
3402 /** 0111 0001 0bit 0010 set1 %0
*/ | 3401 /** 0111 0001 0bit 0010 set1 %0
*/ |
3403 #line 1035 "rl78-decode.opc" | 3402 #line 1040 "rl78-decode.opc" |
3404 int bit AU = (op[1] >> 4) & 0x07; | 3403 int bit AU = (op[1] >> 4) & 0x07; |
3405 if (trace) | 3404 if (trace) |
3406 { | 3405 { |
3407 printf ("\033[33m%s\033[0m %02x %02x\n", | 3406 printf ("\033[33m%s\033[0m %02x %02x\n", |
3408 "/** 0111 0001 0bit 0010 set1 %0
*/", | 3407 "/** 0111 0001 0bit 0010 set1 %0
*/", |
3409 op[0], op[1]); | 3408 op[0], op[1]); |
3410 printf (" bit = 0x%x\n", bit); | 3409 printf (" bit = 0x%x\n", bit); |
3411 } | 3410 } |
3412 SYNTAX("set1 %0"); | 3411 SYNTAX("set1 %0"); |
3413 #line 1035 "rl78-decode.opc" | 3412 #line 1040 "rl78-decode.opc" |
3414 ID(mov); DM(None, SADDR); DB(bit); SC(1); | 3413 ID(mov); DM(None, SADDR); DB(bit); SC(1); |
3415 | 3414 |
3416 /*----------------------------------------------------------------
------*/ | 3415 /*----------------------------------------------------------------
------*/ |
3417 | 3416 |
3418 } | 3417 } |
3419 break; | 3418 break; |
3420 case 0x03: | 3419 case 0x03: |
3421 case 0x13: | 3420 case 0x13: |
3422 case 0x23: | 3421 case 0x23: |
3423 case 0x33: | 3422 case 0x33: |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3502 case 0x06: | 3501 case 0x06: |
3503 case 0x16: | 3502 case 0x16: |
3504 case 0x26: | 3503 case 0x26: |
3505 case 0x36: | 3504 case 0x36: |
3506 case 0x46: | 3505 case 0x46: |
3507 case 0x56: | 3506 case 0x56: |
3508 case 0x66: | 3507 case 0x66: |
3509 case 0x76: | 3508 case 0x76: |
3510 { | 3509 { |
3511 /** 0111 0001 0bit 0110 or1 cy, %s1
*/ | 3510 /** 0111 0001 0bit 0110 or1 cy, %s1
*/ |
3512 #line 952 "rl78-decode.opc" | 3511 #line 957 "rl78-decode.opc" |
3513 int bit AU = (op[1] >> 4) & 0x07; | 3512 int bit AU = (op[1] >> 4) & 0x07; |
3514 if (trace) | 3513 if (trace) |
3515 { | 3514 { |
3516 printf ("\033[33m%s\033[0m %02x %02x\n", | 3515 printf ("\033[33m%s\033[0m %02x %02x\n", |
3517 "/** 0111 0001 0bit 0110 or1 cy, %s1
*/", | 3516 "/** 0111 0001 0bit 0110 or1 cy, %s1
*/", |
3518 op[0], op[1]); | 3517 op[0], op[1]); |
3519 printf (" bit = 0x%x\n", bit); | 3518 printf (" bit = 0x%x\n", bit); |
3520 } | 3519 } |
3521 SYNTAX("or1 cy, %s1"); | 3520 SYNTAX("or1 cy, %s1"); |
3522 #line 952 "rl78-decode.opc" | 3521 #line 957 "rl78-decode.opc" |
3523 ID(or); DCY(); SM(None, SADDR); SB(bit); | 3522 ID(or); DCY(); SM(None, SADDR); SB(bit); |
3524 | 3523 |
3525 /*----------------------------------------------------------------
------*/ | 3524 /*----------------------------------------------------------------
------*/ |
3526 | 3525 |
3527 } | 3526 } |
3528 break; | 3527 break; |
3529 case 0x07: | 3528 case 0x07: |
3530 case 0x17: | 3529 case 0x17: |
3531 case 0x27: | 3530 case 0x27: |
3532 case 0x37: | 3531 case 0x37: |
3533 case 0x47: | 3532 case 0x47: |
3534 case 0x57: | 3533 case 0x57: |
3535 case 0x67: | 3534 case 0x67: |
3536 case 0x77: | 3535 case 0x77: |
3537 { | 3536 { |
3538 /** 0111 0001 0bit 0111 xor1 cy, %s1
*/ | 3537 /** 0111 0001 0bit 0111 xor1 cy, %s1
*/ |
3539 #line 1256 "rl78-decode.opc" | 3538 #line 1261 "rl78-decode.opc" |
3540 int bit AU = (op[1] >> 4) & 0x07; | 3539 int bit AU = (op[1] >> 4) & 0x07; |
3541 if (trace) | 3540 if (trace) |
3542 { | 3541 { |
3543 printf ("\033[33m%s\033[0m %02x %02x\n", | 3542 printf ("\033[33m%s\033[0m %02x %02x\n", |
3544 "/** 0111 0001 0bit 0111 xor1 cy, %s1
*/", | 3543 "/** 0111 0001 0bit 0111 xor1 cy, %s1
*/", |
3545 op[0], op[1]); | 3544 op[0], op[1]); |
3546 printf (" bit = 0x%x\n", bit); | 3545 printf (" bit = 0x%x\n", bit); |
3547 } | 3546 } |
3548 SYNTAX("xor1 cy, %s1"); | 3547 SYNTAX("xor1 cy, %s1"); |
3549 #line 1256 "rl78-decode.opc" | 3548 #line 1261 "rl78-decode.opc" |
3550 ID(xor); DCY(); SM(None, SADDR); SB(bit); | 3549 ID(xor); DCY(); SM(None, SADDR); SB(bit); |
3551 | 3550 |
3552 /*----------------------------------------------------------------
------*/ | 3551 /*----------------------------------------------------------------
------*/ |
3553 | 3552 |
3554 } | 3553 } |
3555 break; | 3554 break; |
3556 case 0x08: | 3555 case 0x08: |
3557 case 0x18: | 3556 case 0x18: |
3558 case 0x28: | 3557 case 0x28: |
3559 case 0x38: | 3558 case 0x38: |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3608 case 0x0a: | 3607 case 0x0a: |
3609 case 0x1a: | 3608 case 0x1a: |
3610 case 0x2a: | 3609 case 0x2a: |
3611 case 0x3a: | 3610 case 0x3a: |
3612 case 0x4a: | 3611 case 0x4a: |
3613 case 0x5a: | 3612 case 0x5a: |
3614 case 0x6a: | 3613 case 0x6a: |
3615 case 0x7a: | 3614 case 0x7a: |
3616 { | 3615 { |
3617 /** 0111 0001 0bit 1010 set1 %s0
*/ | 3616 /** 0111 0001 0bit 1010 set1 %s0
*/ |
3618 #line 1029 "rl78-decode.opc" | 3617 #line 1034 "rl78-decode.opc" |
3619 int bit AU = (op[1] >> 4) & 0x07; | 3618 int bit AU = (op[1] >> 4) & 0x07; |
3620 if (trace) | 3619 if (trace) |
3621 { | 3620 { |
3622 printf ("\033[33m%s\033[0m %02x %02x\n", | 3621 printf ("\033[33m%s\033[0m %02x %02x\n", |
3623 "/** 0111 0001 0bit 1010 set1 %s0
*/", | 3622 "/** 0111 0001 0bit 1010 set1 %s0
*/", |
3624 op[0], op[1]); | 3623 op[0], op[1]); |
3625 printf (" bit = 0x%x\n", bit); | 3624 printf (" bit = 0x%x\n", bit); |
3626 } | 3625 } |
3627 SYNTAX("set1 %s0"); | 3626 SYNTAX("set1 %s0"); |
3628 #line 1029 "rl78-decode.opc" | 3627 #line 1034 "rl78-decode.opc" |
3629 op0 = SFR; | 3628 op0 = SFR; |
3630 ID(mov); DM(None, op0); DB(bit); SC(1); | 3629 ID(mov); DM(None, op0); DB(bit); SC(1); |
3631 if (op0 == RL78_SFR_PSW && bit == 7) | 3630 if (op0 == RL78_SFR_PSW && bit == 7) |
3632 rl78->syntax = "ei"; | 3631 rl78->syntax = "ei"; |
3633 | 3632 |
3634 } | 3633 } |
3635 break; | 3634 break; |
3636 case 0x0b: | 3635 case 0x0b: |
3637 case 0x1b: | 3636 case 0x1b: |
3638 case 0x2b: | 3637 case 0x2b: |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3714 case 0x0e: | 3713 case 0x0e: |
3715 case 0x1e: | 3714 case 0x1e: |
3716 case 0x2e: | 3715 case 0x2e: |
3717 case 0x3e: | 3716 case 0x3e: |
3718 case 0x4e: | 3717 case 0x4e: |
3719 case 0x5e: | 3718 case 0x5e: |
3720 case 0x6e: | 3719 case 0x6e: |
3721 case 0x7e: | 3720 case 0x7e: |
3722 { | 3721 { |
3723 /** 0111 0001 0bit 1110 or1 cy, %s1
*/ | 3722 /** 0111 0001 0bit 1110 or1 cy, %s1
*/ |
3724 #line 949 "rl78-decode.opc" | 3723 #line 954 "rl78-decode.opc" |
3725 int bit AU = (op[1] >> 4) & 0x07; | 3724 int bit AU = (op[1] >> 4) & 0x07; |
3726 if (trace) | 3725 if (trace) |
3727 { | 3726 { |
3728 printf ("\033[33m%s\033[0m %02x %02x\n", | 3727 printf ("\033[33m%s\033[0m %02x %02x\n", |
3729 "/** 0111 0001 0bit 1110 or1 cy, %s1
*/", | 3728 "/** 0111 0001 0bit 1110 or1 cy, %s1
*/", |
3730 op[0], op[1]); | 3729 op[0], op[1]); |
3731 printf (" bit = 0x%x\n", bit); | 3730 printf (" bit = 0x%x\n", bit); |
3732 } | 3731 } |
3733 SYNTAX("or1 cy, %s1"); | 3732 SYNTAX("or1 cy, %s1"); |
3734 #line 949 "rl78-decode.opc" | 3733 #line 954 "rl78-decode.opc" |
3735 ID(or); DCY(); SM(None, SFR); SB(bit); | 3734 ID(or); DCY(); SM(None, SFR); SB(bit); |
3736 | 3735 |
3737 } | 3736 } |
3738 break; | 3737 break; |
3739 case 0x0f: | 3738 case 0x0f: |
3740 case 0x1f: | 3739 case 0x1f: |
3741 case 0x2f: | 3740 case 0x2f: |
3742 case 0x3f: | 3741 case 0x3f: |
3743 case 0x4f: | 3742 case 0x4f: |
3744 case 0x5f: | 3743 case 0x5f: |
3745 case 0x6f: | 3744 case 0x6f: |
3746 case 0x7f: | 3745 case 0x7f: |
3747 { | 3746 { |
3748 /** 0111 0001 0bit 1111 xor1 cy, %s1
*/ | 3747 /** 0111 0001 0bit 1111 xor1 cy, %s1
*/ |
3749 #line 1253 "rl78-decode.opc" | 3748 #line 1258 "rl78-decode.opc" |
3750 int bit AU = (op[1] >> 4) & 0x07; | 3749 int bit AU = (op[1] >> 4) & 0x07; |
3751 if (trace) | 3750 if (trace) |
3752 { | 3751 { |
3753 printf ("\033[33m%s\033[0m %02x %02x\n", | 3752 printf ("\033[33m%s\033[0m %02x %02x\n", |
3754 "/** 0111 0001 0bit 1111 xor1 cy, %s1
*/", | 3753 "/** 0111 0001 0bit 1111 xor1 cy, %s1
*/", |
3755 op[0], op[1]); | 3754 op[0], op[1]); |
3756 printf (" bit = 0x%x\n", bit); | 3755 printf (" bit = 0x%x\n", bit); |
3757 } | 3756 } |
3758 SYNTAX("xor1 cy, %s1"); | 3757 SYNTAX("xor1 cy, %s1"); |
3759 #line 1253 "rl78-decode.opc" | 3758 #line 1258 "rl78-decode.opc" |
3760 ID(xor); DCY(); SM(None, SFR); SB(bit); | 3759 ID(xor); DCY(); SM(None, SFR); SB(bit); |
3761 | 3760 |
3762 } | 3761 } |
3763 break; | 3762 break; |
3764 case 0x80: | 3763 case 0x80: |
3765 { | 3764 { |
3766 /** 0111 0001 1000 0000 set1 cy
*/ | 3765 /** 0111 0001 1000 0000 set1 cy
*/ |
3767 if (trace) | 3766 if (trace) |
3768 { | 3767 { |
3769 printf ("\033[33m%s\033[0m %02x %02x\n", | 3768 printf ("\033[33m%s\033[0m %02x %02x\n", |
3770 "/** 0111 0001 1000 0000 set1 cy
*/", | 3769 "/** 0111 0001 1000 0000 set1 cy
*/", |
3771 op[0], op[1]); | 3770 op[0], op[1]); |
3772 } | 3771 } |
3773 SYNTAX("set1 cy"); | 3772 SYNTAX("set1 cy"); |
3774 #line 1026 "rl78-decode.opc" | 3773 #line 1031 "rl78-decode.opc" |
3775 ID(mov); DCY(); SC(1); | 3774 ID(mov); DCY(); SC(1); |
3776 | 3775 |
3777 } | 3776 } |
3778 break; | 3777 break; |
3779 case 0x81: | 3778 case 0x81: |
3780 case 0x91: | 3779 case 0x91: |
3781 case 0xa1: | 3780 case 0xa1: |
3782 case 0xb1: | 3781 case 0xb1: |
3783 case 0xc1: | 3782 case 0xc1: |
3784 case 0xd1: | 3783 case 0xd1: |
(...skipping 19 matching lines...) Expand all Loading... |
3804 case 0x82: | 3803 case 0x82: |
3805 case 0x92: | 3804 case 0x92: |
3806 case 0xa2: | 3805 case 0xa2: |
3807 case 0xb2: | 3806 case 0xb2: |
3808 case 0xc2: | 3807 case 0xc2: |
3809 case 0xd2: | 3808 case 0xd2: |
3810 case 0xe2: | 3809 case 0xe2: |
3811 case 0xf2: | 3810 case 0xf2: |
3812 { | 3811 { |
3813 /** 0111 0001 1bit 0010 set1 %e0%0
*/ | 3812 /** 0111 0001 1bit 0010 set1 %e0%0
*/ |
3814 #line 1020 "rl78-decode.opc" | 3813 #line 1025 "rl78-decode.opc" |
3815 int bit AU = (op[1] >> 4) & 0x07; | 3814 int bit AU = (op[1] >> 4) & 0x07; |
3816 if (trace) | 3815 if (trace) |
3817 { | 3816 { |
3818 printf ("\033[33m%s\033[0m %02x %02x\n", | 3817 printf ("\033[33m%s\033[0m %02x %02x\n", |
3819 "/** 0111 0001 1bit 0010 set1 %e0%0
*/", | 3818 "/** 0111 0001 1bit 0010 set1 %e0%0
*/", |
3820 op[0], op[1]); | 3819 op[0], op[1]); |
3821 printf (" bit = 0x%x\n", bit); | 3820 printf (" bit = 0x%x\n", bit); |
3822 } | 3821 } |
3823 SYNTAX("set1 %e0%0"); | 3822 SYNTAX("set1 %e0%0"); |
3824 #line 1020 "rl78-decode.opc" | 3823 #line 1025 "rl78-decode.opc" |
3825 ID(mov); DM(HL, 0); DB(bit); SC(1); | 3824 ID(mov); DM(HL, 0); DB(bit); SC(1); |
3826 | 3825 |
3827 } | 3826 } |
3828 break; | 3827 break; |
3829 case 0x83: | 3828 case 0x83: |
3830 case 0x93: | 3829 case 0x93: |
3831 case 0xa3: | 3830 case 0xa3: |
3832 case 0xb3: | 3831 case 0xb3: |
3833 case 0xc3: | 3832 case 0xc3: |
3834 case 0xd3: | 3833 case 0xd3: |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3904 case 0x86: | 3903 case 0x86: |
3905 case 0x96: | 3904 case 0x96: |
3906 case 0xa6: | 3905 case 0xa6: |
3907 case 0xb6: | 3906 case 0xb6: |
3908 case 0xc6: | 3907 case 0xc6: |
3909 case 0xd6: | 3908 case 0xd6: |
3910 case 0xe6: | 3909 case 0xe6: |
3911 case 0xf6: | 3910 case 0xf6: |
3912 { | 3911 { |
3913 /** 0111 0001 1bit 0110 or1 cy, %e1%1
*/ | 3912 /** 0111 0001 1bit 0110 or1 cy, %e1%1
*/ |
3914 #line 943 "rl78-decode.opc" | 3913 #line 948 "rl78-decode.opc" |
3915 int bit AU = (op[1] >> 4) & 0x07; | 3914 int bit AU = (op[1] >> 4) & 0x07; |
3916 if (trace) | 3915 if (trace) |
3917 { | 3916 { |
3918 printf ("\033[33m%s\033[0m %02x %02x\n", | 3917 printf ("\033[33m%s\033[0m %02x %02x\n", |
3919 "/** 0111 0001 1bit 0110 or1 cy, %e1%
1 */", | 3918 "/** 0111 0001 1bit 0110 or1 cy, %e1%
1 */", |
3920 op[0], op[1]); | 3919 op[0], op[1]); |
3921 printf (" bit = 0x%x\n", bit); | 3920 printf (" bit = 0x%x\n", bit); |
3922 } | 3921 } |
3923 SYNTAX("or1 cy, %e1%1"); | 3922 SYNTAX("or1 cy, %e1%1"); |
3924 #line 943 "rl78-decode.opc" | 3923 #line 948 "rl78-decode.opc" |
3925 ID(or); DCY(); SM(HL, 0); SB(bit); | 3924 ID(or); DCY(); SM(HL, 0); SB(bit); |
3926 | 3925 |
3927 } | 3926 } |
3928 break; | 3927 break; |
3929 case 0x87: | 3928 case 0x87: |
3930 case 0x97: | 3929 case 0x97: |
3931 case 0xa7: | 3930 case 0xa7: |
3932 case 0xb7: | 3931 case 0xb7: |
3933 case 0xc7: | 3932 case 0xc7: |
3934 case 0xd7: | 3933 case 0xd7: |
3935 case 0xe7: | 3934 case 0xe7: |
3936 case 0xf7: | 3935 case 0xf7: |
3937 { | 3936 { |
3938 /** 0111 0001 1bit 0111 xor1 cy, %e1%1
*/ | 3937 /** 0111 0001 1bit 0111 xor1 cy, %e1%1
*/ |
3939 #line 1247 "rl78-decode.opc" | 3938 #line 1252 "rl78-decode.opc" |
3940 int bit AU = (op[1] >> 4) & 0x07; | 3939 int bit AU = (op[1] >> 4) & 0x07; |
3941 if (trace) | 3940 if (trace) |
3942 { | 3941 { |
3943 printf ("\033[33m%s\033[0m %02x %02x\n", | 3942 printf ("\033[33m%s\033[0m %02x %02x\n", |
3944 "/** 0111 0001 1bit 0111 xor1 cy, %e1%
1 */", | 3943 "/** 0111 0001 1bit 0111 xor1 cy, %e1%
1 */", |
3945 op[0], op[1]); | 3944 op[0], op[1]); |
3946 printf (" bit = 0x%x\n", bit); | 3945 printf (" bit = 0x%x\n", bit); |
3947 } | 3946 } |
3948 SYNTAX("xor1 cy, %e1%1"); | 3947 SYNTAX("xor1 cy, %e1%1"); |
3949 #line 1247 "rl78-decode.opc" | 3948 #line 1252 "rl78-decode.opc" |
3950 ID(xor); DCY(); SM(HL, 0); SB(bit); | 3949 ID(xor); DCY(); SM(HL, 0); SB(bit); |
3951 | 3950 |
3952 } | 3951 } |
3953 break; | 3952 break; |
3954 case 0x88: | 3953 case 0x88: |
3955 { | 3954 { |
3956 /** 0111 0001 1000 1000 clr1 cy
*/ | 3955 /** 0111 0001 1000 1000 clr1 cy
*/ |
3957 if (trace) | 3956 if (trace) |
3958 { | 3957 { |
3959 printf ("\033[33m%s\033[0m %02x %02x\n", | 3958 printf ("\033[33m%s\033[0m %02x %02x\n", |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3994 case 0x8a: | 3993 case 0x8a: |
3995 case 0x9a: | 3994 case 0x9a: |
3996 case 0xaa: | 3995 case 0xaa: |
3997 case 0xba: | 3996 case 0xba: |
3998 case 0xca: | 3997 case 0xca: |
3999 case 0xda: | 3998 case 0xda: |
4000 case 0xea: | 3999 case 0xea: |
4001 case 0xfa: | 4000 case 0xfa: |
4002 { | 4001 { |
4003 /** 0111 0001 1bit 1010 set1 %0
*/ | 4002 /** 0111 0001 1bit 1010 set1 %0
*/ |
4004 #line 1023 "rl78-decode.opc" | 4003 #line 1028 "rl78-decode.opc" |
4005 int bit AU = (op[1] >> 4) & 0x07; | 4004 int bit AU = (op[1] >> 4) & 0x07; |
4006 if (trace) | 4005 if (trace) |
4007 { | 4006 { |
4008 printf ("\033[33m%s\033[0m %02x %02x\n", | 4007 printf ("\033[33m%s\033[0m %02x %02x\n", |
4009 "/** 0111 0001 1bit 1010 set1 %0
*/", | 4008 "/** 0111 0001 1bit 1010 set1 %0
*/", |
4010 op[0], op[1]); | 4009 op[0], op[1]); |
4011 printf (" bit = 0x%x\n", bit); | 4010 printf (" bit = 0x%x\n", bit); |
4012 } | 4011 } |
4013 SYNTAX("set1 %0"); | 4012 SYNTAX("set1 %0"); |
4014 #line 1023 "rl78-decode.opc" | 4013 #line 1028 "rl78-decode.opc" |
4015 ID(mov); DR(A); DB(bit); SC(1); | 4014 ID(mov); DR(A); DB(bit); SC(1); |
4016 | 4015 |
4017 } | 4016 } |
4018 break; | 4017 break; |
4019 case 0x8b: | 4018 case 0x8b: |
4020 case 0x9b: | 4019 case 0x9b: |
4021 case 0xab: | 4020 case 0xab: |
4022 case 0xbb: | 4021 case 0xbb: |
4023 case 0xcb: | 4022 case 0xcb: |
4024 case 0xdb: | 4023 case 0xdb: |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4094 case 0x8e: | 4093 case 0x8e: |
4095 case 0x9e: | 4094 case 0x9e: |
4096 case 0xae: | 4095 case 0xae: |
4097 case 0xbe: | 4096 case 0xbe: |
4098 case 0xce: | 4097 case 0xce: |
4099 case 0xde: | 4098 case 0xde: |
4100 case 0xee: | 4099 case 0xee: |
4101 case 0xfe: | 4100 case 0xfe: |
4102 { | 4101 { |
4103 /** 0111 0001 1bit 1110 or1 cy, %1
*/ | 4102 /** 0111 0001 1bit 1110 or1 cy, %1
*/ |
4104 #line 946 "rl78-decode.opc" | 4103 #line 951 "rl78-decode.opc" |
4105 int bit AU = (op[1] >> 4) & 0x07; | 4104 int bit AU = (op[1] >> 4) & 0x07; |
4106 if (trace) | 4105 if (trace) |
4107 { | 4106 { |
4108 printf ("\033[33m%s\033[0m %02x %02x\n", | 4107 printf ("\033[33m%s\033[0m %02x %02x\n", |
4109 "/** 0111 0001 1bit 1110 or1 cy, %1
*/", | 4108 "/** 0111 0001 1bit 1110 or1 cy, %1
*/", |
4110 op[0], op[1]); | 4109 op[0], op[1]); |
4111 printf (" bit = 0x%x\n", bit); | 4110 printf (" bit = 0x%x\n", bit); |
4112 } | 4111 } |
4113 SYNTAX("or1 cy, %1"); | 4112 SYNTAX("or1 cy, %1"); |
4114 #line 946 "rl78-decode.opc" | 4113 #line 951 "rl78-decode.opc" |
4115 ID(or); DCY(); SR(A); SB(bit); | 4114 ID(or); DCY(); SR(A); SB(bit); |
4116 | 4115 |
4117 } | 4116 } |
4118 break; | 4117 break; |
4119 case 0x8f: | 4118 case 0x8f: |
4120 case 0x9f: | 4119 case 0x9f: |
4121 case 0xaf: | 4120 case 0xaf: |
4122 case 0xbf: | 4121 case 0xbf: |
4123 case 0xcf: | 4122 case 0xcf: |
4124 case 0xdf: | 4123 case 0xdf: |
4125 case 0xef: | 4124 case 0xef: |
4126 case 0xff: | 4125 case 0xff: |
4127 { | 4126 { |
4128 /** 0111 0001 1bit 1111 xor1 cy, %1
*/ | 4127 /** 0111 0001 1bit 1111 xor1 cy, %1
*/ |
4129 #line 1250 "rl78-decode.opc" | 4128 #line 1255 "rl78-decode.opc" |
4130 int bit AU = (op[1] >> 4) & 0x07; | 4129 int bit AU = (op[1] >> 4) & 0x07; |
4131 if (trace) | 4130 if (trace) |
4132 { | 4131 { |
4133 printf ("\033[33m%s\033[0m %02x %02x\n", | 4132 printf ("\033[33m%s\033[0m %02x %02x\n", |
4134 "/** 0111 0001 1bit 1111 xor1 cy, %1
*/", | 4133 "/** 0111 0001 1bit 1111 xor1 cy, %1
*/", |
4135 op[0], op[1]); | 4134 op[0], op[1]); |
4136 printf (" bit = 0x%x\n", bit); | 4135 printf (" bit = 0x%x\n", bit); |
4137 } | 4136 } |
4138 SYNTAX("xor1 cy, %1"); | 4137 SYNTAX("xor1 cy, %1"); |
4139 #line 1250 "rl78-decode.opc" | 4138 #line 1255 "rl78-decode.opc" |
4140 ID(xor); DCY(); SR(A); SB(bit); | 4139 ID(xor); DCY(); SR(A); SB(bit); |
4141 | 4140 |
4142 } | 4141 } |
4143 break; | 4142 break; |
| 4143 case 0xc0: |
| 4144 { |
| 4145 /** 0111 0001 1100 0000 not1 cy
*/ |
| 4146 if (trace) |
| 4147 { |
| 4148 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4149 "/** 0111 0001 1100 0000 not1 cy
*/", |
| 4150 op[0], op[1]); |
| 4151 } |
| 4152 SYNTAX("not1 cy"); |
| 4153 #line 892 "rl78-decode.opc" |
| 4154 ID(xor); DCY(); SC(1); |
| 4155 |
| 4156 /*----------------------------------------------------------------
------*/ |
| 4157 |
| 4158 } |
| 4159 break; |
4144 default: UNSUPPORTED(); break; | 4160 default: UNSUPPORTED(); break; |
4145 } | 4161 } |
4146 break; | 4162 break; |
4147 case 0x78: | 4163 case 0x78: |
4148 { | 4164 { |
4149 /** 0111 1000 movw %e0%0, %1
*/ | 4165 /** 0111 1000 movw %e0%0, %1
*/ |
4150 if (trace) | 4166 if (trace) |
4151 { | 4167 { |
4152 printf ("\033[33m%s\033[0m %02x\n", | 4168 printf ("\033[33m%s\033[0m %02x\n", |
4153 "/** 0111 1000 movw %e0%0, %1
*/", | 4169 "/** 0111 1000 movw %e0%0, %1
*/", |
(...skipping 23 matching lines...) Expand all Loading... |
4177 case 0x7a: | 4193 case 0x7a: |
4178 { | 4194 { |
4179 /** 0111 1010 xor %0, #%1
*/ | 4195 /** 0111 1010 xor %0, #%1
*/ |
4180 if (trace) | 4196 if (trace) |
4181 { | 4197 { |
4182 printf ("\033[33m%s\033[0m %02x\n", | 4198 printf ("\033[33m%s\033[0m %02x\n", |
4183 "/** 0111 1010 xor %0, #%1
*/", | 4199 "/** 0111 1010 xor %0, #%1
*/", |
4184 op[0]); | 4200 op[0]); |
4185 } | 4201 } |
4186 SYNTAX("xor %0, #%1"); | 4202 SYNTAX("xor %0, #%1"); |
4187 #line 1242 "rl78-decode.opc" | 4203 #line 1247 "rl78-decode.opc" |
4188 ID(xor); DM(None, SADDR); SC(IMMU(1)); Fz; | 4204 ID(xor); DM(None, SADDR); SC(IMMU(1)); Fz; |
4189 | 4205 |
4190 /*----------------------------------------------------------------------
*/ | 4206 /*----------------------------------------------------------------------
*/ |
4191 | 4207 |
4192 } | 4208 } |
4193 break; | 4209 break; |
4194 case 0x7b: | 4210 case 0x7b: |
4195 { | 4211 { |
4196 /** 0111 1011 xor %0, %1
*/ | 4212 /** 0111 1011 xor %0, %1
*/ |
4197 if (trace) | 4213 if (trace) |
4198 { | 4214 { |
4199 printf ("\033[33m%s\033[0m %02x\n", | 4215 printf ("\033[33m%s\033[0m %02x\n", |
4200 "/** 0111 1011 xor %0, %1
*/", | 4216 "/** 0111 1011 xor %0, %1
*/", |
4201 op[0]); | 4217 op[0]); |
4202 } | 4218 } |
4203 SYNTAX("xor %0, %1"); | 4219 SYNTAX("xor %0, %1"); |
4204 #line 1239 "rl78-decode.opc" | 4220 #line 1244 "rl78-decode.opc" |
4205 ID(xor); DR(A); SM(None, SADDR); Fz; | 4221 ID(xor); DR(A); SM(None, SADDR); Fz; |
4206 | 4222 |
4207 } | 4223 } |
4208 break; | 4224 break; |
4209 case 0x7c: | 4225 case 0x7c: |
4210 { | 4226 { |
4211 /** 0111 1100 xor %0, #%1
*/ | 4227 /** 0111 1100 xor %0, #%1
*/ |
4212 if (trace) | 4228 if (trace) |
4213 { | 4229 { |
4214 printf ("\033[33m%s\033[0m %02x\n", | 4230 printf ("\033[33m%s\033[0m %02x\n", |
4215 "/** 0111 1100 xor %0, #%1
*/", | 4231 "/** 0111 1100 xor %0, #%1
*/", |
4216 op[0]); | 4232 op[0]); |
4217 } | 4233 } |
4218 SYNTAX("xor %0, #%1"); | 4234 SYNTAX("xor %0, #%1"); |
4219 #line 1230 "rl78-decode.opc" | 4235 #line 1235 "rl78-decode.opc" |
4220 ID(xor); DR(A); SC(IMMU(1)); Fz; | 4236 ID(xor); DR(A); SC(IMMU(1)); Fz; |
4221 | 4237 |
4222 } | 4238 } |
4223 break; | 4239 break; |
4224 case 0x7d: | 4240 case 0x7d: |
4225 { | 4241 { |
4226 /** 0111 1101 xor %0, %e1%1
*/ | 4242 /** 0111 1101 xor %0, %e1%1
*/ |
4227 if (trace) | 4243 if (trace) |
4228 { | 4244 { |
4229 printf ("\033[33m%s\033[0m %02x\n", | 4245 printf ("\033[33m%s\033[0m %02x\n", |
4230 "/** 0111 1101 xor %0, %e1%1
*/", | 4246 "/** 0111 1101 xor %0, %e1%1
*/", |
4231 op[0]); | 4247 op[0]); |
4232 } | 4248 } |
4233 SYNTAX("xor %0, %e1%1"); | 4249 SYNTAX("xor %0, %e1%1"); |
4234 #line 1218 "rl78-decode.opc" | 4250 #line 1223 "rl78-decode.opc" |
4235 ID(xor); DR(A); SM(HL, 0); Fz; | 4251 ID(xor); DR(A); SM(HL, 0); Fz; |
4236 | 4252 |
4237 } | 4253 } |
4238 break; | 4254 break; |
4239 case 0x7e: | 4255 case 0x7e: |
4240 { | 4256 { |
4241 /** 0111 1110 xor %0, %e1%1
*/ | 4257 /** 0111 1110 xor %0, %e1%1
*/ |
4242 if (trace) | 4258 if (trace) |
4243 { | 4259 { |
4244 printf ("\033[33m%s\033[0m %02x\n", | 4260 printf ("\033[33m%s\033[0m %02x\n", |
4245 "/** 0111 1110 xor %0, %e1%1
*/", | 4261 "/** 0111 1110 xor %0, %e1%1
*/", |
4246 op[0]); | 4262 op[0]); |
4247 } | 4263 } |
4248 SYNTAX("xor %0, %e1%1"); | 4264 SYNTAX("xor %0, %e1%1"); |
4249 #line 1224 "rl78-decode.opc" | 4265 #line 1229 "rl78-decode.opc" |
4250 ID(xor); DR(A); SM(HL, IMMU(1)); Fz; | 4266 ID(xor); DR(A); SM(HL, IMMU(1)); Fz; |
4251 | 4267 |
4252 } | 4268 } |
4253 break; | 4269 break; |
4254 case 0x7f: | 4270 case 0x7f: |
4255 { | 4271 { |
4256 /** 0111 1111 xor %0, %e1%!1
*/ | 4272 /** 0111 1111 xor %0, %e1%!1
*/ |
4257 if (trace) | 4273 if (trace) |
4258 { | 4274 { |
4259 printf ("\033[33m%s\033[0m %02x\n", | 4275 printf ("\033[33m%s\033[0m %02x\n", |
4260 "/** 0111 1111 xor %0, %e1%!1
*/", | 4276 "/** 0111 1111 xor %0, %e1%!1
*/", |
4261 op[0]); | 4277 op[0]); |
4262 } | 4278 } |
4263 SYNTAX("xor %0, %e1%!1"); | 4279 SYNTAX("xor %0, %e1%!1"); |
4264 #line 1215 "rl78-decode.opc" | 4280 #line 1220 "rl78-decode.opc" |
4265 ID(xor); DR(A); SM(None, IMMU(2)); Fz; | 4281 ID(xor); DR(A); SM(None, IMMU(2)); Fz; |
4266 | 4282 |
4267 } | 4283 } |
4268 break; | 4284 break; |
4269 case 0x80: | 4285 case 0x80: |
4270 case 0x81: | 4286 case 0x81: |
4271 case 0x82: | 4287 case 0x82: |
4272 case 0x83: | 4288 case 0x83: |
4273 case 0x84: | 4289 case 0x84: |
4274 case 0x85: | 4290 case 0x85: |
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4970 ID(mov); W(); DM(None, IMMU(2)); SR(AX); | 4986 ID(mov); W(); DM(None, IMMU(2)); SR(AX); |
4971 | 4987 |
4972 } | 4988 } |
4973 break; | 4989 break; |
4974 case 0xc0: | 4990 case 0xc0: |
4975 case 0xc2: | 4991 case 0xc2: |
4976 case 0xc4: | 4992 case 0xc4: |
4977 case 0xc6: | 4993 case 0xc6: |
4978 { | 4994 { |
4979 /** 1100 0rg0 pop %0
*/ | 4995 /** 1100 0rg0 pop %0
*/ |
4980 #line 957 "rl78-decode.opc" | 4996 #line 962 "rl78-decode.opc" |
4981 int rg AU = (op[0] >> 1) & 0x03; | 4997 int rg AU = (op[0] >> 1) & 0x03; |
4982 if (trace) | 4998 if (trace) |
4983 { | 4999 { |
4984 printf ("\033[33m%s\033[0m %02x\n", | 5000 printf ("\033[33m%s\033[0m %02x\n", |
4985 "/** 1100 0rg0 pop %0
*/", | 5001 "/** 1100 0rg0 pop %0
*/", |
4986 op[0]); | 5002 op[0]); |
4987 printf (" rg = 0x%x\n", rg); | 5003 printf (" rg = 0x%x\n", rg); |
4988 } | 5004 } |
4989 SYNTAX("pop %0"); | 5005 SYNTAX("pop %0"); |
4990 #line 957 "rl78-decode.opc" | 5006 #line 962 "rl78-decode.opc" |
4991 ID(mov); W(); DRW(rg); SPOP(); | 5007 ID(mov); W(); DRW(rg); SPOP(); |
4992 | 5008 |
4993 } | 5009 } |
4994 break; | 5010 break; |
4995 case 0xc1: | 5011 case 0xc1: |
4996 case 0xc3: | 5012 case 0xc3: |
4997 case 0xc5: | 5013 case 0xc5: |
4998 case 0xc7: | 5014 case 0xc7: |
4999 { | 5015 { |
5000 /** 1100 0rg1 push %1
*/ | 5016 /** 1100 0rg1 push %1
*/ |
5001 #line 965 "rl78-decode.opc" | 5017 #line 970 "rl78-decode.opc" |
5002 int rg AU = (op[0] >> 1) & 0x03; | 5018 int rg AU = (op[0] >> 1) & 0x03; |
5003 if (trace) | 5019 if (trace) |
5004 { | 5020 { |
5005 printf ("\033[33m%s\033[0m %02x\n", | 5021 printf ("\033[33m%s\033[0m %02x\n", |
5006 "/** 1100 0rg1 push %1
*/", | 5022 "/** 1100 0rg1 push %1
*/", |
5007 op[0]); | 5023 op[0]); |
5008 printf (" rg = 0x%x\n", rg); | 5024 printf (" rg = 0x%x\n", rg); |
5009 } | 5025 } |
5010 SYNTAX("push %1"); | 5026 SYNTAX("push %1"); |
5011 #line 965 "rl78-decode.opc" | 5027 #line 970 "rl78-decode.opc" |
5012 ID(mov); W(); DPUSH(); SRW(rg); | 5028 ID(mov); W(); DPUSH(); SRW(rg); |
5013 | 5029 |
5014 } | 5030 } |
5015 break; | 5031 break; |
5016 case 0xc8: | 5032 case 0xc8: |
5017 { | 5033 { |
5018 /** 1100 1000 mov %0, #%1
*/ | 5034 /** 1100 1000 mov %0, #%1
*/ |
5019 if (trace) | 5035 if (trace) |
5020 { | 5036 { |
5021 printf ("\033[33m%s\033[0m %02x\n", | 5037 printf ("\033[33m%s\033[0m %02x\n", |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5230 case 0xd7: | 5246 case 0xd7: |
5231 { | 5247 { |
5232 /** 1101 0111 ret
*/ | 5248 /** 1101 0111 ret
*/ |
5233 if (trace) | 5249 if (trace) |
5234 { | 5250 { |
5235 printf ("\033[33m%s\033[0m %02x\n", | 5251 printf ("\033[33m%s\033[0m %02x\n", |
5236 "/** 1101 0111 ret
*/", | 5252 "/** 1101 0111 ret
*/", |
5237 op[0]); | 5253 op[0]); |
5238 } | 5254 } |
5239 SYNTAX("ret"); | 5255 SYNTAX("ret"); |
5240 #line 973 "rl78-decode.opc" | 5256 #line 978 "rl78-decode.opc" |
5241 ID(ret); | 5257 ID(ret); |
5242 | 5258 |
5243 } | 5259 } |
5244 break; | 5260 break; |
5245 case 0xd8: | 5261 case 0xd8: |
5246 { | 5262 { |
5247 /** 1101 1000 mov %0, %1
*/ | 5263 /** 1101 1000 mov %0, %1
*/ |
5248 if (trace) | 5264 if (trace) |
5249 { | 5265 { |
5250 printf ("\033[33m%s\033[0m %02x\n", | 5266 printf ("\033[33m%s\033[0m %02x\n", |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5373 /*----------------------------------------------------------------------
*/ | 5389 /*----------------------------------------------------------------------
*/ |
5374 | 5390 |
5375 } | 5391 } |
5376 break; | 5392 break; |
5377 case 0xe0: | 5393 case 0xe0: |
5378 case 0xe1: | 5394 case 0xe1: |
5379 case 0xe2: | 5395 case 0xe2: |
5380 case 0xe3: | 5396 case 0xe3: |
5381 { | 5397 { |
5382 /** 1110 00rg oneb %0
*/ | 5398 /** 1110 00rg oneb %0
*/ |
5383 #line 895 "rl78-decode.opc" | 5399 #line 900 "rl78-decode.opc" |
5384 int rg AU = op[0] & 0x03; | 5400 int rg AU = op[0] & 0x03; |
5385 if (trace) | 5401 if (trace) |
5386 { | 5402 { |
5387 printf ("\033[33m%s\033[0m %02x\n", | 5403 printf ("\033[33m%s\033[0m %02x\n", |
5388 "/** 1110 00rg oneb %0
*/", | 5404 "/** 1110 00rg oneb %0
*/", |
5389 op[0]); | 5405 op[0]); |
5390 printf (" rg = 0x%x\n", rg); | 5406 printf (" rg = 0x%x\n", rg); |
5391 } | 5407 } |
5392 SYNTAX("oneb %0"); | 5408 SYNTAX("oneb %0"); |
5393 #line 895 "rl78-decode.opc" | 5409 #line 900 "rl78-decode.opc" |
5394 ID(mov); DRB(rg); SC(1); | 5410 ID(mov); DRB(rg); SC(1); |
5395 | 5411 |
5396 } | 5412 } |
5397 break; | 5413 break; |
5398 case 0xe4: | 5414 case 0xe4: |
5399 { | 5415 { |
5400 /** 1110 0100 oneb %0
*/ | 5416 /** 1110 0100 oneb %0
*/ |
5401 if (trace) | 5417 if (trace) |
5402 { | 5418 { |
5403 printf ("\033[33m%s\033[0m %02x\n", | 5419 printf ("\033[33m%s\033[0m %02x\n", |
5404 "/** 1110 0100 oneb %0
*/", | 5420 "/** 1110 0100 oneb %0
*/", |
5405 op[0]); | 5421 op[0]); |
5406 } | 5422 } |
5407 SYNTAX("oneb %0"); | 5423 SYNTAX("oneb %0"); |
5408 #line 898 "rl78-decode.opc" | 5424 #line 903 "rl78-decode.opc" |
5409 ID(mov); DM(None, SADDR); SC(1); | 5425 ID(mov); DM(None, SADDR); SC(1); |
5410 | 5426 |
5411 /*----------------------------------------------------------------------
*/ | 5427 /*----------------------------------------------------------------------
*/ |
5412 | 5428 |
5413 } | 5429 } |
5414 break; | 5430 break; |
5415 case 0xe5: | 5431 case 0xe5: |
5416 { | 5432 { |
5417 /** 1110 0101 oneb %e0%!0
*/ | 5433 /** 1110 0101 oneb %e0%!0
*/ |
5418 if (trace) | 5434 if (trace) |
5419 { | 5435 { |
5420 printf ("\033[33m%s\033[0m %02x\n", | 5436 printf ("\033[33m%s\033[0m %02x\n", |
5421 "/** 1110 0101 oneb %e0%!0
*/", | 5437 "/** 1110 0101 oneb %e0%!0
*/", |
5422 op[0]); | 5438 op[0]); |
5423 } | 5439 } |
5424 SYNTAX("oneb %e0%!0"); | 5440 SYNTAX("oneb %e0%!0"); |
5425 #line 892 "rl78-decode.opc" | 5441 #line 897 "rl78-decode.opc" |
5426 ID(mov); DM(None, IMMU(2)); SC(1); | 5442 ID(mov); DM(None, IMMU(2)); SC(1); |
5427 | 5443 |
5428 } | 5444 } |
5429 break; | 5445 break; |
5430 case 0xe6: | 5446 case 0xe6: |
5431 { | 5447 { |
5432 /** 1110 0110 onew %0
*/ | 5448 /** 1110 0110 onew %0
*/ |
5433 if (trace) | 5449 if (trace) |
5434 { | 5450 { |
5435 printf ("\033[33m%s\033[0m %02x\n", | 5451 printf ("\033[33m%s\033[0m %02x\n", |
5436 "/** 1110 0110 onew %0
*/", | 5452 "/** 1110 0110 onew %0
*/", |
5437 op[0]); | 5453 op[0]); |
5438 } | 5454 } |
5439 SYNTAX("onew %0"); | 5455 SYNTAX("onew %0"); |
5440 #line 903 "rl78-decode.opc" | 5456 #line 908 "rl78-decode.opc" |
5441 ID(mov); DR(AX); SC(1); | 5457 ID(mov); DR(AX); SC(1); |
5442 | 5458 |
5443 } | 5459 } |
5444 break; | 5460 break; |
5445 case 0xe7: | 5461 case 0xe7: |
5446 { | 5462 { |
5447 /** 1110 0111 onew %0
*/ | 5463 /** 1110 0111 onew %0
*/ |
5448 if (trace) | 5464 if (trace) |
5449 { | 5465 { |
5450 printf ("\033[33m%s\033[0m %02x\n", | 5466 printf ("\033[33m%s\033[0m %02x\n", |
5451 "/** 1110 0111 onew %0
*/", | 5467 "/** 1110 0111 onew %0
*/", |
5452 op[0]); | 5468 op[0]); |
5453 } | 5469 } |
5454 SYNTAX("onew %0"); | 5470 SYNTAX("onew %0"); |
5455 #line 906 "rl78-decode.opc" | 5471 #line 911 "rl78-decode.opc" |
5456 ID(mov); DR(BC); SC(1); | 5472 ID(mov); DR(BC); SC(1); |
5457 | 5473 |
5458 /*----------------------------------------------------------------------
*/ | 5474 /*----------------------------------------------------------------------
*/ |
5459 | 5475 |
5460 } | 5476 } |
5461 break; | 5477 break; |
5462 case 0xe8: | 5478 case 0xe8: |
5463 { | 5479 { |
5464 /** 1110 1000 mov %0, %1
*/ | 5480 /** 1110 1000 mov %0, %1
*/ |
5465 if (trace) | 5481 if (trace) |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5718 "/** 1111 1111 brk1
*/", | 5734 "/** 1111 1111 brk1
*/", |
5719 op[0]); | 5735 op[0]); |
5720 } | 5736 } |
5721 SYNTAX("brk1"); | 5737 SYNTAX("brk1"); |
5722 #line 364 "rl78-decode.opc" | 5738 #line 364 "rl78-decode.opc" |
5723 ID(break); | 5739 ID(break); |
5724 | 5740 |
5725 } | 5741 } |
5726 break; | 5742 break; |
5727 } | 5743 } |
5728 #line 1261 "rl78-decode.opc" | 5744 #line 1266 "rl78-decode.opc" |
5729 | 5745 |
5730 return rl78->n_bytes; | 5746 return rl78->n_bytes; |
5731 } | 5747 } |
OLD | NEW |