Mercurial > repos > blastem
comparison m68k.cpu @ 1941:9eec86183aae
Implement 68K or and sub instructions in new core
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 24 Apr 2020 09:23:43 -0700 |
parents | 048442b0cb62 |
children | 7d4df6b74263 |
comparison
equal
deleted
inserted
replaced
1940:048442b0cb62 | 1941:9eec86183aae |
---|---|
399 add src dregs.D dregs.D Z | 399 add src dregs.D dregs.D Z |
400 update_flags XNZVC | 400 update_flags XNZVC |
401 m68k_prefetch | 401 m68k_prefetch |
402 | 402 |
403 1101DDD1ZZMMMRRR add_dn_ea | 403 1101DDD1ZZMMMRRR add_dn_ea |
404 invalid M 0 | |
405 invalid M 1 | |
404 invalid M 7 R 2 | 406 invalid M 7 R 2 |
405 invalid M 7 R 3 | 407 invalid M 7 R 3 |
406 invalid M 7 R 4 | 408 invalid M 7 R 4 |
407 invalid M 7 R 5 | 409 invalid M 7 R 5 |
408 invalid M 7 R 6 | 410 invalid M 7 R 6 |
437 m68k_prefetch | 439 m68k_prefetch |
438 | 440 |
439 00000110ZZMMMRRR addi | 441 00000110ZZMMMRRR addi |
440 local immed 32 | 442 local immed 32 |
441 invalid Z 3 | 443 invalid Z 3 |
444 invalid M 1 | |
442 invalid M 7 R 2 | 445 invalid M 7 R 2 |
443 invalid M 7 R 3 | 446 invalid M 7 R 3 |
444 invalid M 7 R 4 | 447 invalid M 7 R 4 |
445 invalid M 7 R 5 | 448 invalid M 7 R 5 |
446 invalid M 7 R 6 | 449 invalid M 7 R 6 |
688 | 691 |
689 0000001000111100 eori_to_ccr | 692 0000001000111100 eori_to_ccr |
690 #fetch immediate operand | 693 #fetch immediate operand |
691 m68k_prefetch | 694 m68k_prefetch |
692 xor prefetch ccr ccr | 695 xor prefetch ccr ccr |
696 m68k_prefetch | |
697 | |
698 1000DDD0ZZMMMRRR or_ea_dn | |
699 invalid M 1 | |
700 invalid M 7 R 5 | |
701 invalid M 7 R 6 | |
702 invalid M 7 R 7 | |
703 invalid Z 3 | |
704 m68k_fetch_src_ea M R Z | |
705 | |
706 or src dregs.D dregs.D Z | |
707 update_flags NZV0C0 | |
708 m68k_prefetch | |
709 | |
710 1000DDD1ZZMMMRRR or_dn_ea | |
711 invalid M 0 | |
712 invalid M 1 | |
713 invalid M 7 R 2 | |
714 invalid M 7 R 3 | |
715 invalid M 7 R 4 | |
716 invalid M 7 R 5 | |
717 invalid M 7 R 6 | |
718 invalid M 7 R 7 | |
719 invalid Z 3 | |
720 m68k_fetch_dst_ea M R Z | |
721 | |
722 or dregs.D dst dst Z | |
723 update_flags NZV0C0 | |
724 m68k_save_dst Z | |
725 m68k_prefetch | |
726 | |
727 00000000ZZMMMRRR ori | |
728 local immed 32 | |
729 invalid Z 3 | |
730 invalid M 1 | |
731 invalid M 7 R 2 | |
732 invalid M 7 R 3 | |
733 invalid M 7 R 4 | |
734 invalid M 7 R 5 | |
735 invalid M 7 R 6 | |
736 invalid M 7 R 7 | |
737 #fetch immediate operand | |
738 m68k_prefetch | |
739 switch Z | |
740 case 2 | |
741 lsl prefetch 16 immed | |
742 m68k_prefetch | |
743 or prefetch immed immed | |
744 default | |
745 mov prefetch immed | |
746 end | |
747 #fetch dst EA | |
748 m68k_fetch_dst_ea M R Z | |
749 | |
750 or immed dst dst Z | |
751 update_flags NZV0C0 | |
752 m68k_save_dst Z | |
753 m68k_prefetch | |
754 | |
755 0000000000111100 ori_to_ccr | |
756 #fetch immediate operand | |
757 m68k_prefetch | |
758 or prefetch ccr ccr | |
759 m68k_prefetch | |
760 | |
761 1001DDD0ZZMMMRRR sub_ea_dn | |
762 invalid M 7 R 5 | |
763 invalid M 7 R 6 | |
764 invalid M 7 R 7 | |
765 invalid Z 3 | |
766 m68k_fetch_src_ea M R Z | |
767 | |
768 sub src dregs.D dregs.D Z | |
769 update_flags XNZVC | |
770 m68k_prefetch | |
771 | |
772 1001DDD1ZZMMMRRR sub_dn_ea | |
773 invalid M 0 | |
774 invalid M 1 | |
775 invalid M 7 R 2 | |
776 invalid M 7 R 3 | |
777 invalid M 7 R 4 | |
778 invalid M 7 R 5 | |
779 invalid M 7 R 6 | |
780 invalid M 7 R 7 | |
781 invalid Z 3 | |
782 m68k_fetch_dst_ea M R Z | |
783 | |
784 sub dregs.D dst dst Z | |
785 update_flags XNZVC | |
786 m68k_save_dst Z | |
787 m68k_prefetch | |
788 | |
789 1001AAAZ11MMMRRR suba | |
790 invalid M 7 R 5 | |
791 invalid M 7 R 6 | |
792 invalid M 7 R 7 | |
793 local size 16 | |
794 local ext_src 32 | |
795 if Z | |
796 mov 2 size | |
797 else | |
798 mov 1 size | |
799 end | |
800 m68k_fetch_src_ea M R size | |
801 switch size | |
802 case 1 | |
803 sext 32 src ext_src | |
804 meta src ext_src | |
805 end | |
806 | |
807 sub src aregs.A aregs.A | |
808 m68k_prefetch | |
809 | |
810 00000100ZZMMMRRR subi | |
811 local immed 32 | |
812 invalid Z 3 | |
813 invalid M 1 | |
814 invalid M 7 R 2 | |
815 invalid M 7 R 3 | |
816 invalid M 7 R 4 | |
817 invalid M 7 R 5 | |
818 invalid M 7 R 6 | |
819 invalid M 7 R 7 | |
820 #fetch immediate operand | |
821 m68k_prefetch | |
822 switch Z | |
823 case 2 | |
824 lsl prefetch 16 immed | |
825 m68k_prefetch | |
826 or prefetch immed immed | |
827 default | |
828 mov prefetch immed | |
829 end | |
830 #fetch dst EA | |
831 m68k_fetch_dst_ea M R Z | |
832 | |
833 sub immed dst dst Z | |
834 update_flags XNZVC | |
835 m68k_save_dst Z | |
836 m68k_prefetch | |
837 | |
838 0101III1ZZMMMRRR subq | |
839 invalid Z 3 | |
840 invalid M 7 R 2 | |
841 invalid M 7 R 3 | |
842 invalid M 7 R 4 | |
843 invalid M 7 R 5 | |
844 invalid M 7 R 6 | |
845 invalid M 7 R 7 | |
846 local src 32 | |
847 switch I | |
848 case 0 | |
849 mov 8 src | |
850 default | |
851 mov I src | |
852 end | |
853 | |
854 m68k_fetch_dst_ea M R Z | |
855 switch M | |
856 case 1 | |
857 sub src dst dst Z | |
858 default | |
859 sub src dst dst Z | |
860 update_flags XNZVC | |
861 end | |
862 m68k_save_dst Z | |
693 m68k_prefetch | 863 m68k_prefetch |
694 | 864 |
695 00ZZRRRMMMEEESSS move | 865 00ZZRRRMMMEEESSS move |
696 invalid Z 0 | 866 invalid Z 0 |
697 invalid M 1 | 867 invalid M 1 |