| 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_ACTUALS_1_H_ | 9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ |
| 10 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ | 10 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ |
| (...skipping 1925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1936 private: | 1936 private: |
| 1937 NACL_DISALLOW_COPY_AND_ASSIGN( | 1937 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1938 Actual_BLX_register_cccc000100101111111111110011mmmm_case_1); | 1938 Actual_BLX_register_cccc000100101111111111110011mmmm_case_1); |
| 1939 }; | 1939 }; |
| 1940 | 1940 |
| 1941 // Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 1941 // Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 1942 // | 1942 // |
| 1943 // Actual: | 1943 // Actual: |
| 1944 // {defs: {15, 14}, | 1944 // {defs: {15, 14}, |
| 1945 // relative: true, | 1945 // relative: true, |
| 1946 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32), | 1946 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32) + 8, |
| 1947 // safety: [true => MAY_BE_SAFE], | 1947 // safety: [true => MAY_BE_SAFE], |
| 1948 // uses: {15}} | 1948 // uses: {15}} |
| 1949 // | 1949 // |
| 1950 // Baseline: | 1950 // Baseline: |
| 1951 // {Cond: Cond(31:28), | 1951 // {Cond: Cond(31:28), |
| 1952 // Lr: 14, | 1952 // Lr: 14, |
| 1953 // Pc: 15, | 1953 // Pc: 15, |
| 1954 // actual: Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1, |
| 1954 // baseline: BranchImmediate24, | 1955 // baseline: BranchImmediate24, |
| 1955 // constraints: , | 1956 // constraints: , |
| 1956 // defs: {Pc, Lr}, | 1957 // defs: {Pc, Lr}, |
| 1957 // fields: [Cond(31:28), imm24(23:0)], | 1958 // fields: [Cond(31:28), imm24(23:0)], |
| 1958 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case
_0, | 1959 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case
_0, |
| 1959 // imm24: imm24(23:0), | 1960 // imm24: imm24(23:0), |
| 1960 // imm32: SignExtend(imm24:'00'(1:0), 32), | 1961 // imm32: SignExtend(imm24:'00'(1:0), 32), |
| 1961 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, | 1962 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, |
| 1962 // relative: true, | 1963 // relative: true, |
| 1963 // relative_offset: imm32, | 1964 // relative_offset: imm32 + 8, |
| 1964 // rule: BL_BLX_immediate, | 1965 // rule: BL_BLX_immediate, |
| 1965 // safety: [true => MAY_BE_SAFE], | 1966 // safety: [true => MAY_BE_SAFE], |
| 1966 // true: true, | 1967 // true: true, |
| 1967 // uses: {Pc}} | 1968 // uses: {Pc}} |
| 1968 class Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 1969 class Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 1969 : public ClassDecoder { | 1970 : public ClassDecoder { |
| 1970 public: | 1971 public: |
| 1971 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1() | 1972 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1() |
| 1972 : ClassDecoder() {} | 1973 : ClassDecoder() {} |
| 1973 virtual RegisterList defs(Instruction inst) const; | 1974 virtual RegisterList defs(Instruction inst) const; |
| 1974 virtual bool is_relative_branch(Instruction i) const; | 1975 virtual bool is_relative_branch(Instruction i) const; |
| 1975 virtual int32_t branch_target_offset(Instruction i) const; | 1976 virtual int32_t branch_target_offset(Instruction i) const; |
| 1976 virtual SafetyLevel safety(Instruction i) const; | 1977 virtual SafetyLevel safety(Instruction i) const; |
| 1977 virtual RegisterList uses(Instruction i) const; | 1978 virtual RegisterList uses(Instruction i) const; |
| 1978 private: | 1979 private: |
| 1979 NACL_DISALLOW_COPY_AND_ASSIGN( | 1980 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1980 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1); | 1981 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1); |
| 1981 }; | 1982 }; |
| 1982 | 1983 |
| 1983 // Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 1984 // Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 1984 // | 1985 // |
| 1985 // Actual: | 1986 // Actual: |
| 1986 // {defs: {15}, | 1987 // {defs: {15}, |
| 1987 // relative: true, | 1988 // relative: true, |
| 1988 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32), | 1989 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32) + 8, |
| 1989 // safety: [true => MAY_BE_SAFE], | 1990 // safety: [true => MAY_BE_SAFE], |
| 1990 // uses: {15}} | 1991 // uses: {15}} |
| 1991 // | 1992 // |
| 1992 // Baseline: | 1993 // Baseline: |
| 1993 // {Cond: Cond(31:28), | 1994 // {Cond: Cond(31:28), |
| 1994 // Pc: 15, | 1995 // Pc: 15, |
| 1996 // actual: Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1, |
| 1995 // baseline: BranchImmediate24, | 1997 // baseline: BranchImmediate24, |
| 1996 // constraints: , | 1998 // constraints: , |
| 1997 // defs: {Pc}, | 1999 // defs: {Pc}, |
| 1998 // fields: [Cond(31:28), imm24(23:0)], | 2000 // fields: [Cond(31:28), imm24(23:0)], |
| 1999 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, | 2001 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, |
| 2000 // imm24: imm24(23:0), | 2002 // imm24: imm24(23:0), |
| 2001 // imm32: SignExtend(imm24:'00'(1:0), 32), | 2003 // imm32: SignExtend(imm24:'00'(1:0), 32), |
| 2002 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, | 2004 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, |
| 2003 // relative: true, | 2005 // relative: true, |
| 2004 // relative_offset: imm32, | 2006 // relative_offset: imm32 + 8, |
| 2005 // rule: B, | 2007 // rule: B, |
| 2006 // safety: [true => MAY_BE_SAFE], | 2008 // safety: [true => MAY_BE_SAFE], |
| 2007 // true: true, | 2009 // true: true, |
| 2008 // uses: {Pc}} | 2010 // uses: {Pc}} |
| 2009 class Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 2011 class Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 2010 : public ClassDecoder { | 2012 : public ClassDecoder { |
| 2011 public: | 2013 public: |
| 2012 Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1() | 2014 Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1() |
| 2013 : ClassDecoder() {} | 2015 : ClassDecoder() {} |
| 2014 virtual RegisterList defs(Instruction inst) const; | 2016 virtual RegisterList defs(Instruction inst) const; |
| (...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2785 // defs: Union({inst(19:16) | 2787 // defs: Union({inst(19:16) |
| 2786 // if inst(21)=1 | 2788 // if inst(21)=1 |
| 2787 // else 32}, RegisterList(inst(15:0))), | 2789 // else 32}, RegisterList(inst(15:0))), |
| 2788 // safety: [15 == | 2790 // safety: [15 == |
| 2789 // inst(19:16) || | 2791 // inst(19:16) || |
| 2790 // NumGPRs(RegisterList(inst(15:0))) < | 2792 // NumGPRs(RegisterList(inst(15:0))) < |
| 2791 // 1 => UNPREDICTABLE, | 2793 // 1 => UNPREDICTABLE, |
| 2792 // Contains(RegisterList(inst(15:0)), 15) => FORBIDDEN_OPERANDS, | 2794 // Contains(RegisterList(inst(15:0)), 15) => FORBIDDEN_OPERANDS, |
| 2793 // inst(21)=1 && | 2795 // inst(21)=1 && |
| 2794 // Contains(RegisterList(inst(15:0)), inst(19:16)) => UNKNOWN], | 2796 // Contains(RegisterList(inst(15:0)), inst(19:16)) => UNKNOWN], |
| 2795 // small_imm_base_wb: true, | 2797 // small_imm_base_wb: inst(21)=1, |
| 2796 // uses: {inst(19:16)}} | 2798 // uses: {inst(19:16)}} |
| 2797 // | 2799 // |
| 2798 // Baseline: | 2800 // Baseline: |
| 2799 // {None: 32, | 2801 // {None: 32, |
| 2800 // Pc: 15, | 2802 // Pc: 15, |
| 2801 // Rn: Rn(19:16), | 2803 // Rn: Rn(19:16), |
| 2802 // W: W(21), | 2804 // W: W(21), |
| 2805 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2803 // base: Rn, | 2806 // base: Rn, |
| 2804 // baseline: LoadRegisterList, | 2807 // baseline: LoadRegisterList, |
| 2805 // cond: cond(31:28), | 2808 // cond: cond(31:28), |
| 2806 // constraints: , | 2809 // constraints: , |
| 2807 // defs: Union({Rn | 2810 // defs: Union({Rn |
| 2808 // if wback | 2811 // if wback |
| 2809 // else None}, registers), | 2812 // else None}, registers), |
| 2810 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2813 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2811 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, | 2814 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 2812 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, | 2815 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, |
| 2813 // register_list: register_list(15:0), | 2816 // register_list: register_list(15:0), |
| 2814 // registers: RegisterList(register_list), | 2817 // registers: RegisterList(register_list), |
| 2815 // rule: LDMDA_LDMFA, | 2818 // rule: LDMDA_LDMFA, |
| 2816 // safety: [Rn == | 2819 // safety: [Rn == |
| 2817 // Pc || | 2820 // Pc || |
| 2818 // NumGPRs(registers) < | 2821 // NumGPRs(registers) < |
| 2819 // 1 => UNPREDICTABLE, | 2822 // 1 => UNPREDICTABLE, |
| 2820 // wback && | 2823 // wback && |
| 2821 // Contains(registers, Rn) => UNKNOWN, | 2824 // Contains(registers, Rn) => UNKNOWN, |
| 2822 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2825 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2823 // small_imm_base_wb: true, | 2826 // small_imm_base_wb: wback, |
| 2824 // true: true, | |
| 2825 // uses: {Rn}, | 2827 // uses: {Rn}, |
| 2826 // wback: W(21)=1} | 2828 // wback: W(21)=1} |
| 2827 // | 2829 // |
| 2828 // Baseline: | 2830 // Baseline: |
| 2829 // {None: 32, | 2831 // {None: 32, |
| 2830 // Pc: 15, | 2832 // Pc: 15, |
| 2831 // Rn: Rn(19:16), | 2833 // Rn: Rn(19:16), |
| 2832 // W: W(21), | 2834 // W: W(21), |
| 2835 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2833 // base: Rn, | 2836 // base: Rn, |
| 2834 // baseline: LoadRegisterList, | 2837 // baseline: LoadRegisterList, |
| 2835 // cond: cond(31:28), | 2838 // cond: cond(31:28), |
| 2836 // constraints: , | 2839 // constraints: , |
| 2837 // defs: Union({Rn | 2840 // defs: Union({Rn |
| 2838 // if wback | 2841 // if wback |
| 2839 // else None}, registers), | 2842 // else None}, registers), |
| 2840 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2843 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2841 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, | 2844 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 2842 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, | 2845 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, |
| 2843 // register_list: register_list(15:0), | 2846 // register_list: register_list(15:0), |
| 2844 // registers: RegisterList(register_list), | 2847 // registers: RegisterList(register_list), |
| 2845 // rule: LDMDB_LDMEA, | 2848 // rule: LDMDB_LDMEA, |
| 2846 // safety: [Rn == | 2849 // safety: [Rn == |
| 2847 // Pc || | 2850 // Pc || |
| 2848 // NumGPRs(registers) < | 2851 // NumGPRs(registers) < |
| 2849 // 1 => UNPREDICTABLE, | 2852 // 1 => UNPREDICTABLE, |
| 2850 // wback && | 2853 // wback && |
| 2851 // Contains(registers, Rn) => UNKNOWN, | 2854 // Contains(registers, Rn) => UNKNOWN, |
| 2852 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2855 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2853 // small_imm_base_wb: true, | 2856 // small_imm_base_wb: wback, |
| 2854 // true: true, | |
| 2855 // uses: {Rn}, | 2857 // uses: {Rn}, |
| 2856 // wback: W(21)=1} | 2858 // wback: W(21)=1} |
| 2857 // | 2859 // |
| 2858 // Baseline: | 2860 // Baseline: |
| 2859 // {None: 32, | 2861 // {None: 32, |
| 2860 // Pc: 15, | 2862 // Pc: 15, |
| 2861 // Rn: Rn(19:16), | 2863 // Rn: Rn(19:16), |
| 2862 // W: W(21), | 2864 // W: W(21), |
| 2865 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2863 // base: Rn, | 2866 // base: Rn, |
| 2864 // baseline: LoadRegisterList, | 2867 // baseline: LoadRegisterList, |
| 2865 // cond: cond(31:28), | 2868 // cond: cond(31:28), |
| 2866 // constraints: , | 2869 // constraints: , |
| 2867 // defs: Union({Rn | 2870 // defs: Union({Rn |
| 2868 // if wback | 2871 // if wback |
| 2869 // else None}, registers), | 2872 // else None}, registers), |
| 2870 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2873 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2871 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, | 2874 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 2872 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, | 2875 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, |
| 2873 // register_list: register_list(15:0), | 2876 // register_list: register_list(15:0), |
| 2874 // registers: RegisterList(register_list), | 2877 // registers: RegisterList(register_list), |
| 2875 // rule: LDMIB_LDMED, | 2878 // rule: LDMIB_LDMED, |
| 2876 // safety: [Rn == | 2879 // safety: [Rn == |
| 2877 // Pc || | 2880 // Pc || |
| 2878 // NumGPRs(registers) < | 2881 // NumGPRs(registers) < |
| 2879 // 1 => UNPREDICTABLE, | 2882 // 1 => UNPREDICTABLE, |
| 2880 // wback && | 2883 // wback && |
| 2881 // Contains(registers, Rn) => UNKNOWN, | 2884 // Contains(registers, Rn) => UNKNOWN, |
| 2882 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2885 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2883 // small_imm_base_wb: true, | 2886 // small_imm_base_wb: wback, |
| 2884 // true: true, | |
| 2885 // uses: {Rn}, | 2887 // uses: {Rn}, |
| 2886 // wback: W(21)=1} | 2888 // wback: W(21)=1} |
| 2887 // | 2889 // |
| 2888 // Baseline: | 2890 // Baseline: |
| 2889 // {None: 32, | 2891 // {None: 32, |
| 2890 // Pc: 15, | 2892 // Pc: 15, |
| 2891 // Rn: Rn(19:16), | 2893 // Rn: Rn(19:16), |
| 2892 // W: W(21), | 2894 // W: W(21), |
| 2895 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2893 // base: Rn, | 2896 // base: Rn, |
| 2894 // baseline: LoadRegisterList, | 2897 // baseline: LoadRegisterList, |
| 2895 // cond: cond(31:28), | 2898 // cond: cond(31:28), |
| 2896 // constraints: , | 2899 // constraints: , |
| 2897 // defs: Union({Rn | 2900 // defs: Union({Rn |
| 2898 // if wback | 2901 // if wback |
| 2899 // else None}, registers), | 2902 // else None}, registers), |
| 2900 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2903 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2901 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_
0, | 2904 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_
0, |
| 2902 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, | 2905 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, |
| 2903 // register_list: register_list(15:0), | 2906 // register_list: register_list(15:0), |
| 2904 // registers: RegisterList(register_list), | 2907 // registers: RegisterList(register_list), |
| 2905 // rule: LDM_LDMIA_LDMFD, | 2908 // rule: LDM_LDMIA_LDMFD, |
| 2906 // safety: [Rn == | 2909 // safety: [Rn == |
| 2907 // Pc || | 2910 // Pc || |
| 2908 // NumGPRs(registers) < | 2911 // NumGPRs(registers) < |
| 2909 // 1 => UNPREDICTABLE, | 2912 // 1 => UNPREDICTABLE, |
| 2910 // wback && | 2913 // wback && |
| 2911 // Contains(registers, Rn) => UNKNOWN, | 2914 // Contains(registers, Rn) => UNKNOWN, |
| 2912 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2915 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2913 // small_imm_base_wb: true, | 2916 // small_imm_base_wb: wback, |
| 2914 // true: true, | |
| 2915 // uses: {Rn}, | 2917 // uses: {Rn}, |
| 2916 // wback: W(21)=1} | 2918 // wback: W(21)=1} |
| 2917 class Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1 | 2919 class Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1 |
| 2918 : public ClassDecoder { | 2920 : public ClassDecoder { |
| 2919 public: | 2921 public: |
| 2920 Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1() | 2922 Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1() |
| 2921 : ClassDecoder() {} | 2923 : ClassDecoder() {} |
| 2922 virtual Register base_address_register(Instruction i) const; | 2924 virtual Register base_address_register(Instruction i) const; |
| 2923 virtual RegisterList defs(Instruction inst) const; | 2925 virtual RegisterList defs(Instruction inst) const; |
| 2924 virtual SafetyLevel safety(Instruction i) const; | 2926 virtual SafetyLevel safety(Instruction i) const; |
| (...skipping 3935 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6860 // if inst(21)=1 | 6862 // if inst(21)=1 |
| 6861 // else 32}, | 6863 // else 32}, |
| 6862 // safety: [15 == | 6864 // safety: [15 == |
| 6863 // inst(19:16) || | 6865 // inst(19:16) || |
| 6864 // NumGPRs(RegisterList(inst(15:0))) < | 6866 // NumGPRs(RegisterList(inst(15:0))) < |
| 6865 // 1 => UNPREDICTABLE, | 6867 // 1 => UNPREDICTABLE, |
| 6866 // inst(21)=1 && | 6868 // inst(21)=1 && |
| 6867 // Contains(RegisterList(inst(15:0)), inst(19:16)) && | 6869 // Contains(RegisterList(inst(15:0)), inst(19:16)) && |
| 6868 // SmallestGPR(RegisterList(inst(15:0))) != | 6870 // SmallestGPR(RegisterList(inst(15:0))) != |
| 6869 // inst(19:16) => UNKNOWN], | 6871 // inst(19:16) => UNKNOWN], |
| 6870 // small_imm_base_wb: true, | 6872 // small_imm_base_wb: inst(21)=1, |
| 6871 // uses: Union({inst(19:16)}, RegisterList(inst(15:0)))} | 6873 // uses: Union({inst(19:16)}, RegisterList(inst(15:0)))} |
| 6872 // | 6874 // |
| 6873 // Baseline: | 6875 // Baseline: |
| 6874 // {None: 32, | 6876 // {None: 32, |
| 6875 // Pc: 15, | 6877 // Pc: 15, |
| 6876 // Rn: Rn(19:16), | 6878 // Rn: Rn(19:16), |
| 6877 // W: W(21), | 6879 // W: W(21), |
| 6880 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 6878 // base: Rn, | 6881 // base: Rn, |
| 6879 // baseline: StoreRegisterList, | 6882 // baseline: StoreRegisterList, |
| 6880 // cond: cond(31:28), | 6883 // cond: cond(31:28), |
| 6881 // constraints: , | 6884 // constraints: , |
| 6882 // defs: {Rn | 6885 // defs: {Rn |
| 6883 // if wback | 6886 // if wback |
| 6884 // else None}, | 6887 // else None}, |
| 6885 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 6888 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 6886 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0, | 6889 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0, |
| 6887 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr, | 6890 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr, |
| 6888 // register_list: register_list(15:0), | 6891 // register_list: register_list(15:0), |
| 6889 // registers: RegisterList(register_list), | 6892 // registers: RegisterList(register_list), |
| 6890 // rule: STMDA_STMED, | 6893 // rule: STMDA_STMED, |
| 6891 // safety: [Rn == | 6894 // safety: [Rn == |
| 6892 // Pc || | 6895 // Pc || |
| 6893 // NumGPRs(registers) < | 6896 // NumGPRs(registers) < |
| 6894 // 1 => UNPREDICTABLE, | 6897 // 1 => UNPREDICTABLE, |
| 6895 // wback && | 6898 // wback && |
| 6896 // Contains(registers, Rn) && | 6899 // Contains(registers, Rn) && |
| 6897 // Rn != | 6900 // Rn != |
| 6898 // SmallestGPR(registers) => UNKNOWN], | 6901 // SmallestGPR(registers) => UNKNOWN], |
| 6899 // small_imm_base_wb: true, | 6902 // small_imm_base_wb: wback, |
| 6900 // true: true, | |
| 6901 // uses: Union({Rn}, registers), | 6903 // uses: Union({Rn}, registers), |
| 6902 // wback: W(21)=1} | 6904 // wback: W(21)=1} |
| 6903 // | 6905 // |
| 6904 // Baseline: | 6906 // Baseline: |
| 6905 // {None: 32, | 6907 // {None: 32, |
| 6906 // Pc: 15, | 6908 // Pc: 15, |
| 6907 // Rn: Rn(19:16), | 6909 // Rn: Rn(19:16), |
| 6908 // W: W(21), | 6910 // W: W(21), |
| 6911 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 6909 // base: Rn, | 6912 // base: Rn, |
| 6910 // baseline: StoreRegisterList, | 6913 // baseline: StoreRegisterList, |
| 6911 // cond: cond(31:28), | 6914 // cond: cond(31:28), |
| 6912 // constraints: , | 6915 // constraints: , |
| 6913 // defs: {Rn | 6916 // defs: {Rn |
| 6914 // if wback | 6917 // if wback |
| 6915 // else None}, | 6918 // else None}, |
| 6916 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 6919 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 6917 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0, | 6920 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0, |
| 6918 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr, | 6921 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr, |
| 6919 // register_list: register_list(15:0), | 6922 // register_list: register_list(15:0), |
| 6920 // registers: RegisterList(register_list), | 6923 // registers: RegisterList(register_list), |
| 6921 // rule: STMDB_STMFD, | 6924 // rule: STMDB_STMFD, |
| 6922 // safety: [Rn == | 6925 // safety: [Rn == |
| 6923 // Pc || | 6926 // Pc || |
| 6924 // NumGPRs(registers) < | 6927 // NumGPRs(registers) < |
| 6925 // 1 => UNPREDICTABLE, | 6928 // 1 => UNPREDICTABLE, |
| 6926 // wback && | 6929 // wback && |
| 6927 // Contains(registers, Rn) && | 6930 // Contains(registers, Rn) && |
| 6928 // Rn != | 6931 // Rn != |
| 6929 // SmallestGPR(registers) => UNKNOWN], | 6932 // SmallestGPR(registers) => UNKNOWN], |
| 6930 // small_imm_base_wb: true, | 6933 // small_imm_base_wb: wback, |
| 6931 // true: true, | |
| 6932 // uses: Union({Rn}, registers), | 6934 // uses: Union({Rn}, registers), |
| 6933 // wback: W(21)=1} | 6935 // wback: W(21)=1} |
| 6934 // | 6936 // |
| 6935 // Baseline: | 6937 // Baseline: |
| 6936 // {None: 32, | 6938 // {None: 32, |
| 6937 // Pc: 15, | 6939 // Pc: 15, |
| 6938 // Rn: Rn(19:16), | 6940 // Rn: Rn(19:16), |
| 6939 // W: W(21), | 6941 // W: W(21), |
| 6942 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 6940 // base: Rn, | 6943 // base: Rn, |
| 6941 // baseline: StoreRegisterList, | 6944 // baseline: StoreRegisterList, |
| 6942 // cond: cond(31:28), | 6945 // cond: cond(31:28), |
| 6943 // constraints: , | 6946 // constraints: , |
| 6944 // defs: {Rn | 6947 // defs: {Rn |
| 6945 // if wback | 6948 // if wback |
| 6946 // else None}, | 6949 // else None}, |
| 6947 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 6950 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 6948 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0, | 6951 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0, |
| 6949 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr, | 6952 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr, |
| 6950 // register_list: register_list(15:0), | 6953 // register_list: register_list(15:0), |
| 6951 // registers: RegisterList(register_list), | 6954 // registers: RegisterList(register_list), |
| 6952 // rule: STMIB_STMFA, | 6955 // rule: STMIB_STMFA, |
| 6953 // safety: [Rn == | 6956 // safety: [Rn == |
| 6954 // Pc || | 6957 // Pc || |
| 6955 // NumGPRs(registers) < | 6958 // NumGPRs(registers) < |
| 6956 // 1 => UNPREDICTABLE, | 6959 // 1 => UNPREDICTABLE, |
| 6957 // wback && | 6960 // wback && |
| 6958 // Contains(registers, Rn) && | 6961 // Contains(registers, Rn) && |
| 6959 // Rn != | 6962 // Rn != |
| 6960 // SmallestGPR(registers) => UNKNOWN], | 6963 // SmallestGPR(registers) => UNKNOWN], |
| 6961 // small_imm_base_wb: true, | 6964 // small_imm_base_wb: wback, |
| 6962 // true: true, | |
| 6963 // uses: Union({Rn}, registers), | 6965 // uses: Union({Rn}, registers), |
| 6964 // wback: W(21)=1} | 6966 // wback: W(21)=1} |
| 6965 // | 6967 // |
| 6966 // Baseline: | 6968 // Baseline: |
| 6967 // {None: 32, | 6969 // {None: 32, |
| 6968 // Pc: 15, | 6970 // Pc: 15, |
| 6969 // Rn: Rn(19:16), | 6971 // Rn: Rn(19:16), |
| 6970 // W: W(21), | 6972 // W: W(21), |
| 6973 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 6971 // base: Rn, | 6974 // base: Rn, |
| 6972 // baseline: StoreRegisterList, | 6975 // baseline: StoreRegisterList, |
| 6973 // cond: cond(31:28), | 6976 // cond: cond(31:28), |
| 6974 // constraints: , | 6977 // constraints: , |
| 6975 // defs: {Rn | 6978 // defs: {Rn |
| 6976 // if wback | 6979 // if wback |
| 6977 // else None}, | 6980 // else None}, |
| 6978 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 6981 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 6979 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_
0, | 6982 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_
0, |
| 6980 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr, | 6983 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr, |
| 6981 // register_list: register_list(15:0), | 6984 // register_list: register_list(15:0), |
| 6982 // registers: RegisterList(register_list), | 6985 // registers: RegisterList(register_list), |
| 6983 // rule: STM_STMIA_STMEA, | 6986 // rule: STM_STMIA_STMEA, |
| 6984 // safety: [Rn == | 6987 // safety: [Rn == |
| 6985 // Pc || | 6988 // Pc || |
| 6986 // NumGPRs(registers) < | 6989 // NumGPRs(registers) < |
| 6987 // 1 => UNPREDICTABLE, | 6990 // 1 => UNPREDICTABLE, |
| 6988 // wback && | 6991 // wback && |
| 6989 // Contains(registers, Rn) && | 6992 // Contains(registers, Rn) && |
| 6990 // Rn != | 6993 // Rn != |
| 6991 // SmallestGPR(registers) => UNKNOWN], | 6994 // SmallestGPR(registers) => UNKNOWN], |
| 6992 // small_imm_base_wb: true, | 6995 // small_imm_base_wb: wback, |
| 6993 // true: true, | |
| 6994 // uses: Union({Rn}, registers), | 6996 // uses: Union({Rn}, registers), |
| 6995 // wback: W(21)=1} | 6997 // wback: W(21)=1} |
| 6996 class Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1 | 6998 class Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1 |
| 6997 : public ClassDecoder { | 6999 : public ClassDecoder { |
| 6998 public: | 7000 public: |
| 6999 Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1() | 7001 Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1() |
| 7000 : ClassDecoder() {} | 7002 : ClassDecoder() {} |
| 7001 virtual Register base_address_register(Instruction i) const; | 7003 virtual Register base_address_register(Instruction i) const; |
| 7002 virtual RegisterList defs(Instruction inst) const; | 7004 virtual RegisterList defs(Instruction inst) const; |
| 7003 virtual SafetyLevel safety(Instruction i) const; | 7005 virtual SafetyLevel safety(Instruction i) const; |
| (...skipping 1982 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8986 virtual SafetyLevel safety(Instruction i) const; | 8988 virtual SafetyLevel safety(Instruction i) const; |
| 8987 virtual RegisterList uses(Instruction i) const; | 8989 virtual RegisterList uses(Instruction i) const; |
| 8988 private: | 8990 private: |
| 8989 NACL_DISALLOW_COPY_AND_ASSIGN( | 8991 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 8990 Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1); | 8992 Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1); |
| 8991 }; | 8993 }; |
| 8992 | 8994 |
| 8993 } // namespace nacl_arm_test | 8995 } // namespace nacl_arm_test |
| 8994 | 8996 |
| 8995 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ | 8997 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ |
| OLD | NEW |