1 : /*
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
4 : * be found in the LICENSE file.
5 : */
6 :
7 : // DO NOT EDIT: GENERATED CODE
8 :
9 :
10 : #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_
11 : #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_
12 :
13 : #include "native_client/src/trusted/validator_arm/decode.h"
14 : #include "native_client/src/trusted/validator_arm/gen/arm32_decode_actuals.h"
15 :
16 : namespace nacl_arm_dec {
17 :
18 : // Defines a decoder class selector for instructions.
19 : class Arm32DecoderState : DecoderState {
20 : public:
21 : explicit Arm32DecoderState();
22 :
23 : // Parses the given instruction, returning the decoder to use.
24 : virtual const ClassDecoder& decode(const Instruction) const;
25 :
26 : // Returns the class decoder to use to process the fictitious instruction
27 : // that is inserted before the first instruction in the code block by
28 : // the validator.
29 0 : const ClassDecoder &fictitious_decoder() const {
30 0 : return Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
31 0 : }
32 :
33 : private:
34 :
35 : // The following list of methods correspond to each decoder table,
36 : // and implements the pattern matching of the corresponding bit
37 : // patterns. After matching the corresponding bit patterns, they
38 : // either call other methods in this list (corresponding to another
39 : // decoder table), or they return the instance field that implements
40 : // the class decoder that should be used to decode the particular
41 : // instruction.
42 :
43 : inline const ClassDecoder& decode_ARMv7(
44 : const Instruction inst) const;
45 :
46 : inline const ClassDecoder& decode_advanced_simd_data_processing_instructions(
47 : const Instruction inst) const;
48 :
49 : inline const ClassDecoder& decode_advanced_simd_element_or_structure_load_store_instructions(
50 : const Instruction inst) const;
51 :
52 : inline const ClassDecoder& decode_branch_branch_with_link_and_block_data_transfer(
53 : const Instruction inst) const;
54 :
55 : inline const ClassDecoder& decode_coprocessor_instructions_and_supervisor_call(
56 : const Instruction inst) const;
57 :
58 : inline const ClassDecoder& decode_data_processing_and_miscellaneous_instructions(
59 : const Instruction inst) const;
60 :
61 : inline const ClassDecoder& decode_data_processing_immediate(
62 : const Instruction inst) const;
63 :
64 : inline const ClassDecoder& decode_data_processing_register(
65 : const Instruction inst) const;
66 :
67 : inline const ClassDecoder& decode_data_processing_register_shifted_register(
68 : const Instruction inst) const;
69 :
70 : inline const ClassDecoder& decode_extension_register_load_store_instructions(
71 : const Instruction inst) const;
72 :
73 : inline const ClassDecoder& decode_extra_load_store_instructions(
74 : const Instruction inst) const;
75 :
76 : inline const ClassDecoder& decode_floating_point_data_processing_instructions(
77 : const Instruction inst) const;
78 :
79 : inline const ClassDecoder& decode_halfword_multiply_and_multiply_accumulate(
80 : const Instruction inst) const;
81 :
82 : inline const ClassDecoder& decode_load_store_word_and_unsigned_byte(
83 : const Instruction inst) const;
84 :
85 : inline const ClassDecoder& decode_media_instructions(
86 : const Instruction inst) const;
87 :
88 : inline const ClassDecoder& decode_memory_hints_advanced_simd_instructions_and_miscellaneous_instructions(
89 : const Instruction inst) const;
90 :
91 : inline const ClassDecoder& decode_miscellaneous_instructions(
92 : const Instruction inst) const;
93 :
94 : inline const ClassDecoder& decode_msr_immediate_and_hints(
95 : const Instruction inst) const;
96 :
97 : inline const ClassDecoder& decode_multiply_and_multiply_accumulate(
98 : const Instruction inst) const;
99 :
100 : inline const ClassDecoder& decode_other_floating_point_data_processing_instructions(
101 : const Instruction inst) const;
102 :
103 : inline const ClassDecoder& decode_packing_unpacking_saturation_and_reversal(
104 : const Instruction inst) const;
105 :
106 : inline const ClassDecoder& decode_parallel_addition_and_subtraction_signed(
107 : const Instruction inst) const;
108 :
109 : inline const ClassDecoder& decode_parallel_addition_and_subtraction_unsigned(
110 : const Instruction inst) const;
111 :
112 : inline const ClassDecoder& decode_saturating_addition_and_subtraction(
113 : const Instruction inst) const;
114 :
115 : inline const ClassDecoder& decode_signed_multiply_signed_and_unsigned_divide(
116 : const Instruction inst) const;
117 :
118 : inline const ClassDecoder& decode_simd_dp_1imm(
119 : const Instruction inst) const;
120 :
121 : inline const ClassDecoder& decode_simd_dp_2misc(
122 : const Instruction inst) const;
123 :
124 : inline const ClassDecoder& decode_simd_dp_2scalar(
125 : const Instruction inst) const;
126 :
127 : inline const ClassDecoder& decode_simd_dp_2shift(
128 : const Instruction inst) const;
129 :
130 : inline const ClassDecoder& decode_simd_dp_3diff(
131 : const Instruction inst) const;
132 :
133 : inline const ClassDecoder& decode_simd_dp_3same(
134 : const Instruction inst) const;
135 :
136 : inline const ClassDecoder& decode_synchronization_primitives(
137 : const Instruction inst) const;
138 :
139 : inline const ClassDecoder& decode_transfer_between_arm_core_and_extension_register_8_16_and_32_bit(
140 : const Instruction inst) const;
141 :
142 : inline const ClassDecoder& decode_transfer_between_arm_core_and_extension_registers_64_bit(
143 : const Instruction inst) const;
144 :
145 : inline const ClassDecoder& decode_unconditional_instructions(
146 : const Instruction inst) const;
147 :
148 : // The following fields define the set of class decoders
149 : // that can be returned by the API function "decode". They
150 : // are created once as instance fields, and then returned
151 : // by the table methods above. This speeds up the code since
152 : // the class decoders need to only be built once (and reused
153 : // for each call to "decode").
154 : const Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1 Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_;
155 : const Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1 Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1_instance_;
156 : const Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1 Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1_instance_;
157 : const Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1 Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1_instance_;
158 : const Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1 Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1_instance_;
159 : const Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1 Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_;
160 : const Actual_ASR_register_cccc0001101s0000ddddmmmm0101nnnn_case_1 Actual_ASR_register_cccc0001101s0000ddddmmmm0101nnnn_case_1_instance_;
161 : const Actual_BFC_cccc0111110mmmmmddddlllll0011111_case_1 Actual_BFC_cccc0111110mmmmmddddlllll0011111_case_1_instance_;
162 : const Actual_BFI_cccc0111110mmmmmddddlllll001nnnn_case_1 Actual_BFI_cccc0111110mmmmmddddlllll001nnnn_case_1_instance_;
163 : const Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1 Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_;
164 : const Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1 Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_;
165 : const Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1 Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
166 : const Actual_BLX_register_cccc000100101111111111110011mmmm_case_1 Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_;
167 : const Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1 Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
168 : const Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1 Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
169 : const Actual_Bx_cccc000100101111111111110001mmmm_case_1 Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_;
170 : const Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1 Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_;
171 : const Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1 Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_;
172 : const Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1 Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_;
173 : const Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1 Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1_instance_;
174 : const Actual_CVT_between_half_precision_and_single_precision_111100111d11ss10dddd011p00m0mmmm_case_1 Actual_CVT_between_half_precision_and_single_precision_111100111d11ss10dddd011p00m0mmmm_case_1_instance_;
175 : const Actual_DMB_1111010101111111111100000101xxxx_case_1 Actual_DMB_1111010101111111111100000101xxxx_case_1_instance_;
176 : const Actual_ISB_1111010101111111111100000110xxxx_case_1 Actual_ISB_1111010101111111111100000110xxxx_case_1_instance_;
177 : const Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1 Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
178 : const Actual_LDRB_immediate_cccc010pu1w1nnnnttttiiiiiiiiiiii_case_1 Actual_LDRB_immediate_cccc010pu1w1nnnnttttiiiiiiiiiiii_case_1_instance_;
179 : const Actual_LDRB_literal_cccc0101u1011111ttttiiiiiiiiiiii_case_1 Actual_LDRB_literal_cccc0101u1011111ttttiiiiiiiiiiii_case_1_instance_;
180 : const Actual_LDRB_register_cccc011pu1w1nnnnttttiiiiitt0mmmm_case_1 Actual_LDRB_register_cccc011pu1w1nnnnttttiiiiitt0mmmm_case_1_instance_;
181 : const Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1 Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_;
182 : const Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1 Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_;
183 : const Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1 Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_;
184 : const Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1 Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_;
185 : const Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1 Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_;
186 : const Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1 Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_;
187 : const Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1 Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_;
188 : const Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1 Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1_instance_;
189 : const Actual_LDR_immediate_cccc010pu0w1nnnnttttiiiiiiiiiiii_case_1 Actual_LDR_immediate_cccc010pu0w1nnnnttttiiiiiiiiiiii_case_1_instance_;
190 : const Actual_LDR_literal_cccc0101u0011111ttttiiiiiiiiiiii_case_1 Actual_LDR_literal_cccc0101u0011111ttttiiiiiiiiiiii_case_1_instance_;
191 : const Actual_LDR_register_cccc011pu0w1nnnnttttiiiiitt0mmmm_case_1 Actual_LDR_register_cccc011pu0w1nnnnttttiiiiitt0mmmm_case_1_instance_;
192 : const Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1 Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1_instance_;
193 : const Actual_MCR_cccc1110ooo0nnnnttttccccooo1mmmm_case_1 Actual_MCR_cccc1110ooo0nnnnttttccccooo1mmmm_case_1_instance_;
194 : const Actual_MLA_A1_cccc0000001sddddaaaammmm1001nnnn_case_1 Actual_MLA_A1_cccc0000001sddddaaaammmm1001nnnn_case_1_instance_;
195 : const Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1 Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_;
196 : const Actual_MOVE_scalar_to_ARM_core_register_cccc1110iii1nnnntttt1011nii10000_case_1 Actual_MOVE_scalar_to_ARM_core_register_cccc1110iii1nnnntttt1011nii10000_case_1_instance_;
197 : const Actual_MOVT_cccc00110100iiiiddddiiiiiiiiiiii_case_1 Actual_MOVT_cccc00110100iiiiddddiiiiiiiiiiii_case_1_instance_;
198 : const Actual_MOV_immediate_A1_cccc0011101s0000ddddiiiiiiiiiiii_case_1 Actual_MOV_immediate_A1_cccc0011101s0000ddddiiiiiiiiiiii_case_1_instance_;
199 : const Actual_MRS_cccc00010r001111dddd000000000000_case_1 Actual_MRS_cccc00010r001111dddd000000000000_case_1_instance_;
200 : const Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1 Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1_instance_;
201 : const Actual_MSR_register_cccc00010010mm00111100000000nnnn_case_1 Actual_MSR_register_cccc00010010mm00111100000000nnnn_case_1_instance_;
202 : const Actual_MUL_A1_cccc0000000sdddd0000mmmm1001nnnn_case_1 Actual_MUL_A1_cccc0000000sdddd0000mmmm1001nnnn_case_1_instance_;
203 : const Actual_NOP_cccc0011001000001111000000000000_case_1 Actual_NOP_cccc0011001000001111000000000000_case_1_instance_;
204 : const Actual_NOT_IMPLEMENTED_case_1 Actual_NOT_IMPLEMENTED_case_1_instance_;
205 : const Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1 Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_;
206 : const Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1 Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_;
207 : const Actual_PLD_PLDW_immediate_11110101ur01nnnn1111iiiiiiiiiiii_case_1 Actual_PLD_PLDW_immediate_11110101ur01nnnn1111iiiiiiiiiiii_case_1_instance_;
208 : const Actual_PLD_PLDW_register_11110111u001nnnn1111iiiiitt0mmmm_case_1 Actual_PLD_PLDW_register_11110111u001nnnn1111iiiiitt0mmmm_case_1_instance_;
209 : const Actual_PLD_literal_11110101u10111111111iiiiiiiiiiii_case_1 Actual_PLD_literal_11110101u10111111111iiiiiiiiiiii_case_1_instance_;
210 : const Actual_PLI_immediate_literal_11110100u101nnnn1111iiiiiiiiiiii_case_1 Actual_PLI_immediate_literal_11110100u101nnnn1111iiiiiiiiiiii_case_1_instance_;
211 : const Actual_PLI_register_11110110u101nnnn1111iiiiitt0mmmm_case_1 Actual_PLI_register_11110110u101nnnn1111iiiiitt0mmmm_case_1_instance_;
212 : const Actual_SBFX_cccc0111101wwwwwddddlllll101nnnn_case_1 Actual_SBFX_cccc0111101wwwwwddddlllll101nnnn_case_1_instance_;
213 : const Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1 Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_;
214 : const Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1 Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_;
215 : const Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case_1 Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case_1_instance_;
216 : const Actual_SMLALD_cccc01110100hhhhllllmmmm00m1nnnn_case_1 Actual_SMLALD_cccc01110100hhhhllllmmmm00m1nnnn_case_1_instance_;
217 : const Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1 Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_;
218 : const Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1 Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_instance_;
219 : const Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1 Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_;
220 : const Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1 Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
221 : const Actual_STRB_immediate_cccc010pu1w0nnnnttttiiiiiiiiiiii_case_1 Actual_STRB_immediate_cccc010pu1w0nnnnttttiiiiiiiiiiii_case_1_instance_;
222 : const Actual_STRB_register_cccc011pu1w0nnnnttttiiiiitt0mmmm_case_1 Actual_STRB_register_cccc011pu1w0nnnnttttiiiiitt0mmmm_case_1_instance_;
223 : const Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1 Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_;
224 : const Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1 Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_;
225 : const Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1 Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_;
226 : const Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1 Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_;
227 : const Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1 Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_;
228 : const Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1 Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_;
229 : const Actual_STR_immediate_cccc010pu0w0nnnnttttiiiiiiiiiiii_case_1 Actual_STR_immediate_cccc010pu0w0nnnnttttiiiiiiiiiiii_case_1_instance_;
230 : const Actual_STR_register_cccc011pd0w0nnnnttttiiiiitt0mmmm_case_1 Actual_STR_register_cccc011pd0w0nnnnttttiiiiitt0mmmm_case_1_instance_;
231 : const Actual_SWP_SWPB_cccc00010b00nnnntttt00001001tttt_case_1 Actual_SWP_SWPB_cccc00010b00nnnntttt00001001tttt_case_1_instance_;
232 : const Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1 Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1_instance_;
233 : const Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1 Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_;
234 : const Actual_UDF_cccc01111111iiiiiiiiiiii1111iiii_case_1 Actual_UDF_cccc01111111iiiiiiiiiiii1111iiii_case_1_instance_;
235 : const Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1 Actual_Unnamed_11110100xx11xxxxxxxxxxxxxxxxxxxx_case_1_instance_;
236 : const Actual_Unnamed_case_1 Actual_Unnamed_case_1_instance_;
237 : const Actual_VABAL_A2_1111001u1dssnnnndddd0101n0m0mmmm_case_1 Actual_VABAL_A2_1111001u1dssnnnndddd0101n0m0mmmm_case_1_instance_;
238 : const Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1 Actual_VABA_1111001u0dssnnnndddd0111nqm1mmmm_case_1_instance_;
239 : const Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1 Actual_VABD_floating_point_111100110d1snnnndddd1101nqm0mmmm_case_1_instance_;
240 : const Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1 Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_1_instance_;
241 : const Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2 Actual_VABS_A1_111100111d11ss01dddd0f110qm0mmmm_case_2_instance_;
242 : const Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1 Actual_VABS_cccc11101d110000dddd101s11m0mmmm_case_1_instance_;
243 : const Actual_VADDHN_111100101dssnnnndddd0100n0m0mmmm_case_1 Actual_VADDHN_111100101dssnnnndddd0100n0m0mmmm_case_1_instance_;
244 : const Actual_VADDL_VADDW_1111001u1dssnnnndddd000pn0m0mmmm_case_1 Actual_VADDL_VADDW_1111001u1dssnnnndddd000pn0m0mmmm_case_1_instance_;
245 : const Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1 Actual_VADD_floating_point_cccc11100d11nnnndddd101sn0m0mmmm_case_1_instance_;
246 : const Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1 Actual_VADD_integer_111100100dssnnnndddd1000nqm0mmmm_case_1_instance_;
247 : const Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1 Actual_VBIC_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
248 : const Actual_VCNT_111100111d11ss00dddd01010qm0mmmm_case_1 Actual_VCNT_111100111d11ss00dddd01010qm0mmmm_case_1_instance_;
249 : const Actual_VCVT_VCVTR_between_floating_point_and_integer_Floating_point_cccc11101d111ooodddd101sp1m0mmmm_case_1 Actual_VCVT_VCVTR_between_floating_point_and_integer_Floating_point_cccc11101d111ooodddd101sp1m0mmmm_case_1_instance_;
250 : const Actual_VCVT_between_floating_point_and_fixed_point_1111001u1diiiiiidddd111p0qm1mmmm_case_1 Actual_VCVT_between_floating_point_and_fixed_point_1111001u1diiiiiidddd111p0qm1mmmm_case_1_instance_;
251 : const Actual_VCVT_between_floating_point_and_fixed_point_Floating_point_cccc11101d111o1udddd101fx1i0iiii_case_1 Actual_VCVT_between_floating_point_and_fixed_point_Floating_point_cccc11101d111o1udddd101fx1i0iiii_case_1_instance_;
252 : const Actual_VDUP_ARM_core_register_cccc11101bq0ddddtttt1011d0e10000_case_1 Actual_VDUP_ARM_core_register_cccc11101bq0ddddtttt1011d0e10000_case_1_instance_;
253 : const Actual_VDUP_scalar_111100111d11iiiidddd11000qm0mmmm_case_1 Actual_VDUP_scalar_111100111d11iiiidddd11000qm0mmmm_case_1_instance_;
254 : const Actual_VEXT_111100101d11nnnnddddiiiinqm0mmmm_case_1 Actual_VEXT_111100101d11nnnnddddiiiinqm0mmmm_case_1_instance_;
255 : const Actual_VLD1_multiple_single_elements_111101000d10nnnnddddttttssaammmm_case_1 Actual_VLD1_multiple_single_elements_111101000d10nnnnddddttttssaammmm_case_1_instance_;
256 : const Actual_VLD1_single_element_to_all_lanes_111101001d10nnnndddd1100sstammmm_case_1 Actual_VLD1_single_element_to_all_lanes_111101001d10nnnndddd1100sstammmm_case_1_instance_;
257 : const Actual_VLD1_single_element_to_one_lane_111101001d10nnnnddddss00aaaammmm_case_1 Actual_VLD1_single_element_to_one_lane_111101001d10nnnnddddss00aaaammmm_case_1_instance_;
258 : const Actual_VLD2_multiple_2_element_structures_111101000d10nnnnddddttttssaammmm_case_1 Actual_VLD2_multiple_2_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
259 : const Actual_VLD2_single_2_element_structure_to_all_lanes_111101001d10nnnndddd1101sstammmm_case_1 Actual_VLD2_single_2_element_structure_to_all_lanes_111101001d10nnnndddd1101sstammmm_case_1_instance_;
260 : const Actual_VLD2_single_2_element_structure_to_one_lane_111101001d10nnnnddddss01aaaammmm_case_1 Actual_VLD2_single_2_element_structure_to_one_lane_111101001d10nnnnddddss01aaaammmm_case_1_instance_;
261 : const Actual_VLD3_multiple_3_element_structures_111101000d10nnnnddddttttssaammmm_case_1 Actual_VLD3_multiple_3_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
262 : const Actual_VLD3_single_3_element_structure_to_all_lanes_111101001d10nnnndddd1110sstammmm_case_1 Actual_VLD3_single_3_element_structure_to_all_lanes_111101001d10nnnndddd1110sstammmm_case_1_instance_;
263 : const Actual_VLD3_single_3_element_structure_to_one_lane_111101001d10nnnnddddss10aaaammmm_case_1 Actual_VLD3_single_3_element_structure_to_one_lane_111101001d10nnnnddddss10aaaammmm_case_1_instance_;
264 : const Actual_VLD4_multiple_4_element_structures_111101000d10nnnnddddttttssaammmm_case_1 Actual_VLD4_multiple_4_element_structures_111101000d10nnnnddddttttssaammmm_case_1_instance_;
265 : const Actual_VLD4_single_4_element_structure_to_all_lanes_111101001d10nnnndddd1111sstammmm_case_1 Actual_VLD4_single_4_element_structure_to_all_lanes_111101001d10nnnndddd1111sstammmm_case_1_instance_;
266 : const Actual_VLD4_single_4_element_structure_to_one_lane_111101001d10nnnnddddss11aaaammmm_case_1 Actual_VLD4_single_4_element_structure_to_one_lane_111101001d10nnnnddddss11aaaammmm_case_1_instance_;
267 : const Actual_VLDM_cccc110pudw1nnnndddd1010iiiiiiii_case_1 Actual_VLDM_cccc110pudw1nnnndddd1010iiiiiiii_case_1_instance_;
268 : const Actual_VLDM_cccc110pudw1nnnndddd1011iiiiiiii_case_1 Actual_VLDM_cccc110pudw1nnnndddd1011iiiiiiii_case_1_instance_;
269 : const Actual_VLDR_cccc1101ud01nnnndddd1010iiiiiiii_case_1 Actual_VLDR_cccc1101ud01nnnndddd1010iiiiiiii_case_1_instance_;
270 : const Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1 Actual_VMLAL_by_scalar_A2_1111001u1dssnnnndddd0p10n1m0mmmm_case_1_instance_;
271 : const Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_1 Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_1_instance_;
272 : const Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_2 Actual_VMLA_by_scalar_A1_1111001q1dssnnnndddd0p0fn1m0mmmm_case_2_instance_;
273 : const Actual_VMOVN_111100111d11ss10dddd001000m0mmmm_case_1 Actual_VMOVN_111100111d11ss10dddd001000m0mmmm_case_1_instance_;
274 : const Actual_VMOV_ARM_core_register_to_scalar_cccc11100ii0ddddtttt1011dii10000_case_1 Actual_VMOV_ARM_core_register_to_scalar_cccc11100ii0ddddtttt1011dii10000_case_1_instance_;
275 : const Actual_VMOV_between_ARM_core_register_and_single_precision_register_cccc1110000onnnntttt1010n0010000_case_1 Actual_VMOV_between_ARM_core_register_and_single_precision_register_cccc1110000onnnntttt1010n0010000_case_1_instance_;
276 : const Actual_VMOV_between_two_ARM_core_registers_and_a_doubleword_extension_register_cccc1100010otttttttt101100m1mmmm_case_1 Actual_VMOV_between_two_ARM_core_registers_and_a_doubleword_extension_register_cccc1100010otttttttt101100m1mmmm_case_1_instance_;
277 : const Actual_VMOV_between_two_ARM_core_registers_and_two_single_precision_registers_cccc1100010otttttttt101000m1mmmm_case_1 Actual_VMOV_between_two_ARM_core_registers_and_two_single_precision_registers_cccc1100010otttttttt101000m1mmmm_case_1_instance_;
278 : const Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1 Actual_VMOV_immediate_A1_1111001m1d000mmmddddcccc0qp1mmmm_case_1_instance_;
279 : const Actual_VMRS_cccc111011110001tttt101000010000_case_1 Actual_VMRS_cccc111011110001tttt101000010000_case_1_instance_;
280 : const Actual_VMSR_cccc111011100001tttt101000010000_case_1 Actual_VMSR_cccc111011100001tttt101000010000_case_1_instance_;
281 : const Actual_VMULL_polynomial_A2_1111001u1dssnnnndddd11p0n0m0mmmm_case_1 Actual_VMULL_polynomial_A2_1111001u1dssnnnndddd11p0n0m0mmmm_case_1_instance_;
282 : const Actual_VMUL_polynomial_A1_1111001u0dssnnnndddd1001nqm1mmmm_case_1 Actual_VMUL_polynomial_A1_1111001u0dssnnnndddd1001nqm1mmmm_case_1_instance_;
283 : const Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1 Actual_VMVN_immediate_1111001i1d000mmmddddcccc0q11mmmm_case_1_instance_;
284 : const Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1 Actual_VPADD_floating_point_111100110d0snnnndddd1101nqm0mmmm_case_1_instance_;
285 : const Actual_VPADD_integer_111100100dssnnnndddd1011n0m1mmmm_case_1 Actual_VPADD_integer_111100100dssnnnndddd1011n0m1mmmm_case_1_instance_;
286 : const Actual_VPOP_cccc11001d111101dddd1010iiiiiiii_case_1 Actual_VPOP_cccc11001d111101dddd1010iiiiiiii_case_1_instance_;
287 : const Actual_VPOP_cccc11001d111101dddd1011iiiiiiii_case_1 Actual_VPOP_cccc11001d111101dddd1011iiiiiiii_case_1_instance_;
288 : const Actual_VQDMLAL_VQDMLSL_A1_111100101dssnnnndddd10p1n0m0mmmm_case_1 Actual_VQDMLAL_VQDMLSL_A1_111100101dssnnnndddd10p1n0m0mmmm_case_1_instance_;
289 : const Actual_VQDMULH_A1_111100100dssnnnndddd1011nqm0mmmm_case_1 Actual_VQDMULH_A1_111100100dssnnnndddd1011nqm0mmmm_case_1_instance_;
290 : const Actual_VQMOVN_111100111d11ss10dddd0010ppm0mmmm_case_1 Actual_VQMOVN_111100111d11ss10dddd0010ppm0mmmm_case_1_instance_;
291 : const Actual_VQRSHRN_1111001u1diiiiiidddd100p01m1mmmm_case_1 Actual_VQRSHRN_1111001u1diiiiiidddd100p01m1mmmm_case_1_instance_;
292 : const Actual_VQSHL_VQSHLU_immediate_1111001u1diiiiiidddd011plqm1mmmm_case_1 Actual_VQSHL_VQSHLU_immediate_1111001u1diiiiiidddd011plqm1mmmm_case_1_instance_;
293 : const Actual_VREV16_111100111d11ss00dddd000ppqm0mmmm_case_1 Actual_VREV16_111100111d11ss00dddd000ppqm0mmmm_case_1_instance_;
294 : const Actual_VRSHRN_111100101diiiiiidddd100001m1mmmm_case_1 Actual_VRSHRN_111100101diiiiiidddd100001m1mmmm_case_1_instance_;
295 : const Actual_VRSHR_1111001u1diiiiiidddd0010lqm1mmmm_case_1 Actual_VRSHR_1111001u1diiiiiidddd0010lqm1mmmm_case_1_instance_;
296 : const Actual_VSHLL_A1_or_VMOVL_1111001u1diiiiiidddd101000m1mmmm_case_1 Actual_VSHLL_A1_or_VMOVL_1111001u1diiiiiidddd101000m1mmmm_case_1_instance_;
297 : const Actual_VSHLL_A2_111100111d11ss10dddd001100m0mmmm_case_1 Actual_VSHLL_A2_111100111d11ss10dddd001100m0mmmm_case_1_instance_;
298 : const Actual_VSTM_cccc110pudw0nnnndddd1010iiiiiiii_case_1 Actual_VSTM_cccc110pudw0nnnndddd1010iiiiiiii_case_1_instance_;
299 : const Actual_VSTM_cccc110pudw0nnnndddd1011iiiiiiii_case_1 Actual_VSTM_cccc110pudw0nnnndddd1011iiiiiiii_case_1_instance_;
300 : const Actual_VSTR_cccc1101ud00nnnndddd1010iiiiiiii_case_1 Actual_VSTR_cccc1101ud00nnnndddd1010iiiiiiii_case_1_instance_;
301 : const Actual_VSWP_111100111d11ss10dddd00000qm0mmmm_case_1 Actual_VSWP_111100111d11ss10dddd00000qm0mmmm_case_1_instance_;
302 : const Actual_VTBL_VTBX_111100111d11nnnndddd10ccnpm0mmmm_case_1 Actual_VTBL_VTBX_111100111d11nnnndddd10ccnpm0mmmm_case_1_instance_;
303 : const Actual_VTRN_111100111d11ss10dddd00001qm0mmmm_case_1 Actual_VTRN_111100111d11ss10dddd00001qm0mmmm_case_1_instance_;
304 : const Actual_VUZP_111100111d11ss10dddd00010qm0mmmm_case_1 Actual_VUZP_111100111d11ss10dddd00010qm0mmmm_case_1_instance_;
305 : };
306 :
307 : } // namespace nacl_arm_dec
308 : #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_H_
|