| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The Native Client Authors. All rights reserved. | 2 * Copyright 2012 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 /* | 7 /* |
| 8 * DO NOT EDIT: GENERATED CODE | 8 * DO NOT EDIT: GENERATED CODE |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ | 11 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ |
| 12 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ | 12 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ |
| 13 | 13 |
| 14 #include "native_client/src/trusted/validator_arm/decode.h" | 14 #include "native_client/src/trusted/validator_arm/decode.h" |
| 15 | 15 |
| 16 namespace nacl_arm_dec { | 16 namespace nacl_arm_dec { |
| 17 | 17 |
| 18 /* | 18 /* |
| 19 * Defines a stateless decoder class selector for instructions | 19 * Defines a stateless decoder class selector for instructions |
| 20 */ | 20 */ |
| 21 /* | 21 class Arm32DecoderState : nacl_arm_dec::DecoderState { |
| 22 * Define the class decoders used by this decoder state. | |
| 23 */ | |
| 24 class Arm32DecoderState : DecoderState { | |
| 25 public: | 22 public: |
| 26 // Generates an instance of a decoder state. | 23 /* |
| 24 * Generates an instance of a decoder state. |
| 25 */ |
| 27 explicit Arm32DecoderState(); | 26 explicit Arm32DecoderState(); |
| 28 virtual ~Arm32DecoderState(); | 27 virtual ~Arm32DecoderState(); |
| 29 | 28 |
| 30 // Parses the given instruction, returning the decoder to use. | 29 /* |
| 31 virtual const class ClassDecoder &decode(const Instruction) const; | 30 * Parses the given instruction, returning the decoder to use. |
| 32 | 31 */ |
| 33 // Define the decoders to use in this decoder state | 32 virtual const class nacl_arm_dec::ClassDecoder |
| 34 CoprocessorOp CoprocessorOp_instance_; | 33 &decode(const nacl_arm_dec::Instruction) const; |
| 35 ImmediateBic ImmediateBic_instance_; | |
| 36 LoadMultiple LoadMultiple_instance_; | |
| 37 LoadCoprocessor LoadCoprocessor_instance_; | |
| 38 LoadDoubleExclusive LoadDoubleExclusive_instance_; | |
| 39 Branch Branch_instance_; | |
| 40 Test Test_instance_; | |
| 41 StoreRegister StoreRegister_instance_; | |
| 42 MoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_; | |
| 43 TestImmediate TestImmediate_instance_; | |
| 44 BxBlx BxBlx_instance_; | |
| 45 EffectiveNoOp EffectiveNoOp_instance_; | |
| 46 LongMultiply LongMultiply_instance_; | |
| 47 Binary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_; | |
| 48 Breakpoint Breakpoint_instance_; | |
| 49 Multiply Multiply_instance_; | |
| 50 PackSatRev PackSatRev_instance_; | |
| 51 LoadExclusive LoadExclusive_instance_; | |
| 52 VectorStore VectorStore_instance_; | |
| 53 Unary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_; | |
| 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 | 34 |
| 73 private: | 35 private: |
| 74 // Don't allow the following! | 36 /* |
| 75 explicit Arm32DecoderState(const Arm32DecoderState&); | 37 * Define the class decoders used by this decoder state. |
| 76 void operator=(const Arm32DecoderState&); | 38 */ |
| 39 const CoprocessorOp CoprocessorOp_instance_; |
| 40 const MoveToStatusRegister MoveToStatusRegister_instance_; |
| 41 const ImmediateBic ImmediateBic_instance_; |
| 42 const LoadMultiple LoadMultiple_instance_; |
| 43 const LoadCoprocessor LoadCoprocessor_instance_; |
| 44 const LongMultiply LongMultiply_instance_; |
| 45 const Branch Branch_instance_; |
| 46 const Test Test_instance_; |
| 47 const StoreRegister StoreRegister_instance_; |
| 48 const LoadRegister LoadRegister_instance_; |
| 49 const TestImmediate TestImmediate_instance_; |
| 50 const VectorLoad VectorLoad_instance_; |
| 51 const EffectiveNoOp EffectiveNoOp_instance_; |
| 52 const LoadDoubleExclusive LoadDoubleExclusive_instance_; |
| 53 const Binary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_; |
| 54 const Breakpoint Breakpoint_instance_; |
| 55 const Multiply Multiply_instance_; |
| 56 const PackSatRev PackSatRev_instance_; |
| 57 const LoadExclusive LoadExclusive_instance_; |
| 58 const VectorStore VectorStore_instance_; |
| 59 const Unary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_; |
| 60 const Undefined Undefined_instance_; |
| 61 const DataProc DataProc_instance_; |
| 62 const Deprecated Deprecated_instance_; |
| 63 const LoadImmediate LoadImmediate_instance_; |
| 64 const StoreCoprocessor StoreCoprocessor_instance_; |
| 65 const Roadblock Roadblock_instance_; |
| 66 const MoveFromCoprocessor MoveFromCoprocessor_instance_; |
| 67 const StoreExclusive StoreExclusive_instance_; |
| 68 const StoreImmediate StoreImmediate_instance_; |
| 69 const MoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_; |
| 70 const SatAddSub SatAddSub_instance_; |
| 71 const LoadDoubleI LoadDoubleI_instance_; |
| 72 const Binary3RegisterShiftedTest Binary3RegisterShiftedTest_instance_; |
| 73 const Unpredictable Unpredictable_instance_; |
| 74 const Forbidden Forbidden_instance_; |
| 75 const BxBlx BxBlx_instance_; |
| 76 const LoadDoubleR LoadDoubleR_instance_; |
| 77 |
| 78 /* |
| 79 * Prototypes for static table-matching functions. |
| 80 */ |
| 81 inline const ClassDecoder &decode_ARMv7( const nacl_arm_dec::Instruction i
nsn) const; |
| 82 |
| 83 inline const ClassDecoder &decode_dp_misc( const nacl_arm_dec::Instruction
insn) const; |
| 84 |
| 85 inline const ClassDecoder &decode_dp_reg( const nacl_arm_dec::Instruction
insn) const; |
| 86 |
| 87 inline const ClassDecoder &decode_dp_reg_shifted( const nacl_arm_dec::Inst
ruction insn) const; |
| 88 |
| 89 inline const ClassDecoder &decode_dp_immed( const nacl_arm_dec::Instructio
n insn) const; |
| 90 |
| 91 inline const ClassDecoder &decode_mult( const nacl_arm_dec::Instruction in
sn) const; |
| 92 |
| 93 inline const ClassDecoder &decode_sat_add_sub( const nacl_arm_dec::Instruc
tion insn) const; |
| 94 |
| 95 inline const ClassDecoder &decode_half_mult( const nacl_arm_dec::Instructi
on insn) const; |
| 96 |
| 97 inline const ClassDecoder &decode_extra_load_store( const nacl_arm_dec::In
struction insn) const; |
| 98 |
| 99 inline const ClassDecoder &decode_sync( const nacl_arm_dec::Instruction in
sn) const; |
| 100 |
| 101 inline const ClassDecoder &decode_msr_and_hints( const nacl_arm_dec::Instr
uction insn) const; |
| 102 |
| 103 inline const ClassDecoder &decode_misc( const nacl_arm_dec::Instruction in
sn) const; |
| 104 |
| 105 inline const ClassDecoder &decode_load_store_word_byte( const nacl_arm_dec
::Instruction insn) const; |
| 106 |
| 107 inline const ClassDecoder &decode_media( const nacl_arm_dec::Instruction i
nsn) const; |
| 108 |
| 109 inline const ClassDecoder &decode_parallel_add_sub( const nacl_arm_dec::In
struction insn) const; |
| 110 |
| 111 inline const ClassDecoder &decode_pack_sat_rev( const nacl_arm_dec::Instru
ction insn) const; |
| 112 |
| 113 inline const ClassDecoder &decode_signed_mult( const nacl_arm_dec::Instruc
tion insn) const; |
| 114 |
| 115 inline const ClassDecoder &decode_branch_block_xfer( const nacl_arm_dec::I
nstruction insn) const; |
| 116 |
| 117 inline const ClassDecoder &decode_super_cop( const nacl_arm_dec::Instructi
on insn) const; |
| 118 |
| 119 inline const ClassDecoder &decode_unconditional( const nacl_arm_dec::Instr
uction insn) const; |
| 120 |
| 121 inline const ClassDecoder &decode_misc_hints_simd( const nacl_arm_dec::Ins
truction insn) const; |
| 122 |
| 123 inline const ClassDecoder &decode_simd_dp( const nacl_arm_dec::Instruction
insn) const; |
| 124 |
| 125 inline const ClassDecoder &decode_simd_dp_3same( const nacl_arm_dec::Instr
uction insn) const; |
| 126 |
| 127 inline const ClassDecoder &decode_simd_dp_3diff( const nacl_arm_dec::Instr
uction insn) const; |
| 128 |
| 129 inline const ClassDecoder &decode_simd_dp_2scalar( const nacl_arm_dec::Ins
truction insn) const; |
| 130 |
| 131 inline const ClassDecoder &decode_simd_dp_2shift( const nacl_arm_dec::Inst
ruction insn) const; |
| 132 |
| 133 inline const ClassDecoder &decode_simd_dp_2misc( const nacl_arm_dec::Instr
uction insn) const; |
| 134 |
| 135 inline const ClassDecoder &decode_simd_dp_1imm( const nacl_arm_dec::Instru
ction insn) const; |
| 136 |
| 137 inline const ClassDecoder &decode_simd_load_store( const nacl_arm_dec::Ins
truction insn) const; |
| 138 |
| 139 inline const ClassDecoder &decode_simd_load_store_l0( const nacl_arm_dec::
Instruction insn) const; |
| 140 |
| 141 inline const ClassDecoder &decode_simd_load_store_l1( const nacl_arm_dec::
Instruction insn) const; |
| 142 |
| 77 }; | 143 }; |
| 78 | 144 |
| 79 } // namespace | 145 } // namespace |
| 80 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ | 146 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_ |
| OLD | NEW |