mem.isa (12234:78ece221f9f5) | mem.isa (12236:126ac9da6050) |
---|---|
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 %(BasicExecDeclare)s 586 587 %(InitiateAccDeclare)s 588 589 %(CompleteAccDeclare)s | 585 Fault execute(ExecContext *, Trace::InstRecord *) const; 586 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 587 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
590 }; 591}}; 592 593def template SrsDeclare {{ 594 /** 595 * Static instruction class for "%(mnemonic)s". 596 */ 597 class %(class_name)s : public %(base_class)s 598 { 599 public: 600 601 /// Constructor. 602 %(class_name)s(ExtMachInst machInst, 603 uint32_t _regMode, int _mode, bool _wb); 604 | 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 |
605 %(BasicExecDeclare)s 606 607 %(InitiateAccDeclare)s 608 609 %(CompleteAccDeclare)s | 603 Fault execute(ExecContext *, Trace::InstRecord *) const; 604 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 605 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
610 }; 611}}; 612 613def template SwapDeclare {{ 614 /** 615 * Static instruction class for "%(mnemonic)s". 616 */ 617 class %(class_name)s : public %(base_class)s 618 { 619 public: 620 621 /// Constructor. 622 %(class_name)s(ExtMachInst machInst, 623 uint32_t _dest, uint32_t _op1, uint32_t _base); 624 | 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 |
625 %(BasicExecDeclare)s 626 627 %(InitiateAccDeclare)s 628 629 %(CompleteAccDeclare)s | 621 Fault execute(ExecContext *, Trace::InstRecord *) const; 622 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 623 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
630 }; 631}}; 632 633def template LoadStoreDImmDeclare {{ 634 /** 635 * Static instruction class for "%(mnemonic)s". 636 */ 637 class %(class_name)s : public %(base_class)s 638 { 639 public: 640 641 /// Constructor. 642 %(class_name)s(ExtMachInst machInst, 643 uint32_t _dest, uint32_t _dest2, 644 uint32_t _base, bool _add, int32_t _imm); 645 | 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 |
646 %(BasicExecDeclare)s 647 648 %(InitiateAccDeclare)s 649 650 %(CompleteAccDeclare)s | 640 Fault execute(ExecContext *, Trace::InstRecord *) const; 641 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 642 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
651 }; 652}}; 653 654def template StoreExDImmDeclare {{ 655 /** 656 * Static instruction class for "%(mnemonic)s". 657 */ 658 class %(class_name)s : public %(base_class)s 659 { 660 public: 661 662 /// Constructor. 663 %(class_name)s(ExtMachInst machInst, 664 uint32_t _result, uint32_t _dest, uint32_t _dest2, 665 uint32_t _base, bool _add, int32_t _imm); 666 | 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 |
667 %(BasicExecDeclare)s 668 669 %(InitiateAccDeclare)s 670 671 %(CompleteAccDeclare)s | 659 Fault execute(ExecContext *, Trace::InstRecord *) const; 660 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 661 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
672 }; 673}}; 674 675def template LoadStoreImmDeclare {{ 676 /** 677 * Static instruction class for "%(mnemonic)s". 678 */ 679 class %(class_name)s : public %(base_class)s 680 { 681 public: 682 683 /// Constructor. 684 %(class_name)s(ExtMachInst machInst, 685 uint32_t _dest, uint32_t _base, bool _add, int32_t _imm); 686 | 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 |
687 %(BasicExecDeclare)s | 677 Fault execute(ExecContext *, Trace::InstRecord *) const; 678 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 679 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
688 | 680 |
689 %(InitiateAccDeclare)s 690 691 %(CompleteAccDeclare)s 692 | |
693 virtual void 694 annotateFault(ArmFault *fault) { 695 %(fa_code)s 696 } 697 }; 698}}; 699 700def template StoreExImmDeclare {{ --- 4 unchanged lines hidden (view full) --- 705 { 706 public: 707 708 /// Constructor. 709 %(class_name)s(ExtMachInst machInst, 710 uint32_t _result, uint32_t _dest, uint32_t _base, 711 bool _add, int32_t _imm); 712 | 681 virtual void 682 annotateFault(ArmFault *fault) { 683 %(fa_code)s 684 } 685 }; 686}}; 687 688def template StoreExImmDeclare {{ --- 4 unchanged lines hidden (view full) --- 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 |
713 %(BasicExecDeclare)s 714 715 %(InitiateAccDeclare)s 716 717 %(CompleteAccDeclare)s | 701 Fault execute(ExecContext *, Trace::InstRecord *) const; 702 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 703 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
718 }; 719}}; 720 721def template StoreDRegDeclare {{ 722 /** 723 * Static instruction class for "%(mnemonic)s". 724 */ 725 class %(class_name)s : public %(base_class)s 726 { 727 public: 728 729 /// Constructor. 730 %(class_name)s(ExtMachInst machInst, 731 uint32_t _dest, uint32_t _dest2, 732 uint32_t _base, bool _add, 733 int32_t _shiftAmt, uint32_t _shiftType, 734 uint32_t _index); 735 | 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 |
736 %(BasicExecDeclare)s 737 738 %(InitiateAccDeclare)s 739 740 %(CompleteAccDeclare)s | 722 Fault execute(ExecContext *, Trace::InstRecord *) const; 723 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 724 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
741 }; 742}}; 743 744def template StoreRegDeclare {{ 745 /** 746 * Static instruction class for "%(mnemonic)s". 747 */ 748 class %(class_name)s : public %(base_class)s 749 { 750 public: 751 752 /// Constructor. 753 %(class_name)s(ExtMachInst machInst, 754 uint32_t _dest, uint32_t _base, bool _add, 755 int32_t _shiftAmt, uint32_t _shiftType, 756 uint32_t _index); 757 | 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 |
758 %(BasicExecDeclare)s | 742 Fault execute(ExecContext *, Trace::InstRecord *) const; 743 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 744 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
759 | 745 |
760 %(InitiateAccDeclare)s 761 762 %(CompleteAccDeclare)s 763 | |
764 virtual void 765 annotateFault(ArmFault *fault) { 766 %(fa_code)s 767 } 768 }; 769}}; 770 771def template LoadDRegDeclare {{ --- 6 unchanged lines hidden (view full) --- 778 779 /// Constructor. 780 %(class_name)s(ExtMachInst machInst, 781 uint32_t _dest, uint32_t _dest2, 782 uint32_t _base, bool _add, 783 int32_t _shiftAmt, uint32_t _shiftType, 784 uint32_t _index); 785 | 746 virtual void 747 annotateFault(ArmFault *fault) { 748 %(fa_code)s 749 } 750 }; 751}}; 752 753def template LoadDRegDeclare {{ --- 6 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 |
786 %(BasicExecDeclare)s 787 788 %(InitiateAccDeclare)s 789 790 %(CompleteAccDeclare)s | 768 Fault execute(ExecContext *, Trace::InstRecord *) const; 769 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 770 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
791 }; 792}}; 793 794def template LoadRegDeclare {{ 795 /** 796 * Static instruction class for "%(mnemonic)s". 797 */ 798 class %(class_name)s : public %(base_class)s 799 { 800 public: 801 802 /// Constructor. 803 %(class_name)s(ExtMachInst machInst, 804 uint32_t _dest, uint32_t _base, bool _add, 805 int32_t _shiftAmt, uint32_t _shiftType, 806 uint32_t _index); 807 | 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 |
808 %(BasicExecDeclare)s | 788 Fault execute(ExecContext *, Trace::InstRecord *) const; 789 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 790 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
809 | 791 |
810 %(InitiateAccDeclare)s 811 812 %(CompleteAccDeclare)s 813 | |
814 virtual void 815 annotateFault(ArmFault *fault) { 816 %(fa_code)s 817 } 818 }; 819}}; 820 821def template LoadImmDeclare {{ 822 /** 823 * Static instruction class for "%(mnemonic)s". 824 */ 825 class %(class_name)s : public %(base_class)s 826 { 827 public: 828 829 /// Constructor. 830 %(class_name)s(ExtMachInst machInst, 831 uint32_t _dest, uint32_t _base, bool _add, int32_t _imm); 832 | 792 virtual void 793 annotateFault(ArmFault *fault) { 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 |
833 %(BasicExecDeclare)s | 811 Fault execute(ExecContext *, Trace::InstRecord *) const; 812 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 813 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
834 | 814 |
835 %(InitiateAccDeclare)s 836 837 %(CompleteAccDeclare)s 838 | |
839 virtual void 840 annotateFault(ArmFault *fault) { 841 %(fa_code)s 842 } 843 }; 844}}; 845 | 815 virtual void 816 annotateFault(ArmFault *fault) { 817 %(fa_code)s 818 } 819 }; 820}}; 821 |
846def template InitiateAccDeclare {{ 847 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 848}}; 849 850def template CompleteAccDeclare {{ 851 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; 852}}; 853 | |
854def template RfeConstructor {{ 855 %(class_name)s::%(class_name)s(ExtMachInst machInst, 856 uint32_t _base, int _mode, bool _wb) 857 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 858 (IntRegIndex)_base, (AddrMode)_mode, _wb) 859 { 860 %(constructor)s; 861 if (!(condCode == COND_AL || condCode == COND_UC)) { --- 397 unchanged lines hidden --- | 822def template RfeConstructor {{ 823 %(class_name)s::%(class_name)s(ExtMachInst machInst, 824 uint32_t _base, int _mode, bool _wb) 825 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, 826 (IntRegIndex)_base, (AddrMode)_mode, _wb) 827 { 828 %(constructor)s; 829 if (!(condCode == COND_AL || condCode == COND_UC)) { --- 397 unchanged lines hidden --- |