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

Side by Side Diff: src/trusted/validator_arm/gen/arm32_decode_named_decoder.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
(Empty)
1
2
3 /*
4 * Copyright 2012 The Native Client Authors. All rights reserved.
5 * Use of this source code is governed by a BSD-style license that can
6 * be found in the LICENSE file.
7 */
8
9 // DO NOT EDIT: GENERATED CODE
10
11
12 #ifndef NACL_TRUSTED_BUT_NOT_TCB
13 #error This file is not meant for use in the TCB
14 #endif
15
16
17
18 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_DECODER_H _
19 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_DECODER_H _
20
21 #include "native_client/src/trusted/validator_arm/decode.h"
22 #include "native_client/src/trusted/validator_arm/gen/arm32_decode_named_classes .h"
23 #include "native_client/src/trusted/validator_arm/named_class_decoder.h"
24
25 namespace nacl_arm_test {
26
27 // Defines a (named) decoder class selector for instructions
28 class NamedArm32DecoderState : nacl_arm_dec::DecoderState {
29 public:
30 explicit NamedArm32DecoderState();
31 virtual ~NamedArm32DecoderState();
32
33 // Parses the given instruction, returning the named class
34 // decoder to use.
35 const NamedClassDecoder& decode_named(
36 const nacl_arm_dec::Instruction) const;
37
38 // Parses the given instruction, returning the class decoder
39 // to use.
40 virtual const nacl_arm_dec::ClassDecoder& decode(
41 const nacl_arm_dec::Instruction) const;
42
43 // The following fields define the set of class decoders
44 // that can be returned by the API function "decode_named". They
45 // are created once as instance fields, and then returned
46 // by the table methods above. This speeds up the code since
47 // the class decoders need to only be bulit once (and reused
48 // for each call to "decode_named").
49
50 const NamedBinary3RegisterShiftedTest Binary3RegisterShiftedTest_instance_;
51
52 const NamedBinary4RegisterShiftedOp Binary4RegisterShiftedOp_instance_;
53
54 const NamedBranch Branch_instance_;
55
56 const NamedBreakpoint Breakpoint_instance_;
57
58 const NamedBxBlx BxBlx_instance_;
59
60 const NamedCoprocessorOp CoprocessorOp_instance_;
61
62 const NamedDataProc DataProc_instance_;
63
64 const NamedDeprecated Deprecated_instance_;
65
66 const NamedEffectiveNoOp EffectiveNoOp_instance_;
67
68 const NamedForbidden Forbidden_instance_;
69
70 const NamedImmediateBic ImmediateBic_instance_;
71
72 const NamedLoadCoprocessor LoadCoprocessor_instance_;
73
74 const NamedLoadDoubleExclusive LoadDoubleExclusive_instance_;
75
76 const NamedLoadDoubleI LoadDoubleI_instance_;
77
78 const NamedLoadDoubleR LoadDoubleR_instance_;
79
80 const NamedLoadExclusive LoadExclusive_instance_;
81
82 const NamedLoadImmediate LoadImmediate_instance_;
83
84 const NamedLoadMultiple LoadMultiple_instance_;
85
86 const NamedLoadRegister LoadRegister_instance_;
87
88 const NamedLongMultiply LongMultiply_instance_;
89
90 const NamedMoveDoubleFromCoprocessor MoveDoubleFromCoprocessor_instance_;
91
92 const NamedMoveFromCoprocessor MoveFromCoprocessor_instance_;
93
94 const NamedMoveToStatusRegister MoveToStatusRegister_instance_;
95
96 const NamedMultiply Multiply_instance_;
97
98 const NamedPackSatRev PackSatRev_instance_;
99
100 const NamedRoadblock Roadblock_instance_;
101
102 const NamedSatAddSub SatAddSub_instance_;
103
104 const NamedStoreCoprocessor StoreCoprocessor_instance_;
105
106 const NamedStoreExclusive StoreExclusive_instance_;
107
108 const NamedStoreImmediate StoreImmediate_instance_;
109
110 const NamedStoreRegister StoreRegister_instance_;
111
112 const NamedTest Test_instance_;
113
114 const NamedTestImmediate TestImmediate_instance_;
115
116 const NamedUnary3RegisterShiftedOp Unary3RegisterShiftedOp_instance_;
117
118 const NamedUndefined Undefined_instance_;
119
120 const NamedUnpredictable Unpredictable_instance_;
121
122 const NamedVectorLoad VectorLoad_instance_;
123
124 const NamedVectorStore VectorStore_instance_;
125
126 const NamedAdd_Rule_7_A1_P26Binary4RegisterShiftedOp Add_Rule_7_A1_P26Binary4R egisterShiftedOp_instance_;
127
128 const NamedRsb_Rule_144_A1_P288Binary4RegisterShiftedOp Rsb_Rule_144_A1_P288Bi nary4RegisterShiftedOp_instance_;
129
130 private:
131
132 // The following list of methods correspond to each decoder table,
133 // and implements the pattern matching of the corresponding bit
134 // patterns. After matching the corresponding bit patterns, they
135 // either call other methods in this list (corresponding to another
136 // decoder table), or they return the instance field that implements
137 // the class decoder that should be used to decode the particular
138 // instruction.
139
140 inline const NamedClassDecoder& decode_ARMv7(
141 const nacl_arm_dec::Instruction insn) const;
142
143 inline const NamedClassDecoder& decode_branch_block_xfer(
144 const nacl_arm_dec::Instruction insn) const;
145
146 inline const NamedClassDecoder& decode_dp_immed(
147 const nacl_arm_dec::Instruction insn) const;
148
149 inline const NamedClassDecoder& decode_dp_misc(
150 const nacl_arm_dec::Instruction insn) const;
151
152 inline const NamedClassDecoder& decode_dp_reg(
153 const nacl_arm_dec::Instruction insn) const;
154
155 inline const NamedClassDecoder& decode_dp_reg_shifted(
156 const nacl_arm_dec::Instruction insn) const;
157
158 inline const NamedClassDecoder& decode_extra_load_store(
159 const nacl_arm_dec::Instruction insn) const;
160
161 inline const NamedClassDecoder& decode_half_mult(
162 const nacl_arm_dec::Instruction insn) const;
163
164 inline const NamedClassDecoder& decode_load_store_word_byte(
165 const nacl_arm_dec::Instruction insn) const;
166
167 inline const NamedClassDecoder& decode_media(
168 const nacl_arm_dec::Instruction insn) const;
169
170 inline const NamedClassDecoder& decode_misc(
171 const nacl_arm_dec::Instruction insn) const;
172
173 inline const NamedClassDecoder& decode_misc_hints_simd(
174 const nacl_arm_dec::Instruction insn) const;
175
176 inline const NamedClassDecoder& decode_msr_and_hints(
177 const nacl_arm_dec::Instruction insn) const;
178
179 inline const NamedClassDecoder& decode_mult(
180 const nacl_arm_dec::Instruction insn) const;
181
182 inline const NamedClassDecoder& decode_pack_sat_rev(
183 const nacl_arm_dec::Instruction insn) const;
184
185 inline const NamedClassDecoder& decode_parallel_add_sub(
186 const nacl_arm_dec::Instruction insn) const;
187
188 inline const NamedClassDecoder& decode_sat_add_sub(
189 const nacl_arm_dec::Instruction insn) const;
190
191 inline const NamedClassDecoder& decode_signed_mult(
192 const nacl_arm_dec::Instruction insn) const;
193
194 inline const NamedClassDecoder& decode_simd_dp(
195 const nacl_arm_dec::Instruction insn) const;
196
197 inline const NamedClassDecoder& decode_simd_dp_1imm(
198 const nacl_arm_dec::Instruction insn) const;
199
200 inline const NamedClassDecoder& decode_simd_dp_2misc(
201 const nacl_arm_dec::Instruction insn) const;
202
203 inline const NamedClassDecoder& decode_simd_dp_2scalar(
204 const nacl_arm_dec::Instruction insn) const;
205
206 inline const NamedClassDecoder& decode_simd_dp_2shift(
207 const nacl_arm_dec::Instruction insn) const;
208
209 inline const NamedClassDecoder& decode_simd_dp_3diff(
210 const nacl_arm_dec::Instruction insn) const;
211
212 inline const NamedClassDecoder& decode_simd_dp_3same(
213 const nacl_arm_dec::Instruction insn) const;
214
215 inline const NamedClassDecoder& decode_simd_load_store(
216 const nacl_arm_dec::Instruction insn) const;
217
218 inline const NamedClassDecoder& decode_simd_load_store_l0(
219 const nacl_arm_dec::Instruction insn) const;
220
221 inline const NamedClassDecoder& decode_simd_load_store_l1(
222 const nacl_arm_dec::Instruction insn) const;
223
224 inline const NamedClassDecoder& decode_super_cop(
225 const nacl_arm_dec::Instruction insn) const;
226
227 inline const NamedClassDecoder& decode_sync(
228 const nacl_arm_dec::Instruction insn) const;
229
230 inline const NamedClassDecoder& decode_unconditional(
231 const nacl_arm_dec::Instruction insn) const;
232
233 };
234
235 } // namespace nacl_arm_test
236 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_NAMED_DECODE R_H_
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/gen/arm32_decode_named_classes.h ('k') | src/trusted/validator_arm/gen/arm32_decode_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698