| 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 1927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1938 private: | 1938 private: |
| 1939 NACL_DISALLOW_COPY_AND_ASSIGN( | 1939 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1940 Actual_BLX_register_cccc000100101111111111110011mmmm_case_1); | 1940 Actual_BLX_register_cccc000100101111111111110011mmmm_case_1); |
| 1941 }; | 1941 }; |
| 1942 | 1942 |
| 1943 // Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 1943 // Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 1944 // | 1944 // |
| 1945 // Actual: | 1945 // Actual: |
| 1946 // {defs: {15, 14}, | 1946 // {defs: {15, 14}, |
| 1947 // relative: true, | 1947 // relative: true, |
| 1948 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32), | 1948 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32) + 8, |
| 1949 // safety: [true => MAY_BE_SAFE], | 1949 // safety: [true => MAY_BE_SAFE], |
| 1950 // uses: {15}} | 1950 // uses: {15}} |
| 1951 // | 1951 // |
| 1952 // Baseline: | 1952 // Baseline: |
| 1953 // {Cond: Cond(31:28), | 1953 // {Cond: Cond(31:28), |
| 1954 // Lr: 14, | 1954 // Lr: 14, |
| 1955 // Pc: 15, | 1955 // Pc: 15, |
| 1956 // actual: Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1, |
| 1956 // baseline: BranchImmediate24, | 1957 // baseline: BranchImmediate24, |
| 1957 // constraints: , | 1958 // constraints: , |
| 1958 // defs: {Pc, Lr}, | 1959 // defs: {Pc, Lr}, |
| 1959 // fields: [Cond(31:28), imm24(23:0)], | 1960 // fields: [Cond(31:28), imm24(23:0)], |
| 1960 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case
_0, | 1961 // generated_baseline: BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case
_0, |
| 1961 // imm24: imm24(23:0), | 1962 // imm24: imm24(23:0), |
| 1962 // imm32: SignExtend(imm24:'00'(1:0), 32), | 1963 // imm32: SignExtend(imm24:'00'(1:0), 32), |
| 1963 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, | 1964 // pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii, |
| 1964 // relative: true, | 1965 // relative: true, |
| 1965 // relative_offset: imm32, | 1966 // relative_offset: imm32 + 8, |
| 1966 // rule: BL_BLX_immediate, | 1967 // rule: BL_BLX_immediate, |
| 1967 // safety: [true => MAY_BE_SAFE], | 1968 // safety: [true => MAY_BE_SAFE], |
| 1968 // true: true, | 1969 // true: true, |
| 1969 // uses: {Pc}} | 1970 // uses: {Pc}} |
| 1970 class Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 1971 class Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 1971 : public ClassDecoder { | 1972 : public ClassDecoder { |
| 1972 public: | 1973 public: |
| 1973 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1() | 1974 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1() |
| 1974 : ClassDecoder() {} | 1975 : ClassDecoder() {} |
| 1975 virtual RegisterList defs(Instruction inst) const; | 1976 virtual RegisterList defs(Instruction inst) const; |
| 1976 virtual bool is_relative_branch(Instruction i) const; | 1977 virtual bool is_relative_branch(Instruction i) const; |
| 1977 virtual int32_t branch_target_offset(Instruction i) const; | 1978 virtual int32_t branch_target_offset(Instruction i) const; |
| 1978 virtual SafetyLevel safety(Instruction i) const; | 1979 virtual SafetyLevel safety(Instruction i) const; |
| 1979 virtual RegisterList uses(Instruction i) const; | 1980 virtual RegisterList uses(Instruction i) const; |
| 1980 private: | 1981 private: |
| 1981 NACL_DISALLOW_COPY_AND_ASSIGN( | 1982 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 1982 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1); | 1983 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1); |
| 1983 }; | 1984 }; |
| 1984 | 1985 |
| 1985 // Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 1986 // Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 1986 // | 1987 // |
| 1987 // Actual: | 1988 // Actual: |
| 1988 // {defs: {15}, | 1989 // {defs: {15}, |
| 1989 // relative: true, | 1990 // relative: true, |
| 1990 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32), | 1991 // relative_offset: SignExtend(inst(23:0):'00'(1:0), 32) + 8, |
| 1991 // safety: [true => MAY_BE_SAFE], | 1992 // safety: [true => MAY_BE_SAFE], |
| 1992 // uses: {15}} | 1993 // uses: {15}} |
| 1993 // | 1994 // |
| 1994 // Baseline: | 1995 // Baseline: |
| 1995 // {Cond: Cond(31:28), | 1996 // {Cond: Cond(31:28), |
| 1996 // Pc: 15, | 1997 // Pc: 15, |
| 1998 // actual: Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1, |
| 1997 // baseline: BranchImmediate24, | 1999 // baseline: BranchImmediate24, |
| 1998 // constraints: , | 2000 // constraints: , |
| 1999 // defs: {Pc}, | 2001 // defs: {Pc}, |
| 2000 // fields: [Cond(31:28), imm24(23:0)], | 2002 // fields: [Cond(31:28), imm24(23:0)], |
| 2001 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, | 2003 // generated_baseline: B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0, |
| 2002 // imm24: imm24(23:0), | 2004 // imm24: imm24(23:0), |
| 2003 // imm32: SignExtend(imm24:'00'(1:0), 32), | 2005 // imm32: SignExtend(imm24:'00'(1:0), 32), |
| 2004 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, | 2006 // pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii, |
| 2005 // relative: true, | 2007 // relative: true, |
| 2006 // relative_offset: imm32, | 2008 // relative_offset: imm32 + 8, |
| 2007 // rule: B, | 2009 // rule: B, |
| 2008 // safety: [true => MAY_BE_SAFE], | 2010 // safety: [true => MAY_BE_SAFE], |
| 2009 // true: true, | 2011 // true: true, |
| 2010 // uses: {Pc}} | 2012 // uses: {Pc}} |
| 2011 class Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 | 2013 class Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 |
| 2012 : public ClassDecoder { | 2014 : public ClassDecoder { |
| 2013 public: | 2015 public: |
| 2014 Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1() | 2016 Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1() |
| 2015 : ClassDecoder() {} | 2017 : ClassDecoder() {} |
| 2016 virtual RegisterList defs(Instruction inst) const; | 2018 virtual RegisterList defs(Instruction inst) const; |
| (...skipping 784 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2801 // defs: Union({inst(19:16) | 2803 // defs: Union({inst(19:16) |
| 2802 // if inst(21)=1 | 2804 // if inst(21)=1 |
| 2803 // else 32}, RegisterList(inst(15:0))), | 2805 // else 32}, RegisterList(inst(15:0))), |
| 2804 // safety: [15 == | 2806 // safety: [15 == |
| 2805 // inst(19:16) || | 2807 // inst(19:16) || |
| 2806 // NumGPRs(RegisterList(inst(15:0))) < | 2808 // NumGPRs(RegisterList(inst(15:0))) < |
| 2807 // 1 => UNPREDICTABLE, | 2809 // 1 => UNPREDICTABLE, |
| 2808 // Contains(RegisterList(inst(15:0)), 15) => FORBIDDEN_OPERANDS, | 2810 // Contains(RegisterList(inst(15:0)), 15) => FORBIDDEN_OPERANDS, |
| 2809 // inst(21)=1 && | 2811 // inst(21)=1 && |
| 2810 // Contains(RegisterList(inst(15:0)), inst(19:16)) => UNKNOWN], | 2812 // Contains(RegisterList(inst(15:0)), inst(19:16)) => UNKNOWN], |
| 2811 // small_imm_base_wb: true, | 2813 // small_imm_base_wb: inst(21)=1, |
| 2812 // uses: {inst(19:16)}} | 2814 // uses: {inst(19:16)}} |
| 2813 // | 2815 // |
| 2814 // Baseline: | 2816 // Baseline: |
| 2815 // {None: 32, | 2817 // {None: 32, |
| 2816 // Pc: 15, | 2818 // Pc: 15, |
| 2817 // Rn: Rn(19:16), | 2819 // Rn: Rn(19:16), |
| 2818 // W: W(21), | 2820 // W: W(21), |
| 2821 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2819 // base: Rn, | 2822 // base: Rn, |
| 2820 // baseline: LoadRegisterList, | 2823 // baseline: LoadRegisterList, |
| 2821 // cond: cond(31:28), | 2824 // cond: cond(31:28), |
| 2822 // constraints: , | 2825 // constraints: , |
| 2823 // defs: Union({Rn | 2826 // defs: Union({Rn |
| 2824 // if wback | 2827 // if wback |
| 2825 // else None}, registers), | 2828 // else None}, registers), |
| 2826 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2829 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2827 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, | 2830 // generated_baseline: LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 2828 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, | 2831 // pattern: cccc100000w1nnnnrrrrrrrrrrrrrrrr, |
| 2829 // register_list: register_list(15:0), | 2832 // register_list: register_list(15:0), |
| 2830 // registers: RegisterList(register_list), | 2833 // registers: RegisterList(register_list), |
| 2831 // rule: LDMDA_LDMFA, | 2834 // rule: LDMDA_LDMFA, |
| 2832 // safety: [Rn == | 2835 // safety: [Rn == |
| 2833 // Pc || | 2836 // Pc || |
| 2834 // NumGPRs(registers) < | 2837 // NumGPRs(registers) < |
| 2835 // 1 => UNPREDICTABLE, | 2838 // 1 => UNPREDICTABLE, |
| 2836 // wback && | 2839 // wback && |
| 2837 // Contains(registers, Rn) => UNKNOWN, | 2840 // Contains(registers, Rn) => UNKNOWN, |
| 2838 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2841 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2839 // small_imm_base_wb: true, | 2842 // small_imm_base_wb: wback, |
| 2840 // true: true, | |
| 2841 // uses: {Rn}, | 2843 // uses: {Rn}, |
| 2842 // wback: W(21)=1} | 2844 // wback: W(21)=1} |
| 2843 // | 2845 // |
| 2844 // Baseline: | 2846 // Baseline: |
| 2845 // {None: 32, | 2847 // {None: 32, |
| 2846 // Pc: 15, | 2848 // Pc: 15, |
| 2847 // Rn: Rn(19:16), | 2849 // Rn: Rn(19:16), |
| 2848 // W: W(21), | 2850 // W: W(21), |
| 2851 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2849 // base: Rn, | 2852 // base: Rn, |
| 2850 // baseline: LoadRegisterList, | 2853 // baseline: LoadRegisterList, |
| 2851 // cond: cond(31:28), | 2854 // cond: cond(31:28), |
| 2852 // constraints: , | 2855 // constraints: , |
| 2853 // defs: Union({Rn | 2856 // defs: Union({Rn |
| 2854 // if wback | 2857 // if wback |
| 2855 // else None}, registers), | 2858 // else None}, registers), |
| 2856 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2859 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2857 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, | 2860 // generated_baseline: LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 2858 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, | 2861 // pattern: cccc100100w1nnnnrrrrrrrrrrrrrrrr, |
| 2859 // register_list: register_list(15:0), | 2862 // register_list: register_list(15:0), |
| 2860 // registers: RegisterList(register_list), | 2863 // registers: RegisterList(register_list), |
| 2861 // rule: LDMDB_LDMEA, | 2864 // rule: LDMDB_LDMEA, |
| 2862 // safety: [Rn == | 2865 // safety: [Rn == |
| 2863 // Pc || | 2866 // Pc || |
| 2864 // NumGPRs(registers) < | 2867 // NumGPRs(registers) < |
| 2865 // 1 => UNPREDICTABLE, | 2868 // 1 => UNPREDICTABLE, |
| 2866 // wback && | 2869 // wback && |
| 2867 // Contains(registers, Rn) => UNKNOWN, | 2870 // Contains(registers, Rn) => UNKNOWN, |
| 2868 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2871 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2869 // small_imm_base_wb: true, | 2872 // small_imm_base_wb: wback, |
| 2870 // true: true, | |
| 2871 // uses: {Rn}, | 2873 // uses: {Rn}, |
| 2872 // wback: W(21)=1} | 2874 // wback: W(21)=1} |
| 2873 // | 2875 // |
| 2874 // Baseline: | 2876 // Baseline: |
| 2875 // {None: 32, | 2877 // {None: 32, |
| 2876 // Pc: 15, | 2878 // Pc: 15, |
| 2877 // Rn: Rn(19:16), | 2879 // Rn: Rn(19:16), |
| 2878 // W: W(21), | 2880 // W: W(21), |
| 2881 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2879 // base: Rn, | 2882 // base: Rn, |
| 2880 // baseline: LoadRegisterList, | 2883 // baseline: LoadRegisterList, |
| 2881 // cond: cond(31:28), | 2884 // cond: cond(31:28), |
| 2882 // constraints: , | 2885 // constraints: , |
| 2883 // defs: Union({Rn | 2886 // defs: Union({Rn |
| 2884 // if wback | 2887 // if wback |
| 2885 // else None}, registers), | 2888 // else None}, registers), |
| 2886 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2889 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2887 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, | 2890 // generated_baseline: LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0, |
| 2888 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, | 2891 // pattern: cccc100110w1nnnnrrrrrrrrrrrrrrrr, |
| 2889 // register_list: register_list(15:0), | 2892 // register_list: register_list(15:0), |
| 2890 // registers: RegisterList(register_list), | 2893 // registers: RegisterList(register_list), |
| 2891 // rule: LDMIB_LDMED, | 2894 // rule: LDMIB_LDMED, |
| 2892 // safety: [Rn == | 2895 // safety: [Rn == |
| 2893 // Pc || | 2896 // Pc || |
| 2894 // NumGPRs(registers) < | 2897 // NumGPRs(registers) < |
| 2895 // 1 => UNPREDICTABLE, | 2898 // 1 => UNPREDICTABLE, |
| 2896 // wback && | 2899 // wback && |
| 2897 // Contains(registers, Rn) => UNKNOWN, | 2900 // Contains(registers, Rn) => UNKNOWN, |
| 2898 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2901 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2899 // small_imm_base_wb: true, | 2902 // small_imm_base_wb: wback, |
| 2900 // true: true, | |
| 2901 // uses: {Rn}, | 2903 // uses: {Rn}, |
| 2902 // wback: W(21)=1} | 2904 // wback: W(21)=1} |
| 2903 // | 2905 // |
| 2904 // Baseline: | 2906 // Baseline: |
| 2905 // {None: 32, | 2907 // {None: 32, |
| 2906 // Pc: 15, | 2908 // Pc: 15, |
| 2907 // Rn: Rn(19:16), | 2909 // Rn: Rn(19:16), |
| 2908 // W: W(21), | 2910 // W: W(21), |
| 2911 // actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1, |
| 2909 // base: Rn, | 2912 // base: Rn, |
| 2910 // baseline: LoadRegisterList, | 2913 // baseline: LoadRegisterList, |
| 2911 // cond: cond(31:28), | 2914 // cond: cond(31:28), |
| 2912 // constraints: , | 2915 // constraints: , |
| 2913 // defs: Union({Rn | 2916 // defs: Union({Rn |
| 2914 // if wback | 2917 // if wback |
| 2915 // else None}, registers), | 2918 // else None}, registers), |
| 2916 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 2919 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 2917 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_
0, | 2920 // generated_baseline: LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_
0, |
| 2918 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, | 2921 // pattern: cccc100010w1nnnnrrrrrrrrrrrrrrrr, |
| 2919 // register_list: register_list(15:0), | 2922 // register_list: register_list(15:0), |
| 2920 // registers: RegisterList(register_list), | 2923 // registers: RegisterList(register_list), |
| 2921 // rule: LDM_LDMIA_LDMFD, | 2924 // rule: LDM_LDMIA_LDMFD, |
| 2922 // safety: [Rn == | 2925 // safety: [Rn == |
| 2923 // Pc || | 2926 // Pc || |
| 2924 // NumGPRs(registers) < | 2927 // NumGPRs(registers) < |
| 2925 // 1 => UNPREDICTABLE, | 2928 // 1 => UNPREDICTABLE, |
| 2926 // wback && | 2929 // wback && |
| 2927 // Contains(registers, Rn) => UNKNOWN, | 2930 // Contains(registers, Rn) => UNKNOWN, |
| 2928 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], | 2931 // Contains(registers, Pc) => FORBIDDEN_OPERANDS], |
| 2929 // small_imm_base_wb: true, | 2932 // small_imm_base_wb: wback, |
| 2930 // true: true, | |
| 2931 // uses: {Rn}, | 2933 // uses: {Rn}, |
| 2932 // wback: W(21)=1} | 2934 // wback: W(21)=1} |
| 2933 class Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1 | 2935 class Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1 |
| 2934 : public ClassDecoder { | 2936 : public ClassDecoder { |
| 2935 public: | 2937 public: |
| 2936 Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1() | 2938 Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1() |
| 2937 : ClassDecoder() {} | 2939 : ClassDecoder() {} |
| 2938 virtual Register base_address_register(Instruction i) const; | 2940 virtual Register base_address_register(Instruction i) const; |
| 2939 virtual RegisterList defs(Instruction inst) const; | 2941 virtual RegisterList defs(Instruction inst) const; |
| 2940 virtual SafetyLevel safety(Instruction i) const; | 2942 virtual SafetyLevel safety(Instruction i) const; |
| (...skipping 3996 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6937 // if inst(21)=1 | 6939 // if inst(21)=1 |
| 6938 // else 32}, | 6940 // else 32}, |
| 6939 // safety: [15 == | 6941 // safety: [15 == |
| 6940 // inst(19:16) || | 6942 // inst(19:16) || |
| 6941 // NumGPRs(RegisterList(inst(15:0))) < | 6943 // NumGPRs(RegisterList(inst(15:0))) < |
| 6942 // 1 => UNPREDICTABLE, | 6944 // 1 => UNPREDICTABLE, |
| 6943 // inst(21)=1 && | 6945 // inst(21)=1 && |
| 6944 // Contains(RegisterList(inst(15:0)), inst(19:16)) && | 6946 // Contains(RegisterList(inst(15:0)), inst(19:16)) && |
| 6945 // SmallestGPR(RegisterList(inst(15:0))) != | 6947 // SmallestGPR(RegisterList(inst(15:0))) != |
| 6946 // inst(19:16) => UNKNOWN], | 6948 // inst(19:16) => UNKNOWN], |
| 6947 // small_imm_base_wb: true, | 6949 // small_imm_base_wb: inst(21)=1, |
| 6948 // uses: Union({inst(19:16)}, RegisterList(inst(15:0)))} | 6950 // uses: Union({inst(19:16)}, RegisterList(inst(15:0)))} |
| 6949 // | 6951 // |
| 6950 // Baseline: | 6952 // Baseline: |
| 6951 // {None: 32, | 6953 // {None: 32, |
| 6952 // Pc: 15, | 6954 // Pc: 15, |
| 6953 // Rn: Rn(19:16), | 6955 // Rn: Rn(19:16), |
| 6954 // W: W(21), | 6956 // W: W(21), |
| 6957 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 6955 // base: Rn, | 6958 // base: Rn, |
| 6956 // baseline: StoreRegisterList, | 6959 // baseline: StoreRegisterList, |
| 6957 // cond: cond(31:28), | 6960 // cond: cond(31:28), |
| 6958 // constraints: , | 6961 // constraints: , |
| 6959 // defs: {Rn | 6962 // defs: {Rn |
| 6960 // if wback | 6963 // if wback |
| 6961 // else None}, | 6964 // else None}, |
| 6962 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 6965 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 6963 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0, | 6966 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0, |
| 6964 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr, | 6967 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr, |
| 6965 // register_list: register_list(15:0), | 6968 // register_list: register_list(15:0), |
| 6966 // registers: RegisterList(register_list), | 6969 // registers: RegisterList(register_list), |
| 6967 // rule: STMDA_STMED, | 6970 // rule: STMDA_STMED, |
| 6968 // safety: [Rn == | 6971 // safety: [Rn == |
| 6969 // Pc || | 6972 // Pc || |
| 6970 // NumGPRs(registers) < | 6973 // NumGPRs(registers) < |
| 6971 // 1 => UNPREDICTABLE, | 6974 // 1 => UNPREDICTABLE, |
| 6972 // wback && | 6975 // wback && |
| 6973 // Contains(registers, Rn) && | 6976 // Contains(registers, Rn) && |
| 6974 // Rn != | 6977 // Rn != |
| 6975 // SmallestGPR(registers) => UNKNOWN], | 6978 // SmallestGPR(registers) => UNKNOWN], |
| 6976 // small_imm_base_wb: true, | 6979 // small_imm_base_wb: wback, |
| 6977 // true: true, | |
| 6978 // uses: Union({Rn}, registers), | 6980 // uses: Union({Rn}, registers), |
| 6979 // wback: W(21)=1} | 6981 // wback: W(21)=1} |
| 6980 // | 6982 // |
| 6981 // Baseline: | 6983 // Baseline: |
| 6982 // {None: 32, | 6984 // {None: 32, |
| 6983 // Pc: 15, | 6985 // Pc: 15, |
| 6984 // Rn: Rn(19:16), | 6986 // Rn: Rn(19:16), |
| 6985 // W: W(21), | 6987 // W: W(21), |
| 6988 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 6986 // base: Rn, | 6989 // base: Rn, |
| 6987 // baseline: StoreRegisterList, | 6990 // baseline: StoreRegisterList, |
| 6988 // cond: cond(31:28), | 6991 // cond: cond(31:28), |
| 6989 // constraints: , | 6992 // constraints: , |
| 6990 // defs: {Rn | 6993 // defs: {Rn |
| 6991 // if wback | 6994 // if wback |
| 6992 // else None}, | 6995 // else None}, |
| 6993 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 6996 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 6994 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0, | 6997 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0, |
| 6995 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr, | 6998 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr, |
| 6996 // register_list: register_list(15:0), | 6999 // register_list: register_list(15:0), |
| 6997 // registers: RegisterList(register_list), | 7000 // registers: RegisterList(register_list), |
| 6998 // rule: STMDB_STMFD, | 7001 // rule: STMDB_STMFD, |
| 6999 // safety: [Rn == | 7002 // safety: [Rn == |
| 7000 // Pc || | 7003 // Pc || |
| 7001 // NumGPRs(registers) < | 7004 // NumGPRs(registers) < |
| 7002 // 1 => UNPREDICTABLE, | 7005 // 1 => UNPREDICTABLE, |
| 7003 // wback && | 7006 // wback && |
| 7004 // Contains(registers, Rn) && | 7007 // Contains(registers, Rn) && |
| 7005 // Rn != | 7008 // Rn != |
| 7006 // SmallestGPR(registers) => UNKNOWN], | 7009 // SmallestGPR(registers) => UNKNOWN], |
| 7007 // small_imm_base_wb: true, | 7010 // small_imm_base_wb: wback, |
| 7008 // true: true, | |
| 7009 // uses: Union({Rn}, registers), | 7011 // uses: Union({Rn}, registers), |
| 7010 // wback: W(21)=1} | 7012 // wback: W(21)=1} |
| 7011 // | 7013 // |
| 7012 // Baseline: | 7014 // Baseline: |
| 7013 // {None: 32, | 7015 // {None: 32, |
| 7014 // Pc: 15, | 7016 // Pc: 15, |
| 7015 // Rn: Rn(19:16), | 7017 // Rn: Rn(19:16), |
| 7016 // W: W(21), | 7018 // W: W(21), |
| 7019 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 7017 // base: Rn, | 7020 // base: Rn, |
| 7018 // baseline: StoreRegisterList, | 7021 // baseline: StoreRegisterList, |
| 7019 // cond: cond(31:28), | 7022 // cond: cond(31:28), |
| 7020 // constraints: , | 7023 // constraints: , |
| 7021 // defs: {Rn | 7024 // defs: {Rn |
| 7022 // if wback | 7025 // if wback |
| 7023 // else None}, | 7026 // else None}, |
| 7024 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 7027 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 7025 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0, | 7028 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0, |
| 7026 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr, | 7029 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr, |
| 7027 // register_list: register_list(15:0), | 7030 // register_list: register_list(15:0), |
| 7028 // registers: RegisterList(register_list), | 7031 // registers: RegisterList(register_list), |
| 7029 // rule: STMIB_STMFA, | 7032 // rule: STMIB_STMFA, |
| 7030 // safety: [Rn == | 7033 // safety: [Rn == |
| 7031 // Pc || | 7034 // Pc || |
| 7032 // NumGPRs(registers) < | 7035 // NumGPRs(registers) < |
| 7033 // 1 => UNPREDICTABLE, | 7036 // 1 => UNPREDICTABLE, |
| 7034 // wback && | 7037 // wback && |
| 7035 // Contains(registers, Rn) && | 7038 // Contains(registers, Rn) && |
| 7036 // Rn != | 7039 // Rn != |
| 7037 // SmallestGPR(registers) => UNKNOWN], | 7040 // SmallestGPR(registers) => UNKNOWN], |
| 7038 // small_imm_base_wb: true, | 7041 // small_imm_base_wb: wback, |
| 7039 // true: true, | |
| 7040 // uses: Union({Rn}, registers), | 7042 // uses: Union({Rn}, registers), |
| 7041 // wback: W(21)=1} | 7043 // wback: W(21)=1} |
| 7042 // | 7044 // |
| 7043 // Baseline: | 7045 // Baseline: |
| 7044 // {None: 32, | 7046 // {None: 32, |
| 7045 // Pc: 15, | 7047 // Pc: 15, |
| 7046 // Rn: Rn(19:16), | 7048 // Rn: Rn(19:16), |
| 7047 // W: W(21), | 7049 // W: W(21), |
| 7050 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1, |
| 7048 // base: Rn, | 7051 // base: Rn, |
| 7049 // baseline: StoreRegisterList, | 7052 // baseline: StoreRegisterList, |
| 7050 // cond: cond(31:28), | 7053 // cond: cond(31:28), |
| 7051 // constraints: , | 7054 // constraints: , |
| 7052 // defs: {Rn | 7055 // defs: {Rn |
| 7053 // if wback | 7056 // if wback |
| 7054 // else None}, | 7057 // else None}, |
| 7055 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], | 7058 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], |
| 7056 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_
0, | 7059 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_
0, |
| 7057 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr, | 7060 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr, |
| 7058 // register_list: register_list(15:0), | 7061 // register_list: register_list(15:0), |
| 7059 // registers: RegisterList(register_list), | 7062 // registers: RegisterList(register_list), |
| 7060 // rule: STM_STMIA_STMEA, | 7063 // rule: STM_STMIA_STMEA, |
| 7061 // safety: [Rn == | 7064 // safety: [Rn == |
| 7062 // Pc || | 7065 // Pc || |
| 7063 // NumGPRs(registers) < | 7066 // NumGPRs(registers) < |
| 7064 // 1 => UNPREDICTABLE, | 7067 // 1 => UNPREDICTABLE, |
| 7065 // wback && | 7068 // wback && |
| 7066 // Contains(registers, Rn) && | 7069 // Contains(registers, Rn) && |
| 7067 // Rn != | 7070 // Rn != |
| 7068 // SmallestGPR(registers) => UNKNOWN], | 7071 // SmallestGPR(registers) => UNKNOWN], |
| 7069 // small_imm_base_wb: true, | 7072 // small_imm_base_wb: wback, |
| 7070 // true: true, | |
| 7071 // uses: Union({Rn}, registers), | 7073 // uses: Union({Rn}, registers), |
| 7072 // wback: W(21)=1} | 7074 // wback: W(21)=1} |
| 7073 class Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1 | 7075 class Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1 |
| 7074 : public ClassDecoder { | 7076 : public ClassDecoder { |
| 7075 public: | 7077 public: |
| 7076 Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1() | 7078 Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1() |
| 7077 : ClassDecoder() {} | 7079 : ClassDecoder() {} |
| 7078 virtual Register base_address_register(Instruction i) const; | 7080 virtual Register base_address_register(Instruction i) const; |
| 7079 virtual RegisterList defs(Instruction inst) const; | 7081 virtual RegisterList defs(Instruction inst) const; |
| 7080 virtual SafetyLevel safety(Instruction i) const; | 7082 virtual SafetyLevel safety(Instruction i) const; |
| (...skipping 2033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9114 virtual SafetyLevel safety(Instruction i) const; | 9116 virtual SafetyLevel safety(Instruction i) const; |
| 9115 virtual RegisterList uses(Instruction i) const; | 9117 virtual RegisterList uses(Instruction i) const; |
| 9116 private: | 9118 private: |
| 9117 NACL_DISALLOW_COPY_AND_ASSIGN( | 9119 NACL_DISALLOW_COPY_AND_ASSIGN( |
| 9118 Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1); | 9120 Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1); |
| 9119 }; | 9121 }; |
| 9120 | 9122 |
| 9121 } // namespace nacl_arm_test | 9123 } // namespace nacl_arm_test |
| 9122 | 9124 |
| 9123 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ | 9125 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_ACTUALS_1_H_ |
| OLD | NEW |