Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(566)

Side by Side Diff: src/trusted/validator_arm/gen/arm32_decode_baselines_1.h

Issue 12223046: Use generated actual decoders for ARM table: (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2013 The Native Client Authors. All rights reserved. 2 * Copyright 2013 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 // DO NOT EDIT: GENERATED CODE 7 // DO NOT EDIT: GENERATED CODE
8 8
9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_H_ 9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_H_
10 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_H_ 10 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_H_
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 private: 830 private:
831 NACL_DISALLOW_COPY_AND_ASSIGN( 831 NACL_DISALLOW_COPY_AND_ASSIGN(
832 BLX_register_cccc000100101111111111110011mmmm_case_0); 832 BLX_register_cccc000100101111111111110011mmmm_case_0);
833 }; 833 };
834 834
835 // BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0: 835 // BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0:
836 // 836 //
837 // {Cond: Cond(31:28), 837 // {Cond: Cond(31:28),
838 // Lr: 14, 838 // Lr: 14,
839 // Pc: 15, 839 // Pc: 15,
840 // actual: Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1,
840 // baseline: BranchImmediate24, 841 // baseline: BranchImmediate24,
841 // constraints: , 842 // constraints: ,
842 // defs: {Pc, Lr}, 843 // defs: {Pc, Lr},
843 // fields: [Cond(31:28), imm24(23:0)], 844 // fields: [Cond(31:28), imm24(23:0)],
844 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case _0, 845 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case _0,
845 // imm24: imm24(23:0), 846 // imm24: imm24(23:0),
846 // imm32: SignExtend(imm24:'00'(1:0), 32), 847 // imm32: SignExtend(imm24:'00'(1:0), 32),
847 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, 848 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii,
848 // relative: true, 849 // relative: true,
849 // relative_offset: imm32, 850 // relative_offset: imm32 + 8,
850 // rule: BL_BLX_immediate, 851 // rule: BL_BLX_immediate,
851 // safety: [true => MAY_BE_SAFE], 852 // safety: [true => MAY_BE_SAFE],
852 // true: true, 853 // true: true,
853 // uses: {Pc}} 854 // uses: {Pc}}
854 class BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0 855 class BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0
855 : public ClassDecoder { 856 : public ClassDecoder {
856 public: 857 public:
857 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0() 858 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0()
858 : ClassDecoder() {} 859 : ClassDecoder() {}
859 virtual RegisterList defs(Instruction inst) const; 860 virtual RegisterList defs(Instruction inst) const;
860 virtual bool is_relative_branch(Instruction i) const; 861 virtual bool is_relative_branch(Instruction i) const;
861 virtual int32_t branch_target_offset(Instruction i) const; 862 virtual int32_t branch_target_offset(Instruction i) const;
862 virtual SafetyLevel safety(Instruction i) const; 863 virtual SafetyLevel safety(Instruction i) const;
863 virtual RegisterList uses(Instruction i) const; 864 virtual RegisterList uses(Instruction i) const;
864 private: 865 private:
865 NACL_DISALLOW_COPY_AND_ASSIGN( 866 NACL_DISALLOW_COPY_AND_ASSIGN(
866 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0); 867 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0);
867 }; 868 };
868 869
869 // B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0: 870 // B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0:
870 // 871 //
871 // {Cond: Cond(31:28), 872 // {Cond: Cond(31:28),
872 // Pc: 15, 873 // Pc: 15,
874 // actual: Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1,
873 // baseline: BranchImmediate24, 875 // baseline: BranchImmediate24,
874 // constraints: , 876 // constraints: ,
875 // defs: {Pc}, 877 // defs: {Pc},
876 // fields: [Cond(31:28), imm24(23:0)], 878 // fields: [Cond(31:28), imm24(23:0)],
877 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, 879 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0,
878 // imm24: imm24(23:0), 880 // imm24: imm24(23:0),
879 // imm32: SignExtend(imm24:'00'(1:0), 32), 881 // imm32: SignExtend(imm24:'00'(1:0), 32),
880 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, 882 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii,
881 // relative: true, 883 // relative: true,
882 // relative_offset: imm32, 884 // relative_offset: imm32 + 8,
883 // rule: B, 885 // rule: B,
884 // safety: [true => MAY_BE_SAFE], 886 // safety: [true => MAY_BE_SAFE],
885 // true: true, 887 // true: true,
886 // uses: {Pc}} 888 // uses: {Pc}}
887 class B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0 889 class B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0
888 : public ClassDecoder { 890 : public ClassDecoder {
889 public: 891 public:
890 B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0() 892 B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0()
891 : ClassDecoder() {} 893 : ClassDecoder() {}
892 virtual RegisterList defs(Instruction inst) const; 894 virtual RegisterList defs(Instruction inst) const;
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 NACL_DISALLOW_COPY_AND_ASSIGN( 1620 NACL_DISALLOW_COPY_AND_ASSIGN(
1619 LDC_literal_cccc110pudw11111ddddcccciiiiiiii_case_0); 1621 LDC_literal_cccc110pudw11111ddddcccciiiiiiii_case_0);
1620 }; 1622 };
1621 1623
1622 // LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0: 1624 // LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0:
1623 // 1625 //
1624 // {None: 32, 1626 // {None: 32,
1625 // Pc: 15, 1627 // Pc: 15,
1626 // Rn: Rn(19:16), 1628 // Rn: Rn(19:16),
1627 // W: W(21), 1629 // W: W(21),
1630 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
1628 // base: Rn, 1631 // base: Rn,
1629 // baseline: LoadRegisterList, 1632 // baseline: LoadRegisterList,
1630 // cond: cond(31:28), 1633 // cond: cond(31:28),
1631 // constraints: , 1634 // constraints: ,
1632 // defs: Union({Rn 1635 // defs: Union({Rn
1633 // if wback 1636 // if wback
1634 // else None}, registers), 1637 // else None}, registers),
1635 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 1638 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
1636 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, 1639 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0,
1637 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, 1640 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr,
1638 // register_list: register_list(15:0), 1641 // register_list: register_list(15:0),
1639 // registers: RegisterList(register_list), 1642 // registers: RegisterList(register_list),
1640 // rule: LDMDA_LDMFA, 1643 // rule: LDMDA_LDMFA,
1641 // safety: [Rn == 1644 // safety: [Rn ==
1642 // Pc || 1645 // Pc ||
1643 // NumGPRs(registers) < 1646 // NumGPRs(registers) <
1644 // 1 => UNPREDICTABLE, 1647 // 1 => UNPREDICTABLE,
1645 // wback && 1648 // wback &&
1646 // Contains(registers, Rn) => UNKNOWN, 1649 // Contains(registers, Rn) => UNKNOWN,
1647 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], 1650 // Contains(registers, Pc) => FORBIDDEN_OPERANDS],
1648 // small_imm_base_wb: true, 1651 // small_imm_base_wb: wback,
1649 // true: true,
1650 // uses: {Rn}, 1652 // uses: {Rn},
1651 // wback: W(21)=1} 1653 // wback: W(21)=1}
1652 class LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0 1654 class LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0
1653 : public ClassDecoder { 1655 : public ClassDecoder {
1654 public: 1656 public:
1655 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0() 1657 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0()
1656 : ClassDecoder() {} 1658 : ClassDecoder() {}
1657 virtual Register base_address_register(Instruction i) const; 1659 virtual Register base_address_register(Instruction i) const;
1658 virtual RegisterList defs(Instruction inst) const; 1660 virtual RegisterList defs(Instruction inst) const;
1659 virtual SafetyLevel safety(Instruction i) const; 1661 virtual SafetyLevel safety(Instruction i) const;
1660 virtual bool base_address_register_writeback_small_immediate( 1662 virtual bool base_address_register_writeback_small_immediate(
1661 Instruction i) const; 1663 Instruction i) const;
1662 virtual RegisterList uses(Instruction i) const; 1664 virtual RegisterList uses(Instruction i) const;
1663 private: 1665 private:
1664 NACL_DISALLOW_COPY_AND_ASSIGN( 1666 NACL_DISALLOW_COPY_AND_ASSIGN(
1665 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0); 1667 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0);
1666 }; 1668 };
1667 1669
1668 // LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0: 1670 // LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0:
1669 // 1671 //
1670 // {None: 32, 1672 // {None: 32,
1671 // Pc: 15, 1673 // Pc: 15,
1672 // Rn: Rn(19:16), 1674 // Rn: Rn(19:16),
1673 // W: W(21), 1675 // W: W(21),
1676 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
1674 // base: Rn, 1677 // base: Rn,
1675 // baseline: LoadRegisterList, 1678 // baseline: LoadRegisterList,
1676 // cond: cond(31:28), 1679 // cond: cond(31:28),
1677 // constraints: , 1680 // constraints: ,
1678 // defs: Union({Rn 1681 // defs: Union({Rn
1679 // if wback 1682 // if wback
1680 // else None}, registers), 1683 // else None}, registers),
1681 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 1684 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
1682 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, 1685 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0,
1683 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, 1686 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr,
1684 // register_list: register_list(15:0), 1687 // register_list: register_list(15:0),
1685 // registers: RegisterList(register_list), 1688 // registers: RegisterList(register_list),
1686 // rule: LDMDB_LDMEA, 1689 // rule: LDMDB_LDMEA,
1687 // safety: [Rn == 1690 // safety: [Rn ==
1688 // Pc || 1691 // Pc ||
1689 // NumGPRs(registers) < 1692 // NumGPRs(registers) <
1690 // 1 => UNPREDICTABLE, 1693 // 1 => UNPREDICTABLE,
1691 // wback && 1694 // wback &&
1692 // Contains(registers, Rn) => UNKNOWN, 1695 // Contains(registers, Rn) => UNKNOWN,
1693 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], 1696 // Contains(registers, Pc) => FORBIDDEN_OPERANDS],
1694 // small_imm_base_wb: true, 1697 // small_imm_base_wb: wback,
1695 // true: true,
1696 // uses: {Rn}, 1698 // uses: {Rn},
1697 // wback: W(21)=1} 1699 // wback: W(21)=1}
1698 class LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0 1700 class LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0
1699 : public ClassDecoder { 1701 : public ClassDecoder {
1700 public: 1702 public:
1701 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0() 1703 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0()
1702 : ClassDecoder() {} 1704 : ClassDecoder() {}
1703 virtual Register base_address_register(Instruction i) const; 1705 virtual Register base_address_register(Instruction i) const;
1704 virtual RegisterList defs(Instruction inst) const; 1706 virtual RegisterList defs(Instruction inst) const;
1705 virtual SafetyLevel safety(Instruction i) const; 1707 virtual SafetyLevel safety(Instruction i) const;
1706 virtual bool base_address_register_writeback_small_immediate( 1708 virtual bool base_address_register_writeback_small_immediate(
1707 Instruction i) const; 1709 Instruction i) const;
1708 virtual RegisterList uses(Instruction i) const; 1710 virtual RegisterList uses(Instruction i) const;
1709 private: 1711 private:
1710 NACL_DISALLOW_COPY_AND_ASSIGN( 1712 NACL_DISALLOW_COPY_AND_ASSIGN(
1711 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0); 1713 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0);
1712 }; 1714 };
1713 1715
1714 // LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0: 1716 // LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0:
1715 // 1717 //
1716 // {None: 32, 1718 // {None: 32,
1717 // Pc: 15, 1719 // Pc: 15,
1718 // Rn: Rn(19:16), 1720 // Rn: Rn(19:16),
1719 // W: W(21), 1721 // W: W(21),
1722 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
1720 // base: Rn, 1723 // base: Rn,
1721 // baseline: LoadRegisterList, 1724 // baseline: LoadRegisterList,
1722 // cond: cond(31:28), 1725 // cond: cond(31:28),
1723 // constraints: , 1726 // constraints: ,
1724 // defs: Union({Rn 1727 // defs: Union({Rn
1725 // if wback 1728 // if wback
1726 // else None}, registers), 1729 // else None}, registers),
1727 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 1730 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
1728 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, 1731 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0,
1729 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, 1732 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr,
1730 // register_list: register_list(15:0), 1733 // register_list: register_list(15:0),
1731 // registers: RegisterList(register_list), 1734 // registers: RegisterList(register_list),
1732 // rule: LDMIB_LDMED, 1735 // rule: LDMIB_LDMED,
1733 // safety: [Rn == 1736 // safety: [Rn ==
1734 // Pc || 1737 // Pc ||
1735 // NumGPRs(registers) < 1738 // NumGPRs(registers) <
1736 // 1 => UNPREDICTABLE, 1739 // 1 => UNPREDICTABLE,
1737 // wback && 1740 // wback &&
1738 // Contains(registers, Rn) => UNKNOWN, 1741 // Contains(registers, Rn) => UNKNOWN,
1739 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], 1742 // Contains(registers, Pc) => FORBIDDEN_OPERANDS],
1740 // small_imm_base_wb: true, 1743 // small_imm_base_wb: wback,
1741 // true: true,
1742 // uses: {Rn}, 1744 // uses: {Rn},
1743 // wback: W(21)=1} 1745 // wback: W(21)=1}
1744 class LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0 1746 class LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0
1745 : public ClassDecoder { 1747 : public ClassDecoder {
1746 public: 1748 public:
1747 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0() 1749 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0()
1748 : ClassDecoder() {} 1750 : ClassDecoder() {}
1749 virtual Register base_address_register(Instruction i) const; 1751 virtual Register base_address_register(Instruction i) const;
1750 virtual RegisterList defs(Instruction inst) const; 1752 virtual RegisterList defs(Instruction inst) const;
1751 virtual SafetyLevel safety(Instruction i) const; 1753 virtual SafetyLevel safety(Instruction i) const;
1752 virtual bool base_address_register_writeback_small_immediate( 1754 virtual bool base_address_register_writeback_small_immediate(
1753 Instruction i) const; 1755 Instruction i) const;
1754 virtual RegisterList uses(Instruction i) const; 1756 virtual RegisterList uses(Instruction i) const;
1755 private: 1757 private:
1756 NACL_DISALLOW_COPY_AND_ASSIGN( 1758 NACL_DISALLOW_COPY_AND_ASSIGN(
1757 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0); 1759 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0);
1758 }; 1760 };
1759 1761
1760 // LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0: 1762 // LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0:
1761 // 1763 //
1762 // {None: 32, 1764 // {None: 32,
1763 // Pc: 15, 1765 // Pc: 15,
1764 // Rn: Rn(19:16), 1766 // Rn: Rn(19:16),
1765 // W: W(21), 1767 // W: W(21),
1768 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
1766 // base: Rn, 1769 // base: Rn,
1767 // baseline: LoadRegisterList, 1770 // baseline: LoadRegisterList,
1768 // cond: cond(31:28), 1771 // cond: cond(31:28),
1769 // constraints: , 1772 // constraints: ,
1770 // defs: Union({Rn 1773 // defs: Union({Rn
1771 // if wback 1774 // if wback
1772 // else None}, registers), 1775 // else None}, registers),
1773 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 1776 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
1774 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_ 0, 1777 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_ 0,
1775 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, 1778 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr,
1776 // register_list: register_list(15:0), 1779 // register_list: register_list(15:0),
1777 // registers: RegisterList(register_list), 1780 // registers: RegisterList(register_list),
1778 // rule: LDM_LDMIA_LDMFD, 1781 // rule: LDM_LDMIA_LDMFD,
1779 // safety: [Rn == 1782 // safety: [Rn ==
1780 // Pc || 1783 // Pc ||
1781 // NumGPRs(registers) < 1784 // NumGPRs(registers) <
1782 // 1 => UNPREDICTABLE, 1785 // 1 => UNPREDICTABLE,
1783 // wback && 1786 // wback &&
1784 // Contains(registers, Rn) => UNKNOWN, 1787 // Contains(registers, Rn) => UNKNOWN,
1785 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], 1788 // Contains(registers, Pc) => FORBIDDEN_OPERANDS],
1786 // small_imm_base_wb: true, 1789 // small_imm_base_wb: wback,
1787 // true: true,
1788 // uses: {Rn}, 1790 // uses: {Rn},
1789 // wback: W(21)=1} 1791 // wback: W(21)=1}
1790 class LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0 1792 class LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0
1791 : public ClassDecoder { 1793 : public ClassDecoder {
1792 public: 1794 public:
1793 LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0() 1795 LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0()
1794 : ClassDecoder() {} 1796 : ClassDecoder() {}
1795 virtual Register base_address_register(Instruction i) const; 1797 virtual Register base_address_register(Instruction i) const;
1796 virtual RegisterList defs(Instruction inst) const; 1798 virtual RegisterList defs(Instruction inst) const;
1797 virtual SafetyLevel safety(Instruction i) const; 1799 virtual SafetyLevel safety(Instruction i) const;
(...skipping 4265 matching lines...) Expand 10 before | Expand all | Expand 10 after
6063 virtual SafetyLevel safety(Instruction i) const; 6065 virtual SafetyLevel safety(Instruction i) const;
6064 virtual RegisterList uses(Instruction i) const; 6066 virtual RegisterList uses(Instruction i) const;
6065 private: 6067 private:
6066 NACL_DISALLOW_COPY_AND_ASSIGN( 6068 NACL_DISALLOW_COPY_AND_ASSIGN(
6067 SMLSLD_cccc01110100hhhhllllmmmm01m1nnnn_case_0); 6069 SMLSLD_cccc01110100hhhhllllmmmm01m1nnnn_case_0);
6068 }; 6070 };
6069 6071
6070 } // namespace nacl_arm_test 6072 } // namespace nacl_arm_test
6071 6073
6072 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_ H_ 6074 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_ H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698