Mercurial > repos > blastem
comparison m68k.cpu @ 1983:a7b753e260a2 mame_interp
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 09 May 2020 23:39:44 -0700 |
parents | 9eec86183aae |
children | 7d4df6b74263 |
comparison
equal
deleted
inserted
replaced
1937:cafde1255ad3 | 1983:a7b753e260a2 |
---|---|
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 |
576 end | 579 end |
577 end | 580 end |
578 mov aregs.D scratch2 | 581 mov aregs.D scratch2 |
579 m68k_write_size Z 0 | 582 m68k_write_size Z 0 |
580 m68k_prefetch | 583 m68k_prefetch |
581 | 584 |
585 1100DDD0ZZMMMRRR and_ea_dn | |
586 invalid M 1 | |
587 invalid M 7 R 5 | |
588 invalid M 7 R 6 | |
589 invalid M 7 R 7 | |
590 invalid Z 3 | |
591 m68k_fetch_src_ea M R Z | |
592 | |
593 and src dregs.D dregs.D Z | |
594 update_flags NZV0C0 | |
595 m68k_prefetch | |
596 | |
597 1100DDD1ZZMMMRRR and_dn_ea | |
598 invalid M 0 | |
599 invalid M 1 | |
600 invalid M 7 R 2 | |
601 invalid M 7 R 3 | |
602 invalid M 7 R 4 | |
603 invalid M 7 R 5 | |
604 invalid M 7 R 6 | |
605 invalid M 7 R 7 | |
606 invalid Z 3 | |
607 m68k_fetch_dst_ea M R Z | |
608 | |
609 and dregs.D dst dst Z | |
610 update_flags NZV0C0 | |
611 m68k_save_dst Z | |
612 m68k_prefetch | |
613 | |
614 00000010ZZMMMRRR andi | |
615 local immed 32 | |
616 invalid Z 3 | |
617 invalid M 1 | |
618 invalid M 7 R 2 | |
619 invalid M 7 R 3 | |
620 invalid M 7 R 4 | |
621 invalid M 7 R 5 | |
622 invalid M 7 R 6 | |
623 invalid M 7 R 7 | |
624 #fetch immediate operand | |
625 m68k_prefetch | |
626 switch Z | |
627 case 2 | |
628 lsl prefetch 16 immed | |
629 m68k_prefetch | |
630 or prefetch immed immed | |
631 default | |
632 mov prefetch immed | |
633 end | |
634 #fetch dst EA | |
635 m68k_fetch_dst_ea M R Z | |
636 | |
637 and immed dst dst Z | |
638 update_flags NZV0C0 | |
639 m68k_save_dst Z | |
640 m68k_prefetch | |
641 | |
642 0000001000111100 andi_to_ccr | |
643 #fetch immediate operand | |
644 m68k_prefetch | |
645 and prefetch ccr ccr | |
646 m68k_prefetch | |
647 | |
648 1011DDD1ZZMMMRRR eor_dn_ea | |
649 invalid M 1 | |
650 invalid M 7 R 2 | |
651 invalid M 7 R 3 | |
652 invalid M 7 R 4 | |
653 invalid M 7 R 5 | |
654 invalid M 7 R 6 | |
655 invalid M 7 R 7 | |
656 invalid Z 3 | |
657 m68k_fetch_dst_ea M R Z | |
658 | |
659 xor dregs.D dst dst Z | |
660 update_flags NZV0C0 | |
661 m68k_save_dst Z | |
662 m68k_prefetch | |
663 | |
664 00001010ZZMMMRRR eori | |
665 local immed 32 | |
666 invalid Z 3 | |
667 invalid M 1 | |
668 invalid M 7 R 2 | |
669 invalid M 7 R 3 | |
670 invalid M 7 R 4 | |
671 invalid M 7 R 5 | |
672 invalid M 7 R 6 | |
673 invalid M 7 R 7 | |
674 #fetch immediate operand | |
675 m68k_prefetch | |
676 switch Z | |
677 case 2 | |
678 lsl prefetch 16 immed | |
679 m68k_prefetch | |
680 or prefetch immed immed | |
681 default | |
682 mov prefetch immed | |
683 end | |
684 #fetch dst EA | |
685 m68k_fetch_dst_ea M R Z | |
686 | |
687 xor immed dst dst Z | |
688 update_flags NZV0C0 | |
689 m68k_save_dst Z | |
690 m68k_prefetch | |
691 | |
692 0000001000111100 eori_to_ccr | |
693 #fetch immediate operand | |
694 m68k_prefetch | |
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 | |
863 m68k_prefetch | |
582 | 864 |
583 00ZZRRRMMMEEESSS move | 865 00ZZRRRMMMEEESSS move |
584 invalid Z 0 | 866 invalid Z 0 |
585 invalid M 1 | 867 invalid M 1 |
586 invalid M 7 #not actually invalid, but will be handled separately due to DSL limitations | 868 invalid M 7 #not actually invalid, but will be handled separately due to DSL limitations |