| OLD | NEW |
| 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 821 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 private: | 832 private: |
| 833 NACL_DISALLOW_COPY_AND_ASSIGN( | 833 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 834 BLX_register_cccc000100101111111111110011mmmm_case_0); | 834 BLX_register_cccc000100101111111111110011mmmm_case_0); |
| 835 }; | 835 }; |
| 836 | 836 |
| 837 // BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0: | 837 // BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0: |
| 838 // | 838 // |
| 839 // {Cond: Cond(31:28), | 839 // {Cond: Cond(31:28), |
| 840 // Lr: 14, | 840 // Lr: 14, |
| 841 // Pc: 15, | 841 // Pc: 15, |
| 842 // actual: Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1, |
| 842 // baseline: BranchImmediate24, | 843 // baseline: BranchImmediate24, |
| 843 // constraints: , | 844 // constraints: , |
| 844 // defs: {Pc, Lr}, | 845 // defs: {Pc, Lr}, |
| 845 // fields: [Cond(31:28), imm24(23:0)], | 846 // fields: [Cond(31:28), imm24(23:0)], |
| 846 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case
_0, | 847 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case
_0, |
| 847 // imm24: imm24(23:0), | 848 // imm24: imm24(23:0), |
| 848 // imm32: SignExtend(imm24:'00'(1:0), 32), | 849 // imm32: SignExtend(imm24:'00'(1:0), 32), |
| 849 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, | 850 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, |
| 850 // relative: true, | 851 // relative: true, |
| 851 // relative_offset: imm32, | 852 // relative_offset: imm32 + 8, |
| 852 // rule: BL_BLX_immediate, | 853 // rule: BL_BLX_immediate, |
| 853 // safety: [true => MAY_BE_SAFE], | 854 // safety: [true => MAY_BE_SAFE], |
| 854 // true: true, | 855 // true: true, |
| 855 // uses: {Pc}} | 856 // uses: {Pc}} |
| 856 class BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0 | 857 class BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0 |
| 857 : public ClassDecoder { | 858 : public ClassDecoder { |
| 858 public: | 859 public: |
| 859 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0() | 860 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0() |
| 860 : ClassDecoder() {} | 861 : ClassDecoder() {} |
| 861 virtual RegisterList defs(Instruction inst) const; | 862 virtual RegisterList defs(Instruction inst) const; |
| 862 virtual bool is_relative_branch(Instruction i) const; | 863 virtual bool is_relative_branch(Instruction i) const; |
| 863 virtual int32_t branch_target_offset(Instruction i) const; | 864 virtual int32_t branch_target_offset(Instruction i) const; |
| 864 virtual SafetyLevel safety(Instruction i) const; | 865 virtual SafetyLevel safety(Instruction i) const; |
| 865 virtual RegisterList uses(Instruction i) const; | 866 virtual RegisterList uses(Instruction i) const; |
| 866 private: | 867 private: |
| 867 NACL_DISALLOW_COPY_AND_ASSIGN( | 868 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 868 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0); | 869 BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0); |
| 869 }; | 870 }; |
| 870 | 871 |
| 871 // B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0: | 872 // B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0: |
| 872 // | 873 // |
| 873 // {Cond: Cond(31:28), | 874 // {Cond: Cond(31:28), |
| 874 // Pc: 15, | 875 // Pc: 15, |
| 876 // actual: Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1, |
| 875 // baseline: BranchImmediate24, | 877 // baseline: BranchImmediate24, |
| 876 // constraints: , | 878 // constraints: , |
| 877 // defs: {Pc}, | 879 // defs: {Pc}, |
| 878 // fields: [Cond(31:28), imm24(23:0)], | 880 // fields: [Cond(31:28), imm24(23:0)], |
| 879 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, | 881 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, |
| 880 // imm24: imm24(23:0), | 882 // imm24: imm24(23:0), |
| 881 // imm32: SignExtend(imm24:'00'(1:0), 32), | 883 // imm32: SignExtend(imm24:'00'(1:0), 32), |
| 882 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, | 884 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, |
| 883 // relative: true, | 885 // relative: true, |
| 884 // relative_offset: imm32, | 886 // relative_offset: imm32 + 8, |
| 885 // rule: B, | 887 // rule: B, |
| 886 // safety: [true => MAY_BE_SAFE], | 888 // safety: [true => MAY_BE_SAFE], |
| 887 // true: true, | 889 // true: true, |
| 888 // uses: {Pc}} | 890 // uses: {Pc}} |
| 889 class B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0 | 891 class B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0 |
| 890 : public ClassDecoder { | 892 : public ClassDecoder { |
| 891 public: | 893 public: |
| 892 B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0() | 894 B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0() |
| 893 : ClassDecoder() {} | 895 : ClassDecoder() {} |
| 894 virtual RegisterList defs(Instruction inst) const; | 896 virtual RegisterList defs(Instruction inst) const; |
| (...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1620 NACL_DISALLOW_COPY_AND_ASSIGN( | 1622 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1621 LDC_literal_cccc110pudw11111ddddcccciiiiiiii_case_0); | 1623 LDC_literal_cccc110pudw11111ddddcccciiiiiiii_case_0); |
| 1622 }; | 1624 }; |
| 1623 | 1625 |
| 1624 // LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0: | 1626 // LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0: |
| 1625 // | 1627 // |
| 1626 // {None: 32, | 1628 // {None: 32, |
| 1627 // Pc: 15, | 1629 // Pc: 15, |
| 1628 // Rn: Rn(19:16), | 1630 // Rn: Rn(19:16), |
| 1629 // W: W(21), | 1631 // W: W(21), |
| 1632 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 1630 // base: Rn, | 1633 // base: Rn, |
| 1631 // baseline: LoadRegisterList, | 1634 // baseline: LoadRegisterList, |
| 1632 // cond: cond(31:28), | 1635 // cond: cond(31:28), |
| 1633 // constraints: , | 1636 // constraints: , |
| 1634 // defs: Union({Rn | 1637 // defs: Union({Rn |
| 1635 // if wback | 1638 // if wback |
| 1636 // else None}, registers), | 1639 // else None}, registers), |
| 1637 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 1640 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 1638 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, | 1641 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 1639 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, | 1642 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, |
| 1640 // register_list: register_list(15:0), | 1643 // register_list: register_list(15:0), |
| 1641 // registers: RegisterList(register_list), | 1644 // registers: RegisterList(register_list), |
| 1642 // rule: LDMDA_LDMFA, | 1645 // rule: LDMDA_LDMFA, |
| 1643 // safety: [Rn == | 1646 // safety: [Rn == |
| 1644 // Pc || | 1647 // Pc || |
| 1645 // NumGPRs(registers) < | 1648 // NumGPRs(registers) < |
| 1646 // 1 => UNPREDICTABLE, | 1649 // 1 => UNPREDICTABLE, |
| 1647 // wback && | 1650 // wback && |
| 1648 // Contains(registers, Rn) => UNKNOWN, | 1651 // Contains(registers, Rn) => UNKNOWN, |
| 1649 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 1652 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 1650 // small_imm_base_wb: true, | 1653 // small_imm_base_wb: wback, |
| 1651 // true: true, | |
| 1652 // uses: {Rn}, | 1654 // uses: {Rn}, |
| 1653 // wback: W(21)=1} | 1655 // wback: W(21)=1} |
| 1654 class LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0 | 1656 class LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0 |
| 1655 : public ClassDecoder { | 1657 : public ClassDecoder { |
| 1656 public: | 1658 public: |
| 1657 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0() | 1659 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0() |
| 1658 : ClassDecoder() {} | 1660 : ClassDecoder() {} |
| 1659 virtual Register base_address_register(Instruction i) const; | 1661 virtual Register base_address_register(Instruction i) const; |
| 1660 virtual RegisterList defs(Instruction inst) const; | 1662 virtual RegisterList defs(Instruction inst) const; |
| 1661 virtual SafetyLevel safety(Instruction i) const; | 1663 virtual SafetyLevel safety(Instruction i) const; |
| 1662 virtual bool base_address_register_writeback_small_immediate( | 1664 virtual bool base_address_register_writeback_small_immediate( |
| 1663 Instruction i) const; | 1665 Instruction i) const; |
| 1664 virtual RegisterList uses(Instruction i) const; | 1666 virtual RegisterList uses(Instruction i) const; |
| 1665 private: | 1667 private: |
| 1666 NACL_DISALLOW_COPY_AND_ASSIGN( | 1668 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1667 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0); | 1669 LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0); |
| 1668 }; | 1670 }; |
| 1669 | 1671 |
| 1670 // LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0: | 1672 // LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0: |
| 1671 // | 1673 // |
| 1672 // {None: 32, | 1674 // {None: 32, |
| 1673 // Pc: 15, | 1675 // Pc: 15, |
| 1674 // Rn: Rn(19:16), | 1676 // Rn: Rn(19:16), |
| 1675 // W: W(21), | 1677 // W: W(21), |
| 1678 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 1676 // base: Rn, | 1679 // base: Rn, |
| 1677 // baseline: LoadRegisterList, | 1680 // baseline: LoadRegisterList, |
| 1678 // cond: cond(31:28), | 1681 // cond: cond(31:28), |
| 1679 // constraints: , | 1682 // constraints: , |
| 1680 // defs: Union({Rn | 1683 // defs: Union({Rn |
| 1681 // if wback | 1684 // if wback |
| 1682 // else None}, registers), | 1685 // else None}, registers), |
| 1683 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 1686 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 1684 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, | 1687 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 1685 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, | 1688 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, |
| 1686 // register_list: register_list(15:0), | 1689 // register_list: register_list(15:0), |
| 1687 // registers: RegisterList(register_list), | 1690 // registers: RegisterList(register_list), |
| 1688 // rule: LDMDB_LDMEA, | 1691 // rule: LDMDB_LDMEA, |
| 1689 // safety: [Rn == | 1692 // safety: [Rn == |
| 1690 // Pc || | 1693 // Pc || |
| 1691 // NumGPRs(registers) < | 1694 // NumGPRs(registers) < |
| 1692 // 1 => UNPREDICTABLE, | 1695 // 1 => UNPREDICTABLE, |
| 1693 // wback && | 1696 // wback && |
| 1694 // Contains(registers, Rn) => UNKNOWN, | 1697 // Contains(registers, Rn) => UNKNOWN, |
| 1695 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 1698 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 1696 // small_imm_base_wb: true, | 1699 // small_imm_base_wb: wback, |
| 1697 // true: true, | |
| 1698 // uses: {Rn}, | 1700 // uses: {Rn}, |
| 1699 // wback: W(21)=1} | 1701 // wback: W(21)=1} |
| 1700 class LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0 | 1702 class LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0 |
| 1701 : public ClassDecoder { | 1703 : public ClassDecoder { |
| 1702 public: | 1704 public: |
| 1703 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0() | 1705 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0() |
| 1704 : ClassDecoder() {} | 1706 : ClassDecoder() {} |
| 1705 virtual Register base_address_register(Instruction i) const; | 1707 virtual Register base_address_register(Instruction i) const; |
| 1706 virtual RegisterList defs(Instruction inst) const; | 1708 virtual RegisterList defs(Instruction inst) const; |
| 1707 virtual SafetyLevel safety(Instruction i) const; | 1709 virtual SafetyLevel safety(Instruction i) const; |
| 1708 virtual bool base_address_register_writeback_small_immediate( | 1710 virtual bool base_address_register_writeback_small_immediate( |
| 1709 Instruction i) const; | 1711 Instruction i) const; |
| 1710 virtual RegisterList uses(Instruction i) const; | 1712 virtual RegisterList uses(Instruction i) const; |
| 1711 private: | 1713 private: |
| 1712 NACL_DISALLOW_COPY_AND_ASSIGN( | 1714 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1713 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0); | 1715 LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0); |
| 1714 }; | 1716 }; |
| 1715 | 1717 |
| 1716 // LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0: | 1718 // LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0: |
| 1717 // | 1719 // |
| 1718 // {None: 32, | 1720 // {None: 32, |
| 1719 // Pc: 15, | 1721 // Pc: 15, |
| 1720 // Rn: Rn(19:16), | 1722 // Rn: Rn(19:16), |
| 1721 // W: W(21), | 1723 // W: W(21), |
| 1724 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 1722 // base: Rn, | 1725 // base: Rn, |
| 1723 // baseline: LoadRegisterList, | 1726 // baseline: LoadRegisterList, |
| 1724 // cond: cond(31:28), | 1727 // cond: cond(31:28), |
| 1725 // constraints: , | 1728 // constraints: , |
| 1726 // defs: Union({Rn | 1729 // defs: Union({Rn |
| 1727 // if wback | 1730 // if wback |
| 1728 // else None}, registers), | 1731 // else None}, registers), |
| 1729 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 1732 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 1730 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, | 1733 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 1731 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, | 1734 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, |
| 1732 // register_list: register_list(15:0), | 1735 // register_list: register_list(15:0), |
| 1733 // registers: RegisterList(register_list), | 1736 // registers: RegisterList(register_list), |
| 1734 // rule: LDMIB_LDMED, | 1737 // rule: LDMIB_LDMED, |
| 1735 // safety: [Rn == | 1738 // safety: [Rn == |
| 1736 // Pc || | 1739 // Pc || |
| 1737 // NumGPRs(registers) < | 1740 // NumGPRs(registers) < |
| 1738 // 1 => UNPREDICTABLE, | 1741 // 1 => UNPREDICTABLE, |
| 1739 // wback && | 1742 // wback && |
| 1740 // Contains(registers, Rn) => UNKNOWN, | 1743 // Contains(registers, Rn) => UNKNOWN, |
| 1741 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 1744 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 1742 // small_imm_base_wb: true, | 1745 // small_imm_base_wb: wback, |
| 1743 // true: true, | |
| 1744 // uses: {Rn}, | 1746 // uses: {Rn}, |
| 1745 // wback: W(21)=1} | 1747 // wback: W(21)=1} |
| 1746 class LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0 | 1748 class LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0 |
| 1747 : public ClassDecoder { | 1749 : public ClassDecoder { |
| 1748 public: | 1750 public: |
| 1749 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0() | 1751 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0() |
| 1750 : ClassDecoder() {} | 1752 : ClassDecoder() {} |
| 1751 virtual Register base_address_register(Instruction i) const; | 1753 virtual Register base_address_register(Instruction i) const; |
| 1752 virtual RegisterList defs(Instruction inst) const; | 1754 virtual RegisterList defs(Instruction inst) const; |
| 1753 virtual SafetyLevel safety(Instruction i) const; | 1755 virtual SafetyLevel safety(Instruction i) const; |
| 1754 virtual bool base_address_register_writeback_small_immediate( | 1756 virtual bool base_address_register_writeback_small_immediate( |
| 1755 Instruction i) const; | 1757 Instruction i) const; |
| 1756 virtual RegisterList uses(Instruction i) const; | 1758 virtual RegisterList uses(Instruction i) const; |
| 1757 private: | 1759 private: |
| 1758 NACL_DISALLOW_COPY_AND_ASSIGN( | 1760 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1759 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0); | 1761 LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0); |
| 1760 }; | 1762 }; |
| 1761 | 1763 |
| 1762 // LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0: | 1764 // LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0: |
| 1763 // | 1765 // |
| 1764 // {None: 32, | 1766 // {None: 32, |
| 1765 // Pc: 15, | 1767 // Pc: 15, |
| 1766 // Rn: Rn(19:16), | 1768 // Rn: Rn(19:16), |
| 1767 // W: W(21), | 1769 // W: W(21), |
| 1770 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 1768 // base: Rn, | 1771 // base: Rn, |
| 1769 // baseline: LoadRegisterList, | 1772 // baseline: LoadRegisterList, |
| 1770 // cond: cond(31:28), | 1773 // cond: cond(31:28), |
| 1771 // constraints: , | 1774 // constraints: , |
| 1772 // defs: Union({Rn | 1775 // defs: Union({Rn |
| 1773 // if wback | 1776 // if wback |
| 1774 // else None}, registers), | 1777 // else None}, registers), |
| 1775 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 1778 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 1776 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_
0, | 1779 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_
0, |
| 1777 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, | 1780 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, |
| 1778 // register_list: register_list(15:0), | 1781 // register_list: register_list(15:0), |
| 1779 // registers: RegisterList(register_list), | 1782 // registers: RegisterList(register_list), |
| 1780 // rule: LDM_LDMIA_LDMFD, | 1783 // rule: LDM_LDMIA_LDMFD, |
| 1781 // safety: [Rn == | 1784 // safety: [Rn == |
| 1782 // Pc || | 1785 // Pc || |
| 1783 // NumGPRs(registers) < | 1786 // NumGPRs(registers) < |
| 1784 // 1 => UNPREDICTABLE, | 1787 // 1 => UNPREDICTABLE, |
| 1785 // wback && | 1788 // wback && |
| 1786 // Contains(registers, Rn) => UNKNOWN, | 1789 // Contains(registers, Rn) => UNKNOWN, |
| 1787 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 1790 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 1788 // small_imm_base_wb: true, | 1791 // small_imm_base_wb: wback, |
| 1789 // true: true, | |
| 1790 // uses: {Rn}, | 1792 // uses: {Rn}, |
| 1791 // wback: W(21)=1} | 1793 // wback: W(21)=1} |
| 1792 class LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0 | 1794 class LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0 |
| 1793 : public ClassDecoder { | 1795 : public ClassDecoder { |
| 1794 public: | 1796 public: |
| 1795 LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0() | 1797 LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0() |
| 1796 : ClassDecoder() {} | 1798 : ClassDecoder() {} |
| 1797 virtual Register base_address_register(Instruction i) const; | 1799 virtual Register base_address_register(Instruction i) const; |
| 1798 virtual RegisterList defs(Instruction inst) const; | 1800 virtual RegisterList defs(Instruction inst) const; |
| 1799 virtual SafetyLevel safety(Instruction i) const; | 1801 virtual SafetyLevel safety(Instruction i) const; |
| (...skipping 4298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6098 virtual SafetyLevel safety(Instruction i) const; | 6100 virtual SafetyLevel safety(Instruction i) const; |
| 6099 virtual RegisterList uses(Instruction i) const; | 6101 virtual RegisterList uses(Instruction i) const; |
| 6100 private: | 6102 private: |
| 6101 NACL_DISALLOW_COPY_AND_ASSIGN( | 6103 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 6102 SMLSLD_cccc01110100hhhhllllmmmm01m1nnnn_case_0); | 6104 SMLSLD_cccc01110100hhhhllllmmmm01m1nnnn_case_0); |
| 6103 }; | 6105 }; |
| 6104 | 6106 |
| 6105 } // namespace nacl_arm_test | 6107 } // namespace nacl_arm_test |
| 6106 | 6108 |
| 6107 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_
H_ | 6109 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_1_
H_ |
| OLD | NEW |