| 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 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |