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

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

Issue 12223046: Use generated actual decoders for ARM table: (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2013 The Native Client Authors. All rights reserved. 2 * Copyright 2013 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 // DO NOT EDIT: GENERATED CODE 7 // DO NOT EDIT: GENERATED CODE
8 8
9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698