Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 | |
| 2 | |
| 1 /* | 3 /* |
| 2 * Copyright 2012 The Native Client Authors. All rights reserved. | 4 * Copyright 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can | 5 * Use of this source code is governed by a BSD-style license that can |
| 4 * be found in the LICENSE file. | 6 * be found in the LICENSE file. |
| 5 */ | 7 */ |
| 6 | 8 |
| 7 /* | 9 // DO NOT EDIT: GENERATED CODE |
| 8 * DO NOT EDIT: GENERATED CODE | 10 |
| 9 */ | |
| 10 | 11 |
| 11 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ | 12 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ |
| 12 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ | 13 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ |
| 13 | 14 |
| 14 #include "native_client/src/trusted/validator_arm/decode.h" | 15 #include "native_client/src/trusted/validator_arm/decode.h" |
| 16 #include "native_client/src/trusted/validator_arm/inst_classes.h" | |
| 15 | 17 |
| 16 namespace nacl_arm_dec { | 18 namespace nacl_arm_dec { |
| 17 | 19 |
| 18 /* | 20 // Defines a stateless decoder class selector for instructions. |
| 19 * Defines a stateless decoder class selector for instructions | |
| 20 */ | |
| 21 /* | |
| 22 * Define the class decoders used by this decoder state. | |
| 23 */ | |
| 24 class Arm32DecoderState : DecoderState { | 21 class Arm32DecoderState : DecoderState { |
| 25 public: | 22 public: |
| 26 // Generates an instance of a decoder state. | 23 explicit Arm32DecoderState(); |
| 27 explicit Arm32DecoderState(); | 24 virtual ~Arm32DecoderState(); |
| 28 virtual ~Arm32DecoderState(); | 25 |
| 29 | 26 // Parses the given instruction, returning the decoder to use. |
| 30 // Parses the given instruction, returning the decoder to use. | 27 virtual const ClassDecoder& decode(const Instruction) const; |
| 31 virtual const class ClassDecoder &decode(const Instruction) const; | 28 |
| 32 | 29 private: |
| 33 // Define the decoders to use in this decoder state | 30 |
| 31 inline const ClassDecoder& decode_ARMv7( | |
|
robertm
2012/04/17 17:12:19
can these be static?
Karl
2012/04/17 19:28:31
The need to refer to the instance fields, which ar
| |
| 32 const Instruction insn) const; | |
| 33 | |
| 34 inline const ClassDecoder& decode_branch_block_xfer( | |
| 35 const Instruction insn) const; | |
| 36 | |
| 37 inline const ClassDecoder& decode_dp_immed( | |
| 38 const Instruction insn) const; | |
| 39 | |
| 40 inline const ClassDecoder& decode_dp_misc( | |
| 41 const Instruction insn) const; | |
| 42 | |
| 43 inline const ClassDecoder& decode_dp_reg( | |
| 44 const Instruction insn) const; | |
| 45 | |
| 46 inline const ClassDecoder& decode_dp_reg_shifted( | |
| 47 const Instruction insn) const; | |
| 48 | |
| 49 inline const ClassDecoder& decode_extra_load_store( | |
| 50 const Instruction insn) const; | |
| 51 | |
| 52 inline const ClassDecoder& decode_half_mult( | |
| 53 const Instruction insn) const; | |
| 54 | |
| 55 inline const ClassDecoder& decode_load_store_word_byte( | |
| 56 const Instruction insn) const; | |
| 57 | |
| 58 inline const ClassDecoder& decode_media( | |
| 59 const Instruction insn) const; | |
| 60 | |
| 61 inline const ClassDecoder& decode_misc( | |
| 62 const Instruction insn) const; | |
| 63 | |
| 64 inline const ClassDecoder& decode_misc_hints_simd( | |
| 65 const Instruction insn) const; | |
| 66 | |
| 67 inline const ClassDecoder& decode_msr_and_hints( | |
| 68 const Instruction insn) const; | |
| 69 | |
| 70 inline const ClassDecoder& decode_mult( | |
| 71 const Instruction insn) const; | |
| 72 | |
| 73 inline const ClassDecoder& decode_pack_sat_rev( | |
| 74 const Instruction insn) const; | |
| 75 | |
| 76 inline const ClassDecoder& decode_parallel_add_sub( | |
| 77 const Instruction insn) const; | |
| 78 | |
| 79 inline const ClassDecoder& decode_sat_add_sub( | |
| 80 const Instruction insn) const; | |
| 81 | |
| 82 inline const ClassDecoder& decode_signed_mult( | |
| 83 const Instruction insn) const; | |
| 84 | |
| 85 inline const ClassDecoder& decode_simd_dp( | |
| 86 const Instruction insn) const; | |
| 87 | |
| 88 inline const ClassDecoder& decode_simd_dp_1imm( | |
| 89 const Instruction insn) const; | |
| 90 | |
| 91 inline const ClassDecoder& decode_simd_dp_2misc( | |
| 92 const Instruction insn) const; | |
| 93 | |
| 94 inline const ClassDecoder& decode_simd_dp_2scalar( | |
| 95 const Instruction insn) const; | |
| 96 | |
| 97 inline const ClassDecoder& decode_simd_dp_2shift( | |
| 98 const Instruction insn) const; | |
| 99 | |
| 100 inline const ClassDecoder& decode_simd_dp_3diff( | |
| 101 const Instruction insn) const; | |
| 102 | |
| 103 inline const ClassDecoder& decode_simd_dp_3same( | |
| 104 const Instruction insn) const; | |
| 105 | |
| 106 inline const ClassDecoder& decode_simd_load_store( | |
| 107 const Instruction insn) const; | |
| 108 | |
| 109 inline const ClassDecoder& decode_simd_load_store_l0( | |
| 110 const Instruction insn) const; | |
| 111 | |
| 112 inline const ClassDecoder& decode_simd_load_store_l1( | |
| 113 const Instruction insn) const; | |
| 114 | |
| 115 inline const ClassDecoder& decode_super_cop( | |
| 116 const Instruction insn) const; | |
| 117 | |
| 118 inline const ClassDecoder& decode_sync( | |
| 119 const Instruction insn) const; | |
| 120 | |
| 121 inline const ClassDecoder& decode_unconditional( | |
| 122 const Instruction insn) const; | |
| 123 | |
| 124 Binary3RegisterShiftedTest Binary3RegisterShiftedTest_instance_; | |
|
robertm
2012/04/17 17:12:19
add high level comment about instance variables
Karl
2012/04/17 19:28:31
Done.
| |
| 125 | |
| 126 Binary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_; | |
| 127 | |
| 128 Branch Branch_instance_; | |
| 129 | |
| 130 Breakpoint Breakpoint_instance_; | |
| 131 | |
| 132 BxBlx BxBlx_instance_; | |
| 133 | |
| 34 CoprocessorOp CoprocessorOp_instance_; | 134 CoprocessorOp CoprocessorOp_instance_; |
| 135 | |
| 136 DataProc DataProc_instance_; | |
| 137 | |
| 138 Deprecated Deprecated_instance_; | |
| 139 | |
| 140 EffectiveNoOp EffectiveNoOp_instance_; | |
| 141 | |
| 142 Forbidden Forbidden_instance_; | |
| 143 | |
| 35 ImmediateBic ImmediateBic_instance_; | 144 ImmediateBic ImmediateBic_instance_; |
| 145 | |
| 146 LoadCoprocessor LoadCoprocessor_instance_; | |
| 147 | |
| 148 LoadDoubleExclusive LoadDoubleExclusive_instance_; | |
| 149 | |
| 150 LoadDoubleI LoadDoubleI_instance_; | |
| 151 | |
| 152 LoadDoubleR LoadDoubleR_instance_; | |
| 153 | |
| 154 LoadExclusive LoadExclusive_instance_; | |
| 155 | |
| 156 LoadImmediate LoadImmediate_instance_; | |
| 157 | |
| 36 LoadMultiple LoadMultiple_instance_; | 158 LoadMultiple LoadMultiple_instance_; |
| 37 LoadCoprocessor LoadCoprocessor_instance_; | 159 |
| 38 LoadDoubleExclusive LoadDoubleExclusive_instance_; | 160 LoadRegister LoadRegister_instance_; |
| 39 Branch Branch_instance_; | 161 |
| 162 LongMultiply LongMultiply_instance_; | |
| 163 | |
| 164 MoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_; | |
| 165 | |
| 166 MoveFromCoprocessor MoveFromCoprocessor_instance_; | |
| 167 | |
| 168 MoveToStatusRegister MoveToStatusRegister_instance_; | |
| 169 | |
| 170 Multiply Multiply_instance_; | |
| 171 | |
| 172 PackSatRev PackSatRev_instance_; | |
| 173 | |
| 174 Roadblock Roadblock_instance_; | |
| 175 | |
| 176 SatAddSub SatAddSub_instance_; | |
| 177 | |
| 178 StoreCoprocessor StoreCoprocessor_instance_; | |
| 179 | |
| 180 StoreExclusive StoreExclusive_instance_; | |
| 181 | |
| 182 StoreImmediate StoreImmediate_instance_; | |
| 183 | |
| 184 StoreRegister StoreRegister_instance_; | |
| 185 | |
| 40 Test Test_instance_; | 186 Test Test_instance_; |
| 41 StoreRegister StoreRegister_instance_; | 187 |
| 42 MoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_; | |
| 43 TestImmediate TestImmediate_instance_; | 188 TestImmediate TestImmediate_instance_; |
| 44 BxBlx BxBlx_instance_; | 189 |
| 45 EffectiveNoOp EffectiveNoOp_instance_; | 190 Unary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_; |
| 46 LongMultiply LongMultiply_instance_; | 191 |
| 47 Binary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_; | 192 Undefined Undefined_instance_; |
| 48 Breakpoint Breakpoint_instance_; | 193 |
| 49 Multiply Multiply_instance_; | 194 Unpredictable Unpredictable_instance_; |
| 50 PackSatRev PackSatRev_instance_; | 195 |
| 51 LoadExclusive LoadExclusive_instance_; | 196 VectorLoad VectorLoad_instance_; |
| 197 | |
| 52 VectorStore VectorStore_instance_; | 198 VectorStore VectorStore_instance_; |
| 53 Unary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_; | 199 |
| 54 Undefined Undefined_instance_; | |
| 55 DataProc DataProc_instance_; | |
| 56 Deprecated Deprecated_instance_; | |
| 57 LoadImmediate LoadImmediate_instance_; | |
| 58 StoreCoprocessor StoreCoprocessor_instance_; | |
| 59 Roadblock Roadblock_instance_; | |
| 60 LoadDoubleR LoadDoubleR_instance_; | |
| 61 StoreExclusive StoreExclusive_instance_; | |
| 62 StoreImmediate StoreImmediate_instance_; | |
| 63 MoveFromCoprocessor MoveFromCoprocessor_instance_; | |
| 64 LoadRegister LoadRegister_instance_; | |
| 65 LoadDoubleI LoadDoubleI_instance_; | |
| 66 Binary3RegisterShiftedTest Binary3RegisterShiftedTest_instance_; | |
| 67 Unpredictable Unpredictable_instance_; | |
| 68 Forbidden Forbidden_instance_; | |
| 69 VectorLoad VectorLoad_instance_; | |
| 70 MoveToStatusRegister MoveToStatusRegister_instance_; | |
| 71 SatAddSub SatAddSub_instance_; | |
| 72 | |
| 73 private: | |
| 74 // Don't allow the following! | |
| 75 explicit Arm32DecoderState(const Arm32DecoderState&); | |
| 76 void operator=(const Arm32DecoderState&); | |
| 77 }; | 200 }; |
| 78 | 201 |
| 79 } // namespace | 202 } // namespace nacl_arm_dec |
| 80 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ | 203 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ |
| OLD | NEW |