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

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

Issue 9960043: Finish separation of testing from sel_ldr validation. Also, automate (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 8 years, 8 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 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 NACL_TRUSTED_BUT_NOT_TCB
12 #error("This file is not meant for use in the TCB")
13 #endif
14
11 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_H_ 15 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_H_
12 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_H_ 16 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_H_
13 17
14 #include "native_client/src/trusted/validator_arm/decode.h" 18 #include "native_client/src/trusted/validator_arm/decode.h"
15 19 #include "native_client/src/trusted/validator_arm/named_class_decoder.h"
20
21 /*
22 * Define rule decoder classes
23 */
16 namespace nacl_arm_dec { 24 namespace nacl_arm_dec {
17 25
18 struct NamedCoprocessorOp : public CoprocessorOp { 26 class Add_Rule_7_A1_P26 : public Binary4RegisterShiftedOp {
27 public:
28 virtual ~Add_Rule_7_A1_P26() {}
29 };
30
31 } // namespace nacl_arm_dec
32
33 namespace nacl_arm_test {
34
35 /*
36 * Define name class decoders for each class decoder
37 */
38
39 class NamedCoprocessorOp : public NamedClassDecoder {
robertm 2012/04/11 01:28:43 can you add a comment about the purpose of these c
Karl 2012/04/16 23:18:10 Added comment in dgen_test_output.py that generate
40 public:
41 NamedCoprocessorOp();
19 virtual ~NamedCoprocessorOp() {} 42 virtual ~NamedCoprocessorOp() {}
20 virtual const char* name() const; 43 private:
21 }; 44 nacl_arm_dec::CoprocessorOp named_decoder_;
22 45 };
23 struct NamedImmediateBic : public ImmediateBic { 46
47 class NamedMoveToStatusRegister : public NamedClassDecoder {
48 public:
49 NamedMoveToStatusRegister();
50 virtual ~NamedMoveToStatusRegister() {}
51 private:
52 nacl_arm_dec::MoveToStatusRegister named_decoder_;
53 };
54
55 class NamedImmediateBic : public NamedClassDecoder {
56 public:
57 NamedImmediateBic();
24 virtual ~NamedImmediateBic() {} 58 virtual ~NamedImmediateBic() {}
25 virtual const char* name() const; 59 private:
26 }; 60 nacl_arm_dec::ImmediateBic named_decoder_;
27 61 };
28 struct NamedLoadMultiple : public LoadMultiple { 62
63 class NamedLoadMultiple : public NamedClassDecoder {
64 public:
65 NamedLoadMultiple();
29 virtual ~NamedLoadMultiple() {} 66 virtual ~NamedLoadMultiple() {}
30 virtual const char* name() const; 67 private:
31 }; 68 nacl_arm_dec::LoadMultiple named_decoder_;
32 69 };
33 struct NamedLoadCoprocessor : public LoadCoprocessor { 70
71 class NamedLoadCoprocessor : public NamedClassDecoder {
72 public:
73 NamedLoadCoprocessor();
34 virtual ~NamedLoadCoprocessor() {} 74 virtual ~NamedLoadCoprocessor() {}
35 virtual const char* name() const; 75 private:
36 }; 76 nacl_arm_dec::LoadCoprocessor named_decoder_;
37 77 };
38 struct NamedLoadDoubleExclusive : public LoadDoubleExclusive { 78
79 class NamedLongMultiply : public NamedClassDecoder {
80 public:
81 NamedLongMultiply();
82 virtual ~NamedLongMultiply() {}
83 private:
84 nacl_arm_dec::LongMultiply named_decoder_;
85 };
86
87 class NamedBranch : public NamedClassDecoder {
88 public:
89 NamedBranch();
90 virtual ~NamedBranch() {}
91 private:
92 nacl_arm_dec::Branch named_decoder_;
93 };
94
95 class NamedTest : public NamedClassDecoder {
96 public:
97 NamedTest();
98 virtual ~NamedTest() {}
99 private:
100 nacl_arm_dec::Test named_decoder_;
101 };
102
103 class NamedStoreRegister : public NamedClassDecoder {
104 public:
105 NamedStoreRegister();
106 virtual ~NamedStoreRegister() {}
107 private:
108 nacl_arm_dec::StoreRegister named_decoder_;
109 };
110
111 class NamedLoadRegister : public NamedClassDecoder {
112 public:
113 NamedLoadRegister();
114 virtual ~NamedLoadRegister() {}
115 private:
116 nacl_arm_dec::LoadRegister named_decoder_;
117 };
118
119 class NamedTestImmediate : public NamedClassDecoder {
120 public:
121 NamedTestImmediate();
122 virtual ~NamedTestImmediate() {}
123 private:
124 nacl_arm_dec::TestImmediate named_decoder_;
125 };
126
127 class NamedVectorLoad : public NamedClassDecoder {
128 public:
129 NamedVectorLoad();
130 virtual ~NamedVectorLoad() {}
131 private:
132 nacl_arm_dec::VectorLoad named_decoder_;
133 };
134
135 class NamedEffectiveNoOp : public NamedClassDecoder {
136 public:
137 NamedEffectiveNoOp();
138 virtual ~NamedEffectiveNoOp() {}
139 private:
140 nacl_arm_dec::EffectiveNoOp named_decoder_;
141 };
142
143 class NamedLoadDoubleExclusive : public NamedClassDecoder {
144 public:
145 NamedLoadDoubleExclusive();
39 virtual ~NamedLoadDoubleExclusive() {} 146 virtual ~NamedLoadDoubleExclusive() {}
40 virtual const char* name() const; 147 private:
41 }; 148 nacl_arm_dec::LoadDoubleExclusive named_decoder_;
42 149 };
43 struct NamedBranch : public Branch { 150
44 virtual ~NamedBranch() {} 151 class NamedBinary4RegisterShiftedOp : public NamedClassDecoder {
45 virtual const char* name() const; 152 public:
46 }; 153 NamedBinary4RegisterShiftedOp();
47 154 virtual ~NamedBinary4RegisterShiftedOp() {}
48 struct NamedTest : public Test { 155 private:
49 virtual ~NamedTest() {} 156 nacl_arm_dec::Binary4RegisterShiftedOp named_decoder_;
50 virtual const char* name() const; 157 };
51 }; 158
52 159 class NamedBreakpoint : public NamedClassDecoder {
53 struct NamedStoreRegister : public StoreRegister { 160 public:
54 virtual ~NamedStoreRegister() {} 161 NamedBreakpoint();
55 virtual const char* name() const; 162 virtual ~NamedBreakpoint() {}
56 }; 163 private:
57 164 nacl_arm_dec::Breakpoint named_decoder_;
58 struct NamedMoveDoubleFromCoprocessor : public MoveDoubleFromCoprocessor { 165 };
166
167 class NamedMultiply : public NamedClassDecoder {
168 public:
169 NamedMultiply();
170 virtual ~NamedMultiply() {}
171 private:
172 nacl_arm_dec::Multiply named_decoder_;
173 };
174
175 class NamedAdd_Rule_7_A1_P26 : public NamedClassDecoder {
176 public:
177 NamedAdd_Rule_7_A1_P26();
178 virtual ~NamedAdd_Rule_7_A1_P26() {}
179 private:
180 nacl_arm_dec::Add_Rule_7_A1_P26 named_decoder_;
181 };
182
183 class NamedPackSatRev : public NamedClassDecoder {
184 public:
185 NamedPackSatRev();
186 virtual ~NamedPackSatRev() {}
187 private:
188 nacl_arm_dec::PackSatRev named_decoder_;
189 };
190
191 class NamedLoadExclusive : public NamedClassDecoder {
192 public:
193 NamedLoadExclusive();
194 virtual ~NamedLoadExclusive() {}
195 private:
196 nacl_arm_dec::LoadExclusive named_decoder_;
197 };
198
199 class NamedVectorStore : public NamedClassDecoder {
200 public:
201 NamedVectorStore();
202 virtual ~NamedVectorStore() {}
203 private:
204 nacl_arm_dec::VectorStore named_decoder_;
205 };
206
207 class NamedUnary3RegisterShiftedOp : public NamedClassDecoder {
208 public:
209 NamedUnary3RegisterShiftedOp();
210 virtual ~NamedUnary3RegisterShiftedOp() {}
211 private:
212 nacl_arm_dec::Unary3RegisterShiftedOp named_decoder_;
213 };
214
215 class NamedUndefined : public NamedClassDecoder {
216 public:
217 NamedUndefined();
218 virtual ~NamedUndefined() {}
219 private:
220 nacl_arm_dec::Undefined named_decoder_;
221 };
222
223 class NamedDataProc : public NamedClassDecoder {
224 public:
225 NamedDataProc();
226 virtual ~NamedDataProc() {}
227 private:
228 nacl_arm_dec::DataProc named_decoder_;
229 };
230
231 class NamedDeprecated : public NamedClassDecoder {
232 public:
233 NamedDeprecated();
234 virtual ~NamedDeprecated() {}
235 private:
236 nacl_arm_dec::Deprecated named_decoder_;
237 };
238
239 class NamedLoadImmediate : public NamedClassDecoder {
240 public:
241 NamedLoadImmediate();
242 virtual ~NamedLoadImmediate() {}
243 private:
244 nacl_arm_dec::LoadImmediate named_decoder_;
245 };
246
247 class NamedStoreCoprocessor : public NamedClassDecoder {
248 public:
249 NamedStoreCoprocessor();
250 virtual ~NamedStoreCoprocessor() {}
251 private:
252 nacl_arm_dec::StoreCoprocessor named_decoder_;
253 };
254
255 class NamedRoadblock : public NamedClassDecoder {
256 public:
257 NamedRoadblock();
258 virtual ~NamedRoadblock() {}
259 private:
260 nacl_arm_dec::Roadblock named_decoder_;
261 };
262
263 class NamedMoveFromCoprocessor : public NamedClassDecoder {
264 public:
265 NamedMoveFromCoprocessor();
266 virtual ~NamedMoveFromCoprocessor() {}
267 private:
268 nacl_arm_dec::MoveFromCoprocessor named_decoder_;
269 };
270
271 class NamedStoreExclusive : public NamedClassDecoder {
272 public:
273 NamedStoreExclusive();
274 virtual ~NamedStoreExclusive() {}
275 private:
276 nacl_arm_dec::StoreExclusive named_decoder_;
277 };
278
279 class NamedStoreImmediate : public NamedClassDecoder {
280 public:
281 NamedStoreImmediate();
282 virtual ~NamedStoreImmediate() {}
283 private:
284 nacl_arm_dec::StoreImmediate named_decoder_;
285 };
286
287 class NamedMoveDoubleFromCoprocessor : public NamedClassDecoder {
288 public:
289 NamedMoveDoubleFromCoprocessor();
59 virtual ~NamedMoveDoubleFromCoprocessor() {} 290 virtual ~NamedMoveDoubleFromCoprocessor() {}
60 virtual const char* name() const; 291 private:
61 }; 292 nacl_arm_dec::MoveDoubleFromCoprocessor named_decoder_;
62 293 };
63 struct NamedTestImmediate : public TestImmediate { 294
64 virtual ~NamedTestImmediate() {} 295 class NamedSatAddSub : public NamedClassDecoder {
65 virtual const char* name() const; 296 public:
66 }; 297 NamedSatAddSub();
67 298 virtual ~NamedSatAddSub() {}
68 struct NamedBxBlx : public BxBlx { 299 private:
300 nacl_arm_dec::SatAddSub named_decoder_;
301 };
302
303 class NamedLoadDoubleI : public NamedClassDecoder {
304 public:
305 NamedLoadDoubleI();
306 virtual ~NamedLoadDoubleI() {}
307 private:
308 nacl_arm_dec::LoadDoubleI named_decoder_;
309 };
310
311 class NamedBinary3RegisterShiftedTest : public NamedClassDecoder {
312 public:
313 NamedBinary3RegisterShiftedTest();
314 virtual ~NamedBinary3RegisterShiftedTest() {}
315 private:
316 nacl_arm_dec::Binary3RegisterShiftedTest named_decoder_;
317 };
318
319 class NamedUnpredictable : public NamedClassDecoder {
320 public:
321 NamedUnpredictable();
322 virtual ~NamedUnpredictable() {}
323 private:
324 nacl_arm_dec::Unpredictable named_decoder_;
325 };
326
327 class NamedForbidden : public NamedClassDecoder {
328 public:
329 NamedForbidden();
330 virtual ~NamedForbidden() {}
331 private:
332 nacl_arm_dec::Forbidden named_decoder_;
333 };
334
335 class NamedBxBlx : public NamedClassDecoder {
336 public:
337 NamedBxBlx();
69 virtual ~NamedBxBlx() {} 338 virtual ~NamedBxBlx() {}
70 virtual const char* name() const; 339 private:
71 }; 340 nacl_arm_dec::BxBlx named_decoder_;
72 341 };
73 struct NamedEffectiveNoOp : public EffectiveNoOp { 342
74 virtual ~NamedEffectiveNoOp() {} 343 class NamedLoadDoubleR : public NamedClassDecoder {
75 virtual const char* name() const; 344 public:
76 }; 345 NamedLoadDoubleR();
77
78 struct NamedLongMultiply : public LongMultiply {
79 virtual ~NamedLongMultiply() {}
80 virtual const char* name() const;
81 };
82
83 struct NamedBinary4RegisterShiftedOp : public Binary4RegisterShiftedOp {
84 virtual ~NamedBinary4RegisterShiftedOp() {}
85 virtual const char* name() const;
86 };
87
88 struct NamedBreakpoint : public Breakpoint {
89 virtual ~NamedBreakpoint() {}
90 virtual const char* name() const;
91 };
92
93 struct NamedMultiply : public Multiply {
94 virtual ~NamedMultiply() {}
95 virtual const char* name() const;
96 };
97
98 struct NamedPackSatRev : public PackSatRev {
99 virtual ~NamedPackSatRev() {}
100 virtual const char* name() const;
101 };
102
103 struct NamedLoadExclusive : public LoadExclusive {
104 virtual ~NamedLoadExclusive() {}
105 virtual const char* name() const;
106 };
107
108 struct NamedVectorStore : public VectorStore {
109 virtual ~NamedVectorStore() {}
110 virtual const char* name() const;
111 };
112
113 struct NamedUnary3RegisterShiftedOp : public Unary3RegisterShiftedOp {
114 virtual ~NamedUnary3RegisterShiftedOp() {}
115 virtual const char* name() const;
116 };
117
118 struct NamedUndefined : public Undefined {
119 virtual ~NamedUndefined() {}
120 virtual const char* name() const;
121 };
122
123 struct NamedDataProc : public DataProc {
124 virtual ~NamedDataProc() {}
125 virtual const char* name() const;
126 };
127
128 struct NamedDeprecated : public Deprecated {
129 virtual ~NamedDeprecated() {}
130 virtual const char* name() const;
131 };
132
133 struct NamedLoadImmediate : public LoadImmediate {
134 virtual ~NamedLoadImmediate() {}
135 virtual const char* name() const;
136 };
137
138 struct NamedStoreCoprocessor : public StoreCoprocessor {
139 virtual ~NamedStoreCoprocessor() {}
140 virtual const char* name() const;
141 };
142
143 struct NamedRoadblock : public Roadblock {
144 virtual ~NamedRoadblock() {}
145 virtual const char* name() const;
146 };
147
148 struct NamedLoadDoubleR : public LoadDoubleR {
149 virtual ~NamedLoadDoubleR() {} 346 virtual ~NamedLoadDoubleR() {}
150 virtual const char* name() const; 347 private:
151 }; 348 nacl_arm_dec::LoadDoubleR named_decoder_;
152
153 struct NamedStoreExclusive : public StoreExclusive {
154 virtual ~NamedStoreExclusive() {}
155 virtual const char* name() const;
156 };
157
158 struct NamedStoreImmediate : public StoreImmediate {
159 virtual ~NamedStoreImmediate() {}
160 virtual const char* name() const;
161 };
162
163 struct NamedMoveFromCoprocessor : public MoveFromCoprocessor {
164 virtual ~NamedMoveFromCoprocessor() {}
165 virtual const char* name() const;
166 };
167
168 struct NamedLoadRegister : public LoadRegister {
169 virtual ~NamedLoadRegister() {}
170 virtual const char* name() const;
171 };
172
173 struct NamedLoadDoubleI : public LoadDoubleI {
174 virtual ~NamedLoadDoubleI() {}
175 virtual const char* name() const;
176 };
177
178 struct NamedBinary3RegisterShiftedTest : public Binary3RegisterShiftedTest {
179 virtual ~NamedBinary3RegisterShiftedTest() {}
180 virtual const char* name() const;
181 };
182
183 struct NamedUnpredictable : public Unpredictable {
184 virtual ~NamedUnpredictable() {}
185 virtual const char* name() const;
186 };
187
188 struct NamedForbidden : public Forbidden {
189 virtual ~NamedForbidden() {}
190 virtual const char* name() const;
191 };
192
193 struct NamedVectorLoad : public VectorLoad {
194 virtual ~NamedVectorLoad() {}
195 virtual const char* name() const;
196 };
197
198 struct NamedMoveToStatusRegister : public MoveToStatusRegister {
199 virtual ~NamedMoveToStatusRegister() {}
200 virtual const char* name() const;
201 };
202
203 struct NamedSatAddSub : public SatAddSub {
204 virtual ~NamedSatAddSub() {}
205 virtual const char* name() const;
206 }; 349 };
207 350
208 /* 351 /*
209 * Defines a stateless decoder class selector for instructions 352 * Defines a stateless decoder class selector for instructions
210 */ 353 */
211 /* 354 class NamedArm32DecoderState : nacl_arm_dec::DecoderState {
212 * Define the class decoders used by this decoder state. 355 public:
213 */ 356 /*
214 class NamedArm32DecoderState : DecoderState { 357 * Generates an instance of a decoder state.
215 public: 358 */
216 // Generates an instance of a decoder state.
217 explicit NamedArm32DecoderState(); 359 explicit NamedArm32DecoderState();
218 virtual ~NamedArm32DecoderState(); 360 virtual ~NamedArm32DecoderState();
219 361
220 // Parses the given instruction, returning the decoder to use. 362 /*
221 virtual const class ClassDecoder &decode(const Instruction) const; 363 * Parses the given instruction, returning the decoder to use.
222 364 */
223 // Define the decoders to use in this decoder state 365 const NamedClassDecoder &decode_named( const nacl_arm_dec::Instruction) co nst;
224 NamedCoprocessorOp CoprocessorOp_instance_; 366 virtual const class nacl_arm_dec::ClassDecoder
225 NamedImmediateBic ImmediateBic_instance_; 367 &decode(const nacl_arm_dec::Instruction) const;
226 NamedLoadMultiple LoadMultiple_instance_; 368 /*
227 NamedLoadCoprocessor LoadCoprocessor_instance_; 369 * Define the class decoders used by this decoder state.
228 NamedLoadDoubleExclusive LoadDoubleExclusive_instance_; 370 */
229 NamedBranch Branch_instance_; 371 const NamedCoprocessorOp CoprocessorOp_instance_;
230 NamedTest Test_instance_; 372 const NamedMoveToStatusRegister MoveToStatusRegister_instance_;
231 NamedStoreRegister StoreRegister_instance_; 373 const NamedImmediateBic ImmediateBic_instance_;
232 NamedMoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_; 374 const NamedLoadMultiple LoadMultiple_instance_;
233 NamedTestImmediate TestImmediate_instance_; 375 const NamedLoadCoprocessor LoadCoprocessor_instance_;
234 NamedBxBlx BxBlx_instance_; 376 const NamedLongMultiply LongMultiply_instance_;
235 NamedEffectiveNoOp EffectiveNoOp_instance_; 377 const NamedBranch Branch_instance_;
236 NamedLongMultiply LongMultiply_instance_; 378 const NamedTest Test_instance_;
237 NamedBinary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_; 379 const NamedStoreRegister StoreRegister_instance_;
238 NamedBreakpoint Breakpoint_instance_; 380 const NamedLoadRegister LoadRegister_instance_;
239 NamedMultiply Multiply_instance_; 381 const NamedTestImmediate TestImmediate_instance_;
240 NamedPackSatRev PackSatRev_instance_; 382 const NamedVectorLoad VectorLoad_instance_;
241 NamedLoadExclusive LoadExclusive_instance_; 383 const NamedEffectiveNoOp EffectiveNoOp_instance_;
242 NamedVectorStore VectorStore_instance_; 384 const NamedLoadDoubleExclusive LoadDoubleExclusive_instance_;
243 NamedUnary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_; 385 const NamedBinary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_;
244 NamedUndefined Undefined_instance_; 386 const NamedBreakpoint Breakpoint_instance_;
245 NamedDataProc DataProc_instance_; 387 const NamedMultiply Multiply_instance_;
246 NamedDeprecated Deprecated_instance_; 388 const NamedAdd_Rule_7_A1_P26 Add_Rule_7_A1_P26_instance_;
247 NamedLoadImmediate LoadImmediate_instance_; 389 const NamedPackSatRev PackSatRev_instance_;
248 NamedStoreCoprocessor StoreCoprocessor_instance_; 390 const NamedLoadExclusive LoadExclusive_instance_;
249 NamedRoadblock Roadblock_instance_; 391 const NamedVectorStore VectorStore_instance_;
250 NamedLoadDoubleR LoadDoubleR_instance_; 392 const NamedUnary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_;
251 NamedStoreExclusive StoreExclusive_instance_; 393 const NamedUndefined Undefined_instance_;
252 NamedStoreImmediate StoreImmediate_instance_; 394 const NamedDataProc DataProc_instance_;
253 NamedMoveFromCoprocessor MoveFromCoprocessor_instance_; 395 const NamedDeprecated Deprecated_instance_;
254 NamedLoadRegister LoadRegister_instance_; 396 const NamedLoadImmediate LoadImmediate_instance_;
255 NamedLoadDoubleI LoadDoubleI_instance_; 397 const NamedStoreCoprocessor StoreCoprocessor_instance_;
256 NamedBinary3RegisterShiftedTest Binary3RegisterShiftedTest_instance_; 398 const NamedRoadblock Roadblock_instance_;
257 NamedUnpredictable Unpredictable_instance_; 399 const NamedMoveFromCoprocessor MoveFromCoprocessor_instance_;
258 NamedForbidden Forbidden_instance_; 400 const NamedStoreExclusive StoreExclusive_instance_;
259 NamedVectorLoad VectorLoad_instance_; 401 const NamedStoreImmediate StoreImmediate_instance_;
260 NamedMoveToStatusRegister MoveToStatusRegister_instance_; 402 const NamedMoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_;
261 NamedSatAddSub SatAddSub_instance_; 403 const NamedSatAddSub SatAddSub_instance_;
262 404 const NamedLoadDoubleI LoadDoubleI_instance_;
263 private: 405 const NamedBinary3RegisterShiftedTest Binary3RegisterShiftedTest_instance_;
264 // Don't allow the following! 406 const NamedUnpredictable Unpredictable_instance_;
265 explicit NamedArm32DecoderState(const NamedArm32DecoderState&); 407 const NamedForbidden Forbidden_instance_;
266 void operator=(const NamedArm32DecoderState&); 408 const NamedBxBlx BxBlx_instance_;
409 const NamedLoadDoubleR LoadDoubleR_instance_;
410
411
412 private:
413 /*
414 * Prototypes for static table-matching functions.
415 */
416 inline const NamedClassDecoder &decode_ARMv7( const nacl_arm_dec::Instruct ion insn) const;
417
418 inline const NamedClassDecoder &decode_dp_misc( const nacl_arm_dec::Instru ction insn) const;
419
420 inline const NamedClassDecoder &decode_dp_reg( const nacl_arm_dec::Instruc tion insn) const;
421
422 inline const NamedClassDecoder &decode_dp_reg_shifted( const nacl_arm_dec: :Instruction insn) const;
423
424 inline const NamedClassDecoder &decode_dp_immed( const nacl_arm_dec::Instr uction insn) const;
425
426 inline const NamedClassDecoder &decode_mult( const nacl_arm_dec::Instructi on insn) const;
427
428 inline const NamedClassDecoder &decode_sat_add_sub( const nacl_arm_dec::In struction insn) const;
429
430 inline const NamedClassDecoder &decode_half_mult( const nacl_arm_dec::Inst ruction insn) const;
431
432 inline const NamedClassDecoder &decode_extra_load_store( const nacl_arm_de c::Instruction insn) const;
433
434 inline const NamedClassDecoder &decode_sync( const nacl_arm_dec::Instructi on insn) const;
435
436 inline const NamedClassDecoder &decode_msr_and_hints( const nacl_arm_dec:: Instruction insn) const;
437
438 inline const NamedClassDecoder &decode_misc( const nacl_arm_dec::Instructi on insn) const;
439
440 inline const NamedClassDecoder &decode_load_store_word_byte( const nacl_ar m_dec::Instruction insn) const;
441
442 inline const NamedClassDecoder &decode_media( const nacl_arm_dec::Instruct ion insn) const;
443
444 inline const NamedClassDecoder &decode_parallel_add_sub( const nacl_arm_de c::Instruction insn) const;
445
446 inline const NamedClassDecoder &decode_pack_sat_rev( const nacl_arm_dec::I nstruction insn) const;
447
448 inline const NamedClassDecoder &decode_signed_mult( const nacl_arm_dec::In struction insn) const;
449
450 inline const NamedClassDecoder &decode_branch_block_xfer( const nacl_arm_d ec::Instruction insn) const;
451
452 inline const NamedClassDecoder &decode_super_cop( const nacl_arm_dec::Inst ruction insn) const;
453
454 inline const NamedClassDecoder &decode_unconditional( const nacl_arm_dec:: Instruction insn) const;
455
456 inline const NamedClassDecoder &decode_misc_hints_simd( const nacl_arm_dec ::Instruction insn) const;
457
458 inline const NamedClassDecoder &decode_simd_dp( const nacl_arm_dec::Instru ction insn) const;
459
460 inline const NamedClassDecoder &decode_simd_dp_3same( const nacl_arm_dec:: Instruction insn) const;
461
462 inline const NamedClassDecoder &decode_simd_dp_3diff( const nacl_arm_dec:: Instruction insn) const;
463
464 inline const NamedClassDecoder &decode_simd_dp_2scalar( const nacl_arm_dec ::Instruction insn) const;
465
466 inline const NamedClassDecoder &decode_simd_dp_2shift( const nacl_arm_dec: :Instruction insn) const;
467
468 inline const NamedClassDecoder &decode_simd_dp_2misc( const nacl_arm_dec:: Instruction insn) const;
469
470 inline const NamedClassDecoder &decode_simd_dp_1imm( const nacl_arm_dec::I nstruction insn) const;
471
472 inline const NamedClassDecoder &decode_simd_load_store( const nacl_arm_dec ::Instruction insn) const;
473
474 inline const NamedClassDecoder &decode_simd_load_store_l0( const nacl_arm_ dec::Instruction insn) const;
475
476 inline const NamedClassDecoder &decode_simd_load_store_l1( const nacl_arm_ dec::Instruction insn) const;
477
267 }; 478 };
268 479
269 } // namespace 480 } // namespace
270 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_H_ 481 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698