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

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 1927 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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_
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/gen/arm32_decode.cc ('k') | src/trusted/validator_arm/gen/arm32_decode_actuals_1.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698