mem.isa (12236:126ac9da6050) mem.isa (12616:4b463b4dc098)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010, 2012, 2014, 2016 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 568 unchanged lines hidden (view full) ---

577 class %(class_name)s : public %(base_class)s
578 {
579 public:
580
581 /// Constructor.
582 %(class_name)s(ExtMachInst machInst,
583 uint32_t _base, int _mode, bool _wb);
584
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010, 2012, 2014, 2016 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 568 unchanged lines hidden (view full) ---

577 class %(class_name)s : public %(base_class)s
578 {
579 public:
580
581 /// Constructor.
582 %(class_name)s(ExtMachInst machInst,
583 uint32_t _base, int _mode, bool _wb);
584
585 Fault execute(ExecContext *, Trace::InstRecord *) const;
586 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
587 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
585 Fault execute(ExecContext *, Trace::InstRecord *) const override;
586 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
587 Fault completeAcc(PacketPtr, ExecContext *,
588 Trace::InstRecord *) const override;
588 };
589}};
590
591def template SrsDeclare {{
592 /**
593 * Static instruction class for "%(mnemonic)s".
594 */
595 class %(class_name)s : public %(base_class)s
596 {
597 public:
598
599 /// Constructor.
600 %(class_name)s(ExtMachInst machInst,
601 uint32_t _regMode, int _mode, bool _wb);
602
589 };
590}};
591
592def template SrsDeclare {{
593 /**
594 * Static instruction class for "%(mnemonic)s".
595 */
596 class %(class_name)s : public %(base_class)s
597 {
598 public:
599
600 /// Constructor.
601 %(class_name)s(ExtMachInst machInst,
602 uint32_t _regMode, int _mode, bool _wb);
603
603 Fault execute(ExecContext *, Trace::InstRecord *) const;
604 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
605 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
604 Fault execute(ExecContext *, Trace::InstRecord *) const override;
605 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
606 Fault completeAcc(PacketPtr, ExecContext *,
607 Trace::InstRecord *) const override;
606 };
607}};
608
609def template SwapDeclare {{
610 /**
611 * Static instruction class for "%(mnemonic)s".
612 */
613 class %(class_name)s : public %(base_class)s
614 {
615 public:
616
617 /// Constructor.
618 %(class_name)s(ExtMachInst machInst,
619 uint32_t _dest, uint32_t _op1, uint32_t _base);
620
608 };
609}};
610
611def template SwapDeclare {{
612 /**
613 * Static instruction class for "%(mnemonic)s".
614 */
615 class %(class_name)s : public %(base_class)s
616 {
617 public:
618
619 /// Constructor.
620 %(class_name)s(ExtMachInst machInst,
621 uint32_t _dest, uint32_t _op1, uint32_t _base);
622
621 Fault execute(ExecContext *, Trace::InstRecord *) const;
622 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
623 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
623 Fault execute(ExecContext *, Trace::InstRecord *) const override;
624 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
625 Fault completeAcc(PacketPtr, ExecContext *,
626 Trace::InstRecord *) const override;
624 };
625}};
626
627def template LoadStoreDImmDeclare {{
628 /**
629 * Static instruction class for "%(mnemonic)s".
630 */
631 class %(class_name)s : public %(base_class)s
632 {
633 public:
634
635 /// Constructor.
636 %(class_name)s(ExtMachInst machInst,
637 uint32_t _dest, uint32_t _dest2,
638 uint32_t _base, bool _add, int32_t _imm);
639
627 };
628}};
629
630def template LoadStoreDImmDeclare {{
631 /**
632 * Static instruction class for "%(mnemonic)s".
633 */
634 class %(class_name)s : public %(base_class)s
635 {
636 public:
637
638 /// Constructor.
639 %(class_name)s(ExtMachInst machInst,
640 uint32_t _dest, uint32_t _dest2,
641 uint32_t _base, bool _add, int32_t _imm);
642
640 Fault execute(ExecContext *, Trace::InstRecord *) const;
641 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
642 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
643 Fault execute(ExecContext *, Trace::InstRecord *) const override;
644 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
645 Fault completeAcc(PacketPtr, ExecContext *,
646 Trace::InstRecord *) const override;
643 };
644}};
645
646def template StoreExDImmDeclare {{
647 /**
648 * Static instruction class for "%(mnemonic)s".
649 */
650 class %(class_name)s : public %(base_class)s
651 {
652 public:
653
654 /// Constructor.
655 %(class_name)s(ExtMachInst machInst,
656 uint32_t _result, uint32_t _dest, uint32_t _dest2,
657 uint32_t _base, bool _add, int32_t _imm);
658
647 };
648}};
649
650def template StoreExDImmDeclare {{
651 /**
652 * Static instruction class for "%(mnemonic)s".
653 */
654 class %(class_name)s : public %(base_class)s
655 {
656 public:
657
658 /// Constructor.
659 %(class_name)s(ExtMachInst machInst,
660 uint32_t _result, uint32_t _dest, uint32_t _dest2,
661 uint32_t _base, bool _add, int32_t _imm);
662
659 Fault execute(ExecContext *, Trace::InstRecord *) const;
660 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
661 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
663 Fault execute(ExecContext *, Trace::InstRecord *) const override;
664 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
665 Fault completeAcc(PacketPtr, ExecContext *,
666 Trace::InstRecord *) const override;
662 };
663}};
664
665def template LoadStoreImmDeclare {{
666 /**
667 * Static instruction class for "%(mnemonic)s".
668 */
669 class %(class_name)s : public %(base_class)s
670 {
671 public:
672
673 /// Constructor.
674 %(class_name)s(ExtMachInst machInst,
675 uint32_t _dest, uint32_t _base, bool _add, int32_t _imm);
676
667 };
668}};
669
670def template LoadStoreImmDeclare {{
671 /**
672 * Static instruction class for "%(mnemonic)s".
673 */
674 class %(class_name)s : public %(base_class)s
675 {
676 public:
677
678 /// Constructor.
679 %(class_name)s(ExtMachInst machInst,
680 uint32_t _dest, uint32_t _base, bool _add, int32_t _imm);
681
677 Fault execute(ExecContext *, Trace::InstRecord *) const;
678 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
679 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
682 Fault execute(ExecContext *, Trace::InstRecord *) const override;
683 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
684 Fault completeAcc(PacketPtr, ExecContext *,
685 Trace::InstRecord *) const override;
680
686
681 virtual void
682 annotateFault(ArmFault *fault) {
687 void
688 annotateFault(ArmFault *fault) override
689 {
683 %(fa_code)s
684 }
685 };
686}};
687
688def template StoreExImmDeclare {{
689 /**
690 * Static instruction class for "%(mnemonic)s".
691 */
692 class %(class_name)s : public %(base_class)s
693 {
694 public:
695
696 /// Constructor.
697 %(class_name)s(ExtMachInst machInst,
698 uint32_t _result, uint32_t _dest, uint32_t _base,
699 bool _add, int32_t _imm);
700
690 %(fa_code)s
691 }
692 };
693}};
694
695def template StoreExImmDeclare {{
696 /**
697 * Static instruction class for "%(mnemonic)s".
698 */
699 class %(class_name)s : public %(base_class)s
700 {
701 public:
702
703 /// Constructor.
704 %(class_name)s(ExtMachInst machInst,
705 uint32_t _result, uint32_t _dest, uint32_t _base,
706 bool _add, int32_t _imm);
707
701 Fault execute(ExecContext *, Trace::InstRecord *) const;
702 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
703 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
708 Fault execute(ExecContext *, Trace::InstRecord *) const override;
709 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
710 Fault completeAcc(PacketPtr, ExecContext *,
711 Trace::InstRecord *) const override;
704 };
705}};
706
707def template StoreDRegDeclare {{
708 /**
709 * Static instruction class for "%(mnemonic)s".
710 */
711 class %(class_name)s : public %(base_class)s
712 {
713 public:
714
715 /// Constructor.
716 %(class_name)s(ExtMachInst machInst,
717 uint32_t _dest, uint32_t _dest2,
718 uint32_t _base, bool _add,
719 int32_t _shiftAmt, uint32_t _shiftType,
720 uint32_t _index);
721
712 };
713}};
714
715def template StoreDRegDeclare {{
716 /**
717 * Static instruction class for "%(mnemonic)s".
718 */
719 class %(class_name)s : public %(base_class)s
720 {
721 public:
722
723 /// Constructor.
724 %(class_name)s(ExtMachInst machInst,
725 uint32_t _dest, uint32_t _dest2,
726 uint32_t _base, bool _add,
727 int32_t _shiftAmt, uint32_t _shiftType,
728 uint32_t _index);
729
722 Fault execute(ExecContext *, Trace::InstRecord *) const;
723 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
724 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
730 Fault execute(ExecContext *, Trace::InstRecord *) const override;
731 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
732 Fault completeAcc(PacketPtr, ExecContext *,
733 Trace::InstRecord *) const override;
725 };
726}};
727
728def template StoreRegDeclare {{
729 /**
730 * Static instruction class for "%(mnemonic)s".
731 */
732 class %(class_name)s : public %(base_class)s
733 {
734 public:
735
736 /// Constructor.
737 %(class_name)s(ExtMachInst machInst,
738 uint32_t _dest, uint32_t _base, bool _add,
739 int32_t _shiftAmt, uint32_t _shiftType,
740 uint32_t _index);
741
734 };
735}};
736
737def template StoreRegDeclare {{
738 /**
739 * Static instruction class for "%(mnemonic)s".
740 */
741 class %(class_name)s : public %(base_class)s
742 {
743 public:
744
745 /// Constructor.
746 %(class_name)s(ExtMachInst machInst,
747 uint32_t _dest, uint32_t _base, bool _add,
748 int32_t _shiftAmt, uint32_t _shiftType,
749 uint32_t _index);
750
742 Fault execute(ExecContext *, Trace::InstRecord *) const;
743 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
744 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
751 Fault execute(ExecContext *, Trace::InstRecord *) const override;
752 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
753 Fault completeAcc(PacketPtr, ExecContext *,
754 Trace::InstRecord *) const override;
745
755
746 virtual void
747 annotateFault(ArmFault *fault) {
756 void
757 annotateFault(ArmFault *fault) override
758 {
748 %(fa_code)s
749 }
750 };
751}};
752
753def template LoadDRegDeclare {{
754 /**
755 * Static instruction class for "%(mnemonic)s".

--- 4 unchanged lines hidden (view full) ---

760
761 /// Constructor.
762 %(class_name)s(ExtMachInst machInst,
763 uint32_t _dest, uint32_t _dest2,
764 uint32_t _base, bool _add,
765 int32_t _shiftAmt, uint32_t _shiftType,
766 uint32_t _index);
767
759 %(fa_code)s
760 }
761 };
762}};
763
764def template LoadDRegDeclare {{
765 /**
766 * Static instruction class for "%(mnemonic)s".

--- 4 unchanged lines hidden (view full) ---

771
772 /// Constructor.
773 %(class_name)s(ExtMachInst machInst,
774 uint32_t _dest, uint32_t _dest2,
775 uint32_t _base, bool _add,
776 int32_t _shiftAmt, uint32_t _shiftType,
777 uint32_t _index);
778
768 Fault execute(ExecContext *, Trace::InstRecord *) const;
769 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
770 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
779 Fault execute(ExecContext *, Trace::InstRecord *) const override;
780 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
781 Fault completeAcc(PacketPtr, ExecContext *,
782 Trace::InstRecord *) const override;
771 };
772}};
773
774def template LoadRegDeclare {{
775 /**
776 * Static instruction class for "%(mnemonic)s".
777 */
778 class %(class_name)s : public %(base_class)s
779 {
780 public:
781
782 /// Constructor.
783 %(class_name)s(ExtMachInst machInst,
784 uint32_t _dest, uint32_t _base, bool _add,
785 int32_t _shiftAmt, uint32_t _shiftType,
786 uint32_t _index);
787
783 };
784}};
785
786def template LoadRegDeclare {{
787 /**
788 * Static instruction class for "%(mnemonic)s".
789 */
790 class %(class_name)s : public %(base_class)s
791 {
792 public:
793
794 /// Constructor.
795 %(class_name)s(ExtMachInst machInst,
796 uint32_t _dest, uint32_t _base, bool _add,
797 int32_t _shiftAmt, uint32_t _shiftType,
798 uint32_t _index);
799
788 Fault execute(ExecContext *, Trace::InstRecord *) const;
789 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
790 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
800 Fault execute(ExecContext *, Trace::InstRecord *) const override;
801 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
802 Fault completeAcc(PacketPtr, ExecContext *,
803 Trace::InstRecord *) const override;
791
804
792 virtual void
793 annotateFault(ArmFault *fault) {
805 void
806 annotateFault(ArmFault *fault) override
807 {
794 %(fa_code)s
795 }
796 };
797}};
798
799def template LoadImmDeclare {{
800 /**
801 * Static instruction class for "%(mnemonic)s".
802 */
803 class %(class_name)s : public %(base_class)s
804 {
805 public:
806
807 /// Constructor.
808 %(class_name)s(ExtMachInst machInst,
809 uint32_t _dest, uint32_t _base, bool _add, int32_t _imm);
810
808 %(fa_code)s
809 }
810 };
811}};
812
813def template LoadImmDeclare {{
814 /**
815 * Static instruction class for "%(mnemonic)s".
816 */
817 class %(class_name)s : public %(base_class)s
818 {
819 public:
820
821 /// Constructor.
822 %(class_name)s(ExtMachInst machInst,
823 uint32_t _dest, uint32_t _base, bool _add, int32_t _imm);
824
811 Fault execute(ExecContext *, Trace::InstRecord *) const;
812 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const;
813 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const;
825 Fault execute(ExecContext *, Trace::InstRecord *) const override;
826 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const override;
827 Fault completeAcc(PacketPtr, ExecContext *,
828 Trace::InstRecord *) const override;
814
829
815 virtual void
816 annotateFault(ArmFault *fault) {
830 void
831 annotateFault(ArmFault *fault) override
832 {
817 %(fa_code)s
818 }
819 };
820}};
821
822def template RfeConstructor {{
823 %(class_name)s::%(class_name)s(ExtMachInst machInst,
824 uint32_t _base, int _mode, bool _wb)

--- 402 unchanged lines hidden ---
833 %(fa_code)s
834 }
835 };
836}};
837
838def template RfeConstructor {{
839 %(class_name)s::%(class_name)s(ExtMachInst machInst,
840 uint32_t _base, int _mode, bool _wb)

--- 402 unchanged lines hidden ---