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

Side by Side Diff: src/trusted/validator_ragel/gen/validator_x86_32.c

Issue 11000033: Move validator_x86_XX.rl out of unreviewed. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 9 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 /* native_client/src/trusted/validator_ragel/gen/validator_x86_32.c 1 /* native_client/src/trusted/validator_ragel/gen/validator_x86_32.c
2 * THIS FILE IS AUTO-GENERATED. DO NOT EDIT. 2 * THIS FILE IS AUTO-GENERATED. DO NOT EDIT.
3 * Compiled for ia32 mode. 3 * Compiled for ia32 mode.
4 */ 4 */
5 5
6 /* 6 /*
7 * This is the core of ia32-mode validator. Please note that this file 7 * This is the core of ia32-mode validator. Please note that this file
8 * combines ragel machine description and C language actions. Please read 8 * combines ragel machine description and C language actions. Please read
9 * validator_internals.html first to understand how the whole thing is built: 9 * validator_internals.html first to understand how the whole thing is built:
10 * it explains how the byte sequences are constructed, what constructs like 10 * it explains how the byte sequences are constructed, what constructs like
11 * "@{}" or "REX_WRX?" mean, etc. 11 * "@{}" or "REX_WRX?" mean, etc.
12 */ 12 */
13 13
14 #include <assert.h> 14 #include <assert.h>
15 #include <errno.h> 15 #include <errno.h>
16 #include <stddef.h> 16 #include <stddef.h>
17 #include <stdio.h> 17 #include <stdio.h>
18 #include <stdlib.h> 18 #include <stdlib.h>
19 #include <string.h> 19 #include <string.h>
20 20
21 #include "native_client/src/trusted/validator_ragel/bitmap.h" 21 #include "native_client/src/trusted/validator_ragel/bitmap.h"
22 #include "native_client/src/trusted/validator_ragel/unreviewed/validator_interna l.h" 22 #include "native_client/src/trusted/validator_ragel/validator_internal.h"
23 23
24 /* Ignore this information: it's not used by security model in IA32 mode. */ 24 /* Ignore this information: it's not used by security model in IA32 mode. */
25 /* TODO(khim): change gen_dfa to remove needs for these lines. */
25 #undef GET_VEX_PREFIX3 26 #undef GET_VEX_PREFIX3
26 #define GET_VEX_PREFIX3 0 27 #define GET_VEX_PREFIX3 0
27 #undef SET_VEX_PREFIX3 28 #undef SET_VEX_PREFIX3
28 #define SET_VEX_PREFIX3(P) 29 #define SET_VEX_PREFIX3(PREFIX_BYTE)
29 30
30 31
31 32
32 33
34 /*
35 * The "write data" statement causes Ragel to emit the constant static data
36 * needed by the ragel machine.
37 */
33 38
34 static const int x86_32_validator_start = 233; 39 static const int x86_32_validator_start = 218;
35 static const int x86_32_validator_first_final = 233; 40 static const int x86_32_validator_first_final = 218;
36 static const int x86_32_validator_error = 0; 41 static const int x86_32_validator_error = 0;
37 42
38 static const int x86_32_validator_en_main = 233; 43 static const int x86_32_validator_en_main = 218;
39 44
40 45
41 46
42 47 Bool ValidateChunkIA32(const uint8_t codeblock[],
43 Bool ValidateChunkIA32(const uint8_t *data, size_t size, 48 size_t size,
44 uint32_t options, 49 uint32_t options,
45 const NaClCPUFeaturesX86 *cpu_features, 50 const NaClCPUFeaturesX86 *cpu_features,
46 ValidationCallbackFunc user_callback, 51 ValidationCallbackFunc user_callback,
47 void *callback_data) { 52 void *callback_data) {
48 bitmap_word valid_targets_small; 53 bitmap_word valid_targets_small;
49 bitmap_word jump_dests_small; 54 bitmap_word jump_dests_small;
50 bitmap_word *valid_targets; 55 bitmap_word *valid_targets;
51 bitmap_word *jump_dests; 56 bitmap_word *jump_dests;
52 const uint8_t *current_position; 57 const uint8_t *current_position;
53 const uint8_t *end_of_bundle; 58 const uint8_t *end_of_bundle;
(...skipping 15 matching lines...) Expand all
69 free(jump_dests); 74 free(jump_dests);
70 free(valid_targets); 75 free(valid_targets);
71 errno = ENOMEM; 76 errno = ENOMEM;
72 return FALSE; 77 return FALSE;
73 } 78 }
74 } 79 }
75 80
76 /* 81 /*
77 * This option is usually used in tests: we will process the whole chunk 82 * This option is usually used in tests: we will process the whole chunk
78 * in one pass. Usually each bundle is processed separately which means 83 * in one pass. Usually each bundle is processed separately which means
79 * instructions (and super-instructions) can not cross borders of the bundle. 84 * instructions (and "superinstructions") can not cross borders of the bundle.
80 */ 85 */
81 if (options & PROCESS_CHUNK_AS_A_CONTIGUOUS_STREAM) 86 if (options & PROCESS_CHUNK_AS_A_CONTIGUOUS_STREAM)
82 end_of_bundle = data + size; 87 end_of_bundle = codeblock + size;
83 else 88 else
84 end_of_bundle = data + kBundleSize; 89 end_of_bundle = codeblock + kBundleSize;
85 90
86 /* 91 /*
87 * Main loop. Here we process the data array bundle-after-bundle. 92 * Main loop. Here we process the data array bundle-after-bundle.
88 * Ragel-produced DFA does all the checks with one exception: direct jumps. 93 * Ragel-produced DFA does all the checks with one exception: direct jumps.
89 * It collects the two arrays: valid_targets and jump_dests which are used 94 * It collects the two arrays: valid_targets and jump_dests which are used
90 * to test direct jumps later. 95 * to test direct jumps later.
91 */ 96 */
92 for (current_position = data; 97 for (current_position = codeblock;
93 current_position < data + size; 98 current_position < codeblock + size;
94 current_position = end_of_bundle, 99 current_position = end_of_bundle,
95 end_of_bundle = current_position + kBundleSize) { 100 end_of_bundle = current_position + kBundleSize) {
96 /* Start of the instruction being processed. */ 101 /* Start of the instruction being processed. */
97 const uint8_t *instruction_begin = current_position; 102 const uint8_t *instruction_begin = current_position;
98 /* Only used locally in the end_of_instruction_cleanup action. */ 103 /* Only used locally in the end_of_instruction_cleanup action. */
99 const uint8_t *instruction_end; 104 const uint8_t *instruction_end;
100 uint32_t instruction_info_collected = 0; 105 uint32_t instruction_info_collected = 0;
101 int current_state; 106 int current_state;
102 107
108 /*
109 * The "write init" statement causes Ragel to emit initialization code.
110 * This should be executed once before the ragel machine is started.
111 */
103 112
104 { 113 {
105 ( current_state) = x86_32_validator_start; 114 ( current_state) = x86_32_validator_start;
106 } 115 }
107 116
117 /*
118 * The "write exec" statement causes Ragel to emit the ragel machine's
119 * execution code.
120 */
108 121
109 { 122 {
110 if ( ( current_position) == ( end_of_bundle) ) 123 if ( ( current_position) == ( end_of_bundle) )
111 goto _test_eof; 124 goto _test_eof;
112 switch ( ( current_state) ) 125 switch ( ( current_state) )
113 { 126 {
114 tr0: 127 tr0:
115 { 128 {
116 /* Mark start of this instruction as a valid target for jump. */ 129 /* Mark start of this instruction as a valid target for jump. */
117 MarkValidJumpTarget(instruction_begin - data, valid_targets); 130 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
118 131
119 /* Call user-supplied callback. */ 132 /* Call user-supplied callback. */
120 instruction_end = current_position + 1; 133 instruction_end = current_position + 1;
121 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 134 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
122 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 135 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
123 result &= user_callback(instruction_begin, instruction_end, 136 result &= user_callback(instruction_begin, instruction_end,
124 instruction_info_collected, callback_data); 137 instruction_info_collected, callback_data);
125 } 138 }
126 139
127 /* On successful match the instruction_begin must point to the next byte 140 /*
128 * to be able to report the new offset as the start of instruction 141 * We may set instruction_begin at the first byte of the instruction instead
129 * causing error. */ 142 * of here but in the case of incorrect one byte instructions user callback
143 * may be called before instruction_begin is set.
144 */
130 instruction_begin = instruction_end; 145 instruction_begin = instruction_end;
131 146
132 /* Clear variables (well, one variable currently). */ 147 /* Clear variables (well, one variable currently). */
133 instruction_info_collected = 0; 148 instruction_info_collected = 0;
134 } 149 }
135 » goto st233; 150 » goto st218;
136 tr9: 151 tr9:
137 { 152 {
138 SET_DISP_TYPE(DISP32); 153 SET_DISPLACEMNT_FORMAT(DISP32);
139 SET_DISP_PTR(current_position - 3); 154 SET_DISPLACEMNT_POINTER(current_position - 3);
140 } 155 }
141 {} 156 {}
142 { 157 {
143 /* Mark start of this instruction as a valid target for jump. */ 158 /* Mark start of this instruction as a valid target for jump. */
144 MarkValidJumpTarget(instruction_begin - data, valid_targets); 159 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
145 160
146 /* Call user-supplied callback. */ 161 /* Call user-supplied callback. */
147 instruction_end = current_position + 1; 162 instruction_end = current_position + 1;
148 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 163 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
149 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 164 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
150 result &= user_callback(instruction_begin, instruction_end, 165 result &= user_callback(instruction_begin, instruction_end,
151 instruction_info_collected, callback_data); 166 instruction_info_collected, callback_data);
152 } 167 }
153 168
154 /* On successful match the instruction_begin must point to the next byte 169 /*
155 * to be able to report the new offset as the start of instruction 170 * We may set instruction_begin at the first byte of the instruction instead
156 * causing error. */ 171 * of here but in the case of incorrect one byte instructions user callback
172 * may be called before instruction_begin is set.
173 */
157 instruction_begin = instruction_end; 174 instruction_begin = instruction_end;
158 175
159 /* Clear variables (well, one variable currently). */ 176 /* Clear variables (well, one variable currently). */
160 instruction_info_collected = 0; 177 instruction_info_collected = 0;
161 } 178 }
162 » goto st233; 179 » goto st218;
163 tr10: 180 tr10:
164 { 181 {
165 SET_DISP_TYPE(DISP8); 182 SET_DISPLACEMNT_FORMAT(DISP8);
166 SET_DISP_PTR(current_position); 183 SET_DISPLACEMNT_POINTER(current_position);
167 } 184 }
168 {} 185 {}
169 { 186 {
170 /* Mark start of this instruction as a valid target for jump. */ 187 /* Mark start of this instruction as a valid target for jump. */
171 MarkValidJumpTarget(instruction_begin - data, valid_targets); 188 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
172 189
173 /* Call user-supplied callback. */ 190 /* Call user-supplied callback. */
174 instruction_end = current_position + 1; 191 instruction_end = current_position + 1;
175 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 192 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
176 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 193 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
177 result &= user_callback(instruction_begin, instruction_end, 194 result &= user_callback(instruction_begin, instruction_end,
178 instruction_info_collected, callback_data); 195 instruction_info_collected, callback_data);
179 } 196 }
180 197
181 /* On successful match the instruction_begin must point to the next byte 198 /*
182 * to be able to report the new offset as the start of instruction 199 * We may set instruction_begin at the first byte of the instruction instead
183 * causing error. */ 200 * of here but in the case of incorrect one byte instructions user callback
201 * may be called before instruction_begin is set.
202 */
184 instruction_begin = instruction_end; 203 instruction_begin = instruction_end;
185 204
186 /* Clear variables (well, one variable currently). */ 205 /* Clear variables (well, one variable currently). */
187 instruction_info_collected = 0; 206 instruction_info_collected = 0;
188 } 207 }
189 » goto st233; 208 » goto st218;
190 tr11: 209 tr11:
191 { 210 {
192 SET_IMM_TYPE(IMM8); 211 SET_IMMEDIATE_FORMAT(IMM8);
193 SET_IMM_PTR(current_position); 212 SET_IMMEDIATE_POINTER(current_position);
194 } 213 }
195 {} 214 {}
196 { 215 {
197 /* Mark start of this instruction as a valid target for jump. */ 216 /* Mark start of this instruction as a valid target for jump. */
198 MarkValidJumpTarget(instruction_begin - data, valid_targets); 217 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
199 218
200 /* Call user-supplied callback. */ 219 /* Call user-supplied callback. */
201 instruction_end = current_position + 1; 220 instruction_end = current_position + 1;
202 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 221 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
203 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 222 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
204 result &= user_callback(instruction_begin, instruction_end, 223 result &= user_callback(instruction_begin, instruction_end,
205 instruction_info_collected, callback_data); 224 instruction_info_collected, callback_data);
206 } 225 }
207 226
208 /* On successful match the instruction_begin must point to the next byte 227 /*
209 * to be able to report the new offset as the start of instruction 228 * We may set instruction_begin at the first byte of the instruction instead
210 * causing error. */ 229 * of here but in the case of incorrect one byte instructions user callback
230 * may be called before instruction_begin is set.
231 */
211 instruction_begin = instruction_end; 232 instruction_begin = instruction_end;
212 233
213 /* Clear variables (well, one variable currently). */ 234 /* Clear variables (well, one variable currently). */
214 instruction_info_collected = 0; 235 instruction_info_collected = 0;
215 } 236 }
216 » goto st233; 237 » goto st218;
217 tr15: 238 tr15:
218 { 239 {
219 SET_IMM_TYPE(IMM32); 240 SET_IMMEDIATE_FORMAT(IMM32);
220 SET_IMM_PTR(current_position - 3); 241 SET_IMMEDIATE_POINTER(current_position - 3);
221 } 242 }
222 {} 243 {}
223 { 244 {
224 /* Mark start of this instruction as a valid target for jump. */ 245 /* Mark start of this instruction as a valid target for jump. */
225 MarkValidJumpTarget(instruction_begin - data, valid_targets); 246 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
226 247
227 /* Call user-supplied callback. */ 248 /* Call user-supplied callback. */
228 instruction_end = current_position + 1; 249 instruction_end = current_position + 1;
229 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 250 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
230 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 251 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
231 result &= user_callback(instruction_begin, instruction_end, 252 result &= user_callback(instruction_begin, instruction_end,
232 instruction_info_collected, callback_data); 253 instruction_info_collected, callback_data);
233 } 254 }
234 255
235 /* On successful match the instruction_begin must point to the next byte 256 /*
236 * to be able to report the new offset as the start of instruction 257 * We may set instruction_begin at the first byte of the instruction instead
237 * causing error. */ 258 * of here but in the case of incorrect one byte instructions user callback
259 * may be called before instruction_begin is set.
260 */
238 instruction_begin = instruction_end; 261 instruction_begin = instruction_end;
239 262
240 /* Clear variables (well, one variable currently). */ 263 /* Clear variables (well, one variable currently). */
241 instruction_info_collected = 0; 264 instruction_info_collected = 0;
242 } 265 }
243 » goto st233; 266 » goto st218;
244 tr19: 267 tr19:
245 { SET_CPU_FEATURE(CPUFeature_3DNOW); } 268 { SET_CPU_FEATURE(CPUFeature_3DNOW); }
246 { 269 {
247 /* Mark start of this instruction as a valid target for jump. */ 270 /* Mark start of this instruction as a valid target for jump. */
248 MarkValidJumpTarget(instruction_begin - data, valid_targets); 271 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
249 272
250 /* Call user-supplied callback. */ 273 /* Call user-supplied callback. */
251 instruction_end = current_position + 1; 274 instruction_end = current_position + 1;
252 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 275 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
253 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 276 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
254 result &= user_callback(instruction_begin, instruction_end, 277 result &= user_callback(instruction_begin, instruction_end,
255 instruction_info_collected, callback_data); 278 instruction_info_collected, callback_data);
256 } 279 }
257 280
258 /* On successful match the instruction_begin must point to the next byte 281 /*
259 * to be able to report the new offset as the start of instruction 282 * We may set instruction_begin at the first byte of the instruction instead
260 * causing error. */ 283 * of here but in the case of incorrect one byte instructions user callback
284 * may be called before instruction_begin is set.
285 */
261 instruction_begin = instruction_end; 286 instruction_begin = instruction_end;
262 287
263 /* Clear variables (well, one variable currently). */ 288 /* Clear variables (well, one variable currently). */
264 instruction_info_collected = 0; 289 instruction_info_collected = 0;
265 } 290 }
266 » goto st233; 291 » goto st218;
267 tr26: 292 tr26:
268 { SET_CPU_FEATURE(CPUFeature_TSC); } 293 { SET_CPU_FEATURE(CPUFeature_TSC); }
269 { 294 {
270 /* Mark start of this instruction as a valid target for jump. */ 295 /* Mark start of this instruction as a valid target for jump. */
271 MarkValidJumpTarget(instruction_begin - data, valid_targets); 296 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
272 297
273 /* Call user-supplied callback. */ 298 /* Call user-supplied callback. */
274 instruction_end = current_position + 1; 299 instruction_end = current_position + 1;
275 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 300 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
276 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 301 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
277 result &= user_callback(instruction_begin, instruction_end, 302 result &= user_callback(instruction_begin, instruction_end,
278 instruction_info_collected, callback_data); 303 instruction_info_collected, callback_data);
279 } 304 }
280 305
281 /* On successful match the instruction_begin must point to the next byte 306 /*
282 * to be able to report the new offset as the start of instruction 307 * We may set instruction_begin at the first byte of the instruction instead
283 * causing error. */ 308 * of here but in the case of incorrect one byte instructions user callback
309 * may be called before instruction_begin is set.
310 */
284 instruction_begin = instruction_end; 311 instruction_begin = instruction_end;
285 312
286 /* Clear variables (well, one variable currently). */ 313 /* Clear variables (well, one variable currently). */
287 instruction_info_collected = 0; 314 instruction_info_collected = 0;
288 } 315 }
289 » goto st233; 316 » goto st218;
290 tr35: 317 tr35:
291 { SET_CPU_FEATURE(CPUFeature_MMX); } 318 { SET_CPU_FEATURE(CPUFeature_MMX); }
292 { 319 {
293 /* Mark start of this instruction as a valid target for jump. */ 320 /* Mark start of this instruction as a valid target for jump. */
294 MarkValidJumpTarget(instruction_begin - data, valid_targets); 321 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
295 322
296 /* Call user-supplied callback. */ 323 /* Call user-supplied callback. */
297 instruction_end = current_position + 1; 324 instruction_end = current_position + 1;
298 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 325 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
299 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 326 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
300 result &= user_callback(instruction_begin, instruction_end, 327 result &= user_callback(instruction_begin, instruction_end,
301 instruction_info_collected, callback_data); 328 instruction_info_collected, callback_data);
302 } 329 }
303 330
304 /* On successful match the instruction_begin must point to the next byte 331 /*
305 * to be able to report the new offset as the start of instruction 332 * We may set instruction_begin at the first byte of the instruction instead
306 * causing error. */ 333 * of here but in the case of incorrect one byte instructions user callback
334 * may be called before instruction_begin is set.
335 */
307 instruction_begin = instruction_end; 336 instruction_begin = instruction_end;
308 337
309 /* Clear variables (well, one variable currently). */ 338 /* Clear variables (well, one variable currently). */
310 instruction_info_collected = 0; 339 instruction_info_collected = 0;
311 } 340 }
312 » goto st233; 341 » goto st218;
313 tr47: 342 tr47:
314 { SET_CPU_FEATURE(CPUFeature_MON); } 343 { SET_CPU_FEATURE(CPUFeature_MON); }
315 { 344 {
316 /* Mark start of this instruction as a valid target for jump. */ 345 /* Mark start of this instruction as a valid target for jump. */
317 MarkValidJumpTarget(instruction_begin - data, valid_targets); 346 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
318 347
319 /* Call user-supplied callback. */ 348 /* Call user-supplied callback. */
320 instruction_end = current_position + 1; 349 instruction_end = current_position + 1;
321 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 350 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
322 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 351 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
323 result &= user_callback(instruction_begin, instruction_end, 352 result &= user_callback(instruction_begin, instruction_end,
324 instruction_info_collected, callback_data); 353 instruction_info_collected, callback_data);
325 } 354 }
326 355
327 /* On successful match the instruction_begin must point to the next byte 356 /*
328 * to be able to report the new offset as the start of instruction 357 * We may set instruction_begin at the first byte of the instruction instead
329 * causing error. */ 358 * of here but in the case of incorrect one byte instructions user callback
359 * may be called before instruction_begin is set.
360 */
330 instruction_begin = instruction_end; 361 instruction_begin = instruction_end;
331 362
332 /* Clear variables (well, one variable currently). */ 363 /* Clear variables (well, one variable currently). */
333 instruction_info_collected = 0; 364 instruction_info_collected = 0;
334 } 365 }
335 » goto st233; 366 » goto st218;
336 tr48: 367 tr48:
337 { SET_CPU_FEATURE(CPUFeature_FXSR); } 368 { SET_CPU_FEATURE(CPUFeature_FXSR); }
338 { 369 {
339 /* Mark start of this instruction as a valid target for jump. */ 370 /* Mark start of this instruction as a valid target for jump. */
340 MarkValidJumpTarget(instruction_begin - data, valid_targets); 371 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
341 372
342 /* Call user-supplied callback. */ 373 /* Call user-supplied callback. */
343 instruction_end = current_position + 1; 374 instruction_end = current_position + 1;
344 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 375 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
345 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 376 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
346 result &= user_callback(instruction_begin, instruction_end, 377 result &= user_callback(instruction_begin, instruction_end,
347 instruction_info_collected, callback_data); 378 instruction_info_collected, callback_data);
348 } 379 }
349 380
350 /* On successful match the instruction_begin must point to the next byte 381 /*
351 * to be able to report the new offset as the start of instruction 382 * We may set instruction_begin at the first byte of the instruction instead
352 * causing error. */ 383 * of here but in the case of incorrect one byte instructions user callback
384 * may be called before instruction_begin is set.
385 */
353 instruction_begin = instruction_end; 386 instruction_begin = instruction_end;
354 387
355 /* Clear variables (well, one variable currently). */ 388 /* Clear variables (well, one variable currently). */
356 instruction_info_collected = 0; 389 instruction_info_collected = 0;
357 } 390 }
358 » goto st233; 391 » goto st218;
359 tr49: 392 tr49:
360 { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); } 393 { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); }
361 { 394 {
362 /* Mark start of this instruction as a valid target for jump. */ 395 /* Mark start of this instruction as a valid target for jump. */
363 MarkValidJumpTarget(instruction_begin - data, valid_targets); 396 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
364 397
365 /* Call user-supplied callback. */ 398 /* Call user-supplied callback. */
366 instruction_end = current_position + 1; 399 instruction_end = current_position + 1;
367 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 400 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
368 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 401 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
369 result &= user_callback(instruction_begin, instruction_end, 402 result &= user_callback(instruction_begin, instruction_end,
370 instruction_info_collected, callback_data); 403 instruction_info_collected, callback_data);
371 } 404 }
372 405
373 /* On successful match the instruction_begin must point to the next byte 406 /*
374 * to be able to report the new offset as the start of instruction 407 * We may set instruction_begin at the first byte of the instruction instead
375 * causing error. */ 408 * of here but in the case of incorrect one byte instructions user callback
409 * may be called before instruction_begin is set.
410 */
376 instruction_begin = instruction_end; 411 instruction_begin = instruction_end;
377 412
378 /* Clear variables (well, one variable currently). */ 413 /* Clear variables (well, one variable currently). */
379 instruction_info_collected = 0; 414 instruction_info_collected = 0;
380 } 415 }
381 » goto st233; 416 » goto st218;
382 tr61: 417 tr61:
383 { 418 {
384 instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE; 419 instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
385 } 420 }
386 { SET_CPU_FEATURE(CPUFeature_E3DNOW); } 421 { SET_CPU_FEATURE(CPUFeature_E3DNOW); }
387 { 422 {
388 /* Mark start of this instruction as a valid target for jump. */ 423 /* Mark start of this instruction as a valid target for jump. */
389 MarkValidJumpTarget(instruction_begin - data, valid_targets); 424 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
390 425
391 /* Call user-supplied callback. */ 426 /* Call user-supplied callback. */
392 instruction_end = current_position + 1; 427 instruction_end = current_position + 1;
393 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 428 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
394 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 429 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
395 result &= user_callback(instruction_begin, instruction_end, 430 result &= user_callback(instruction_begin, instruction_end,
396 instruction_info_collected, callback_data); 431 instruction_info_collected, callback_data);
397 } 432 }
398 433
399 /* On successful match the instruction_begin must point to the next byte 434 /*
400 * to be able to report the new offset as the start of instruction 435 * We may set instruction_begin at the first byte of the instruction instead
401 * causing error. */ 436 * of here but in the case of incorrect one byte instructions user callback
437 * may be called before instruction_begin is set.
438 */
402 instruction_begin = instruction_end; 439 instruction_begin = instruction_end;
403 440
404 /* Clear variables (well, one variable currently). */ 441 /* Clear variables (well, one variable currently). */
405 instruction_info_collected = 0; 442 instruction_info_collected = 0;
406 } 443 }
407 » goto st233; 444 » goto st218;
408 tr62: 445 tr62:
409 { 446 {
410 instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE; 447 instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
411 } 448 }
412 { SET_CPU_FEATURE(CPUFeature_3DNOW); } 449 { SET_CPU_FEATURE(CPUFeature_3DNOW); }
413 { 450 {
414 /* Mark start of this instruction as a valid target for jump. */ 451 /* Mark start of this instruction as a valid target for jump. */
415 MarkValidJumpTarget(instruction_begin - data, valid_targets); 452 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
416 453
417 /* Call user-supplied callback. */ 454 /* Call user-supplied callback. */
418 instruction_end = current_position + 1; 455 instruction_end = current_position + 1;
419 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 456 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
420 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 457 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
421 result &= user_callback(instruction_begin, instruction_end, 458 result &= user_callback(instruction_begin, instruction_end,
422 instruction_info_collected, callback_data); 459 instruction_info_collected, callback_data);
423 } 460 }
424 461
425 /* On successful match the instruction_begin must point to the next byte 462 /*
426 * to be able to report the new offset as the start of instruction 463 * We may set instruction_begin at the first byte of the instruction instead
427 * causing error. */ 464 * of here but in the case of incorrect one byte instructions user callback
465 * may be called before instruction_begin is set.
466 */
428 instruction_begin = instruction_end; 467 instruction_begin = instruction_end;
429 468
430 /* Clear variables (well, one variable currently). */ 469 /* Clear variables (well, one variable currently). */
431 instruction_info_collected = 0; 470 instruction_info_collected = 0;
432 } 471 }
433 » goto st233; 472 » goto st218;
434 tr68: 473 tr68:
435 { SET_CPU_FEATURE(CPUFeature_SSE); } 474 { SET_CPU_FEATURE(CPUFeature_SSE); }
436 { 475 {
437 /* Mark start of this instruction as a valid target for jump. */ 476 /* Mark start of this instruction as a valid target for jump. */
438 MarkValidJumpTarget(instruction_begin - data, valid_targets); 477 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
439 478
440 /* Call user-supplied callback. */ 479 /* Call user-supplied callback. */
441 instruction_end = current_position + 1; 480 instruction_end = current_position + 1;
442 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 481 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
443 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 482 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
444 result &= user_callback(instruction_begin, instruction_end, 483 result &= user_callback(instruction_begin, instruction_end,
445 instruction_info_collected, callback_data); 484 instruction_info_collected, callback_data);
446 } 485 }
447 486
448 /* On successful match the instruction_begin must point to the next byte 487 /*
449 * to be able to report the new offset as the start of instruction 488 * We may set instruction_begin at the first byte of the instruction instead
450 * causing error. */ 489 * of here but in the case of incorrect one byte instructions user callback
490 * may be called before instruction_begin is set.
491 */
451 instruction_begin = instruction_end; 492 instruction_begin = instruction_end;
452 493
453 /* Clear variables (well, one variable currently). */ 494 /* Clear variables (well, one variable currently). */
454 instruction_info_collected = 0; 495 instruction_info_collected = 0;
455 } 496 }
456 » goto st233; 497 » goto st218;
457 tr74: 498 tr74:
458 { SET_CPU_FEATURE(CPUFeature_SSE2); } 499 { SET_CPU_FEATURE(CPUFeature_SSE2); }
459 { 500 {
460 /* Mark start of this instruction as a valid target for jump. */ 501 /* Mark start of this instruction as a valid target for jump. */
461 MarkValidJumpTarget(instruction_begin - data, valid_targets); 502 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
462 503
463 /* Call user-supplied callback. */ 504 /* Call user-supplied callback. */
464 instruction_end = current_position + 1; 505 instruction_end = current_position + 1;
465 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 506 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
466 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 507 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
467 result &= user_callback(instruction_begin, instruction_end, 508 result &= user_callback(instruction_begin, instruction_end,
468 instruction_info_collected, callback_data); 509 instruction_info_collected, callback_data);
469 } 510 }
470 511
471 /* On successful match the instruction_begin must point to the next byte 512 /*
472 * to be able to report the new offset as the start of instruction 513 * We may set instruction_begin at the first byte of the instruction instead
473 * causing error. */ 514 * of here but in the case of incorrect one byte instructions user callback
515 * may be called before instruction_begin is set.
516 */
474 instruction_begin = instruction_end; 517 instruction_begin = instruction_end;
475 518
476 /* Clear variables (well, one variable currently). */ 519 /* Clear variables (well, one variable currently). */
477 instruction_info_collected = 0; 520 instruction_info_collected = 0;
478 } 521 }
479 » goto st233; 522 » goto st218;
480 tr82: 523 tr82:
481 { SET_CPU_FEATURE(CPUFeature_SSSE3); } 524 { SET_CPU_FEATURE(CPUFeature_SSSE3); }
482 { 525 {
483 /* Mark start of this instruction as a valid target for jump. */ 526 /* Mark start of this instruction as a valid target for jump. */
484 MarkValidJumpTarget(instruction_begin - data, valid_targets); 527 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
485 528
486 /* Call user-supplied callback. */ 529 /* Call user-supplied callback. */
487 instruction_end = current_position + 1; 530 instruction_end = current_position + 1;
488 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 531 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
489 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 532 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
490 result &= user_callback(instruction_begin, instruction_end, 533 result &= user_callback(instruction_begin, instruction_end,
491 instruction_info_collected, callback_data); 534 instruction_info_collected, callback_data);
492 } 535 }
493 536
494 /* On successful match the instruction_begin must point to the next byte 537 /*
495 * to be able to report the new offset as the start of instruction 538 * We may set instruction_begin at the first byte of the instruction instead
496 * causing error. */ 539 * of here but in the case of incorrect one byte instructions user callback
540 * may be called before instruction_begin is set.
541 */
497 instruction_begin = instruction_end; 542 instruction_begin = instruction_end;
498 543
499 /* Clear variables (well, one variable currently). */ 544 /* Clear variables (well, one variable currently). */
500 instruction_info_collected = 0; 545 instruction_info_collected = 0;
501 } 546 }
502 » goto st233; 547 » goto st218;
503 tr93: 548 tr93:
504 { SET_CPU_FEATURE(CPUFeature_MOVBE); } 549 { SET_CPU_FEATURE(CPUFeature_MOVBE); }
505 { 550 {
506 /* Mark start of this instruction as a valid target for jump. */ 551 /* Mark start of this instruction as a valid target for jump. */
507 MarkValidJumpTarget(instruction_begin - data, valid_targets); 552 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
508 553
509 /* Call user-supplied callback. */ 554 /* Call user-supplied callback. */
510 instruction_end = current_position + 1; 555 instruction_end = current_position + 1;
511 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 556 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
512 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 557 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
513 result &= user_callback(instruction_begin, instruction_end, 558 result &= user_callback(instruction_begin, instruction_end,
514 instruction_info_collected, callback_data); 559 instruction_info_collected, callback_data);
515 } 560 }
516 561
517 /* On successful match the instruction_begin must point to the next byte 562 /*
518 * to be able to report the new offset as the start of instruction 563 * We may set instruction_begin at the first byte of the instruction instead
519 * causing error. */ 564 * of here but in the case of incorrect one byte instructions user callback
565 * may be called before instruction_begin is set.
566 */
520 instruction_begin = instruction_end; 567 instruction_begin = instruction_end;
521 568
522 /* Clear variables (well, one variable currently). */ 569 /* Clear variables (well, one variable currently). */
523 instruction_info_collected = 0; 570 instruction_info_collected = 0;
524 } 571 }
525 » goto st233; 572 » goto st218;
526 tr114: 573 tr114:
527 { SET_CPU_FEATURE(CPUFeature_CMOV); } 574 { SET_CPU_FEATURE(CPUFeature_CMOV); }
528 { 575 {
529 /* Mark start of this instruction as a valid target for jump. */ 576 /* Mark start of this instruction as a valid target for jump. */
530 MarkValidJumpTarget(instruction_begin - data, valid_targets); 577 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
531 578
532 /* Call user-supplied callback. */ 579 /* Call user-supplied callback. */
533 instruction_end = current_position + 1; 580 instruction_end = current_position + 1;
534 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 581 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
535 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 582 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
536 result &= user_callback(instruction_begin, instruction_end, 583 result &= user_callback(instruction_begin, instruction_end,
537 instruction_info_collected, callback_data); 584 instruction_info_collected, callback_data);
538 } 585 }
539 586
540 /* On successful match the instruction_begin must point to the next byte 587 /*
541 * to be able to report the new offset as the start of instruction 588 * We may set instruction_begin at the first byte of the instruction instead
542 * causing error. */ 589 * of here but in the case of incorrect one byte instructions user callback
590 * may be called before instruction_begin is set.
591 */
543 instruction_begin = instruction_end; 592 instruction_begin = instruction_end;
544 593
545 /* Clear variables (well, one variable currently). */ 594 /* Clear variables (well, one variable currently). */
546 instruction_info_collected = 0; 595 instruction_info_collected = 0;
547 } 596 }
548 » goto st233; 597 » goto st218;
549 tr130: 598 tr130:
550 { 599 {
551 Rel32Operand(current_position + 1, data, jump_dests, size, 600 Rel32Operand(current_position + 1, codeblock, jump_dests, size,
552 &instruction_info_collected); 601 &instruction_info_collected);
553 } 602 }
554 {} 603 {}
555 { 604 {
556 /* Mark start of this instruction as a valid target for jump. */ 605 /* Mark start of this instruction as a valid target for jump. */
557 MarkValidJumpTarget(instruction_begin - data, valid_targets); 606 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
558 607
559 /* Call user-supplied callback. */ 608 /* Call user-supplied callback. */
560 instruction_end = current_position + 1; 609 instruction_end = current_position + 1;
561 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 610 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
562 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 611 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
563 result &= user_callback(instruction_begin, instruction_end, 612 result &= user_callback(instruction_begin, instruction_end,
564 instruction_info_collected, callback_data); 613 instruction_info_collected, callback_data);
565 } 614 }
566 615
567 /* On successful match the instruction_begin must point to the next byte 616 /*
568 * to be able to report the new offset as the start of instruction 617 * We may set instruction_begin at the first byte of the instruction instead
569 * causing error. */ 618 * of here but in the case of incorrect one byte instructions user callback
619 * may be called before instruction_begin is set.
620 */
570 instruction_begin = instruction_end; 621 instruction_begin = instruction_end;
571 622
572 /* Clear variables (well, one variable currently). */ 623 /* Clear variables (well, one variable currently). */
573 instruction_info_collected = 0; 624 instruction_info_collected = 0;
574 } 625 }
575 » goto st233; 626 » goto st218;
576 tr136: 627 tr136:
577 { SET_CPU_FEATURE(CPUFeature_CLFLUSH); } 628 { SET_CPU_FEATURE(CPUFeature_CLFLUSH); }
578 { 629 {
579 /* Mark start of this instruction as a valid target for jump. */ 630 /* Mark start of this instruction as a valid target for jump. */
580 MarkValidJumpTarget(instruction_begin - data, valid_targets); 631 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
581 632
582 /* Call user-supplied callback. */ 633 /* Call user-supplied callback. */
583 instruction_end = current_position + 1; 634 instruction_end = current_position + 1;
584 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 635 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
585 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 636 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
586 result &= user_callback(instruction_begin, instruction_end, 637 result &= user_callback(instruction_begin, instruction_end,
587 instruction_info_collected, callback_data); 638 instruction_info_collected, callback_data);
588 } 639 }
589 640
590 /* On successful match the instruction_begin must point to the next byte 641 /*
591 * to be able to report the new offset as the start of instruction 642 * We may set instruction_begin at the first byte of the instruction instead
592 * causing error. */ 643 * of here but in the case of incorrect one byte instructions user callback
644 * may be called before instruction_begin is set.
645 */
593 instruction_begin = instruction_end; 646 instruction_begin = instruction_end;
594 647
595 /* Clear variables (well, one variable currently). */ 648 /* Clear variables (well, one variable currently). */
596 instruction_info_collected = 0; 649 instruction_info_collected = 0;
597 } 650 }
598 » goto st233; 651 » goto st218;
599 tr145: 652 tr145:
600 { SET_CPU_FEATURE(CPUFeature_EMMXSSE); } 653 { SET_CPU_FEATURE(CPUFeature_EMMXSSE); }
601 { 654 {
602 /* Mark start of this instruction as a valid target for jump. */ 655 /* Mark start of this instruction as a valid target for jump. */
603 MarkValidJumpTarget(instruction_begin - data, valid_targets); 656 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
604 657
605 /* Call user-supplied callback. */ 658 /* Call user-supplied callback. */
606 instruction_end = current_position + 1; 659 instruction_end = current_position + 1;
607 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 660 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
608 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 661 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
609 result &= user_callback(instruction_begin, instruction_end, 662 result &= user_callback(instruction_begin, instruction_end,
610 instruction_info_collected, callback_data); 663 instruction_info_collected, callback_data);
611 } 664 }
612 665
613 /* On successful match the instruction_begin must point to the next byte 666 /*
614 * to be able to report the new offset as the start of instruction 667 * We may set instruction_begin at the first byte of the instruction instead
615 * causing error. */ 668 * of here but in the case of incorrect one byte instructions user callback
669 * may be called before instruction_begin is set.
670 */
616 instruction_begin = instruction_end; 671 instruction_begin = instruction_end;
617 672
618 /* Clear variables (well, one variable currently). */ 673 /* Clear variables (well, one variable currently). */
619 instruction_info_collected = 0; 674 instruction_info_collected = 0;
620 } 675 }
621 » goto st233; 676 » goto st218;
622 tr152: 677 tr152:
623 { SET_CPU_FEATURE(CPUFeature_CX8); } 678 { SET_CPU_FEATURE(CPUFeature_CX8); }
624 { 679 {
625 /* Mark start of this instruction as a valid target for jump. */ 680 /* Mark start of this instruction as a valid target for jump. */
626 MarkValidJumpTarget(instruction_begin - data, valid_targets); 681 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
627 682
628 /* Call user-supplied callback. */ 683 /* Call user-supplied callback. */
629 instruction_end = current_position + 1; 684 instruction_end = current_position + 1;
630 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 685 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
631 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 686 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
632 result &= user_callback(instruction_begin, instruction_end, 687 result &= user_callback(instruction_begin, instruction_end,
633 instruction_info_collected, callback_data); 688 instruction_info_collected, callback_data);
634 } 689 }
635 690
636 /* On successful match the instruction_begin must point to the next byte 691 /*
637 * to be able to report the new offset as the start of instruction 692 * We may set instruction_begin at the first byte of the instruction instead
638 * causing error. */ 693 * of here but in the case of incorrect one byte instructions user callback
694 * may be called before instruction_begin is set.
695 */
639 instruction_begin = instruction_end; 696 instruction_begin = instruction_end;
640 697
641 /* Clear variables (well, one variable currently). */ 698 /* Clear variables (well, one variable currently). */
642 instruction_info_collected = 0; 699 instruction_info_collected = 0;
643 } 700 }
644 » goto st233; 701 » goto st218;
645 tr165: 702 tr165:
646 { 703 {
647 Rel8Operand(current_position + 1, data, jump_dests, size, 704 Rel8Operand(current_position + 1, codeblock, jump_dests, size,
648 &instruction_info_collected); 705 &instruction_info_collected);
649 } 706 }
650 {} 707 {}
651 { 708 {
652 /* Mark start of this instruction as a valid target for jump. */ 709 /* Mark start of this instruction as a valid target for jump. */
653 MarkValidJumpTarget(instruction_begin - data, valid_targets); 710 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
654 711
655 /* Call user-supplied callback. */ 712 /* Call user-supplied callback. */
656 instruction_end = current_position + 1; 713 instruction_end = current_position + 1;
657 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 714 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
658 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 715 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
659 result &= user_callback(instruction_begin, instruction_end, 716 result &= user_callback(instruction_begin, instruction_end,
660 instruction_info_collected, callback_data); 717 instruction_info_collected, callback_data);
661 } 718 }
662 719
663 /* On successful match the instruction_begin must point to the next byte 720 /*
664 * to be able to report the new offset as the start of instruction 721 * We may set instruction_begin at the first byte of the instruction instead
665 * causing error. */ 722 * of here but in the case of incorrect one byte instructions user callback
723 * may be called before instruction_begin is set.
724 */
666 instruction_begin = instruction_end; 725 instruction_begin = instruction_end;
667 726
668 /* Clear variables (well, one variable currently). */ 727 /* Clear variables (well, one variable currently). */
669 instruction_info_collected = 0; 728 instruction_info_collected = 0;
670 } 729 }
671 » goto st233; 730 » goto st218;
672 tr186: 731 tr186:
673 { 732 {
674 SET_IMM_TYPE(IMM16); 733 SET_IMMEDIATE_FORMAT(IMM16);
675 SET_IMM_PTR(current_position - 1); 734 SET_IMMEDIATE_POINTER(current_position - 1);
676 } 735 }
677 {} 736 {}
678 { 737 {
679 /* Mark start of this instruction as a valid target for jump. */ 738 /* Mark start of this instruction as a valid target for jump. */
680 MarkValidJumpTarget(instruction_begin - data, valid_targets); 739 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
681 740
682 /* Call user-supplied callback. */ 741 /* Call user-supplied callback. */
683 instruction_end = current_position + 1; 742 instruction_end = current_position + 1;
684 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 743 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
685 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 744 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
686 result &= user_callback(instruction_begin, instruction_end, 745 result &= user_callback(instruction_begin, instruction_end,
687 instruction_info_collected, callback_data); 746 instruction_info_collected, callback_data);
688 } 747 }
689 748
690 /* On successful match the instruction_begin must point to the next byte 749 /*
691 * to be able to report the new offset as the start of instruction 750 * We may set instruction_begin at the first byte of the instruction instead
692 * causing error. */ 751 * of here but in the case of incorrect one byte instructions user callback
752 * may be called before instruction_begin is set.
753 */
693 instruction_begin = instruction_end; 754 instruction_begin = instruction_end;
694 755
695 /* Clear variables (well, one variable currently). */ 756 /* Clear variables (well, one variable currently). */
696 instruction_info_collected = 0; 757 instruction_info_collected = 0;
697 } 758 }
698 » goto st233; 759 » goto st218;
699 tr203: 760 tr203:
700 { SET_CPU_FEATURE(CPUFeature_SSE41); } 761 { SET_CPU_FEATURE(CPUFeature_SSE41); }
701 { 762 {
702 /* Mark start of this instruction as a valid target for jump. */ 763 /* Mark start of this instruction as a valid target for jump. */
703 MarkValidJumpTarget(instruction_begin - data, valid_targets); 764 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
704 765
705 /* Call user-supplied callback. */ 766 /* Call user-supplied callback. */
706 instruction_end = current_position + 1; 767 instruction_end = current_position + 1;
707 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 768 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
708 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 769 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
709 result &= user_callback(instruction_begin, instruction_end, 770 result &= user_callback(instruction_begin, instruction_end,
710 instruction_info_collected, callback_data); 771 instruction_info_collected, callback_data);
711 } 772 }
712 773
713 /* On successful match the instruction_begin must point to the next byte 774 /*
714 * to be able to report the new offset as the start of instruction 775 * We may set instruction_begin at the first byte of the instruction instead
715 * causing error. */ 776 * of here but in the case of incorrect one byte instructions user callback
777 * may be called before instruction_begin is set.
778 */
716 instruction_begin = instruction_end; 779 instruction_begin = instruction_end;
717 780
718 /* Clear variables (well, one variable currently). */ 781 /* Clear variables (well, one variable currently). */
719 instruction_info_collected = 0; 782 instruction_info_collected = 0;
720 } 783 }
721 » goto st233; 784 » goto st218;
722 tr209: 785 tr209:
723 { SET_CPU_FEATURE(CPUFeature_SSE42); } 786 { SET_CPU_FEATURE(CPUFeature_SSE42); }
724 { 787 {
725 /* Mark start of this instruction as a valid target for jump. */ 788 /* Mark start of this instruction as a valid target for jump. */
726 MarkValidJumpTarget(instruction_begin - data, valid_targets); 789 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
727 790
728 /* Call user-supplied callback. */ 791 /* Call user-supplied callback. */
729 instruction_end = current_position + 1; 792 instruction_end = current_position + 1;
730 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 793 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
731 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 794 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
732 result &= user_callback(instruction_begin, instruction_end, 795 result &= user_callback(instruction_begin, instruction_end,
733 instruction_info_collected, callback_data); 796 instruction_info_collected, callback_data);
734 } 797 }
735 798
736 /* On successful match the instruction_begin must point to the next byte 799 /*
737 * to be able to report the new offset as the start of instruction 800 * We may set instruction_begin at the first byte of the instruction instead
738 * causing error. */ 801 * of here but in the case of incorrect one byte instructions user callback
802 * may be called before instruction_begin is set.
803 */
739 instruction_begin = instruction_end; 804 instruction_begin = instruction_end;
740 805
741 /* Clear variables (well, one variable currently). */ 806 /* Clear variables (well, one variable currently). */
742 instruction_info_collected = 0; 807 instruction_info_collected = 0;
743 } 808 }
744 » goto st233; 809 » goto st218;
745 tr215: 810 tr215:
746 { SET_CPU_FEATURE(CPUFeature_AES); } 811 { SET_CPU_FEATURE(CPUFeature_AES); }
747 { 812 {
748 /* Mark start of this instruction as a valid target for jump. */ 813 /* Mark start of this instruction as a valid target for jump. */
749 MarkValidJumpTarget(instruction_begin - data, valid_targets); 814 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
750 815
751 /* Call user-supplied callback. */ 816 /* Call user-supplied callback. */
752 instruction_end = current_position + 1; 817 instruction_end = current_position + 1;
753 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 818 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
754 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 819 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
755 result &= user_callback(instruction_begin, instruction_end, 820 result &= user_callback(instruction_begin, instruction_end,
756 instruction_info_collected, callback_data); 821 instruction_info_collected, callback_data);
757 } 822 }
758 823
759 /* On successful match the instruction_begin must point to the next byte 824 /*
760 * to be able to report the new offset as the start of instruction 825 * We may set instruction_begin at the first byte of the instruction instead
761 * causing error. */ 826 * of here but in the case of incorrect one byte instructions user callback
827 * may be called before instruction_begin is set.
828 */
762 instruction_begin = instruction_end; 829 instruction_begin = instruction_end;
763 830
764 /* Clear variables (well, one variable currently). */ 831 /* Clear variables (well, one variable currently). */
765 instruction_info_collected = 0; 832 instruction_info_collected = 0;
766 } 833 }
767 » goto st233; 834 » goto st218;
768 tr255: 835 tr255:
769 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 836 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
770 { 837 {
771 /* Mark start of this instruction as a valid target for jump. */ 838 /* Mark start of this instruction as a valid target for jump. */
772 MarkValidJumpTarget(instruction_begin - data, valid_targets); 839 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
773 840
774 /* Call user-supplied callback. */ 841 /* Call user-supplied callback. */
775 instruction_end = current_position + 1; 842 instruction_end = current_position + 1;
776 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 843 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
777 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 844 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
778 result &= user_callback(instruction_begin, instruction_end, 845 result &= user_callback(instruction_begin, instruction_end,
779 instruction_info_collected, callback_data); 846 instruction_info_collected, callback_data);
780 } 847 }
781 848
782 /* On successful match the instruction_begin must point to the next byte 849 /*
783 * to be able to report the new offset as the start of instruction 850 * We may set instruction_begin at the first byte of the instruction instead
784 * causing error. */ 851 * of here but in the case of incorrect one byte instructions user callback
852 * may be called before instruction_begin is set.
853 */
785 instruction_begin = instruction_end; 854 instruction_begin = instruction_end;
786 855
787 /* Clear variables (well, one variable currently). */ 856 /* Clear variables (well, one variable currently). */
788 instruction_info_collected = 0; 857 instruction_info_collected = 0;
789 } 858 }
790 » goto st233; 859 » goto st218;
791 tr256: 860 tr256:
792 { SET_CPU_FEATURE(CPUFeature_SSE3); } 861 { SET_CPU_FEATURE(CPUFeature_SSE3); }
793 { 862 {
794 /* Mark start of this instruction as a valid target for jump. */ 863 /* Mark start of this instruction as a valid target for jump. */
795 MarkValidJumpTarget(instruction_begin - data, valid_targets); 864 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
796 865
797 /* Call user-supplied callback. */ 866 /* Call user-supplied callback. */
798 instruction_end = current_position + 1; 867 instruction_end = current_position + 1;
799 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 868 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
800 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 869 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
801 result &= user_callback(instruction_begin, instruction_end, 870 result &= user_callback(instruction_begin, instruction_end,
802 instruction_info_collected, callback_data); 871 instruction_info_collected, callback_data);
803 } 872 }
804 873
805 /* On successful match the instruction_begin must point to the next byte 874 /*
806 * to be able to report the new offset as the start of instruction 875 * We may set instruction_begin at the first byte of the instruction instead
807 * causing error. */ 876 * of here but in the case of incorrect one byte instructions user callback
877 * may be called before instruction_begin is set.
878 */
808 instruction_begin = instruction_end; 879 instruction_begin = instruction_end;
809 880
810 /* Clear variables (well, one variable currently). */ 881 /* Clear variables (well, one variable currently). */
811 instruction_info_collected = 0; 882 instruction_info_collected = 0;
812 } 883 }
813 » goto st233; 884 » goto st218;
814 tr310: 885 tr310:
815 { SET_CPU_FEATURE(CPUFeature_TBM); } 886 { SET_CPU_FEATURE(CPUFeature_TBM); }
816 { 887 {
817 /* Mark start of this instruction as a valid target for jump. */ 888 /* Mark start of this instruction as a valid target for jump. */
818 MarkValidJumpTarget(instruction_begin - data, valid_targets); 889 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
819 890
820 /* Call user-supplied callback. */ 891 /* Call user-supplied callback. */
821 instruction_end = current_position + 1; 892 instruction_end = current_position + 1;
822 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 893 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
823 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 894 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
824 result &= user_callback(instruction_begin, instruction_end, 895 result &= user_callback(instruction_begin, instruction_end,
825 instruction_info_collected, callback_data); 896 instruction_info_collected, callback_data);
826 } 897 }
827 898
828 /* On successful match the instruction_begin must point to the next byte 899 /*
829 * to be able to report the new offset as the start of instruction 900 * We may set instruction_begin at the first byte of the instruction instead
830 * causing error. */ 901 * of here but in the case of incorrect one byte instructions user callback
902 * may be called before instruction_begin is set.
903 */
831 instruction_begin = instruction_end; 904 instruction_begin = instruction_end;
832 905
833 /* Clear variables (well, one variable currently). */ 906 /* Clear variables (well, one variable currently). */
834 instruction_info_collected = 0; 907 instruction_info_collected = 0;
835 } 908 }
836 » goto st233; 909 » goto st218;
837 tr317: 910 tr317:
838 { SET_CPU_FEATURE(CPUFeature_LWP); } 911 { SET_CPU_FEATURE(CPUFeature_LWP); }
839 { 912 {
840 /* Mark start of this instruction as a valid target for jump. */ 913 /* Mark start of this instruction as a valid target for jump. */
841 MarkValidJumpTarget(instruction_begin - data, valid_targets); 914 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
842 915
843 /* Call user-supplied callback. */ 916 /* Call user-supplied callback. */
844 instruction_end = current_position + 1; 917 instruction_end = current_position + 1;
845 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 918 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
846 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 919 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
847 result &= user_callback(instruction_begin, instruction_end, 920 result &= user_callback(instruction_begin, instruction_end,
848 instruction_info_collected, callback_data); 921 instruction_info_collected, callback_data);
849 } 922 }
850 923
851 /* On successful match the instruction_begin must point to the next byte 924 /*
852 * to be able to report the new offset as the start of instruction 925 * We may set instruction_begin at the first byte of the instruction instead
853 * causing error. */ 926 * of here but in the case of incorrect one byte instructions user callback
927 * may be called before instruction_begin is set.
928 */
854 instruction_begin = instruction_end; 929 instruction_begin = instruction_end;
855 930
856 /* Clear variables (well, one variable currently). */ 931 /* Clear variables (well, one variable currently). */
857 instruction_info_collected = 0; 932 instruction_info_collected = 0;
858 } 933 }
859 » goto st233; 934 » goto st218;
860 tr344: 935 tr342:
861 { SET_CPU_FEATURE(CPUFeature_BMI1); } 936 { SET_CPU_FEATURE(CPUFeature_BMI1); }
862 { 937 {
863 /* Mark start of this instruction as a valid target for jump. */ 938 /* Mark start of this instruction as a valid target for jump. */
864 MarkValidJumpTarget(instruction_begin - data, valid_targets); 939 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
865 940
866 /* Call user-supplied callback. */ 941 /* Call user-supplied callback. */
867 instruction_end = current_position + 1; 942 instruction_end = current_position + 1;
868 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 943 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
869 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 944 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
870 result &= user_callback(instruction_begin, instruction_end, 945 result &= user_callback(instruction_begin, instruction_end,
871 instruction_info_collected, callback_data); 946 instruction_info_collected, callback_data);
872 } 947 }
873 948
874 /* On successful match the instruction_begin must point to the next byte 949 /*
875 * to be able to report the new offset as the start of instruction 950 * We may set instruction_begin at the first byte of the instruction instead
876 * causing error. */ 951 * of here but in the case of incorrect one byte instructions user callback
952 * may be called before instruction_begin is set.
953 */
877 instruction_begin = instruction_end; 954 instruction_begin = instruction_end;
878 955
879 /* Clear variables (well, one variable currently). */ 956 /* Clear variables (well, one variable currently). */
880 instruction_info_collected = 0; 957 instruction_info_collected = 0;
881 } 958 }
882 » goto st233; 959 » goto st218;
883 tr352: 960 tr349:
884 » { SET_CPU_FEATURE(CPUFeature_FMA); } 961 » { SET_CPU_FEATURE(CPUFeature_AESAVX); }
885 { 962 {
886 /* Mark start of this instruction as a valid target for jump. */ 963 /* Mark start of this instruction as a valid target for jump. */
887 MarkValidJumpTarget(instruction_begin - data, valid_targets); 964 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
888 965
889 /* Call user-supplied callback. */ 966 /* Call user-supplied callback. */
890 instruction_end = current_position + 1; 967 instruction_end = current_position + 1;
891 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
892 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
893 result &= user_callback(instruction_begin, instruction_end,
894 instruction_info_collected, callback_data);
895 }
896
897 /* On successful match the instruction_begin must point to the next byte
898 * to be able to report the new offset as the start of instruction
899 * causing error. */
900 instruction_begin = instruction_end;
901
902 /* Clear variables (well, one variable currently). */
903 instruction_info_collected = 0;
904 }
905 goto st233;
906 tr358:
907 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
908 {
909 /* Mark start of this instruction as a valid target for jump. */
910 MarkValidJumpTarget(instruction_begin - data, valid_targets);
911
912 /* Call user-supplied callback. */
913 instruction_end = current_position + 1;
914 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 968 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
915 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 969 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
916 result &= user_callback(instruction_begin, instruction_end, 970 result &= user_callback(instruction_begin, instruction_end,
917 instruction_info_collected, callback_data); 971 instruction_info_collected, callback_data);
918 } 972 }
919 973
920 /* On successful match the instruction_begin must point to the next byte 974 /*
921 * to be able to report the new offset as the start of instruction 975 * We may set instruction_begin at the first byte of the instruction instead
922 * causing error. */ 976 * of here but in the case of incorrect one byte instructions user callback
977 * may be called before instruction_begin is set.
978 */
923 instruction_begin = instruction_end; 979 instruction_begin = instruction_end;
924 980
925 /* Clear variables (well, one variable currently). */ 981 /* Clear variables (well, one variable currently). */
926 instruction_info_collected = 0; 982 instruction_info_collected = 0;
927 } 983 }
928 » goto st233; 984 » goto st218;
929 tr365: 985 tr356:
930 { SET_CPU_FEATURE(CPUFeature_F16C); } 986 { SET_CPU_FEATURE(CPUFeature_F16C); }
931 { 987 {
932 /* Mark start of this instruction as a valid target for jump. */ 988 /* Mark start of this instruction as a valid target for jump. */
933 MarkValidJumpTarget(instruction_begin - data, valid_targets); 989 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
934 990
935 /* Call user-supplied callback. */ 991 /* Call user-supplied callback. */
936 instruction_end = current_position + 1; 992 instruction_end = current_position + 1;
937 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 993 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
938 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 994 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
939 result &= user_callback(instruction_begin, instruction_end, 995 result &= user_callback(instruction_begin, instruction_end,
940 instruction_info_collected, callback_data); 996 instruction_info_collected, callback_data);
941 } 997 }
942 998
943 /* On successful match the instruction_begin must point to the next byte 999 /*
944 * to be able to report the new offset as the start of instruction 1000 * We may set instruction_begin at the first byte of the instruction instead
945 * causing error. */ 1001 * of here but in the case of incorrect one byte instructions user callback
1002 * may be called before instruction_begin is set.
1003 */
946 instruction_begin = instruction_end; 1004 instruction_begin = instruction_end;
947 1005
948 /* Clear variables (well, one variable currently). */ 1006 /* Clear variables (well, one variable currently). */
949 instruction_info_collected = 0; 1007 instruction_info_collected = 0;
950 } 1008 }
951 » goto st233; 1009 » goto st218;
952 tr391: 1010 tr386:
953 » { 1011 » { SET_CPU_FEATURE(CPUFeature_x87); }
954 instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
955 }
956 { 1012 {
957 /* Mark start of this instruction as a valid target for jump. */ 1013 /* Mark start of this instruction as a valid target for jump. */
958 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1014 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
959 1015
960 /* Call user-supplied callback. */ 1016 /* Call user-supplied callback. */
961 instruction_end = current_position + 1; 1017 instruction_end = current_position + 1;
962 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
963 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
964 result &= user_callback(instruction_begin, instruction_end,
965 instruction_info_collected, callback_data);
966 }
967
968 /* On successful match the instruction_begin must point to the next byte
969 * to be able to report the new offset as the start of instruction
970 * causing error. */
971 instruction_begin = instruction_end;
972
973 /* Clear variables (well, one variable currently). */
974 instruction_info_collected = 0;
975 }
976 goto st233;
977 tr413:
978 { SET_CPU_FEATURE(CPUFeature_x87); }
979 {
980 /* Mark start of this instruction as a valid target for jump. */
981 MarkValidJumpTarget(instruction_begin - data, valid_targets);
982
983 /* Call user-supplied callback. */
984 instruction_end = current_position + 1;
985 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1018 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
986 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1019 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
987 result &= user_callback(instruction_begin, instruction_end, 1020 result &= user_callback(instruction_begin, instruction_end,
988 instruction_info_collected, callback_data); 1021 instruction_info_collected, callback_data);
989 } 1022 }
990 1023
991 /* On successful match the instruction_begin must point to the next byte 1024 /*
992 * to be able to report the new offset as the start of instruction 1025 * We may set instruction_begin at the first byte of the instruction instead
993 * causing error. */ 1026 * of here but in the case of incorrect one byte instructions user callback
1027 * may be called before instruction_begin is set.
1028 */
994 instruction_begin = instruction_end; 1029 instruction_begin = instruction_end;
995 1030
996 /* Clear variables (well, one variable currently). */ 1031 /* Clear variables (well, one variable currently). */
997 instruction_info_collected = 0; 1032 instruction_info_collected = 0;
998 } 1033 }
999 » goto st233; 1034 » goto st218;
1000 tr419: 1035 tr392:
1001 { SET_CPU_FEATURE(CPUFeature_CMOVx87); } 1036 { SET_CPU_FEATURE(CPUFeature_CMOVx87); }
1002 { 1037 {
1003 /* Mark start of this instruction as a valid target for jump. */ 1038 /* Mark start of this instruction as a valid target for jump. */
1004 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1039 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1005 1040
1006 /* Call user-supplied callback. */ 1041 /* Call user-supplied callback. */
1007 instruction_end = current_position + 1; 1042 instruction_end = current_position + 1;
1008 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1043 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1009 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1044 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1010 result &= user_callback(instruction_begin, instruction_end, 1045 result &= user_callback(instruction_begin, instruction_end,
1011 instruction_info_collected, callback_data); 1046 instruction_info_collected, callback_data);
1012 } 1047 }
1013 1048
1014 /* On successful match the instruction_begin must point to the next byte 1049 /*
1015 * to be able to report the new offset as the start of instruction 1050 * We may set instruction_begin at the first byte of the instruction instead
1016 * causing error. */ 1051 * of here but in the case of incorrect one byte instructions user callback
1052 * may be called before instruction_begin is set.
1053 */
1017 instruction_begin = instruction_end; 1054 instruction_begin = instruction_end;
1018 1055
1019 /* Clear variables (well, one variable currently). */ 1056 /* Clear variables (well, one variable currently). */
1020 instruction_info_collected = 0; 1057 instruction_info_collected = 0;
1021 } 1058 }
1022 » goto st233; 1059 » goto st218;
1023 tr423: 1060 tr396:
1024 { 1061 {
1025 Rel32Operand(current_position + 1, data, jump_dests, size, 1062 Rel32Operand(current_position + 1, codeblock, jump_dests, size,
1026 &instruction_info_collected); 1063 &instruction_info_collected);
1027 } 1064 }
1028 {} 1065 {}
1029 { 1066 {
1030 if (((current_position - data) & kBundleMask) != kBundleMask) 1067 if (((current_position - codeblock) & kBundleMask) != kBundleMask)
1031 instruction_info_collected |= BAD_CALL_ALIGNMENT; 1068 instruction_info_collected |= BAD_CALL_ALIGNMENT;
1032 } 1069 }
1033 { 1070 {
1034 /* Mark start of this instruction as a valid target for jump. */ 1071 /* Mark start of this instruction as a valid target for jump. */
1035 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1072 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1036 1073
1037 /* Call user-supplied callback. */ 1074 /* Call user-supplied callback. */
1038 instruction_end = current_position + 1; 1075 instruction_end = current_position + 1;
1039 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1076 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1040 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1077 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1041 result &= user_callback(instruction_begin, instruction_end, 1078 result &= user_callback(instruction_begin, instruction_end,
1042 instruction_info_collected, callback_data); 1079 instruction_info_collected, callback_data);
1043 } 1080 }
1044 1081
1045 /* On successful match the instruction_begin must point to the next byte 1082 /*
1046 * to be able to report the new offset as the start of instruction 1083 * We may set instruction_begin at the first byte of the instruction instead
1047 * causing error. */ 1084 * of here but in the case of incorrect one byte instructions user callback
1085 * may be called before instruction_begin is set.
1086 */
1048 instruction_begin = instruction_end; 1087 instruction_begin = instruction_end;
1049 1088
1050 /* Clear variables (well, one variable currently). */ 1089 /* Clear variables (well, one variable currently). */
1051 instruction_info_collected = 0; 1090 instruction_info_collected = 0;
1052 } 1091 }
1053 » goto st233; 1092 » goto st218;
1054 tr438: 1093 tr411:
1055 { 1094 {
1056 SET_IMM2_TYPE(IMM8); 1095 SET_SECOND_IMMEDIATE_FORMAT(IMM8);
1057 SET_IMM2_PTR(current_position); 1096 SET_SECOND_IMMEDIATE_POINTER(current_position);
1058 } 1097 }
1059 {} 1098 {}
1060 { 1099 {
1061 /* Mark start of this instruction as a valid target for jump. */ 1100 /* Mark start of this instruction as a valid target for jump. */
1062 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1101 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1063 1102
1064 /* Call user-supplied callback. */ 1103 /* Call user-supplied callback. */
1065 instruction_end = current_position + 1; 1104 instruction_end = current_position + 1;
1066 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1105 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1067 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1106 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1068 result &= user_callback(instruction_begin, instruction_end, 1107 result &= user_callback(instruction_begin, instruction_end,
1069 instruction_info_collected, callback_data); 1108 instruction_info_collected, callback_data);
1070 } 1109 }
1071 1110
1072 /* On successful match the instruction_begin must point to the next byte 1111 /*
1073 * to be able to report the new offset as the start of instruction 1112 * We may set instruction_begin at the first byte of the instruction instead
1074 * causing error. */ 1113 * of here but in the case of incorrect one byte instructions user callback
1114 * may be called before instruction_begin is set.
1115 */
1075 instruction_begin = instruction_end; 1116 instruction_begin = instruction_end;
1076 1117
1077 /* Clear variables (well, one variable currently). */ 1118 /* Clear variables (well, one variable currently). */
1078 instruction_info_collected = 0; 1119 instruction_info_collected = 0;
1079 } 1120 }
1080 » goto st233; 1121 » goto st218;
1081 tr443: 1122 tr416:
1082 { SET_CPU_FEATURE(CPUFeature_POPCNT); } 1123 { SET_CPU_FEATURE(CPUFeature_POPCNT); }
1083 { 1124 {
1084 /* Mark start of this instruction as a valid target for jump. */ 1125 /* Mark start of this instruction as a valid target for jump. */
1085 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1126 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1086 1127
1087 /* Call user-supplied callback. */ 1128 /* Call user-supplied callback. */
1088 instruction_end = current_position + 1; 1129 instruction_end = current_position + 1;
1089 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1130 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1090 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1131 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1091 result &= user_callback(instruction_begin, instruction_end, 1132 result &= user_callback(instruction_begin, instruction_end,
1092 instruction_info_collected, callback_data); 1133 instruction_info_collected, callback_data);
1093 } 1134 }
1094 1135
1095 /* On successful match the instruction_begin must point to the next byte 1136 /*
1096 * to be able to report the new offset as the start of instruction 1137 * We may set instruction_begin at the first byte of the instruction instead
1097 * causing error. */ 1138 * of here but in the case of incorrect one byte instructions user callback
1139 * may be called before instruction_begin is set.
1140 */
1098 instruction_begin = instruction_end; 1141 instruction_begin = instruction_end;
1099 1142
1100 /* Clear variables (well, one variable currently). */ 1143 /* Clear variables (well, one variable currently). */
1101 instruction_info_collected = 0; 1144 instruction_info_collected = 0;
1102 } 1145 }
1103 » goto st233; 1146 » goto st218;
1104 tr449: 1147 tr422:
1105 { SET_CPU_FEATURE(CPUFeature_TZCNT); } 1148 { SET_CPU_FEATURE(CPUFeature_TZCNT); }
1106 { 1149 {
1107 /* Mark start of this instruction as a valid target for jump. */ 1150 /* Mark start of this instruction as a valid target for jump. */
1108 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1151 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1109 1152
1110 /* Call user-supplied callback. */ 1153 /* Call user-supplied callback. */
1111 instruction_end = current_position + 1; 1154 instruction_end = current_position + 1;
1112 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1155 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1113 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1156 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1114 result &= user_callback(instruction_begin, instruction_end, 1157 result &= user_callback(instruction_begin, instruction_end,
1115 instruction_info_collected, callback_data); 1158 instruction_info_collected, callback_data);
1116 } 1159 }
1117 1160
1118 /* On successful match the instruction_begin must point to the next byte 1161 /*
1119 * to be able to report the new offset as the start of instruction 1162 * We may set instruction_begin at the first byte of the instruction instead
1120 * causing error. */ 1163 * of here but in the case of incorrect one byte instructions user callback
1164 * may be called before instruction_begin is set.
1165 */
1121 instruction_begin = instruction_end; 1166 instruction_begin = instruction_end;
1122 1167
1123 /* Clear variables (well, one variable currently). */ 1168 /* Clear variables (well, one variable currently). */
1124 instruction_info_collected = 0; 1169 instruction_info_collected = 0;
1125 } 1170 }
1126 » goto st233; 1171 » goto st218;
1127 tr455: 1172 tr428:
1128 { SET_CPU_FEATURE(CPUFeature_LZCNT); } 1173 { SET_CPU_FEATURE(CPUFeature_LZCNT); }
1129 { 1174 {
1130 /* Mark start of this instruction as a valid target for jump. */ 1175 /* Mark start of this instruction as a valid target for jump. */
1131 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1176 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1132 1177
1133 /* Call user-supplied callback. */ 1178 /* Call user-supplied callback. */
1134 instruction_end = current_position + 1; 1179 instruction_end = current_position + 1;
1135 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1180 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1136 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1181 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1137 result &= user_callback(instruction_begin, instruction_end, 1182 result &= user_callback(instruction_begin, instruction_end,
1138 instruction_info_collected, callback_data); 1183 instruction_info_collected, callback_data);
1139 } 1184 }
1140 1185
1141 /* On successful match the instruction_begin must point to the next byte 1186 /*
1142 * to be able to report the new offset as the start of instruction 1187 * We may set instruction_begin at the first byte of the instruction instead
1143 * causing error. */ 1188 * of here but in the case of incorrect one byte instructions user callback
1189 * may be called before instruction_begin is set.
1190 */
1144 instruction_begin = instruction_end; 1191 instruction_begin = instruction_end;
1145 1192
1146 /* Clear variables (well, one variable currently). */ 1193 /* Clear variables (well, one variable currently). */
1147 instruction_info_collected = 0; 1194 instruction_info_collected = 0;
1148 } 1195 }
1149 » goto st233; 1196 » goto st218;
1150 tr461: 1197 tr434:
1151 { 1198 {
1152 UnmarkValidJumpTarget((current_position - data) - 1, valid_targets); 1199 UnmarkValidJumpTarget((current_position - codeblock) - 1, valid_targets);
1153 instruction_begin -= 3; 1200 instruction_begin -= 3;
1154 instruction_info_collected |= SPECIAL_INSTRUCTION; 1201 instruction_info_collected |= SPECIAL_INSTRUCTION;
1155 } 1202 }
1156 { 1203 {
1157 if (((current_position - data) & kBundleMask) != kBundleMask) 1204 if (((current_position - codeblock) & kBundleMask) != kBundleMask)
1158 instruction_info_collected |= BAD_CALL_ALIGNMENT; 1205 instruction_info_collected |= BAD_CALL_ALIGNMENT;
1159 } 1206 }
1160 { 1207 {
1161 /* Mark start of this instruction as a valid target for jump. */ 1208 /* Mark start of this instruction as a valid target for jump. */
1162 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1209 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1163 1210
1164 /* Call user-supplied callback. */ 1211 /* Call user-supplied callback. */
1165 instruction_end = current_position + 1; 1212 instruction_end = current_position + 1;
1166 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1213 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1167 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1214 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1168 result &= user_callback(instruction_begin, instruction_end, 1215 result &= user_callback(instruction_begin, instruction_end,
1169 instruction_info_collected, callback_data); 1216 instruction_info_collected, callback_data);
1170 } 1217 }
1171 1218
1172 /* On successful match the instruction_begin must point to the next byte 1219 /*
1173 * to be able to report the new offset as the start of instruction 1220 * We may set instruction_begin at the first byte of the instruction instead
1174 * causing error. */ 1221 * of here but in the case of incorrect one byte instructions user callback
1222 * may be called before instruction_begin is set.
1223 */
1175 instruction_begin = instruction_end; 1224 instruction_begin = instruction_end;
1176 1225
1177 /* Clear variables (well, one variable currently). */ 1226 /* Clear variables (well, one variable currently). */
1178 instruction_info_collected = 0; 1227 instruction_info_collected = 0;
1179 } 1228 }
1180 » goto st233; 1229 » goto st218;
1181 tr462: 1230 tr435:
1182 { 1231 {
1183 UnmarkValidJumpTarget((current_position - data) - 1, valid_targets); 1232 UnmarkValidJumpTarget((current_position - codeblock) - 1, valid_targets);
1184 instruction_begin -= 3; 1233 instruction_begin -= 3;
1185 instruction_info_collected |= SPECIAL_INSTRUCTION; 1234 instruction_info_collected |= SPECIAL_INSTRUCTION;
1186 } 1235 }
1187 { 1236 {
1188 /* Mark start of this instruction as a valid target for jump. */ 1237 /* Mark start of this instruction as a valid target for jump. */
1189 MarkValidJumpTarget(instruction_begin - data, valid_targets); 1238 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
1190 1239
1191 /* Call user-supplied callback. */ 1240 /* Call user-supplied callback. */
1192 instruction_end = current_position + 1; 1241 instruction_end = current_position + 1;
1193 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 1242 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
1194 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 1243 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
1195 result &= user_callback(instruction_begin, instruction_end, 1244 result &= user_callback(instruction_begin, instruction_end,
1196 instruction_info_collected, callback_data); 1245 instruction_info_collected, callback_data);
1197 } 1246 }
1198 1247
1199 /* On successful match the instruction_begin must point to the next byte 1248 /*
1200 * to be able to report the new offset as the start of instruction 1249 * We may set instruction_begin at the first byte of the instruction instead
1201 * causing error. */ 1250 * of here but in the case of incorrect one byte instructions user callback
1251 * may be called before instruction_begin is set.
1252 */
1202 instruction_begin = instruction_end; 1253 instruction_begin = instruction_end;
1203 1254
1204 /* Clear variables (well, one variable currently). */ 1255 /* Clear variables (well, one variable currently). */
1205 instruction_info_collected = 0; 1256 instruction_info_collected = 0;
1206 } 1257 }
1207 » goto st233; 1258 » goto st218;
1208 st233: 1259 st218:
1209 if ( ++( current_position) == ( end_of_bundle) ) 1260 if ( ++( current_position) == ( end_of_bundle) )
1210 » » goto _test_eof233; 1261 » » goto _test_eof218;
1211 case 233: 1262 case 218:
1212 switch( (*( current_position)) ) { 1263 switch( (*( current_position)) ) {
1213 case 4u: goto st10; 1264 case 4u: goto st10;
1214 case 5u: goto st11; 1265 case 5u: goto st11;
1215 case 12u: goto st10; 1266 case 12u: goto st10;
1216 case 13u: goto st11; 1267 case 13u: goto st11;
1217 case 15u: goto st15; 1268 case 15u: goto st15;
1218 case 20u: goto st10; 1269 case 20u: goto st10;
1219 case 21u: goto st11; 1270 case 21u: goto st11;
1220 case 28u: goto st10; 1271 case 28u: goto st10;
1221 case 29u: goto st11; 1272 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
1233 case 102u: goto st74; 1284 case 102u: goto st74;
1234 case 104u: goto st11; 1285 case 104u: goto st11;
1235 case 105u: goto st130; 1286 case 105u: goto st130;
1236 case 106u: goto st10; 1287 case 106u: goto st10;
1237 case 107u: goto st56; 1288 case 107u: goto st56;
1238 case 128u: goto st56; 1289 case 128u: goto st56;
1239 case 129u: goto st130; 1290 case 129u: goto st130;
1240 case 131u: goto st139; 1291 case 131u: goto st139;
1241 case 141u: goto st115; 1292 case 141u: goto st115;
1242 case 143u: goto st141; 1293 case 143u: goto st141;
1243 » » case 155u: goto tr413; 1294 » » case 155u: goto tr386;
1244 case 168u: goto st10; 1295 case 168u: goto st10;
1245 case 169u: goto st11; 1296 case 169u: goto st11;
1246 case 196u: goto st153; 1297 case 196u: goto st153;
1247 » » case 198u: goto st185; 1298 » » case 198u: goto st170;
1248 » » case 199u: goto st186; 1299 » » case 199u: goto st171;
1249 case 201u: goto tr0; 1300 case 201u: goto tr0;
1250 » » case 216u: goto st187; 1301 » » case 216u: goto st172;
1251 » » case 217u: goto st188; 1302 » » case 217u: goto st173;
1252 » » case 218u: goto st189; 1303 » » case 218u: goto st174;
1253 » » case 219u: goto st190; 1304 » » case 219u: goto st175;
1254 » » case 220u: goto st191; 1305 » » case 220u: goto st176;
1255 » » case 221u: goto st192; 1306 » » case 221u: goto st177;
1256 » » case 222u: goto st193; 1307 » » case 222u: goto st178;
1257 » » case 223u: goto st194; 1308 » » case 223u: goto st179;
1258 » » case 232u: goto st195; 1309 » » case 232u: goto st180;
1259 case 233u: goto st52; 1310 case 233u: goto st52;
1260 case 235u: goto st67; 1311 case 235u: goto st67;
1261 » » case 240u: goto st199; 1312 » » case 240u: goto st184;
1262 » » case 242u: goto st202; 1313 » » case 242u: goto st187;
1263 » » case 243u: goto st210; 1314 » » case 243u: goto st195;
1264 » » case 246u: goto st215; 1315 » » case 246u: goto st200;
1265 » » case 247u: goto st216; 1316 » » case 247u: goto st201;
1266 » » case 254u: goto st217; 1317 » » case 254u: goto st202;
1267 case 255u: goto st129; 1318 case 255u: goto st129;
1268 } 1319 }
1269 if ( (*( current_position)) < 132u ) { 1320 if ( (*( current_position)) < 132u ) {
1270 if ( (*( current_position)) < 32u ) { 1321 if ( (*( current_position)) < 32u ) {
1271 if ( (*( current_position)) < 8u ) { 1322 if ( (*( current_position)) < 8u ) {
1272 if ( (*( current_position)) <= 3u ) 1323 if ( (*( current_position)) <= 3u )
1273 goto st1; 1324 goto st1;
1274 } else if ( (*( current_position)) > 11u ) { 1325 } else if ( (*( current_position)) > 11u ) {
1275 if ( (*( current_position)) > 19u ) { 1326 if ( (*( current_position)) > 19u ) {
1276 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 1327 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1417 goto st2; 1468 goto st2;
1418 tr216: 1469 tr216:
1419 { SET_CPU_FEATURE(CPUFeature_AES); } 1470 { SET_CPU_FEATURE(CPUFeature_AES); }
1420 goto st2; 1471 goto st2;
1421 tr257: 1472 tr257:
1422 { SET_CPU_FEATURE(CPUFeature_SSE3); } 1473 { SET_CPU_FEATURE(CPUFeature_SSE3); }
1423 goto st2; 1474 goto st2;
1424 tr311: 1475 tr311:
1425 { SET_CPU_FEATURE(CPUFeature_TBM); } 1476 { SET_CPU_FEATURE(CPUFeature_TBM); }
1426 goto st2; 1477 goto st2;
1427 tr345: 1478 tr343:
1428 { SET_CPU_FEATURE(CPUFeature_BMI1); } 1479 { SET_CPU_FEATURE(CPUFeature_BMI1); }
1429 goto st2; 1480 goto st2;
1430 tr353: 1481 tr350:
1431 » { SET_CPU_FEATURE(CPUFeature_FMA); }
1432 » goto st2;
1433 tr359:
1434 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 1482 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
1435 goto st2; 1483 goto st2;
1436 tr366: 1484 tr357:
1437 { SET_CPU_FEATURE(CPUFeature_F16C); } 1485 { SET_CPU_FEATURE(CPUFeature_F16C); }
1438 goto st2; 1486 goto st2;
1439 tr414: 1487 tr387:
1440 { SET_CPU_FEATURE(CPUFeature_x87); } 1488 { SET_CPU_FEATURE(CPUFeature_x87); }
1441 goto st2; 1489 goto st2;
1442 tr431: 1490 tr404:
1443 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 1491 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
1444 goto st2; 1492 goto st2;
1445 tr444: 1493 tr417:
1446 { SET_CPU_FEATURE(CPUFeature_POPCNT); } 1494 { SET_CPU_FEATURE(CPUFeature_POPCNT); }
1447 goto st2; 1495 goto st2;
1448 tr450: 1496 tr423:
1449 { SET_CPU_FEATURE(CPUFeature_TZCNT); } 1497 { SET_CPU_FEATURE(CPUFeature_TZCNT); }
1450 goto st2; 1498 goto st2;
1451 tr456: 1499 tr429:
1452 { SET_CPU_FEATURE(CPUFeature_LZCNT); } 1500 { SET_CPU_FEATURE(CPUFeature_LZCNT); }
1453 goto st2; 1501 goto st2;
1454 st2: 1502 st2:
1455 if ( ++( current_position) == ( end_of_bundle) ) 1503 if ( ++( current_position) == ( end_of_bundle) )
1456 goto _test_eof2; 1504 goto _test_eof2;
1457 case 2: 1505 case 2:
1458 switch( (*( current_position)) ) { 1506 switch( (*( current_position)) ) {
1459 case 5u: goto st3; 1507 case 5u: goto st3;
1460 case 13u: goto st3; 1508 case 13u: goto st3;
1461 case 21u: goto st3; 1509 case 21u: goto st3;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1531 goto st3; 1579 goto st3;
1532 tr217: 1580 tr217:
1533 { SET_CPU_FEATURE(CPUFeature_AES); } 1581 { SET_CPU_FEATURE(CPUFeature_AES); }
1534 goto st3; 1582 goto st3;
1535 tr258: 1583 tr258:
1536 { SET_CPU_FEATURE(CPUFeature_SSE3); } 1584 { SET_CPU_FEATURE(CPUFeature_SSE3); }
1537 goto st3; 1585 goto st3;
1538 tr312: 1586 tr312:
1539 { SET_CPU_FEATURE(CPUFeature_TBM); } 1587 { SET_CPU_FEATURE(CPUFeature_TBM); }
1540 goto st3; 1588 goto st3;
1541 tr346: 1589 tr344:
1542 { SET_CPU_FEATURE(CPUFeature_BMI1); } 1590 { SET_CPU_FEATURE(CPUFeature_BMI1); }
1543 goto st3; 1591 goto st3;
1544 tr354: 1592 tr351:
1545 » { SET_CPU_FEATURE(CPUFeature_FMA); }
1546 » goto st3;
1547 tr360:
1548 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 1593 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
1549 goto st3; 1594 goto st3;
1550 tr367: 1595 tr358:
1551 { SET_CPU_FEATURE(CPUFeature_F16C); } 1596 { SET_CPU_FEATURE(CPUFeature_F16C); }
1552 goto st3; 1597 goto st3;
1553 tr415: 1598 tr388:
1554 { SET_CPU_FEATURE(CPUFeature_x87); } 1599 { SET_CPU_FEATURE(CPUFeature_x87); }
1555 goto st3; 1600 goto st3;
1556 tr432: 1601 tr405:
1557 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 1602 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
1558 goto st3; 1603 goto st3;
1559 tr445: 1604 tr418:
1560 { SET_CPU_FEATURE(CPUFeature_POPCNT); } 1605 { SET_CPU_FEATURE(CPUFeature_POPCNT); }
1561 goto st3; 1606 goto st3;
1562 tr451: 1607 tr424:
1563 { SET_CPU_FEATURE(CPUFeature_TZCNT); } 1608 { SET_CPU_FEATURE(CPUFeature_TZCNT); }
1564 goto st3; 1609 goto st3;
1565 tr457: 1610 tr430:
1566 { SET_CPU_FEATURE(CPUFeature_LZCNT); } 1611 { SET_CPU_FEATURE(CPUFeature_LZCNT); }
1567 goto st3; 1612 goto st3;
1568 st3: 1613 st3:
1569 if ( ++( current_position) == ( end_of_bundle) ) 1614 if ( ++( current_position) == ( end_of_bundle) )
1570 goto _test_eof3; 1615 goto _test_eof3;
1571 case 3: 1616 case 3:
1572 goto tr6; 1617 goto tr6;
1573 tr6: 1618 tr6:
1574 {} 1619 {}
1575 goto st4; 1620 goto st4;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1635 goto st7; 1680 goto st7;
1636 tr218: 1681 tr218:
1637 { SET_CPU_FEATURE(CPUFeature_AES); } 1682 { SET_CPU_FEATURE(CPUFeature_AES); }
1638 goto st7; 1683 goto st7;
1639 tr259: 1684 tr259:
1640 { SET_CPU_FEATURE(CPUFeature_SSE3); } 1685 { SET_CPU_FEATURE(CPUFeature_SSE3); }
1641 goto st7; 1686 goto st7;
1642 tr313: 1687 tr313:
1643 { SET_CPU_FEATURE(CPUFeature_TBM); } 1688 { SET_CPU_FEATURE(CPUFeature_TBM); }
1644 goto st7; 1689 goto st7;
1645 tr347: 1690 tr345:
1646 { SET_CPU_FEATURE(CPUFeature_BMI1); } 1691 { SET_CPU_FEATURE(CPUFeature_BMI1); }
1647 goto st7; 1692 goto st7;
1648 tr355: 1693 tr352:
1649 » { SET_CPU_FEATURE(CPUFeature_FMA); }
1650 » goto st7;
1651 tr361:
1652 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 1694 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
1653 goto st7; 1695 goto st7;
1654 tr368: 1696 tr359:
1655 { SET_CPU_FEATURE(CPUFeature_F16C); } 1697 { SET_CPU_FEATURE(CPUFeature_F16C); }
1656 goto st7; 1698 goto st7;
1657 tr416: 1699 tr389:
1658 { SET_CPU_FEATURE(CPUFeature_x87); } 1700 { SET_CPU_FEATURE(CPUFeature_x87); }
1659 goto st7; 1701 goto st7;
1660 tr433: 1702 tr406:
1661 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 1703 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
1662 goto st7; 1704 goto st7;
1663 tr446: 1705 tr419:
1664 { SET_CPU_FEATURE(CPUFeature_POPCNT); } 1706 { SET_CPU_FEATURE(CPUFeature_POPCNT); }
1665 goto st7; 1707 goto st7;
1666 tr452: 1708 tr425:
1667 { SET_CPU_FEATURE(CPUFeature_TZCNT); } 1709 { SET_CPU_FEATURE(CPUFeature_TZCNT); }
1668 goto st7; 1710 goto st7;
1669 tr458: 1711 tr431:
1670 { SET_CPU_FEATURE(CPUFeature_LZCNT); } 1712 { SET_CPU_FEATURE(CPUFeature_LZCNT); }
1671 goto st7; 1713 goto st7;
1672 st7: 1714 st7:
1673 if ( ++( current_position) == ( end_of_bundle) ) 1715 if ( ++( current_position) == ( end_of_bundle) )
1674 goto _test_eof7; 1716 goto _test_eof7;
1675 case 7: 1717 case 7:
1676 goto tr10; 1718 goto tr10;
1677 tr53: 1719 tr53:
1678 { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); } 1720 { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); }
1679 goto st8; 1721 goto st8;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1715 goto st8; 1757 goto st8;
1716 tr219: 1758 tr219:
1717 { SET_CPU_FEATURE(CPUFeature_AES); } 1759 { SET_CPU_FEATURE(CPUFeature_AES); }
1718 goto st8; 1760 goto st8;
1719 tr260: 1761 tr260:
1720 { SET_CPU_FEATURE(CPUFeature_SSE3); } 1762 { SET_CPU_FEATURE(CPUFeature_SSE3); }
1721 goto st8; 1763 goto st8;
1722 tr314: 1764 tr314:
1723 { SET_CPU_FEATURE(CPUFeature_TBM); } 1765 { SET_CPU_FEATURE(CPUFeature_TBM); }
1724 goto st8; 1766 goto st8;
1725 tr348: 1767 tr346:
1726 { SET_CPU_FEATURE(CPUFeature_BMI1); } 1768 { SET_CPU_FEATURE(CPUFeature_BMI1); }
1727 goto st8; 1769 goto st8;
1728 tr356: 1770 tr353:
1729 » { SET_CPU_FEATURE(CPUFeature_FMA); }
1730 » goto st8;
1731 tr362:
1732 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 1771 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
1733 goto st8; 1772 goto st8;
1734 tr369: 1773 tr360:
1735 { SET_CPU_FEATURE(CPUFeature_F16C); } 1774 { SET_CPU_FEATURE(CPUFeature_F16C); }
1736 goto st8; 1775 goto st8;
1737 tr417: 1776 tr390:
1738 { SET_CPU_FEATURE(CPUFeature_x87); } 1777 { SET_CPU_FEATURE(CPUFeature_x87); }
1739 goto st8; 1778 goto st8;
1740 tr434: 1779 tr407:
1741 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 1780 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
1742 goto st8; 1781 goto st8;
1743 tr447: 1782 tr420:
1744 { SET_CPU_FEATURE(CPUFeature_POPCNT); } 1783 { SET_CPU_FEATURE(CPUFeature_POPCNT); }
1745 goto st8; 1784 goto st8;
1746 tr453: 1785 tr426:
1747 { SET_CPU_FEATURE(CPUFeature_TZCNT); } 1786 { SET_CPU_FEATURE(CPUFeature_TZCNT); }
1748 goto st8; 1787 goto st8;
1749 tr459: 1788 tr432:
1750 { SET_CPU_FEATURE(CPUFeature_LZCNT); } 1789 { SET_CPU_FEATURE(CPUFeature_LZCNT); }
1751 goto st8; 1790 goto st8;
1752 st8: 1791 st8:
1753 if ( ++( current_position) == ( end_of_bundle) ) 1792 if ( ++( current_position) == ( end_of_bundle) )
1754 goto _test_eof8; 1793 goto _test_eof8;
1755 case 8: 1794 case 8:
1756 goto st7; 1795 goto st7;
1757 tr54: 1796 tr54:
1758 { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); } 1797 { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); }
1759 goto st9; 1798 goto st9;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1795 goto st9; 1834 goto st9;
1796 tr220: 1835 tr220:
1797 { SET_CPU_FEATURE(CPUFeature_AES); } 1836 { SET_CPU_FEATURE(CPUFeature_AES); }
1798 goto st9; 1837 goto st9;
1799 tr261: 1838 tr261:
1800 { SET_CPU_FEATURE(CPUFeature_SSE3); } 1839 { SET_CPU_FEATURE(CPUFeature_SSE3); }
1801 goto st9; 1840 goto st9;
1802 tr315: 1841 tr315:
1803 { SET_CPU_FEATURE(CPUFeature_TBM); } 1842 { SET_CPU_FEATURE(CPUFeature_TBM); }
1804 goto st9; 1843 goto st9;
1805 tr349: 1844 tr347:
1806 { SET_CPU_FEATURE(CPUFeature_BMI1); } 1845 { SET_CPU_FEATURE(CPUFeature_BMI1); }
1807 goto st9; 1846 goto st9;
1808 tr357: 1847 tr354:
1809 » { SET_CPU_FEATURE(CPUFeature_FMA); }
1810 » goto st9;
1811 tr363:
1812 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 1848 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
1813 goto st9; 1849 goto st9;
1814 tr370: 1850 tr361:
1815 { SET_CPU_FEATURE(CPUFeature_F16C); } 1851 { SET_CPU_FEATURE(CPUFeature_F16C); }
1816 goto st9; 1852 goto st9;
1817 tr418: 1853 tr391:
1818 { SET_CPU_FEATURE(CPUFeature_x87); } 1854 { SET_CPU_FEATURE(CPUFeature_x87); }
1819 goto st9; 1855 goto st9;
1820 tr435: 1856 tr408:
1821 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 1857 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
1822 goto st9; 1858 goto st9;
1823 tr448: 1859 tr421:
1824 { SET_CPU_FEATURE(CPUFeature_POPCNT); } 1860 { SET_CPU_FEATURE(CPUFeature_POPCNT); }
1825 goto st9; 1861 goto st9;
1826 tr454: 1862 tr427:
1827 { SET_CPU_FEATURE(CPUFeature_TZCNT); } 1863 { SET_CPU_FEATURE(CPUFeature_TZCNT); }
1828 goto st9; 1864 goto st9;
1829 tr460: 1865 tr433:
1830 { SET_CPU_FEATURE(CPUFeature_LZCNT); } 1866 { SET_CPU_FEATURE(CPUFeature_LZCNT); }
1831 goto st9; 1867 goto st9;
1832 st9: 1868 st9:
1833 if ( ++( current_position) == ( end_of_bundle) ) 1869 if ( ++( current_position) == ( end_of_bundle) )
1834 goto _test_eof9; 1870 goto _test_eof9;
1835 case 9: 1871 case 9:
1836 goto st3; 1872 goto st3;
1837 tr111: 1873 tr111:
1838 { 1874 {
1839 SET_DISP_TYPE(DISP32); 1875 SET_DISPLACEMNT_FORMAT(DISP32);
1840 SET_DISP_PTR(current_position - 3); 1876 SET_DISPLACEMNT_POINTER(current_position - 3);
1841 } 1877 }
1842 {} 1878 {}
1843 goto st10; 1879 goto st10;
1844 tr112: 1880 tr112:
1845 { 1881 {
1846 SET_DISP_TYPE(DISP8); 1882 SET_DISPLACEMNT_FORMAT(DISP8);
1847 SET_DISP_PTR(current_position); 1883 SET_DISPLACEMNT_POINTER(current_position);
1848 } 1884 }
1849 {} 1885 {}
1850 goto st10; 1886 goto st10;
1851 tr146: 1887 tr146:
1852 { SET_CPU_FEATURE(CPUFeature_SSE); } 1888 { SET_CPU_FEATURE(CPUFeature_SSE); }
1853 goto st10; 1889 goto st10;
1854 tr249: 1890 tr249:
1855 { SET_CPU_FEATURE(CPUFeature_SSE2); } 1891 { SET_CPU_FEATURE(CPUFeature_SSE2); }
1856 goto st10; 1892 goto st10;
1857 tr100: 1893 tr100:
(...skipping 10 matching lines...) Expand all
1868 goto st10; 1904 goto st10;
1869 tr237: 1905 tr237:
1870 { SET_CPU_FEATURE(CPUFeature_SSE42); } 1906 { SET_CPU_FEATURE(CPUFeature_SSE42); }
1871 goto st10; 1907 goto st10;
1872 tr243: 1908 tr243:
1873 { SET_CPU_FEATURE(CPUFeature_AES); } 1909 { SET_CPU_FEATURE(CPUFeature_AES); }
1874 goto st10; 1910 goto st10;
1875 tr231: 1911 tr231:
1876 { SET_CPU_FEATURE(CPUFeature_CLMUL); } 1912 { SET_CPU_FEATURE(CPUFeature_CLMUL); }
1877 goto st10; 1913 goto st10;
1878 tr400: 1914 tr373:
1879 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 1915 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
1880 goto st10; 1916 goto st10;
1881 tr407: 1917 tr380:
1882 { SET_CPU_FEATURE(CPUFeature_F16C); } 1918 { SET_CPU_FEATURE(CPUFeature_F16C); }
1883 goto st10; 1919 goto st10;
1884 tr379: 1920 tr367:
1885 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); } 1921 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
1886 goto st10; 1922 goto st10;
1887 st10: 1923 st10:
1888 if ( ++( current_position) == ( end_of_bundle) ) 1924 if ( ++( current_position) == ( end_of_bundle) )
1889 goto _test_eof10; 1925 goto _test_eof10;
1890 case 10: 1926 case 10:
1891 goto tr11; 1927 goto tr11;
1892 tr293: 1928 tr293:
1893 { 1929 {
1894 SET_DISP_TYPE(DISP32); 1930 SET_DISPLACEMNT_FORMAT(DISP32);
1895 SET_DISP_PTR(current_position - 3); 1931 SET_DISPLACEMNT_POINTER(current_position - 3);
1896 } 1932 }
1897 {} 1933 {}
1898 goto st11; 1934 goto st11;
1899 tr294: 1935 tr294:
1900 { 1936 {
1901 SET_DISP_TYPE(DISP8); 1937 SET_DISPLACEMNT_FORMAT(DISP8);
1902 SET_DISP_PTR(current_position); 1938 SET_DISPLACEMNT_POINTER(current_position);
1903 } 1939 }
1904 {} 1940 {}
1905 goto st11; 1941 goto st11;
1906 tr321: 1942 tr321:
1907 { SET_CPU_FEATURE(CPUFeature_LWP); } 1943 { SET_CPU_FEATURE(CPUFeature_LWP); }
1908 goto st11; 1944 goto st11;
1909 tr328: 1945 tr328:
1910 { SET_CPU_FEATURE(CPUFeature_BMI1); } 1946 { SET_CPU_FEATURE(CPUFeature_BMI1); }
1911 goto st11; 1947 goto st11;
1912 st11: 1948 st11:
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
2147 case 188u: goto st27; 2183 case 188u: goto st27;
2148 } 2184 }
2149 if ( (*( current_position)) > 127u ) { 2185 if ( (*( current_position)) > 127u ) {
2150 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 2186 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
2151 goto st21; 2187 goto st21;
2152 } else if ( (*( current_position)) >= 64u ) 2188 } else if ( (*( current_position)) >= 64u )
2153 goto st25; 2189 goto st25;
2154 goto st19; 2190 goto st19;
2155 tr66: 2191 tr66:
2156 { 2192 {
2157 SET_DISP_TYPE(DISP32); 2193 SET_DISPLACEMNT_FORMAT(DISP32);
2158 SET_DISP_PTR(current_position - 3); 2194 SET_DISPLACEMNT_POINTER(current_position - 3);
2159 } 2195 }
2160 {} 2196 {}
2161 goto st19; 2197 goto st19;
2162 tr67: 2198 tr67:
2163 { 2199 {
2164 SET_DISP_TYPE(DISP8); 2200 SET_DISPLACEMNT_FORMAT(DISP8);
2165 SET_DISP_PTR(current_position); 2201 SET_DISPLACEMNT_POINTER(current_position);
2166 } 2202 }
2167 {} 2203 {}
2168 goto st19; 2204 goto st19;
2169 st19: 2205 st19:
2170 if ( ++( current_position) == ( end_of_bundle) ) 2206 if ( ++( current_position) == ( end_of_bundle) )
2171 goto _test_eof19; 2207 goto _test_eof19;
2172 case 19: 2208 case 19:
2173 switch( (*( current_position)) ) { 2209 switch( (*( current_position)) ) {
2174 case 12u: goto tr61; 2210 case 12u: goto tr61;
2175 case 13u: goto tr62; 2211 case 13u: goto tr62;
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
2588 goto tr89; 2624 goto tr89;
2589 } else if ( (*( current_position)) >= 64u ) 2625 } else if ( (*( current_position)) >= 64u )
2590 goto tr90; 2626 goto tr90;
2591 goto tr35; 2627 goto tr35;
2592 st36: 2628 st36:
2593 if ( ++( current_position) == ( end_of_bundle) ) 2629 if ( ++( current_position) == ( end_of_bundle) )
2594 goto _test_eof36; 2630 goto _test_eof36;
2595 case 36: 2631 case 36:
2596 switch( (*( current_position)) ) { 2632 switch( (*( current_position)) ) {
2597 case 4u: goto tr94; 2633 case 4u: goto tr94;
2634 case 5u: goto tr95;
2598 case 12u: goto tr94; 2635 case 12u: goto tr94;
2636 case 13u: goto tr95;
2599 case 20u: goto tr94; 2637 case 20u: goto tr94;
2638 case 21u: goto tr95;
2600 case 28u: goto tr94; 2639 case 28u: goto tr94;
2640 case 29u: goto tr95;
2601 case 36u: goto tr94; 2641 case 36u: goto tr94;
2642 case 37u: goto tr95;
2602 case 44u: goto tr94; 2643 case 44u: goto tr94;
2644 case 45u: goto tr95;
2603 case 52u: goto tr94; 2645 case 52u: goto tr94;
2646 case 53u: goto tr95;
2604 case 60u: goto tr94; 2647 case 60u: goto tr94;
2648 case 61u: goto tr95;
2605 case 68u: goto tr97; 2649 case 68u: goto tr97;
2606 case 76u: goto tr97; 2650 case 76u: goto tr97;
2607 case 84u: goto tr97; 2651 case 84u: goto tr97;
2608 case 92u: goto tr97; 2652 case 92u: goto tr97;
2609 case 100u: goto tr97; 2653 case 100u: goto tr97;
2610 case 108u: goto tr97; 2654 case 108u: goto tr97;
2611 case 116u: goto tr97; 2655 case 116u: goto tr97;
2612 case 124u: goto tr97; 2656 case 124u: goto tr97;
2613 case 132u: goto tr98; 2657 case 132u: goto tr98;
2614 case 140u: goto tr98; 2658 case 140u: goto tr98;
2615 case 148u: goto tr98; 2659 case 148u: goto tr98;
2616 case 156u: goto tr98; 2660 case 156u: goto tr98;
2617 case 164u: goto tr98; 2661 case 164u: goto tr98;
2618 case 172u: goto tr98; 2662 case 172u: goto tr98;
2619 case 180u: goto tr98; 2663 case 180u: goto tr98;
2620 case 188u: goto tr98; 2664 case 188u: goto tr98;
2621 } 2665 }
2622 » if ( (*( current_position)) < 38u ) { 2666 » if ( (*( current_position)) < 64u ) {
2623 » » if ( (*( current_position)) < 14u ) { 2667 » » if ( (*( current_position)) <= 63u )
2624 » » » if ( (*( current_position)) > 3u ) {
2625 » » » » if ( 6u <= (*( current_position)) && (*( current _position)) <= 11u )
2626 » » » » » goto tr93;
2627 » » » } else
2628 » » » » goto tr93;
2629 » » } else if ( (*( current_position)) > 19u ) {
2630 » » » if ( (*( current_position)) > 27u ) {
2631 » » » » if ( 30u <= (*( current_position)) && (*( curren t_position)) <= 35u )
2632 » » » » » goto tr93;
2633 » » » } else if ( (*( current_position)) >= 22u )
2634 » » » » goto tr93;
2635 » » } else
2636 goto tr93; 2668 goto tr93;
2637 » } else if ( (*( current_position)) > 43u ) { 2669 » } else if ( (*( current_position)) > 127u ) {
2638 » » if ( (*( current_position)) < 62u ) { 2670 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
2639 » » » if ( (*( current_position)) > 51u ) { 2671 » » » goto tr95;
2640 » » » » if ( 54u <= (*( current_position)) && (*( curren t_position)) <= 59u )
2641 » » » » » goto tr93;
2642 » » » } else if ( (*( current_position)) >= 46u )
2643 » » » » goto tr93;
2644 » » } else if ( (*( current_position)) > 63u ) {
2645 » » » if ( (*( current_position)) > 127u ) {
2646 » » » » if ( 192u <= (*( current_position)) )
2647 » » » » » goto tr16;
2648 » » » } else if ( (*( current_position)) >= 64u )
2649 » » » » goto tr96;
2650 » » } else
2651 » » » goto tr93;
2652 } else 2672 } else
2653 » » goto tr93; 2673 » » goto tr96;
2654 » goto tr95; 2674 » goto tr16;
2655 st37: 2675 st37:
2656 if ( ++( current_position) == ( end_of_bundle) ) 2676 if ( ++( current_position) == ( end_of_bundle) )
2657 goto _test_eof37; 2677 goto _test_eof37;
2658 case 37: 2678 case 37:
2659 if ( (*( current_position)) == 15u ) 2679 if ( (*( current_position)) == 15u )
2660 goto st38; 2680 goto st38;
2661 goto tr16; 2681 goto tr16;
2662 st38: 2682 st38:
2663 if ( ++( current_position) == ( end_of_bundle) ) 2683 if ( ++( current_position) == ( end_of_bundle) )
2664 goto _test_eof38; 2684 goto _test_eof38;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2720 goto st39; 2740 goto st39;
2721 tr238: 2741 tr238:
2722 { SET_CPU_FEATURE(CPUFeature_SSE42); } 2742 { SET_CPU_FEATURE(CPUFeature_SSE42); }
2723 goto st39; 2743 goto st39;
2724 tr244: 2744 tr244:
2725 { SET_CPU_FEATURE(CPUFeature_AES); } 2745 { SET_CPU_FEATURE(CPUFeature_AES); }
2726 goto st39; 2746 goto st39;
2727 tr232: 2747 tr232:
2728 { SET_CPU_FEATURE(CPUFeature_CLMUL); } 2748 { SET_CPU_FEATURE(CPUFeature_CLMUL); }
2729 goto st39; 2749 goto st39;
2730 tr401: 2750 tr374:
2731 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 2751 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
2732 goto st39; 2752 goto st39;
2733 tr408: 2753 tr381:
2734 { SET_CPU_FEATURE(CPUFeature_F16C); } 2754 { SET_CPU_FEATURE(CPUFeature_F16C); }
2735 goto st39; 2755 goto st39;
2736 tr380: 2756 tr368:
2737 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); } 2757 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
2738 goto st39; 2758 goto st39;
2739 st39: 2759 st39:
2740 if ( ++( current_position) == ( end_of_bundle) ) 2760 if ( ++( current_position) == ( end_of_bundle) )
2741 goto _test_eof39; 2761 goto _test_eof39;
2742 case 39: 2762 case 39:
2743 switch( (*( current_position)) ) { 2763 switch( (*( current_position)) ) {
2744 case 5u: goto st40; 2764 case 5u: goto st40;
2745 case 13u: goto st40; 2765 case 13u: goto st40;
2746 case 21u: goto st40; 2766 case 21u: goto st40;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2792 goto st40; 2812 goto st40;
2793 tr239: 2813 tr239:
2794 { SET_CPU_FEATURE(CPUFeature_SSE42); } 2814 { SET_CPU_FEATURE(CPUFeature_SSE42); }
2795 goto st40; 2815 goto st40;
2796 tr245: 2816 tr245:
2797 { SET_CPU_FEATURE(CPUFeature_AES); } 2817 { SET_CPU_FEATURE(CPUFeature_AES); }
2798 goto st40; 2818 goto st40;
2799 tr233: 2819 tr233:
2800 { SET_CPU_FEATURE(CPUFeature_CLMUL); } 2820 { SET_CPU_FEATURE(CPUFeature_CLMUL); }
2801 goto st40; 2821 goto st40;
2802 tr402: 2822 tr375:
2803 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 2823 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
2804 goto st40; 2824 goto st40;
2805 tr409: 2825 tr382:
2806 { SET_CPU_FEATURE(CPUFeature_F16C); } 2826 { SET_CPU_FEATURE(CPUFeature_F16C); }
2807 goto st40; 2827 goto st40;
2808 tr381: 2828 tr369:
2809 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); } 2829 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
2810 goto st40; 2830 goto st40;
2811 st40: 2831 st40:
2812 if ( ++( current_position) == ( end_of_bundle) ) 2832 if ( ++( current_position) == ( end_of_bundle) )
2813 goto _test_eof40; 2833 goto _test_eof40;
2814 case 40: 2834 case 40:
2815 goto tr108; 2835 goto tr108;
2816 tr108: 2836 tr108:
2817 {} 2837 {}
2818 goto st41; 2838 goto st41;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2854 goto st44; 2874 goto st44;
2855 tr240: 2875 tr240:
2856 { SET_CPU_FEATURE(CPUFeature_SSE42); } 2876 { SET_CPU_FEATURE(CPUFeature_SSE42); }
2857 goto st44; 2877 goto st44;
2858 tr246: 2878 tr246:
2859 { SET_CPU_FEATURE(CPUFeature_AES); } 2879 { SET_CPU_FEATURE(CPUFeature_AES); }
2860 goto st44; 2880 goto st44;
2861 tr234: 2881 tr234:
2862 { SET_CPU_FEATURE(CPUFeature_CLMUL); } 2882 { SET_CPU_FEATURE(CPUFeature_CLMUL); }
2863 goto st44; 2883 goto st44;
2864 tr403: 2884 tr376:
2865 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 2885 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
2866 goto st44; 2886 goto st44;
2867 tr410: 2887 tr383:
2868 { SET_CPU_FEATURE(CPUFeature_F16C); } 2888 { SET_CPU_FEATURE(CPUFeature_F16C); }
2869 goto st44; 2889 goto st44;
2870 tr382: 2890 tr370:
2871 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); } 2891 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
2872 goto st44; 2892 goto st44;
2873 st44: 2893 st44:
2874 if ( ++( current_position) == ( end_of_bundle) ) 2894 if ( ++( current_position) == ( end_of_bundle) )
2875 goto _test_eof44; 2895 goto _test_eof44;
2876 case 44: 2896 case 44:
2877 goto tr112; 2897 goto tr112;
2878 tr150: 2898 tr150:
2879 { SET_CPU_FEATURE(CPUFeature_SSE); } 2899 { SET_CPU_FEATURE(CPUFeature_SSE); }
2880 goto st45; 2900 goto st45;
(...skipping 11 matching lines...) Expand all
2892 goto st45; 2912 goto st45;
2893 tr241: 2913 tr241:
2894 { SET_CPU_FEATURE(CPUFeature_SSE42); } 2914 { SET_CPU_FEATURE(CPUFeature_SSE42); }
2895 goto st45; 2915 goto st45;
2896 tr247: 2916 tr247:
2897 { SET_CPU_FEATURE(CPUFeature_AES); } 2917 { SET_CPU_FEATURE(CPUFeature_AES); }
2898 goto st45; 2918 goto st45;
2899 tr235: 2919 tr235:
2900 { SET_CPU_FEATURE(CPUFeature_CLMUL); } 2920 { SET_CPU_FEATURE(CPUFeature_CLMUL); }
2901 goto st45; 2921 goto st45;
2902 tr404: 2922 tr377:
2903 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 2923 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
2904 goto st45; 2924 goto st45;
2905 tr411: 2925 tr384:
2906 { SET_CPU_FEATURE(CPUFeature_F16C); } 2926 { SET_CPU_FEATURE(CPUFeature_F16C); }
2907 goto st45; 2927 goto st45;
2908 tr383: 2928 tr371:
2909 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); } 2929 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
2910 goto st45; 2930 goto st45;
2911 st45: 2931 st45:
2912 if ( ++( current_position) == ( end_of_bundle) ) 2932 if ( ++( current_position) == ( end_of_bundle) )
2913 goto _test_eof45; 2933 goto _test_eof45;
2914 case 45: 2934 case 45:
2915 goto st44; 2935 goto st44;
2916 tr151: 2936 tr151:
2917 { SET_CPU_FEATURE(CPUFeature_SSE); } 2937 { SET_CPU_FEATURE(CPUFeature_SSE); }
2918 goto st46; 2938 goto st46;
(...skipping 11 matching lines...) Expand all
2930 goto st46; 2950 goto st46;
2931 tr242: 2951 tr242:
2932 { SET_CPU_FEATURE(CPUFeature_SSE42); } 2952 { SET_CPU_FEATURE(CPUFeature_SSE42); }
2933 goto st46; 2953 goto st46;
2934 tr248: 2954 tr248:
2935 { SET_CPU_FEATURE(CPUFeature_AES); } 2955 { SET_CPU_FEATURE(CPUFeature_AES); }
2936 goto st46; 2956 goto st46;
2937 tr236: 2957 tr236:
2938 { SET_CPU_FEATURE(CPUFeature_CLMUL); } 2958 { SET_CPU_FEATURE(CPUFeature_CLMUL); }
2939 goto st46; 2959 goto st46;
2940 tr405: 2960 tr378:
2941 { SET_CPU_FEATURE(CPUFeature_AESAVX); } 2961 { SET_CPU_FEATURE(CPUFeature_AESAVX); }
2942 goto st46; 2962 goto st46;
2943 tr412: 2963 tr385:
2944 { SET_CPU_FEATURE(CPUFeature_F16C); } 2964 { SET_CPU_FEATURE(CPUFeature_F16C); }
2945 goto st46; 2965 goto st46;
2946 tr384: 2966 tr372:
2947 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); } 2967 { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
2948 goto st46; 2968 goto st46;
2949 st46: 2969 st46:
2950 if ( ++( current_position) == ( end_of_bundle) ) 2970 if ( ++( current_position) == ( end_of_bundle) )
2951 goto _test_eof46; 2971 goto _test_eof46;
2952 case 46: 2972 case 46:
2953 goto st40; 2973 goto st40;
2954 st47: 2974 st47:
2955 if ( ++( current_position) == ( end_of_bundle) ) 2975 if ( ++( current_position) == ( end_of_bundle) )
2956 goto _test_eof47; 2976 goto _test_eof47;
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
3605 if ( 64u <= (*( current_position)) && (*( current_position)) <= 95u ) 3625 if ( 64u <= (*( current_position)) && (*( current_position)) <= 95u )
3606 goto tr0; 3626 goto tr0;
3607 } else if ( (*( current_position)) > 153u ) { 3627 } else if ( (*( current_position)) > 153u ) {
3608 if ( 184u <= (*( current_position)) && (*( current_position)) <= 191u ) 3628 if ( 184u <= (*( current_position)) && (*( current_position)) <= 191u )
3609 goto st75; 3629 goto st75;
3610 } else 3630 } else
3611 goto tr0; 3631 goto tr0;
3612 goto tr16; 3632 goto tr16;
3613 tr276: 3633 tr276:
3614 { 3634 {
3615 SET_DISP_TYPE(DISP32); 3635 SET_DISPLACEMNT_FORMAT(DISP32);
3616 SET_DISP_PTR(current_position - 3); 3636 SET_DISPLACEMNT_POINTER(current_position - 3);
3617 } 3637 }
3618 {} 3638 {}
3619 goto st75; 3639 goto st75;
3620 tr277: 3640 tr277:
3621 { 3641 {
3622 SET_DISP_TYPE(DISP8); 3642 SET_DISPLACEMNT_FORMAT(DISP8);
3623 SET_DISP_PTR(current_position); 3643 SET_DISPLACEMNT_POINTER(current_position);
3624 } 3644 }
3625 {} 3645 {}
3626 goto st75; 3646 goto st75;
3627 st75: 3647 st75:
3628 if ( ++( current_position) == ( end_of_bundle) ) 3648 if ( ++( current_position) == ( end_of_bundle) )
3629 goto _test_eof75; 3649 goto _test_eof75;
3630 case 75: 3650 case 75:
3631 goto tr185; 3651 goto tr185;
3632 tr185: 3652 tr185:
3633 {} 3653 {}
(...skipping 1527 matching lines...) Expand 10 before | Expand all | Expand 10 after
5161 case 124u: goto st45; 5181 case 124u: goto st45;
5162 case 132u: goto st46; 5182 case 132u: goto st46;
5163 case 140u: goto st46; 5183 case 140u: goto st46;
5164 case 148u: goto st46; 5184 case 148u: goto st46;
5165 case 156u: goto st46; 5185 case 156u: goto st46;
5166 case 164u: goto st46; 5186 case 164u: goto st46;
5167 case 172u: goto st46; 5187 case 172u: goto st46;
5168 case 180u: goto st46; 5188 case 180u: goto st46;
5169 case 188u: goto st46; 5189 case 188u: goto st46;
5170 case 224u: goto st140; 5190 case 224u: goto st140;
5171 » » case 225u: goto st219; 5191 » » case 225u: goto st204;
5172 » » case 226u: goto st221; 5192 » » case 226u: goto st206;
5173 » » case 227u: goto st223; 5193 » » case 227u: goto st208;
5174 » » case 228u: goto st225; 5194 » » case 228u: goto st210;
5175 » » case 229u: goto st227; 5195 » » case 229u: goto st212;
5176 » » case 230u: goto st229; 5196 » » case 230u: goto st214;
5177 » » case 231u: goto st231; 5197 » » case 231u: goto st216;
5178 } 5198 }
5179 if ( (*( current_position)) > 127u ) { 5199 if ( (*( current_position)) > 127u ) {
5180 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 5200 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
5181 goto st40; 5201 goto st40;
5182 } else if ( (*( current_position)) >= 64u ) 5202 } else if ( (*( current_position)) >= 64u )
5183 goto st44; 5203 goto st44;
5184 goto st10; 5204 goto st10;
5185 st140: 5205 st140:
5186 if ( ++( current_position) == ( end_of_bundle) ) 5206 if ( ++( current_position) == ( end_of_bundle) )
5187 goto _test_eof140; 5207 goto _test_eof140;
5188 case 140: 5208 case 140:
5189 if ( (*( current_position)) == 224u ) 5209 if ( (*( current_position)) == 224u )
5190 goto tr303; 5210 goto tr303;
5191 goto tr11; 5211 goto tr11;
5192 tr303: 5212 tr303:
5193 { 5213 {
5194 SET_IMM_TYPE(IMM8); 5214 SET_IMMEDIATE_FORMAT(IMM8);
5195 SET_IMM_PTR(current_position); 5215 SET_IMMEDIATE_POINTER(current_position);
5196 } 5216 }
5197 {} 5217 {}
5198 { 5218 {
5199 /* Mark start of this instruction as a valid target for jump. */ 5219 /* Mark start of this instruction as a valid target for jump. */
5200 MarkValidJumpTarget(instruction_begin - data, valid_targets); 5220 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
5201 5221
5202 /* Call user-supplied callback. */ 5222 /* Call user-supplied callback. */
5203 instruction_end = current_position + 1; 5223 instruction_end = current_position + 1;
5204 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 5224 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
5205 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 5225 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
5206 result &= user_callback(instruction_begin, instruction_end, 5226 result &= user_callback(instruction_begin, instruction_end,
5207 instruction_info_collected, callback_data); 5227 instruction_info_collected, callback_data);
5208 } 5228 }
5209 5229
5210 /* On successful match the instruction_begin must point to the next byte 5230 /*
5211 * to be able to report the new offset as the start of instruction 5231 * We may set instruction_begin at the first byte of the instruction instead
5212 * causing error. */ 5232 * of here but in the case of incorrect one byte instructions user callback
5233 * may be called before instruction_begin is set.
5234 */
5213 instruction_begin = instruction_end; 5235 instruction_begin = instruction_end;
5214 5236
5215 /* Clear variables (well, one variable currently). */ 5237 /* Clear variables (well, one variable currently). */
5216 instruction_info_collected = 0; 5238 instruction_info_collected = 0;
5217 } 5239 }
5218 » goto st234; 5240 » goto st219;
5219 st234: 5241 st219:
5220 if ( ++( current_position) == ( end_of_bundle) ) 5242 if ( ++( current_position) == ( end_of_bundle) )
5221 » » goto _test_eof234; 5243 » » goto _test_eof219;
5222 case 234: 5244 case 219:
5223 switch( (*( current_position)) ) { 5245 switch( (*( current_position)) ) {
5224 case 4u: goto st10; 5246 case 4u: goto st10;
5225 case 5u: goto st11; 5247 case 5u: goto st11;
5226 case 12u: goto st10; 5248 case 12u: goto st10;
5227 case 13u: goto st11; 5249 case 13u: goto st11;
5228 case 15u: goto st15; 5250 case 15u: goto st15;
5229 case 20u: goto st10; 5251 case 20u: goto st10;
5230 case 21u: goto st11; 5252 case 21u: goto st11;
5231 case 28u: goto st10; 5253 case 28u: goto st10;
5232 case 29u: goto st11; 5254 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
5244 case 102u: goto st74; 5266 case 102u: goto st74;
5245 case 104u: goto st11; 5267 case 104u: goto st11;
5246 case 105u: goto st130; 5268 case 105u: goto st130;
5247 case 106u: goto st10; 5269 case 106u: goto st10;
5248 case 107u: goto st56; 5270 case 107u: goto st56;
5249 case 128u: goto st56; 5271 case 128u: goto st56;
5250 case 129u: goto st130; 5272 case 129u: goto st130;
5251 case 131u: goto st139; 5273 case 131u: goto st139;
5252 case 141u: goto st115; 5274 case 141u: goto st115;
5253 case 143u: goto st141; 5275 case 143u: goto st141;
5254 » » case 155u: goto tr413; 5276 » » case 155u: goto tr386;
5255 case 168u: goto st10; 5277 case 168u: goto st10;
5256 case 169u: goto st11; 5278 case 169u: goto st11;
5257 case 196u: goto st153; 5279 case 196u: goto st153;
5258 » » case 198u: goto st185; 5280 » » case 198u: goto st170;
5259 » » case 199u: goto st186; 5281 » » case 199u: goto st171;
5260 case 201u: goto tr0; 5282 case 201u: goto tr0;
5261 » » case 216u: goto st187; 5283 » » case 216u: goto st172;
5262 » » case 217u: goto st188; 5284 » » case 217u: goto st173;
5263 » » case 218u: goto st189; 5285 » » case 218u: goto st174;
5264 » » case 219u: goto st190; 5286 » » case 219u: goto st175;
5265 » » case 220u: goto st191; 5287 » » case 220u: goto st176;
5266 » » case 221u: goto st192; 5288 » » case 221u: goto st177;
5267 » » case 222u: goto st193; 5289 » » case 222u: goto st178;
5268 » » case 223u: goto st194; 5290 » » case 223u: goto st179;
5269 » » case 232u: goto st195; 5291 » » case 232u: goto st180;
5270 case 233u: goto st52; 5292 case 233u: goto st52;
5271 case 235u: goto st67; 5293 case 235u: goto st67;
5272 » » case 240u: goto st199; 5294 » » case 240u: goto st184;
5273 » » case 242u: goto st202; 5295 » » case 242u: goto st187;
5274 » » case 243u: goto st210; 5296 » » case 243u: goto st195;
5275 » » case 246u: goto st215; 5297 » » case 246u: goto st200;
5276 » » case 247u: goto st216; 5298 » » case 247u: goto st201;
5277 » » case 254u: goto st217; 5299 » » case 254u: goto st202;
5278 » » case 255u: goto st218; 5300 » » case 255u: goto st203;
5279 } 5301 }
5280 if ( (*( current_position)) < 132u ) { 5302 if ( (*( current_position)) < 132u ) {
5281 if ( (*( current_position)) < 32u ) { 5303 if ( (*( current_position)) < 32u ) {
5282 if ( (*( current_position)) < 8u ) { 5304 if ( (*( current_position)) < 8u ) {
5283 if ( (*( current_position)) <= 3u ) 5305 if ( (*( current_position)) <= 3u )
5284 goto st1; 5306 goto st1;
5285 } else if ( (*( current_position)) > 11u ) { 5307 } else if ( (*( current_position)) > 11u ) {
5286 if ( (*( current_position)) > 19u ) { 5308 if ( (*( current_position)) > 19u ) {
5287 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 5309 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
5288 goto st1; 5310 goto st1;
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
5618 goto tr330; 5640 goto tr330;
5619 } else if ( (*( current_position)) >= 64u ) 5641 } else if ( (*( current_position)) >= 64u )
5620 goto tr331; 5642 goto tr331;
5621 goto tr328; 5643 goto tr328;
5622 st153: 5644 st153:
5623 if ( ++( current_position) == ( end_of_bundle) ) 5645 if ( ++( current_position) == ( end_of_bundle) )
5624 goto _test_eof153; 5646 goto _test_eof153;
5625 case 153: 5647 case 153:
5626 switch( (*( current_position)) ) { 5648 switch( (*( current_position)) ) {
5627 case 226u: goto st154; 5649 case 226u: goto st154;
5628 » » case 227u: goto st166; 5650 » » case 227u: goto st163;
5629 } 5651 }
5630 goto tr16; 5652 goto tr16;
5631 st154: 5653 st154:
5632 if ( ++( current_position) == ( end_of_bundle) ) 5654 if ( ++( current_position) == ( end_of_bundle) )
5633 goto _test_eof154; 5655 goto _test_eof154;
5634 case 154: 5656 case 154:
5635 switch( (*( current_position)) ) { 5657 switch( (*( current_position)) ) {
5636 case 64u: goto tr336; 5658 case 64u: goto tr336;
5637 case 65u: goto tr337; 5659 case 65u: goto tr337;
5638 case 69u: goto tr338;
5639 case 72u: goto tr336; 5660 case 72u: goto tr336;
5640 case 73u: goto tr337; 5661 case 73u: goto tr337;
5641 case 77u: goto tr338;
5642 case 80u: goto tr336; 5662 case 80u: goto tr336;
5643 case 81u: goto tr337; 5663 case 81u: goto tr337;
5644 case 85u: goto tr338;
5645 case 88u: goto tr336; 5664 case 88u: goto tr336;
5646 case 89u: goto tr337; 5665 case 89u: goto tr337;
5647 case 93u: goto tr338;
5648 case 96u: goto tr336; 5666 case 96u: goto tr336;
5649 case 97u: goto tr337; 5667 case 97u: goto tr337;
5650 case 101u: goto tr338;
5651 case 104u: goto tr336; 5668 case 104u: goto tr336;
5652 case 105u: goto tr337; 5669 case 105u: goto tr337;
5653 case 109u: goto tr338;
5654 case 112u: goto tr336; 5670 case 112u: goto tr336;
5655 case 113u: goto tr337; 5671 case 113u: goto tr337;
5656 case 117u: goto tr338;
5657 case 120u: goto tr336; 5672 case 120u: goto tr336;
5658 » » case 121u: goto tr339; 5673 » » case 121u: goto tr338;
5659 » » case 125u: goto tr340; 5674 » » case 125u: goto tr339;
5660 » » case 193u: goto tr341;
5661 » » case 197u: goto tr338;
5662 » » case 201u: goto tr341;
5663 » » case 205u: goto tr338;
5664 » » case 209u: goto tr341;
5665 » » case 213u: goto tr338;
5666 » » case 217u: goto tr341;
5667 » » case 221u: goto tr338;
5668 » » case 225u: goto tr341;
5669 » » case 229u: goto tr338;
5670 » » case 233u: goto tr341;
5671 » » case 237u: goto tr338;
5672 » » case 241u: goto tr341;
5673 » » case 245u: goto tr338;
5674 » » case 249u: goto tr341;
5675 » » case 253u: goto tr338;
5676 } 5675 }
5677 goto tr16; 5676 goto tr16;
5678 tr336: 5677 tr336:
5679 { 5678 {
5680 SET_VEX_PREFIX3(*current_position); 5679 SET_VEX_PREFIX3(*current_position);
5681 } 5680 }
5682 goto st155; 5681 goto st155;
5683 st155: 5682 st155:
5684 if ( ++( current_position) == ( end_of_bundle) ) 5683 if ( ++( current_position) == ( end_of_bundle) )
5685 goto _test_eof155; 5684 goto _test_eof155;
5686 case 155: 5685 case 155:
5687 switch( (*( current_position)) ) { 5686 switch( (*( current_position)) ) {
5688 case 242u: goto st156; 5687 case 242u: goto st156;
5689 case 243u: goto st157; 5688 case 243u: goto st157;
5690 case 247u: goto st156; 5689 case 247u: goto st156;
5691 } 5690 }
5692 goto tr16; 5691 goto tr16;
5693 st156: 5692 st156:
5694 if ( ++( current_position) == ( end_of_bundle) ) 5693 if ( ++( current_position) == ( end_of_bundle) )
5695 goto _test_eof156; 5694 goto _test_eof156;
5696 case 156: 5695 case 156:
5697 switch( (*( current_position)) ) { 5696 switch( (*( current_position)) ) {
5698 » » case 4u: goto tr345; 5697 » » case 4u: goto tr343;
5699 » » case 5u: goto tr346; 5698 » » case 5u: goto tr344;
5700 » » case 12u: goto tr345; 5699 » » case 12u: goto tr343;
5701 » » case 13u: goto tr346; 5700 » » case 13u: goto tr344;
5702 » » case 20u: goto tr345; 5701 » » case 20u: goto tr343;
5703 » » case 21u: goto tr346; 5702 » » case 21u: goto tr344;
5704 » » case 28u: goto tr345; 5703 » » case 28u: goto tr343;
5705 » » case 29u: goto tr346; 5704 » » case 29u: goto tr344;
5706 » » case 36u: goto tr345; 5705 » » case 36u: goto tr343;
5707 » » case 37u: goto tr346; 5706 » » case 37u: goto tr344;
5708 » » case 44u: goto tr345; 5707 » » case 44u: goto tr343;
5709 » » case 45u: goto tr346; 5708 » » case 45u: goto tr344;
5710 » » case 52u: goto tr345; 5709 » » case 52u: goto tr343;
5711 » » case 53u: goto tr346; 5710 » » case 53u: goto tr344;
5712 » » case 60u: goto tr345; 5711 » » case 60u: goto tr343;
5713 » » case 61u: goto tr346; 5712 » » case 61u: goto tr344;
5714 » » case 68u: goto tr348; 5713 » » case 68u: goto tr346;
5715 » » case 76u: goto tr348; 5714 » » case 76u: goto tr346;
5716 » » case 84u: goto tr348; 5715 » » case 84u: goto tr346;
5717 » » case 92u: goto tr348; 5716 » » case 92u: goto tr346;
5718 » » case 100u: goto tr348; 5717 » » case 100u: goto tr346;
5719 » » case 108u: goto tr348; 5718 » » case 108u: goto tr346;
5720 » » case 116u: goto tr348; 5719 » » case 116u: goto tr346;
5721 » » case 124u: goto tr348; 5720 » » case 124u: goto tr346;
5722 » » case 132u: goto tr349; 5721 » » case 132u: goto tr347;
5723 » » case 140u: goto tr349; 5722 » » case 140u: goto tr347;
5724 » » case 148u: goto tr349; 5723 » » case 148u: goto tr347;
5725 » » case 156u: goto tr349; 5724 » » case 156u: goto tr347;
5726 » » case 164u: goto tr349; 5725 » » case 164u: goto tr347;
5727 » » case 172u: goto tr349; 5726 » » case 172u: goto tr347;
5728 » » case 180u: goto tr349; 5727 » » case 180u: goto tr347;
5729 » » case 188u: goto tr349; 5728 » » case 188u: goto tr347;
5730 } 5729 }
5731 if ( (*( current_position)) > 127u ) { 5730 if ( (*( current_position)) > 127u ) {
5732 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 5731 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
5733 » » » goto tr346; 5732 » » » goto tr344;
5734 } else if ( (*( current_position)) >= 64u ) 5733 } else if ( (*( current_position)) >= 64u )
5735 » » goto tr347; 5734 » » goto tr345;
5736 » goto tr344; 5735 » goto tr342;
5737 st157: 5736 st157:
5738 if ( ++( current_position) == ( end_of_bundle) ) 5737 if ( ++( current_position) == ( end_of_bundle) )
5739 goto _test_eof157; 5738 goto _test_eof157;
5740 case 157: 5739 case 157:
5741 switch( (*( current_position)) ) { 5740 switch( (*( current_position)) ) {
5742 » » case 12u: goto tr345; 5741 » » case 12u: goto tr343;
5743 » » case 13u: goto tr346; 5742 » » case 13u: goto tr344;
5744 » » case 20u: goto tr345; 5743 » » case 20u: goto tr343;
5745 » » case 21u: goto tr346; 5744 » » case 21u: goto tr344;
5746 » » case 28u: goto tr345; 5745 » » case 28u: goto tr343;
5747 » » case 29u: goto tr346; 5746 » » case 29u: goto tr344;
5748 » » case 76u: goto tr348; 5747 » » case 76u: goto tr346;
5749 » » case 84u: goto tr348; 5748 » » case 84u: goto tr346;
5750 » » case 92u: goto tr348; 5749 » » case 92u: goto tr346;
5751 » » case 140u: goto tr349; 5750 » » case 140u: goto tr347;
5752 » » case 148u: goto tr349; 5751 » » case 148u: goto tr347;
5753 » » case 156u: goto tr349; 5752 » » case 156u: goto tr347;
5754 } 5753 }
5755 if ( (*( current_position)) < 72u ) { 5754 if ( (*( current_position)) < 72u ) {
5756 if ( 8u <= (*( current_position)) && (*( current_position)) <= 3 1u ) 5755 if ( 8u <= (*( current_position)) && (*( current_position)) <= 3 1u )
5757 » » » goto tr344; 5756 » » » goto tr342;
5758 } else if ( (*( current_position)) > 95u ) { 5757 } else if ( (*( current_position)) > 95u ) {
5759 if ( (*( current_position)) > 159u ) { 5758 if ( (*( current_position)) > 159u ) {
5760 if ( 200u <= (*( current_position)) && (*( current_posit ion)) <= 223u ) 5759 if ( 200u <= (*( current_position)) && (*( current_posit ion)) <= 223u )
5761 » » » » goto tr344; 5760 » » » » goto tr342;
5762 } else if ( (*( current_position)) >= 136u ) 5761 } else if ( (*( current_position)) >= 136u )
5763 » » » goto tr346; 5762 » » » goto tr344;
5764 } else 5763 } else
5765 » » goto tr347; 5764 » » goto tr345;
5766 goto tr16; 5765 goto tr16;
5767 tr337: 5766 tr337:
5768 { 5767 {
5769 SET_VEX_PREFIX3(*current_position); 5768 SET_VEX_PREFIX3(*current_position);
5770 } 5769 }
5771 goto st158; 5770 goto st158;
5772 st158: 5771 st158:
5773 if ( ++( current_position) == ( end_of_bundle) ) 5772 if ( ++( current_position) == ( end_of_bundle) )
5774 goto _test_eof158; 5773 goto _test_eof158;
5775 case 158: 5774 case 158:
5776 » if ( (*( current_position)) < 166u ) { 5775 » if ( 219u <= (*( current_position)) && (*( current_position)) <= 223u )
5777 » » if ( 150u <= (*( current_position)) && (*( current_position)) <= 159u )
5778 » » » goto st159;
5779 » } else if ( (*( current_position)) > 175u ) {
5780 » » if ( (*( current_position)) > 191u ) {
5781 » » » if ( 219u <= (*( current_position)) && (*( current_posit ion)) <= 223u )
5782 » » » » goto st160;
5783 » » } else if ( (*( current_position)) >= 182u )
5784 » » » goto st159;
5785 » } else
5786 goto st159; 5776 goto st159;
5787 goto tr16; 5777 goto tr16;
5788 st159: 5778 st159:
5789 if ( ++( current_position) == ( end_of_bundle) ) 5779 if ( ++( current_position) == ( end_of_bundle) )
5790 goto _test_eof159; 5780 goto _test_eof159;
5791 case 159: 5781 case 159:
5792 switch( (*( current_position)) ) { 5782 switch( (*( current_position)) ) {
5793 » » case 4u: goto tr353; 5783 » » case 4u: goto tr350;
5794 » » case 5u: goto tr354; 5784 » » case 5u: goto tr351;
5795 » » case 12u: goto tr353; 5785 » » case 12u: goto tr350;
5796 » » case 13u: goto tr354; 5786 » » case 13u: goto tr351;
5797 » » case 20u: goto tr353; 5787 » » case 20u: goto tr350;
5798 » » case 21u: goto tr354; 5788 » » case 21u: goto tr351;
5799 » » case 28u: goto tr353; 5789 » » case 28u: goto tr350;
5800 » » case 29u: goto tr354; 5790 » » case 29u: goto tr351;
5801 » » case 36u: goto tr353; 5791 » » case 36u: goto tr350;
5802 » » case 37u: goto tr354; 5792 » » case 37u: goto tr351;
5803 » » case 44u: goto tr353; 5793 » » case 44u: goto tr350;
5804 » » case 45u: goto tr354; 5794 » » case 45u: goto tr351;
5805 » » case 52u: goto tr353; 5795 » » case 52u: goto tr350;
5806 » » case 53u: goto tr354; 5796 » » case 53u: goto tr351;
5807 » » case 60u: goto tr353; 5797 » » case 60u: goto tr350;
5808 » » case 61u: goto tr354; 5798 » » case 61u: goto tr351;
5809 » » case 68u: goto tr356; 5799 » » case 68u: goto tr353;
5810 » » case 76u: goto tr356; 5800 » » case 76u: goto tr353;
5811 » » case 84u: goto tr356; 5801 » » case 84u: goto tr353;
5812 » » case 92u: goto tr356; 5802 » » case 92u: goto tr353;
5813 » » case 100u: goto tr356; 5803 » » case 100u: goto tr353;
5814 » » case 108u: goto tr356; 5804 » » case 108u: goto tr353;
5815 » » case 116u: goto tr356; 5805 » » case 116u: goto tr353;
5816 » » case 124u: goto tr356; 5806 » » case 124u: goto tr353;
5817 » » case 132u: goto tr357; 5807 » » case 132u: goto tr354;
5818 » » case 140u: goto tr357; 5808 » » case 140u: goto tr354;
5819 » » case 148u: goto tr357; 5809 » » case 148u: goto tr354;
5820 » » case 156u: goto tr357; 5810 » » case 156u: goto tr354;
5821 » » case 164u: goto tr357; 5811 » » case 164u: goto tr354;
5822 » » case 172u: goto tr357; 5812 » » case 172u: goto tr354;
5823 » » case 180u: goto tr357; 5813 » » case 180u: goto tr354;
5824 » » case 188u: goto tr357; 5814 » » case 188u: goto tr354;
5825 } 5815 }
5826 if ( (*( current_position)) > 127u ) { 5816 if ( (*( current_position)) > 127u ) {
5827 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 5817 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
5828 » » » goto tr354; 5818 » » » goto tr351;
5829 } else if ( (*( current_position)) >= 64u ) 5819 } else if ( (*( current_position)) >= 64u )
5830 » » goto tr355; 5820 » » goto tr352;
5831 » goto tr352; 5821 » goto tr349;
5822 tr338:
5823 » {
5824 SET_VEX_PREFIX3(*current_position);
5825 }
5826 » goto st160;
5832 st160: 5827 st160:
5833 if ( ++( current_position) == ( end_of_bundle) ) 5828 if ( ++( current_position) == ( end_of_bundle) )
5834 goto _test_eof160; 5829 goto _test_eof160;
5835 case 160: 5830 case 160:
5836 » switch( (*( current_position)) ) { 5831 » if ( (*( current_position)) == 19u )
5837 » » case 4u: goto tr359; 5832 » » goto st161;
5838 » » case 5u: goto tr360; 5833 » if ( 219u <= (*( current_position)) && (*( current_position)) <= 223u )
5839 » » case 12u: goto tr359; 5834 » » goto st159;
5840 » » case 13u: goto tr360; 5835 » goto tr16;
5841 » » case 20u: goto tr359;
5842 » » case 21u: goto tr360;
5843 » » case 28u: goto tr359;
5844 » » case 29u: goto tr360;
5845 » » case 36u: goto tr359;
5846 » » case 37u: goto tr360;
5847 » » case 44u: goto tr359;
5848 » » case 45u: goto tr360;
5849 » » case 52u: goto tr359;
5850 » » case 53u: goto tr360;
5851 » » case 60u: goto tr359;
5852 » » case 61u: goto tr360;
5853 » » case 68u: goto tr362;
5854 » » case 76u: goto tr362;
5855 » » case 84u: goto tr362;
5856 » » case 92u: goto tr362;
5857 » » case 100u: goto tr362;
5858 » » case 108u: goto tr362;
5859 » » case 116u: goto tr362;
5860 » » case 124u: goto tr362;
5861 » » case 132u: goto tr363;
5862 » » case 140u: goto tr363;
5863 » » case 148u: goto tr363;
5864 » » case 156u: goto tr363;
5865 » » case 164u: goto tr363;
5866 » » case 172u: goto tr363;
5867 » » case 180u: goto tr363;
5868 » » case 188u: goto tr363;
5869 » }
5870 » if ( (*( current_position)) > 127u ) {
5871 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
5872 » » » goto tr360;
5873 » } else if ( (*( current_position)) >= 64u )
5874 » » goto tr361;
5875 » goto tr358;
5876 tr338:
5877 » {
5878 SET_VEX_PREFIX3(*current_position);
5879 }
5880 » goto st161;
5881 st161: 5836 st161:
5882 if ( ++( current_position) == ( end_of_bundle) ) 5837 if ( ++( current_position) == ( end_of_bundle) )
5883 goto _test_eof161; 5838 goto _test_eof161;
5884 case 161: 5839 case 161:
5885 switch( (*( current_position)) ) { 5840 switch( (*( current_position)) ) {
5886 » » case 154u: goto st159; 5841 » » case 4u: goto tr357;
5887 » » case 156u: goto st159; 5842 » » case 5u: goto tr358;
5888 » » case 158u: goto st159; 5843 » » case 12u: goto tr357;
5889 » » case 170u: goto st159; 5844 » » case 13u: goto tr358;
5890 » » case 172u: goto st159; 5845 » » case 20u: goto tr357;
5891 » » case 174u: goto st159; 5846 » » case 21u: goto tr358;
5892 » » case 186u: goto st159; 5847 » » case 28u: goto tr357;
5893 » » case 188u: goto st159; 5848 » » case 29u: goto tr358;
5894 » » case 190u: goto st159; 5849 » » case 36u: goto tr357;
5850 » » case 37u: goto tr358;
5851 » » case 44u: goto tr357;
5852 » » case 45u: goto tr358;
5853 » » case 52u: goto tr357;
5854 » » case 53u: goto tr358;
5855 » » case 60u: goto tr357;
5856 » » case 61u: goto tr358;
5857 » » case 68u: goto tr360;
5858 » » case 76u: goto tr360;
5859 » » case 84u: goto tr360;
5860 » » case 92u: goto tr360;
5861 » » case 100u: goto tr360;
5862 » » case 108u: goto tr360;
5863 » » case 116u: goto tr360;
5864 » » case 124u: goto tr360;
5865 » » case 132u: goto tr361;
5866 » » case 140u: goto tr361;
5867 » » case 148u: goto tr361;
5868 » » case 156u: goto tr361;
5869 » » case 164u: goto tr361;
5870 » » case 172u: goto tr361;
5871 » » case 180u: goto tr361;
5872 » » case 188u: goto tr361;
5895 } 5873 }
5896 » if ( (*( current_position)) < 166u ) { 5874 » if ( (*( current_position)) > 127u ) {
5897 » » if ( 150u <= (*( current_position)) && (*( current_position)) <= 152u ) 5875 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
5898 » » » goto st159; 5876 » » » goto tr358;
5899 » } else if ( (*( current_position)) > 168u ) { 5877 » } else if ( (*( current_position)) >= 64u )
5900 » » if ( 182u <= (*( current_position)) && (*( current_position)) <= 184u ) 5878 » » goto tr359;
5901 » » » goto st159; 5879 » goto tr356;
5902 » } else
5903 » » goto st159;
5904 » goto tr16;
5905 tr339: 5880 tr339:
5906 { 5881 {
5907 SET_VEX_PREFIX3(*current_position); 5882 SET_VEX_PREFIX3(*current_position);
5908 } 5883 }
5909 goto st162; 5884 goto st162;
5910 st162: 5885 st162:
5911 if ( ++( current_position) == ( end_of_bundle) ) 5886 if ( ++( current_position) == ( end_of_bundle) )
5912 goto _test_eof162; 5887 goto _test_eof162;
5913 case 162: 5888 case 162:
5914 if ( (*( current_position)) == 19u ) 5889 if ( (*( current_position)) == 19u )
5915 » » goto st163; 5890 » » goto st161;
5916 » if ( (*( current_position)) < 166u ) {
5917 » » if ( 150u <= (*( current_position)) && (*( current_position)) <= 159u )
5918 » » » goto st159;
5919 » } else if ( (*( current_position)) > 175u ) {
5920 » » if ( (*( current_position)) > 191u ) {
5921 » » » if ( 219u <= (*( current_position)) && (*( current_posit ion)) <= 223u )
5922 » » » » goto st160;
5923 » » } else if ( (*( current_position)) >= 182u )
5924 » » » goto st159;
5925 » } else
5926 » » goto st159;
5927 goto tr16; 5891 goto tr16;
5928 st163: 5892 st163:
5929 if ( ++( current_position) == ( end_of_bundle) ) 5893 if ( ++( current_position) == ( end_of_bundle) )
5930 goto _test_eof163; 5894 goto _test_eof163;
5931 case 163: 5895 case 163:
5932 switch( (*( current_position)) ) { 5896 switch( (*( current_position)) ) {
5933 » » case 4u: goto tr366; 5897 » » case 65u: goto tr362;
5934 » » case 5u: goto tr367; 5898 » » case 73u: goto tr362;
5935 » » case 12u: goto tr366; 5899 » » case 81u: goto tr362;
5936 » » case 13u: goto tr367; 5900 » » case 89u: goto tr362;
5937 » » case 20u: goto tr366; 5901 » » case 97u: goto tr362;
5938 » » case 21u: goto tr367; 5902 » » case 105u: goto tr362;
5939 » » case 28u: goto tr366; 5903 » » case 113u: goto tr362;
5940 » » case 29u: goto tr367; 5904 » » case 121u: goto tr363;
5941 » » case 36u: goto tr366; 5905 » » case 125u: goto tr364;
5942 » » case 37u: goto tr367;
5943 » » case 44u: goto tr366;
5944 » » case 45u: goto tr367;
5945 » » case 52u: goto tr366;
5946 » » case 53u: goto tr367;
5947 » » case 60u: goto tr366;
5948 » » case 61u: goto tr367;
5949 » » case 68u: goto tr369;
5950 » » case 76u: goto tr369;
5951 » » case 84u: goto tr369;
5952 » » case 92u: goto tr369;
5953 » » case 100u: goto tr369;
5954 » » case 108u: goto tr369;
5955 » » case 116u: goto tr369;
5956 » » case 124u: goto tr369;
5957 » » case 132u: goto tr370;
5958 » » case 140u: goto tr370;
5959 » » case 148u: goto tr370;
5960 » » case 156u: goto tr370;
5961 » » case 164u: goto tr370;
5962 » » case 172u: goto tr370;
5963 » » case 180u: goto tr370;
5964 » » case 188u: goto tr370;
5965 } 5906 }
5966 » if ( (*( current_position)) > 127u ) { 5907 » goto tr16;
5967 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 5908 tr362:
5968 » » » goto tr367;
5969 » } else if ( (*( current_position)) >= 64u )
5970 » » goto tr368;
5971 » goto tr365;
5972 tr340:
5973 { 5909 {
5974 SET_VEX_PREFIX3(*current_position); 5910 SET_VEX_PREFIX3(*current_position);
5975 } 5911 }
5976 goto st164; 5912 goto st164;
5977 st164: 5913 st164:
5978 if ( ++( current_position) == ( end_of_bundle) ) 5914 if ( ++( current_position) == ( end_of_bundle) )
5979 goto _test_eof164; 5915 goto _test_eof164;
5980 case 164: 5916 case 164:
5981 switch( (*( current_position)) ) { 5917 switch( (*( current_position)) ) {
5982 » » case 19u: goto st163; 5918 » » case 68u: goto st165;
5983 » » case 154u: goto st159; 5919 » » case 223u: goto st166;
5984 » » case 156u: goto st159;
5985 » » case 158u: goto st159;
5986 » » case 170u: goto st159;
5987 » » case 172u: goto st159;
5988 » » case 174u: goto st159;
5989 » » case 186u: goto st159;
5990 » » case 188u: goto st159;
5991 » » case 190u: goto st159;
5992 } 5920 }
5993 if ( (*( current_position)) < 166u ) {
5994 if ( 150u <= (*( current_position)) && (*( current_position)) <= 152u )
5995 goto st159;
5996 } else if ( (*( current_position)) > 168u ) {
5997 if ( 182u <= (*( current_position)) && (*( current_position)) <= 184u )
5998 goto st159;
5999 } else
6000 goto st159;
6001 goto tr16; 5921 goto tr16;
6002 tr341:
6003 {
6004 SET_VEX_PREFIX3(*current_position);
6005 }
6006 goto st165;
6007 st165: 5922 st165:
6008 if ( ++( current_position) == ( end_of_bundle) ) 5923 if ( ++( current_position) == ( end_of_bundle) )
6009 goto _test_eof165; 5924 goto _test_eof165;
6010 case 165: 5925 case 165:
6011 » if ( (*( current_position)) < 166u ) { 5926 » switch( (*( current_position)) ) {
6012 » » if ( 150u <= (*( current_position)) && (*( current_position)) <= 159u ) 5927 » » case 4u: goto tr368;
6013 » » » goto st159; 5928 » » case 5u: goto tr369;
6014 » } else if ( (*( current_position)) > 175u ) { 5929 » » case 12u: goto tr368;
6015 » » if ( 182u <= (*( current_position)) && (*( current_position)) <= 191u ) 5930 » » case 13u: goto tr369;
6016 » » » goto st159; 5931 » » case 20u: goto tr368;
6017 » } else 5932 » » case 21u: goto tr369;
6018 » » goto st159; 5933 » » case 28u: goto tr368;
6019 » goto tr16; 5934 » » case 29u: goto tr369;
5935 » » case 36u: goto tr368;
5936 » » case 37u: goto tr369;
5937 » » case 44u: goto tr368;
5938 » » case 45u: goto tr369;
5939 » » case 52u: goto tr368;
5940 » » case 53u: goto tr369;
5941 » » case 60u: goto tr368;
5942 » » case 61u: goto tr369;
5943 » » case 68u: goto tr371;
5944 » » case 76u: goto tr371;
5945 » » case 84u: goto tr371;
5946 » » case 92u: goto tr371;
5947 » » case 100u: goto tr371;
5948 » » case 108u: goto tr371;
5949 » » case 116u: goto tr371;
5950 » » case 124u: goto tr371;
5951 » » case 132u: goto tr372;
5952 » » case 140u: goto tr372;
5953 » » case 148u: goto tr372;
5954 » » case 156u: goto tr372;
5955 » » case 164u: goto tr372;
5956 » » case 172u: goto tr372;
5957 » » case 180u: goto tr372;
5958 » » case 188u: goto tr372;
5959 » }
5960 » if ( (*( current_position)) > 127u ) {
5961 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
5962 » » » goto tr369;
5963 » } else if ( (*( current_position)) >= 64u )
5964 » » goto tr370;
5965 » goto tr367;
6020 st166: 5966 st166:
6021 if ( ++( current_position) == ( end_of_bundle) ) 5967 if ( ++( current_position) == ( end_of_bundle) )
6022 goto _test_eof166; 5968 goto _test_eof166;
6023 case 166: 5969 case 166:
6024 switch( (*( current_position)) ) { 5970 switch( (*( current_position)) ) {
6025 » » case 65u: goto tr371; 5971 » » case 4u: goto tr374;
6026 » » case 69u: goto tr372; 5972 » » case 5u: goto tr375;
6027 » » case 73u: goto tr371; 5973 » » case 12u: goto tr374;
6028 » » case 77u: goto tr372; 5974 » » case 13u: goto tr375;
6029 » » case 81u: goto tr371; 5975 » » case 20u: goto tr374;
6030 » » case 85u: goto tr372; 5976 » » case 21u: goto tr375;
6031 » » case 89u: goto tr371; 5977 » » case 28u: goto tr374;
6032 » » case 93u: goto tr372; 5978 » » case 29u: goto tr375;
6033 » » case 97u: goto tr371; 5979 » » case 36u: goto tr374;
6034 » » case 101u: goto tr372; 5980 » » case 37u: goto tr375;
6035 » » case 105u: goto tr371; 5981 » » case 44u: goto tr374;
6036 » » case 109u: goto tr372; 5982 » » case 45u: goto tr375;
6037 » » case 113u: goto tr371; 5983 » » case 52u: goto tr374;
6038 » » case 117u: goto tr372; 5984 » » case 53u: goto tr375;
6039 » » case 121u: goto tr373; 5985 » » case 60u: goto tr374;
6040 » » case 125u: goto tr374; 5986 » » case 61u: goto tr375;
6041 » » case 193u: goto tr375; 5987 » » case 68u: goto tr377;
6042 » » case 197u: goto tr372; 5988 » » case 76u: goto tr377;
6043 » » case 201u: goto tr375; 5989 » » case 84u: goto tr377;
6044 » » case 205u: goto tr372; 5990 » » case 92u: goto tr377;
6045 » » case 209u: goto tr375; 5991 » » case 100u: goto tr377;
6046 » » case 213u: goto tr372; 5992 » » case 108u: goto tr377;
6047 » » case 217u: goto tr375; 5993 » » case 116u: goto tr377;
6048 » » case 221u: goto tr372; 5994 » » case 124u: goto tr377;
6049 » » case 225u: goto tr375; 5995 » » case 132u: goto tr378;
6050 » » case 229u: goto tr372; 5996 » » case 140u: goto tr378;
6051 » » case 233u: goto tr375; 5997 » » case 148u: goto tr378;
6052 » » case 237u: goto tr372; 5998 » » case 156u: goto tr378;
6053 » » case 241u: goto tr375; 5999 » » case 164u: goto tr378;
6054 » » case 245u: goto tr372; 6000 » » case 172u: goto tr378;
6055 » » case 249u: goto tr375; 6001 » » case 180u: goto tr378;
6056 » » case 253u: goto tr372; 6002 » » case 188u: goto tr378;
6057 } 6003 }
6058 » goto tr16; 6004 » if ( (*( current_position)) > 127u ) {
6059 tr371: 6005 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
6006 » » » goto tr375;
6007 » } else if ( (*( current_position)) >= 64u )
6008 » » goto tr376;
6009 » goto tr373;
6010 tr363:
6060 { 6011 {
6061 SET_VEX_PREFIX3(*current_position); 6012 SET_VEX_PREFIX3(*current_position);
6062 } 6013 }
6063 goto st167; 6014 goto st167;
6064 st167: 6015 st167:
6065 if ( ++( current_position) == ( end_of_bundle) ) 6016 if ( ++( current_position) == ( end_of_bundle) )
6066 goto _test_eof167; 6017 goto _test_eof167;
6067 case 167: 6018 case 167:
6068 switch( (*( current_position)) ) { 6019 switch( (*( current_position)) ) {
6069 » » case 68u: goto st168; 6020 » » case 29u: goto st168;
6070 » » case 223u: goto st179; 6021 » » case 68u: goto st165;
6022 » » case 223u: goto st166;
6071 } 6023 }
6072 if ( (*( current_position)) < 104u ) {
6073 if ( 92u <= (*( current_position)) && (*( current_position)) <= 95u )
6074 goto st169;
6075 } else if ( (*( current_position)) > 111u ) {
6076 if ( 120u <= (*( current_position)) && (*( current_position)) <= 127u )
6077 goto st169;
6078 } else
6079 goto st169;
6080 goto tr16; 6024 goto tr16;
6081 st168: 6025 st168:
6082 if ( ++( current_position) == ( end_of_bundle) ) 6026 if ( ++( current_position) == ( end_of_bundle) )
6083 goto _test_eof168; 6027 goto _test_eof168;
6084 case 168: 6028 case 168:
6085 switch( (*( current_position)) ) { 6029 switch( (*( current_position)) ) {
6086 » » case 4u: goto tr380; 6030 » » case 4u: goto tr381;
6087 » » case 5u: goto tr381; 6031 » » case 5u: goto tr382;
6088 » » case 12u: goto tr380; 6032 » » case 12u: goto tr381;
6089 » » case 13u: goto tr381; 6033 » » case 13u: goto tr382;
6090 » » case 20u: goto tr380; 6034 » » case 20u: goto tr381;
6091 » » case 21u: goto tr381; 6035 » » case 21u: goto tr382;
6092 » » case 28u: goto tr380; 6036 » » case 28u: goto tr381;
6093 » » case 29u: goto tr381; 6037 » » case 29u: goto tr382;
6094 » » case 36u: goto tr380; 6038 » » case 36u: goto tr381;
6095 » » case 37u: goto tr381; 6039 » » case 37u: goto tr382;
6096 » » case 44u: goto tr380; 6040 » » case 44u: goto tr381;
6097 » » case 45u: goto tr381; 6041 » » case 45u: goto tr382;
6098 » » case 52u: goto tr380; 6042 » » case 52u: goto tr381;
6099 » » case 53u: goto tr381; 6043 » » case 53u: goto tr382;
6100 » » case 60u: goto tr380; 6044 » » case 60u: goto tr381;
6101 » » case 61u: goto tr381; 6045 » » case 61u: goto tr382;
6102 » » case 68u: goto tr383; 6046 » » case 68u: goto tr384;
6103 » » case 76u: goto tr383; 6047 » » case 76u: goto tr384;
6104 » » case 84u: goto tr383; 6048 » » case 84u: goto tr384;
6105 » » case 92u: goto tr383; 6049 » » case 92u: goto tr384;
6106 » » case 100u: goto tr383; 6050 » » case 100u: goto tr384;
6107 » » case 108u: goto tr383; 6051 » » case 108u: goto tr384;
6108 » » case 116u: goto tr383; 6052 » » case 116u: goto tr384;
6109 » » case 124u: goto tr383; 6053 » » case 124u: goto tr384;
6110 » » case 132u: goto tr384; 6054 » » case 132u: goto tr385;
6111 » » case 140u: goto tr384; 6055 » » case 140u: goto tr385;
6112 » » case 148u: goto tr384; 6056 » » case 148u: goto tr385;
6113 » » case 156u: goto tr384; 6057 » » case 156u: goto tr385;
6114 » » case 164u: goto tr384; 6058 » » case 164u: goto tr385;
6115 » » case 172u: goto tr384; 6059 » » case 172u: goto tr385;
6116 » » case 180u: goto tr384; 6060 » » case 180u: goto tr385;
6117 » » case 188u: goto tr384; 6061 » » case 188u: goto tr385;
6118 } 6062 }
6119 if ( (*( current_position)) > 127u ) { 6063 if ( (*( current_position)) > 127u ) {
6120 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 6064 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
6121 » » » goto tr381; 6065 » » » goto tr382;
6122 } else if ( (*( current_position)) >= 64u ) 6066 } else if ( (*( current_position)) >= 64u )
6123 » » goto tr382; 6067 » » goto tr383;
6124 » goto tr379; 6068 » goto tr380;
6069 tr364:
6070 » {
6071 SET_VEX_PREFIX3(*current_position);
6072 }
6073 » goto st169;
6125 st169: 6074 st169:
6126 if ( ++( current_position) == ( end_of_bundle) ) 6075 if ( ++( current_position) == ( end_of_bundle) )
6127 goto _test_eof169; 6076 goto _test_eof169;
6128 case 169: 6077 case 169:
6129 » switch( (*( current_position)) ) { 6078 » if ( (*( current_position)) == 29u )
6130 » » case 4u: goto tr386; 6079 » » goto st168;
6131 » » case 5u: goto tr387; 6080 » goto tr16;
6132 » » case 12u: goto tr386;
6133 » » case 13u: goto tr387;
6134 » » case 20u: goto tr386;
6135 » » case 21u: goto tr387;
6136 » » case 28u: goto tr386;
6137 » » case 29u: goto tr387;
6138 » » case 36u: goto tr386;
6139 » » case 37u: goto tr387;
6140 » » case 44u: goto tr386;
6141 » » case 45u: goto tr387;
6142 » » case 52u: goto tr386;
6143 » » case 53u: goto tr387;
6144 » » case 60u: goto tr386;
6145 » » case 61u: goto tr387;
6146 » » case 68u: goto tr389;
6147 » » case 76u: goto tr389;
6148 » » case 84u: goto tr389;
6149 » » case 92u: goto tr389;
6150 » » case 100u: goto tr389;
6151 » » case 108u: goto tr389;
6152 » » case 116u: goto tr389;
6153 » » case 124u: goto tr389;
6154 » » case 132u: goto tr390;
6155 » » case 140u: goto tr390;
6156 » » case 148u: goto tr390;
6157 » » case 156u: goto tr390;
6158 » » case 164u: goto tr390;
6159 » » case 172u: goto tr390;
6160 » » case 180u: goto tr390;
6161 » » case 188u: goto tr390;
6162 » }
6163 » if ( (*( current_position)) > 127u ) {
6164 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
6165 » » » goto tr387;
6166 » } else if ( (*( current_position)) >= 64u )
6167 » » goto tr388;
6168 » goto tr385;
6169 tr397:
6170 » {
6171 SET_DISP_TYPE(DISP32);
6172 SET_DISP_PTR(current_position - 3);
6173 }
6174 » {}
6175 » goto st170;
6176 tr398:
6177 » {
6178 SET_DISP_TYPE(DISP8);
6179 SET_DISP_PTR(current_position);
6180 }
6181 » {}
6182 » goto st170;
6183 tr385:
6184 » { SET_CPU_FEATURE(CPUFeature_FMA4); }
6185 » goto st170;
6186 st170: 6081 st170:
6187 if ( ++( current_position) == ( end_of_bundle) ) 6082 if ( ++( current_position) == ( end_of_bundle) )
6188 goto _test_eof170; 6083 goto _test_eof170;
6189 case 170: 6084 case 170:
6190 switch( (*( current_position)) ) { 6085 switch( (*( current_position)) ) {
6191 case 0u: goto tr391;
6192 case 16u: goto tr391;
6193 case 32u: goto tr391;
6194 case 48u: goto tr391;
6195 case 64u: goto tr391;
6196 case 80u: goto tr391;
6197 case 96u: goto tr391;
6198 case 112u: goto tr391;
6199 }
6200 goto tr16;
6201 tr386:
6202 { SET_CPU_FEATURE(CPUFeature_FMA4); }
6203 goto st171;
6204 st171:
6205 if ( ++( current_position) == ( end_of_bundle) )
6206 goto _test_eof171;
6207 case 171:
6208 switch( (*( current_position)) ) {
6209 case 5u: goto st172;
6210 case 13u: goto st172;
6211 case 21u: goto st172;
6212 case 29u: goto st172;
6213 case 37u: goto st172;
6214 case 45u: goto st172;
6215 case 53u: goto st172;
6216 case 61u: goto st172;
6217 case 69u: goto st172;
6218 case 77u: goto st172;
6219 case 85u: goto st172;
6220 case 93u: goto st172;
6221 case 101u: goto st172;
6222 case 109u: goto st172;
6223 case 117u: goto st172;
6224 case 125u: goto st172;
6225 case 133u: goto st172;
6226 case 141u: goto st172;
6227 case 149u: goto st172;
6228 case 157u: goto st172;
6229 case 165u: goto st172;
6230 case 173u: goto st172;
6231 case 181u: goto st172;
6232 case 189u: goto st172;
6233 case 197u: goto st172;
6234 case 205u: goto st172;
6235 case 213u: goto st172;
6236 case 221u: goto st172;
6237 case 229u: goto st172;
6238 case 237u: goto st172;
6239 case 245u: goto st172;
6240 case 253u: goto st172;
6241 }
6242 goto st170;
6243 tr387:
6244 { SET_CPU_FEATURE(CPUFeature_FMA4); }
6245 goto st172;
6246 st172:
6247 if ( ++( current_position) == ( end_of_bundle) )
6248 goto _test_eof172;
6249 case 172:
6250 goto tr394;
6251 tr394:
6252 {}
6253 goto st173;
6254 st173:
6255 if ( ++( current_position) == ( end_of_bundle) )
6256 goto _test_eof173;
6257 case 173:
6258 goto tr395;
6259 tr395:
6260 {}
6261 goto st174;
6262 st174:
6263 if ( ++( current_position) == ( end_of_bundle) )
6264 goto _test_eof174;
6265 case 174:
6266 goto tr396;
6267 tr396:
6268 {}
6269 goto st175;
6270 st175:
6271 if ( ++( current_position) == ( end_of_bundle) )
6272 goto _test_eof175;
6273 case 175:
6274 goto tr397;
6275 tr388:
6276 { SET_CPU_FEATURE(CPUFeature_FMA4); }
6277 goto st176;
6278 st176:
6279 if ( ++( current_position) == ( end_of_bundle) )
6280 goto _test_eof176;
6281 case 176:
6282 goto tr398;
6283 tr389:
6284 { SET_CPU_FEATURE(CPUFeature_FMA4); }
6285 goto st177;
6286 st177:
6287 if ( ++( current_position) == ( end_of_bundle) )
6288 goto _test_eof177;
6289 case 177:
6290 goto st176;
6291 tr390:
6292 { SET_CPU_FEATURE(CPUFeature_FMA4); }
6293 goto st178;
6294 st178:
6295 if ( ++( current_position) == ( end_of_bundle) )
6296 goto _test_eof178;
6297 case 178:
6298 goto st172;
6299 st179:
6300 if ( ++( current_position) == ( end_of_bundle) )
6301 goto _test_eof179;
6302 case 179:
6303 switch( (*( current_position)) ) {
6304 case 4u: goto tr401;
6305 case 5u: goto tr402;
6306 case 12u: goto tr401;
6307 case 13u: goto tr402;
6308 case 20u: goto tr401;
6309 case 21u: goto tr402;
6310 case 28u: goto tr401;
6311 case 29u: goto tr402;
6312 case 36u: goto tr401;
6313 case 37u: goto tr402;
6314 case 44u: goto tr401;
6315 case 45u: goto tr402;
6316 case 52u: goto tr401;
6317 case 53u: goto tr402;
6318 case 60u: goto tr401;
6319 case 61u: goto tr402;
6320 case 68u: goto tr404;
6321 case 76u: goto tr404;
6322 case 84u: goto tr404;
6323 case 92u: goto tr404;
6324 case 100u: goto tr404;
6325 case 108u: goto tr404;
6326 case 116u: goto tr404;
6327 case 124u: goto tr404;
6328 case 132u: goto tr405;
6329 case 140u: goto tr405;
6330 case 148u: goto tr405;
6331 case 156u: goto tr405;
6332 case 164u: goto tr405;
6333 case 172u: goto tr405;
6334 case 180u: goto tr405;
6335 case 188u: goto tr405;
6336 }
6337 if ( (*( current_position)) > 127u ) {
6338 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
6339 goto tr402;
6340 } else if ( (*( current_position)) >= 64u )
6341 goto tr403;
6342 goto tr400;
6343 tr372:
6344 {
6345 SET_VEX_PREFIX3(*current_position);
6346 }
6347 goto st180;
6348 st180:
6349 if ( ++( current_position) == ( end_of_bundle) )
6350 goto _test_eof180;
6351 case 180:
6352 if ( (*( current_position)) < 108u ) {
6353 if ( (*( current_position)) > 95u ) {
6354 if ( 104u <= (*( current_position)) && (*( current_posit ion)) <= 105u )
6355 goto st169;
6356 } else if ( (*( current_position)) >= 92u )
6357 goto st169;
6358 } else if ( (*( current_position)) > 109u ) {
6359 if ( (*( current_position)) > 121u ) {
6360 if ( 124u <= (*( current_position)) && (*( current_posit ion)) <= 125u )
6361 goto st169;
6362 } else if ( (*( current_position)) >= 120u )
6363 goto st169;
6364 } else
6365 goto st169;
6366 goto tr16;
6367 tr373:
6368 {
6369 SET_VEX_PREFIX3(*current_position);
6370 }
6371 goto st181;
6372 st181:
6373 if ( ++( current_position) == ( end_of_bundle) )
6374 goto _test_eof181;
6375 case 181:
6376 switch( (*( current_position)) ) {
6377 case 29u: goto st182;
6378 case 68u: goto st168;
6379 case 223u: goto st179;
6380 }
6381 if ( (*( current_position)) < 104u ) {
6382 if ( 92u <= (*( current_position)) && (*( current_position)) <= 95u )
6383 goto st169;
6384 } else if ( (*( current_position)) > 111u ) {
6385 if ( 120u <= (*( current_position)) && (*( current_position)) <= 127u )
6386 goto st169;
6387 } else
6388 goto st169;
6389 goto tr16;
6390 st182:
6391 if ( ++( current_position) == ( end_of_bundle) )
6392 goto _test_eof182;
6393 case 182:
6394 switch( (*( current_position)) ) {
6395 case 4u: goto tr408;
6396 case 5u: goto tr409;
6397 case 12u: goto tr408;
6398 case 13u: goto tr409;
6399 case 20u: goto tr408;
6400 case 21u: goto tr409;
6401 case 28u: goto tr408;
6402 case 29u: goto tr409;
6403 case 36u: goto tr408;
6404 case 37u: goto tr409;
6405 case 44u: goto tr408;
6406 case 45u: goto tr409;
6407 case 52u: goto tr408;
6408 case 53u: goto tr409;
6409 case 60u: goto tr408;
6410 case 61u: goto tr409;
6411 case 68u: goto tr411;
6412 case 76u: goto tr411;
6413 case 84u: goto tr411;
6414 case 92u: goto tr411;
6415 case 100u: goto tr411;
6416 case 108u: goto tr411;
6417 case 116u: goto tr411;
6418 case 124u: goto tr411;
6419 case 132u: goto tr412;
6420 case 140u: goto tr412;
6421 case 148u: goto tr412;
6422 case 156u: goto tr412;
6423 case 164u: goto tr412;
6424 case 172u: goto tr412;
6425 case 180u: goto tr412;
6426 case 188u: goto tr412;
6427 }
6428 if ( (*( current_position)) > 127u ) {
6429 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
6430 goto tr409;
6431 } else if ( (*( current_position)) >= 64u )
6432 goto tr410;
6433 goto tr407;
6434 tr374:
6435 {
6436 SET_VEX_PREFIX3(*current_position);
6437 }
6438 goto st183;
6439 st183:
6440 if ( ++( current_position) == ( end_of_bundle) )
6441 goto _test_eof183;
6442 case 183:
6443 if ( (*( current_position)) == 29u )
6444 goto st182;
6445 if ( (*( current_position)) < 108u ) {
6446 if ( (*( current_position)) > 95u ) {
6447 if ( 104u <= (*( current_position)) && (*( current_posit ion)) <= 105u )
6448 goto st169;
6449 } else if ( (*( current_position)) >= 92u )
6450 goto st169;
6451 } else if ( (*( current_position)) > 109u ) {
6452 if ( (*( current_position)) > 121u ) {
6453 if ( 124u <= (*( current_position)) && (*( current_posit ion)) <= 125u )
6454 goto st169;
6455 } else if ( (*( current_position)) >= 120u )
6456 goto st169;
6457 } else
6458 goto st169;
6459 goto tr16;
6460 tr375:
6461 {
6462 SET_VEX_PREFIX3(*current_position);
6463 }
6464 goto st184;
6465 st184:
6466 if ( ++( current_position) == ( end_of_bundle) )
6467 goto _test_eof184;
6468 case 184:
6469 if ( (*( current_position)) < 104u ) {
6470 if ( 92u <= (*( current_position)) && (*( current_position)) <= 95u )
6471 goto st169;
6472 } else if ( (*( current_position)) > 111u ) {
6473 if ( 120u <= (*( current_position)) && (*( current_position)) <= 127u )
6474 goto st169;
6475 } else
6476 goto st169;
6477 goto tr16;
6478 st185:
6479 if ( ++( current_position) == ( end_of_bundle) )
6480 goto _test_eof185;
6481 case 185:
6482 switch( (*( current_position)) ) {
6483 case 4u: goto st39; 6086 case 4u: goto st39;
6484 case 5u: goto st40; 6087 case 5u: goto st40;
6485 case 68u: goto st45; 6088 case 68u: goto st45;
6486 case 132u: goto st46; 6089 case 132u: goto st46;
6487 } 6090 }
6488 if ( (*( current_position)) < 64u ) { 6091 if ( (*( current_position)) < 64u ) {
6489 if ( (*( current_position)) <= 7u ) 6092 if ( (*( current_position)) <= 7u )
6490 goto st10; 6093 goto st10;
6491 } else if ( (*( current_position)) > 71u ) { 6094 } else if ( (*( current_position)) > 71u ) {
6492 if ( (*( current_position)) > 135u ) { 6095 if ( (*( current_position)) > 135u ) {
6493 if ( 192u <= (*( current_position)) && (*( current_posit ion)) <= 199u ) 6096 if ( 192u <= (*( current_position)) && (*( current_posit ion)) <= 199u )
6494 goto st10; 6097 goto st10;
6495 } else if ( (*( current_position)) >= 128u ) 6098 } else if ( (*( current_position)) >= 128u )
6496 goto st40; 6099 goto st40;
6497 } else 6100 } else
6498 goto st44; 6101 goto st44;
6499 goto tr16; 6102 goto tr16;
6500 st186: 6103 st171:
6501 if ( ++( current_position) == ( end_of_bundle) ) 6104 if ( ++( current_position) == ( end_of_bundle) )
6502 » » goto _test_eof186; 6105 » » goto _test_eof171;
6503 case 186: 6106 case 171:
6504 switch( (*( current_position)) ) { 6107 switch( (*( current_position)) ) {
6505 case 4u: goto st131; 6108 case 4u: goto st131;
6506 case 5u: goto st132; 6109 case 5u: goto st132;
6507 case 68u: goto st137; 6110 case 68u: goto st137;
6508 case 132u: goto st138; 6111 case 132u: goto st138;
6509 } 6112 }
6510 if ( (*( current_position)) < 64u ) { 6113 if ( (*( current_position)) < 64u ) {
6511 if ( (*( current_position)) <= 7u ) 6114 if ( (*( current_position)) <= 7u )
6512 goto st11; 6115 goto st11;
6513 } else if ( (*( current_position)) > 71u ) { 6116 } else if ( (*( current_position)) > 71u ) {
6514 if ( (*( current_position)) > 135u ) { 6117 if ( (*( current_position)) > 135u ) {
6515 if ( 192u <= (*( current_position)) && (*( current_posit ion)) <= 199u ) 6118 if ( 192u <= (*( current_position)) && (*( current_posit ion)) <= 199u )
6516 goto st11; 6119 goto st11;
6517 } else if ( (*( current_position)) >= 128u ) 6120 } else if ( (*( current_position)) >= 128u )
6518 goto st132; 6121 goto st132;
6519 } else 6122 } else
6520 goto st136; 6123 goto st136;
6521 goto tr16; 6124 goto tr16;
6522 st187: 6125 st172:
6523 if ( ++( current_position) == ( end_of_bundle) ) 6126 if ( ++( current_position) == ( end_of_bundle) )
6524 » » goto _test_eof187; 6127 » » goto _test_eof172;
6525 case 187: 6128 case 172:
6526 switch( (*( current_position)) ) { 6129 switch( (*( current_position)) ) {
6527 » » case 4u: goto tr414; 6130 » » case 4u: goto tr387;
6528 » » case 5u: goto tr415; 6131 » » case 5u: goto tr388;
6529 » » case 12u: goto tr414; 6132 » » case 12u: goto tr387;
6530 » » case 13u: goto tr415; 6133 » » case 13u: goto tr388;
6531 » » case 20u: goto tr414; 6134 » » case 20u: goto tr387;
6532 » » case 21u: goto tr415; 6135 » » case 21u: goto tr388;
6533 » » case 28u: goto tr414; 6136 » » case 28u: goto tr387;
6534 » » case 29u: goto tr415; 6137 » » case 29u: goto tr388;
6535 » » case 36u: goto tr414; 6138 » » case 36u: goto tr387;
6536 » » case 37u: goto tr415; 6139 » » case 37u: goto tr388;
6537 » » case 44u: goto tr414; 6140 » » case 44u: goto tr387;
6538 » » case 45u: goto tr415; 6141 » » case 45u: goto tr388;
6539 » » case 52u: goto tr414; 6142 » » case 52u: goto tr387;
6540 » » case 53u: goto tr415; 6143 » » case 53u: goto tr388;
6541 » » case 60u: goto tr414; 6144 » » case 60u: goto tr387;
6542 » » case 61u: goto tr415; 6145 » » case 61u: goto tr388;
6543 » » case 68u: goto tr417; 6146 » » case 68u: goto tr390;
6544 » » case 76u: goto tr417; 6147 » » case 76u: goto tr390;
6545 » » case 84u: goto tr417; 6148 » » case 84u: goto tr390;
6546 » » case 92u: goto tr417; 6149 » » case 92u: goto tr390;
6547 » » case 100u: goto tr417; 6150 » » case 100u: goto tr390;
6548 » » case 108u: goto tr417; 6151 » » case 108u: goto tr390;
6549 » » case 116u: goto tr417; 6152 » » case 116u: goto tr390;
6550 » » case 124u: goto tr417; 6153 » » case 124u: goto tr390;
6551 » » case 132u: goto tr418; 6154 » » case 132u: goto tr391;
6552 » » case 140u: goto tr418; 6155 » » case 140u: goto tr391;
6553 » » case 148u: goto tr418; 6156 » » case 148u: goto tr391;
6554 » » case 156u: goto tr418; 6157 » » case 156u: goto tr391;
6555 » » case 164u: goto tr418; 6158 » » case 164u: goto tr391;
6556 » » case 172u: goto tr418; 6159 » » case 172u: goto tr391;
6557 » » case 180u: goto tr418; 6160 » » case 180u: goto tr391;
6558 » » case 188u: goto tr418; 6161 » » case 188u: goto tr391;
6559 } 6162 }
6560 if ( (*( current_position)) > 127u ) { 6163 if ( (*( current_position)) > 127u ) {
6561 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 6164 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
6562 » » » goto tr415; 6165 » » » goto tr388;
6563 } else if ( (*( current_position)) >= 64u ) 6166 } else if ( (*( current_position)) >= 64u )
6564 » » goto tr416; 6167 » » goto tr389;
6565 » goto tr413; 6168 » goto tr386;
6566 st188: 6169 st173:
6567 if ( ++( current_position) == ( end_of_bundle) ) 6170 if ( ++( current_position) == ( end_of_bundle) )
6568 » » goto _test_eof188; 6171 » » goto _test_eof173;
6569 case 188: 6172 case 173:
6570 switch( (*( current_position)) ) { 6173 switch( (*( current_position)) ) {
6571 » » case 4u: goto tr414; 6174 » » case 4u: goto tr387;
6572 » » case 5u: goto tr415; 6175 » » case 5u: goto tr388;
6573 » » case 20u: goto tr414; 6176 » » case 20u: goto tr387;
6574 » » case 21u: goto tr415; 6177 » » case 21u: goto tr388;
6575 » » case 28u: goto tr414; 6178 » » case 28u: goto tr387;
6576 » » case 29u: goto tr415; 6179 » » case 29u: goto tr388;
6577 » » case 36u: goto tr414; 6180 » » case 36u: goto tr387;
6578 » » case 37u: goto tr415; 6181 » » case 37u: goto tr388;
6579 » » case 44u: goto tr414; 6182 » » case 44u: goto tr387;
6580 » » case 45u: goto tr415; 6183 » » case 45u: goto tr388;
6581 » » case 52u: goto tr414; 6184 » » case 52u: goto tr387;
6582 » » case 53u: goto tr415; 6185 » » case 53u: goto tr388;
6583 » » case 60u: goto tr414; 6186 » » case 60u: goto tr387;
6584 » » case 61u: goto tr415; 6187 » » case 61u: goto tr388;
6585 » » case 68u: goto tr417; 6188 » » case 68u: goto tr390;
6586 » » case 84u: goto tr417; 6189 » » case 84u: goto tr390;
6587 » » case 92u: goto tr417; 6190 » » case 92u: goto tr390;
6588 » » case 100u: goto tr417; 6191 » » case 100u: goto tr390;
6589 » » case 108u: goto tr417; 6192 » » case 108u: goto tr390;
6590 » » case 116u: goto tr417; 6193 » » case 116u: goto tr390;
6591 » » case 124u: goto tr417; 6194 » » case 124u: goto tr390;
6592 » » case 132u: goto tr418; 6195 » » case 132u: goto tr391;
6593 » » case 148u: goto tr418; 6196 » » case 148u: goto tr391;
6594 » » case 156u: goto tr418; 6197 » » case 156u: goto tr391;
6595 » » case 164u: goto tr418; 6198 » » case 164u: goto tr391;
6596 » » case 172u: goto tr418; 6199 » » case 172u: goto tr391;
6597 » » case 180u: goto tr418; 6200 » » case 180u: goto tr391;
6598 » » case 188u: goto tr418; 6201 » » case 188u: goto tr391;
6599 case 239u: goto tr16; 6202 case 239u: goto tr16;
6600 } 6203 }
6601 if ( (*( current_position)) < 128u ) { 6204 if ( (*( current_position)) < 128u ) {
6602 if ( (*( current_position)) < 64u ) { 6205 if ( (*( current_position)) < 64u ) {
6603 if ( 8u <= (*( current_position)) && (*( current_positio n)) <= 15u ) 6206 if ( 8u <= (*( current_position)) && (*( current_positio n)) <= 15u )
6604 goto tr16; 6207 goto tr16;
6605 } else if ( (*( current_position)) > 71u ) { 6208 } else if ( (*( current_position)) > 71u ) {
6606 if ( (*( current_position)) > 79u ) { 6209 if ( (*( current_position)) > 79u ) {
6607 if ( 80u <= (*( current_position)) && (*( curren t_position)) <= 127u ) 6210 if ( 80u <= (*( current_position)) && (*( curren t_position)) <= 127u )
6608 » » » » » goto tr416; 6211 » » » » » goto tr389;
6609 } else if ( (*( current_position)) >= 72u ) 6212 } else if ( (*( current_position)) >= 72u )
6610 goto tr16; 6213 goto tr16;
6611 } else 6214 } else
6612 » » » goto tr416; 6215 » » » goto tr389;
6613 } else if ( (*( current_position)) > 135u ) { 6216 } else if ( (*( current_position)) > 135u ) {
6614 if ( (*( current_position)) < 209u ) { 6217 if ( (*( current_position)) < 209u ) {
6615 if ( (*( current_position)) > 143u ) { 6218 if ( (*( current_position)) > 143u ) {
6616 if ( 144u <= (*( current_position)) && (*( curre nt_position)) <= 191u ) 6219 if ( 144u <= (*( current_position)) && (*( curre nt_position)) <= 191u )
6617 » » » » » goto tr415; 6220 » » » » » goto tr388;
6618 } else if ( (*( current_position)) >= 136u ) 6221 } else if ( (*( current_position)) >= 136u )
6619 goto tr16; 6222 goto tr16;
6620 } else if ( (*( current_position)) > 223u ) { 6223 } else if ( (*( current_position)) > 223u ) {
6621 if ( (*( current_position)) > 227u ) { 6224 if ( (*( current_position)) > 227u ) {
6622 if ( 230u <= (*( current_position)) && (*( curre nt_position)) <= 231u ) 6225 if ( 230u <= (*( current_position)) && (*( curre nt_position)) <= 231u )
6623 goto tr16; 6226 goto tr16;
6624 } else if ( (*( current_position)) >= 226u ) 6227 } else if ( (*( current_position)) >= 226u )
6625 goto tr16; 6228 goto tr16;
6626 } else 6229 } else
6627 goto tr16; 6230 goto tr16;
6628 } else 6231 } else
6629 » » goto tr415; 6232 » » goto tr388;
6630 » goto tr413; 6233 » goto tr386;
6631 st189: 6234 st174:
6632 » if ( ++( current_position) == ( end_of_bundle) ) 6235 » if ( ++( current_position) == ( end_of_bundle) )
6633 » » goto _test_eof189; 6236 » » goto _test_eof174;
6634 case 189: 6237 case 174:
6635 » switch( (*( current_position)) ) { 6238 » switch( (*( current_position)) ) {
6636 » » case 4u: goto tr414; 6239 » » case 4u: goto tr387;
6637 » » case 12u: goto tr414; 6240 » » case 12u: goto tr387;
6638 » » case 20u: goto tr414; 6241 » » case 20u: goto tr387;
6639 » » case 28u: goto tr414; 6242 » » case 28u: goto tr387;
6640 » » case 36u: goto tr414; 6243 » » case 36u: goto tr387;
6641 » » case 44u: goto tr414; 6244 » » case 44u: goto tr387;
6642 » » case 52u: goto tr414; 6245 » » case 52u: goto tr387;
6643 » » case 60u: goto tr414; 6246 » » case 60u: goto tr387;
6644 » » case 68u: goto tr417; 6247 » » case 68u: goto tr390;
6645 » » case 76u: goto tr417; 6248 » » case 76u: goto tr390;
6646 » » case 84u: goto tr417; 6249 » » case 84u: goto tr390;
6647 » » case 92u: goto tr417; 6250 » » case 92u: goto tr390;
6648 » » case 100u: goto tr417; 6251 » » case 100u: goto tr390;
6649 » » case 108u: goto tr417; 6252 » » case 108u: goto tr390;
6650 » » case 116u: goto tr417; 6253 » » case 116u: goto tr390;
6651 » » case 124u: goto tr417; 6254 » » case 124u: goto tr390;
6652 » » case 132u: goto tr418; 6255 » » case 132u: goto tr391;
6653 » » case 140u: goto tr418; 6256 » » case 140u: goto tr391;
6654 » » case 148u: goto tr418; 6257 » » case 148u: goto tr391;
6655 » » case 156u: goto tr418; 6258 » » case 156u: goto tr391;
6656 » » case 164u: goto tr418; 6259 » » case 164u: goto tr391;
6657 » » case 172u: goto tr418; 6260 » » case 172u: goto tr391;
6658 » » case 180u: goto tr418; 6261 » » case 180u: goto tr391;
6659 » » case 188u: goto tr418; 6262 » » case 188u: goto tr391;
6660 » » case 233u: goto tr413; 6263 » » case 233u: goto tr386;
6661 } 6264 }
6662 if ( (*( current_position)) < 38u ) { 6265 if ( (*( current_position)) < 38u ) {
6663 if ( (*( current_position)) < 14u ) { 6266 if ( (*( current_position)) < 14u ) {
6664 if ( (*( current_position)) > 3u ) { 6267 if ( (*( current_position)) > 3u ) {
6665 if ( 6u <= (*( current_position)) && (*( current _position)) <= 11u ) 6268 if ( 6u <= (*( current_position)) && (*( current _position)) <= 11u )
6666 » » » » » goto tr413; 6269 » » » » » goto tr386;
6667 » » » } else 6270 » » » } else
6668 » » » » goto tr413; 6271 » » » » goto tr386;
6669 } else if ( (*( current_position)) > 19u ) { 6272 } else if ( (*( current_position)) > 19u ) {
6670 if ( (*( current_position)) > 27u ) { 6273 if ( (*( current_position)) > 27u ) {
6671 if ( 30u <= (*( current_position)) && (*( curren t_position)) <= 35u ) 6274 if ( 30u <= (*( current_position)) && (*( curren t_position)) <= 35u )
6672 » » » » » goto tr413; 6275 » » » » » goto tr386;
6673 } else if ( (*( current_position)) >= 22u ) 6276 } else if ( (*( current_position)) >= 22u )
6674 » » » » goto tr413; 6277 » » » » goto tr386;
6675 » » } else 6278 » » } else
6676 » » » goto tr413; 6279 » » » goto tr386;
6677 } else if ( (*( current_position)) > 43u ) { 6280 } else if ( (*( current_position)) > 43u ) {
6678 if ( (*( current_position)) < 62u ) { 6281 if ( (*( current_position)) < 62u ) {
6679 if ( (*( current_position)) > 51u ) { 6282 if ( (*( current_position)) > 51u ) {
6680 if ( 54u <= (*( current_position)) && (*( curren t_position)) <= 59u ) 6283 if ( 54u <= (*( current_position)) && (*( curren t_position)) <= 59u )
6681 » » » » » goto tr413; 6284 » » » » » goto tr386;
6682 } else if ( (*( current_position)) >= 46u ) 6285 } else if ( (*( current_position)) >= 46u )
6683 » » » » goto tr413; 6286 » » » » goto tr386;
6684 } else if ( (*( current_position)) > 63u ) { 6287 } else if ( (*( current_position)) > 63u ) {
6685 if ( (*( current_position)) < 192u ) { 6288 if ( (*( current_position)) < 192u ) {
6686 if ( 64u <= (*( current_position)) && (*( curren t_position)) <= 127u ) 6289 if ( 64u <= (*( current_position)) && (*( curren t_position)) <= 127u )
6687 » » » » » goto tr416; 6290 » » » » » goto tr389;
6688 } else if ( (*( current_position)) > 223u ) { 6291 } else if ( (*( current_position)) > 223u ) {
6689 if ( 224u <= (*( current_position)) ) 6292 if ( 224u <= (*( current_position)) )
6690 goto tr16; 6293 goto tr16;
6691 } else 6294 } else
6692 » » » » goto tr419; 6295 » » » » goto tr392;
6693 » » } else 6296 » » } else
6694 » » » goto tr413; 6297 » » » goto tr386;
6695 » } else 6298 » } else
6696 » » goto tr413; 6299 » » goto tr386;
6697 » goto tr415; 6300 » goto tr388;
6698 st190: 6301 st175:
6699 » if ( ++( current_position) == ( end_of_bundle) ) 6302 » if ( ++( current_position) == ( end_of_bundle) )
6700 » » goto _test_eof190; 6303 » » goto _test_eof175;
6701 case 190: 6304 case 175:
6702 » switch( (*( current_position)) ) { 6305 » switch( (*( current_position)) ) {
6703 » » case 4u: goto tr414; 6306 » » case 4u: goto tr387;
6704 » » case 5u: goto tr415; 6307 » » case 5u: goto tr388;
6705 » » case 12u: goto tr414; 6308 » » case 12u: goto tr387;
6706 » » case 13u: goto tr415; 6309 » » case 13u: goto tr388;
6707 » » case 20u: goto tr414; 6310 » » case 20u: goto tr387;
6708 » » case 21u: goto tr415; 6311 » » case 21u: goto tr388;
6709 » » case 28u: goto tr414; 6312 » » case 28u: goto tr387;
6710 » » case 29u: goto tr415; 6313 » » case 29u: goto tr388;
6711 » » case 44u: goto tr414; 6314 » » case 44u: goto tr387;
6712 » » case 45u: goto tr415; 6315 » » case 45u: goto tr388;
6713 » » case 60u: goto tr414; 6316 » » case 60u: goto tr387;
6714 » » case 61u: goto tr415; 6317 » » case 61u: goto tr388;
6715 » » case 68u: goto tr417; 6318 » » case 68u: goto tr390;
6716 » » case 76u: goto tr417; 6319 » » case 76u: goto tr390;
6717 » » case 84u: goto tr417; 6320 » » case 84u: goto tr390;
6718 » » case 92u: goto tr417; 6321 » » case 92u: goto tr390;
6719 » » case 108u: goto tr417; 6322 » » case 108u: goto tr390;
6720 » » case 124u: goto tr417; 6323 » » case 124u: goto tr390;
6721 » » case 132u: goto tr418; 6324 » » case 132u: goto tr391;
6722 » » case 140u: goto tr418; 6325 » » case 140u: goto tr391;
6723 » » case 148u: goto tr418; 6326 » » case 148u: goto tr391;
6724 » » case 156u: goto tr418; 6327 » » case 156u: goto tr391;
6725 » » case 172u: goto tr418; 6328 » » case 172u: goto tr391;
6726 » » case 188u: goto tr418; 6329 » » case 188u: goto tr391;
6727 } 6330 }
6728 if ( (*( current_position)) < 120u ) { 6331 if ( (*( current_position)) < 120u ) {
6729 if ( (*( current_position)) < 56u ) { 6332 if ( (*( current_position)) < 56u ) {
6730 if ( (*( current_position)) > 31u ) { 6333 if ( (*( current_position)) > 31u ) {
6731 if ( 40u <= (*( current_position)) && (*( curren t_position)) <= 47u ) 6334 if ( 40u <= (*( current_position)) && (*( curren t_position)) <= 47u )
6732 » » » » » goto tr413; 6335 » » » » » goto tr386;
6733 » » » } else 6336 » » » } else
6734 » » » » goto tr413; 6337 » » » » goto tr386;
6735 } else if ( (*( current_position)) > 63u ) { 6338 } else if ( (*( current_position)) > 63u ) {
6736 if ( (*( current_position)) > 95u ) { 6339 if ( (*( current_position)) > 95u ) {
6737 if ( 104u <= (*( current_position)) && (*( curre nt_position)) <= 111u ) 6340 if ( 104u <= (*( current_position)) && (*( curre nt_position)) <= 111u )
6738 » » » » » goto tr416; 6341 » » » » » goto tr389;
6739 } else if ( (*( current_position)) >= 64u ) 6342 } else if ( (*( current_position)) >= 64u )
6740 » » » » goto tr416; 6343 » » » » goto tr389;
6741 » » } else 6344 » » } else
6742 » » » goto tr413; 6345 » » » goto tr386;
6743 } else if ( (*( current_position)) > 127u ) { 6346 } else if ( (*( current_position)) > 127u ) {
6744 if ( (*( current_position)) < 184u ) { 6347 if ( (*( current_position)) < 184u ) {
6745 if ( (*( current_position)) > 159u ) { 6348 if ( (*( current_position)) > 159u ) {
6746 if ( 168u <= (*( current_position)) && (*( curre nt_position)) <= 175u ) 6349 if ( 168u <= (*( current_position)) && (*( curre nt_position)) <= 175u )
6747 » » » » » goto tr415; 6350 » » » » » goto tr388;
6748 } else if ( (*( current_position)) >= 128u ) 6351 } else if ( (*( current_position)) >= 128u )
6749 » » » » goto tr415; 6352 » » » » goto tr388;
6750 } else if ( (*( current_position)) > 191u ) { 6353 } else if ( (*( current_position)) > 191u ) {
6751 if ( (*( current_position)) < 226u ) { 6354 if ( (*( current_position)) < 226u ) {
6752 if ( 192u <= (*( current_position)) && (*( curre nt_position)) <= 223u ) 6355 if ( 192u <= (*( current_position)) && (*( curre nt_position)) <= 223u )
6753 » » » » » goto tr419; 6356 » » » » » goto tr392;
6754 } else if ( (*( current_position)) > 227u ) { 6357 } else if ( (*( current_position)) > 227u ) {
6755 if ( 232u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 6358 if ( 232u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
6756 » » » » » goto tr413; 6359 » » » » » goto tr386;
6757 » » » } else 6360 » » » } else
6758 » » » » goto tr413; 6361 » » » » goto tr386;
6759 » » } else 6362 » » } else
6760 » » » goto tr415; 6363 » » » goto tr388;
6761 » } else 6364 » } else
6762 » » goto tr416; 6365 » » goto tr389;
6763 goto tr16; 6366 goto tr16;
6764 st191: 6367 st176:
6765 » if ( ++( current_position) == ( end_of_bundle) ) 6368 » if ( ++( current_position) == ( end_of_bundle) )
6766 » » goto _test_eof191; 6369 » » goto _test_eof176;
6767 case 191: 6370 case 176:
6768 » switch( (*( current_position)) ) { 6371 » switch( (*( current_position)) ) {
6769 » » case 4u: goto tr414; 6372 » » case 4u: goto tr387;
6770 » » case 5u: goto tr415; 6373 » » case 5u: goto tr388;
6771 » » case 12u: goto tr414; 6374 » » case 12u: goto tr387;
6772 » » case 13u: goto tr415; 6375 » » case 13u: goto tr388;
6773 » » case 20u: goto tr414; 6376 » » case 20u: goto tr387;
6774 » » case 21u: goto tr415; 6377 » » case 21u: goto tr388;
6775 » » case 28u: goto tr414; 6378 » » case 28u: goto tr387;
6776 » » case 29u: goto tr415; 6379 » » case 29u: goto tr388;
6777 » » case 36u: goto tr414; 6380 » » case 36u: goto tr387;
6778 » » case 37u: goto tr415; 6381 » » case 37u: goto tr388;
6779 » » case 44u: goto tr414; 6382 » » case 44u: goto tr387;
6780 » » case 45u: goto tr415; 6383 » » case 45u: goto tr388;
6781 » » case 52u: goto tr414; 6384 » » case 52u: goto tr387;
6782 » » case 53u: goto tr415; 6385 » » case 53u: goto tr388;
6783 » » case 60u: goto tr414; 6386 » » case 60u: goto tr387;
6784 » » case 61u: goto tr415; 6387 » » case 61u: goto tr388;
6785 » » case 68u: goto tr417; 6388 » » case 68u: goto tr390;
6786 » » case 76u: goto tr417; 6389 » » case 76u: goto tr390;
6787 » » case 84u: goto tr417; 6390 » » case 84u: goto tr390;
6788 » » case 92u: goto tr417; 6391 » » case 92u: goto tr390;
6789 » » case 100u: goto tr417; 6392 » » case 100u: goto tr390;
6790 » » case 108u: goto tr417; 6393 » » case 108u: goto tr390;
6791 » » case 116u: goto tr417; 6394 » » case 116u: goto tr390;
6792 » » case 124u: goto tr417; 6395 » » case 124u: goto tr390;
6793 » » case 132u: goto tr418; 6396 » » case 132u: goto tr391;
6794 » » case 140u: goto tr418; 6397 » » case 140u: goto tr391;
6795 » » case 148u: goto tr418; 6398 » » case 148u: goto tr391;
6796 » » case 156u: goto tr418; 6399 » » case 156u: goto tr391;
6797 » » case 164u: goto tr418; 6400 » » case 164u: goto tr391;
6798 » » case 172u: goto tr418; 6401 » » case 172u: goto tr391;
6799 » » case 180u: goto tr418; 6402 » » case 180u: goto tr391;
6800 » » case 188u: goto tr418; 6403 » » case 188u: goto tr391;
6801 } 6404 }
6802 if ( (*( current_position)) < 128u ) { 6405 if ( (*( current_position)) < 128u ) {
6803 if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u ) 6406 if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u )
6804 » » » goto tr416; 6407 » » » goto tr389;
6805 } else if ( (*( current_position)) > 191u ) { 6408 } else if ( (*( current_position)) > 191u ) {
6806 if ( 208u <= (*( current_position)) && (*( current_position)) <= 223u ) 6409 if ( 208u <= (*( current_position)) && (*( current_position)) <= 223u )
6807 goto tr16; 6410 goto tr16;
6808 } else 6411 } else
6809 » » goto tr415; 6412 » » goto tr388;
6810 » goto tr413; 6413 » goto tr386;
6811 st192: 6414 st177:
6812 » if ( ++( current_position) == ( end_of_bundle) ) 6415 » if ( ++( current_position) == ( end_of_bundle) )
6813 » » goto _test_eof192; 6416 » » goto _test_eof177;
6814 case 192: 6417 case 177:
6815 » switch( (*( current_position)) ) { 6418 » switch( (*( current_position)) ) {
6816 » » case 4u: goto tr414; 6419 » » case 4u: goto tr387;
6817 » » case 5u: goto tr415; 6420 » » case 5u: goto tr388;
6818 » » case 12u: goto tr414; 6421 » » case 12u: goto tr387;
6819 » » case 13u: goto tr415; 6422 » » case 13u: goto tr388;
6820 » » case 20u: goto tr414; 6423 » » case 20u: goto tr387;
6821 » » case 21u: goto tr415; 6424 » » case 21u: goto tr388;
6822 » » case 28u: goto tr414; 6425 » » case 28u: goto tr387;
6823 » » case 29u: goto tr415; 6426 » » case 29u: goto tr388;
6824 » » case 36u: goto tr414; 6427 » » case 36u: goto tr387;
6825 » » case 37u: goto tr415; 6428 » » case 37u: goto tr388;
6826 » » case 52u: goto tr414; 6429 » » case 52u: goto tr387;
6827 » » case 53u: goto tr415; 6430 » » case 53u: goto tr388;
6828 » » case 60u: goto tr414; 6431 » » case 60u: goto tr387;
6829 » » case 61u: goto tr415; 6432 » » case 61u: goto tr388;
6830 » » case 68u: goto tr417; 6433 » » case 68u: goto tr390;
6831 » » case 76u: goto tr417; 6434 » » case 76u: goto tr390;
6832 » » case 84u: goto tr417; 6435 » » case 84u: goto tr390;
6833 » » case 92u: goto tr417; 6436 » » case 92u: goto tr390;
6834 » » case 100u: goto tr417; 6437 » » case 100u: goto tr390;
6835 » » case 116u: goto tr417; 6438 » » case 116u: goto tr390;
6836 » » case 124u: goto tr417; 6439 » » case 124u: goto tr390;
6837 » » case 132u: goto tr418; 6440 » » case 132u: goto tr391;
6838 » » case 140u: goto tr418; 6441 » » case 140u: goto tr391;
6839 » » case 148u: goto tr418; 6442 » » case 148u: goto tr391;
6840 » » case 156u: goto tr418; 6443 » » case 156u: goto tr391;
6841 » » case 164u: goto tr418; 6444 » » case 164u: goto tr391;
6842 » » case 180u: goto tr418; 6445 » » case 180u: goto tr391;
6843 » » case 188u: goto tr418; 6446 » » case 188u: goto tr391;
6844 } 6447 }
6845 if ( (*( current_position)) < 128u ) { 6448 if ( (*( current_position)) < 128u ) {
6846 if ( (*( current_position)) < 64u ) { 6449 if ( (*( current_position)) < 64u ) {
6847 if ( 40u <= (*( current_position)) && (*( current_positi on)) <= 47u ) 6450 if ( 40u <= (*( current_position)) && (*( current_positi on)) <= 47u )
6848 goto tr16; 6451 goto tr16;
6849 } else if ( (*( current_position)) > 103u ) { 6452 } else if ( (*( current_position)) > 103u ) {
6850 if ( (*( current_position)) > 111u ) { 6453 if ( (*( current_position)) > 111u ) {
6851 if ( 112u <= (*( current_position)) && (*( curre nt_position)) <= 127u ) 6454 if ( 112u <= (*( current_position)) && (*( curre nt_position)) <= 127u )
6852 » » » » » goto tr416; 6455 » » » » » goto tr389;
6853 } else if ( (*( current_position)) >= 104u ) 6456 } else if ( (*( current_position)) >= 104u )
6854 goto tr16; 6457 goto tr16;
6855 } else 6458 } else
6856 » » » goto tr416; 6459 » » » goto tr389;
6857 } else if ( (*( current_position)) > 167u ) { 6460 } else if ( (*( current_position)) > 167u ) {
6858 if ( (*( current_position)) < 176u ) { 6461 if ( (*( current_position)) < 176u ) {
6859 if ( 168u <= (*( current_position)) && (*( current_posit ion)) <= 175u ) 6462 if ( 168u <= (*( current_position)) && (*( current_posit ion)) <= 175u )
6860 goto tr16; 6463 goto tr16;
6861 } else if ( (*( current_position)) > 191u ) { 6464 } else if ( (*( current_position)) > 191u ) {
6862 if ( (*( current_position)) > 207u ) { 6465 if ( (*( current_position)) > 207u ) {
6863 if ( 240u <= (*( current_position)) ) 6466 if ( 240u <= (*( current_position)) )
6864 goto tr16; 6467 goto tr16;
6865 } else if ( (*( current_position)) >= 200u ) 6468 } else if ( (*( current_position)) >= 200u )
6866 goto tr16; 6469 goto tr16;
6867 } else 6470 } else
6868 » » » goto tr415; 6471 » » » goto tr388;
6869 } else 6472 } else
6870 » » goto tr415; 6473 » » goto tr388;
6871 » goto tr413; 6474 » goto tr386;
6872 st193: 6475 st178:
6873 if ( ++( current_position) == ( end_of_bundle) ) 6476 if ( ++( current_position) == ( end_of_bundle) )
6874 » » goto _test_eof193; 6477 » » goto _test_eof178;
6875 case 193: 6478 case 178:
6876 switch( (*( current_position)) ) { 6479 switch( (*( current_position)) ) {
6877 » » case 4u: goto tr414; 6480 » » case 4u: goto tr387;
6878 » » case 5u: goto tr415; 6481 » » case 5u: goto tr388;
6879 » » case 12u: goto tr414; 6482 » » case 12u: goto tr387;
6880 » » case 13u: goto tr415; 6483 » » case 13u: goto tr388;
6881 » » case 20u: goto tr414; 6484 » » case 20u: goto tr387;
6882 » » case 21u: goto tr415; 6485 » » case 21u: goto tr388;
6883 » » case 28u: goto tr414; 6486 » » case 28u: goto tr387;
6884 » » case 29u: goto tr415; 6487 » » case 29u: goto tr388;
6885 » » case 36u: goto tr414; 6488 » » case 36u: goto tr387;
6886 » » case 37u: goto tr415; 6489 » » case 37u: goto tr388;
6887 » » case 44u: goto tr414; 6490 » » case 44u: goto tr387;
6888 » » case 45u: goto tr415; 6491 » » case 45u: goto tr388;
6889 » » case 52u: goto tr414; 6492 » » case 52u: goto tr387;
6890 » » case 53u: goto tr415; 6493 » » case 53u: goto tr388;
6891 » » case 60u: goto tr414; 6494 » » case 60u: goto tr387;
6892 » » case 61u: goto tr415; 6495 » » case 61u: goto tr388;
6893 » » case 68u: goto tr417; 6496 » » case 68u: goto tr390;
6894 » » case 76u: goto tr417; 6497 » » case 76u: goto tr390;
6895 » » case 84u: goto tr417; 6498 » » case 84u: goto tr390;
6896 » » case 92u: goto tr417; 6499 » » case 92u: goto tr390;
6897 » » case 100u: goto tr417; 6500 » » case 100u: goto tr390;
6898 » » case 108u: goto tr417; 6501 » » case 108u: goto tr390;
6899 » » case 116u: goto tr417; 6502 » » case 116u: goto tr390;
6900 » » case 124u: goto tr417; 6503 » » case 124u: goto tr390;
6901 » » case 132u: goto tr418; 6504 » » case 132u: goto tr391;
6902 » » case 140u: goto tr418; 6505 » » case 140u: goto tr391;
6903 » » case 148u: goto tr418; 6506 » » case 148u: goto tr391;
6904 » » case 156u: goto tr418; 6507 » » case 156u: goto tr391;
6905 » » case 164u: goto tr418; 6508 » » case 164u: goto tr391;
6906 » » case 172u: goto tr418; 6509 » » case 172u: goto tr391;
6907 » » case 180u: goto tr418; 6510 » » case 180u: goto tr391;
6908 » » case 188u: goto tr418; 6511 » » case 188u: goto tr391;
6909 } 6512 }
6910 if ( (*( current_position)) < 128u ) { 6513 if ( (*( current_position)) < 128u ) {
6911 if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u ) 6514 if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u )
6912 » » » goto tr416; 6515 » » » goto tr389;
6913 } else if ( (*( current_position)) > 191u ) { 6516 } else if ( (*( current_position)) > 191u ) {
6914 if ( (*( current_position)) > 216u ) { 6517 if ( (*( current_position)) > 216u ) {
6915 if ( 218u <= (*( current_position)) && (*( current_posit ion)) <= 223u ) 6518 if ( 218u <= (*( current_position)) && (*( current_posit ion)) <= 223u )
6916 goto tr16; 6519 goto tr16;
6917 } else if ( (*( current_position)) >= 208u ) 6520 } else if ( (*( current_position)) >= 208u )
6918 goto tr16; 6521 goto tr16;
6919 } else 6522 } else
6920 » » goto tr415; 6523 » » goto tr388;
6921 » goto tr413; 6524 » goto tr386;
6922 st194: 6525 st179:
6923 if ( ++( current_position) == ( end_of_bundle) ) 6526 if ( ++( current_position) == ( end_of_bundle) )
6924 » » goto _test_eof194; 6527 » » goto _test_eof179;
6925 case 194: 6528 case 179:
6926 switch( (*( current_position)) ) { 6529 switch( (*( current_position)) ) {
6927 » » case 4u: goto tr414; 6530 » » case 4u: goto tr387;
6928 » » case 5u: goto tr415; 6531 » » case 5u: goto tr388;
6929 » » case 12u: goto tr414; 6532 » » case 12u: goto tr387;
6930 » » case 13u: goto tr415; 6533 » » case 13u: goto tr388;
6931 » » case 20u: goto tr414; 6534 » » case 20u: goto tr387;
6932 » » case 21u: goto tr415; 6535 » » case 21u: goto tr388;
6933 » » case 28u: goto tr414; 6536 » » case 28u: goto tr387;
6934 » » case 29u: goto tr415; 6537 » » case 29u: goto tr388;
6935 » » case 36u: goto tr414; 6538 » » case 36u: goto tr387;
6936 » » case 37u: goto tr415; 6539 » » case 37u: goto tr388;
6937 » » case 44u: goto tr414; 6540 » » case 44u: goto tr387;
6938 » » case 45u: goto tr415; 6541 » » case 45u: goto tr388;
6939 » » case 52u: goto tr414; 6542 » » case 52u: goto tr387;
6940 » » case 53u: goto tr415; 6543 » » case 53u: goto tr388;
6941 » » case 60u: goto tr414; 6544 » » case 60u: goto tr387;
6942 » » case 61u: goto tr415; 6545 » » case 61u: goto tr388;
6943 » » case 68u: goto tr417; 6546 » » case 68u: goto tr390;
6944 » » case 76u: goto tr417; 6547 » » case 76u: goto tr390;
6945 » » case 84u: goto tr417; 6548 » » case 84u: goto tr390;
6946 » » case 92u: goto tr417; 6549 » » case 92u: goto tr390;
6947 » » case 100u: goto tr417; 6550 » » case 100u: goto tr390;
6948 » » case 108u: goto tr417; 6551 » » case 108u: goto tr390;
6949 » » case 116u: goto tr417; 6552 » » case 116u: goto tr390;
6950 » » case 124u: goto tr417; 6553 » » case 124u: goto tr390;
6951 » » case 132u: goto tr418; 6554 » » case 132u: goto tr391;
6952 » » case 140u: goto tr418; 6555 » » case 140u: goto tr391;
6953 » » case 148u: goto tr418; 6556 » » case 148u: goto tr391;
6954 » » case 156u: goto tr418; 6557 » » case 156u: goto tr391;
6955 » » case 164u: goto tr418; 6558 » » case 164u: goto tr391;
6956 » » case 172u: goto tr418; 6559 » » case 172u: goto tr391;
6957 » » case 180u: goto tr418; 6560 » » case 180u: goto tr391;
6958 » » case 188u: goto tr418; 6561 » » case 188u: goto tr391;
6959 } 6562 }
6960 if ( (*( current_position)) < 192u ) { 6563 if ( (*( current_position)) < 192u ) {
6961 if ( (*( current_position)) > 127u ) { 6564 if ( (*( current_position)) > 127u ) {
6962 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 191u ) 6565 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 191u )
6963 » » » » goto tr415; 6566 » » » » goto tr388;
6964 } else if ( (*( current_position)) >= 64u ) 6567 } else if ( (*( current_position)) >= 64u )
6965 » » » goto tr416; 6568 » » » goto tr389;
6966 } else if ( (*( current_position)) > 223u ) { 6569 } else if ( (*( current_position)) > 223u ) {
6967 if ( (*( current_position)) > 231u ) { 6570 if ( (*( current_position)) > 231u ) {
6968 if ( 248u <= (*( current_position)) ) 6571 if ( 248u <= (*( current_position)) )
6969 goto tr16; 6572 goto tr16;
6970 } else if ( (*( current_position)) >= 225u ) 6573 } else if ( (*( current_position)) >= 225u )
6971 goto tr16; 6574 goto tr16;
6972 } else 6575 } else
6973 goto tr16; 6576 goto tr16;
6974 » goto tr413; 6577 » goto tr386;
6975 st195: 6578 st180:
6976 if ( ++( current_position) == ( end_of_bundle) ) 6579 if ( ++( current_position) == ( end_of_bundle) )
6977 » » goto _test_eof195; 6580 » » goto _test_eof180;
6978 case 195: 6581 case 180:
6979 » goto tr420; 6582 » goto tr393;
6980 tr420: 6583 tr393:
6981 {} 6584 {}
6982 » goto st196; 6585 » goto st181;
6983 st196: 6586 st181:
6984 if ( ++( current_position) == ( end_of_bundle) ) 6587 if ( ++( current_position) == ( end_of_bundle) )
6985 » » goto _test_eof196; 6588 » » goto _test_eof181;
6986 case 196: 6589 case 181:
6987 » goto tr421; 6590 » goto tr394;
6988 tr421: 6591 tr394:
6989 {} 6592 {}
6990 » goto st197; 6593 » goto st182;
6991 st197: 6594 st182:
6992 if ( ++( current_position) == ( end_of_bundle) ) 6595 if ( ++( current_position) == ( end_of_bundle) )
6993 » » goto _test_eof197; 6596 » » goto _test_eof182;
6994 case 197: 6597 case 182:
6995 » goto tr422; 6598 » goto tr395;
6996 tr422: 6599 tr395:
6997 {} 6600 {}
6998 » goto st198; 6601 » goto st183;
6999 st198: 6602 st183:
7000 if ( ++( current_position) == ( end_of_bundle) ) 6603 if ( ++( current_position) == ( end_of_bundle) )
7001 » » goto _test_eof198; 6604 » » goto _test_eof183;
7002 case 198: 6605 case 183:
7003 » goto tr423; 6606 » goto tr396;
7004 st199: 6607 st184:
7005 if ( ++( current_position) == ( end_of_bundle) ) 6608 if ( ++( current_position) == ( end_of_bundle) )
7006 » » goto _test_eof199; 6609 » » goto _test_eof184;
7007 case 199: 6610 case 184:
7008 switch( (*( current_position)) ) { 6611 switch( (*( current_position)) ) {
7009 » » case 15u: goto st200; 6612 » » case 15u: goto st185;
7010 case 102u: goto st119; 6613 case 102u: goto st119;
7011 case 128u: goto st121; 6614 case 128u: goto st121;
7012 » » case 129u: goto st201; 6615 » » case 129u: goto st186;
7013 case 131u: goto st121; 6616 case 131u: goto st121;
7014 } 6617 }
7015 if ( (*( current_position)) < 32u ) { 6618 if ( (*( current_position)) < 32u ) {
7016 if ( (*( current_position)) < 8u ) { 6619 if ( (*( current_position)) < 8u ) {
7017 if ( (*( current_position)) <= 1u ) 6620 if ( (*( current_position)) <= 1u )
7018 goto st115; 6621 goto st115;
7019 } else if ( (*( current_position)) > 9u ) { 6622 } else if ( (*( current_position)) > 9u ) {
7020 if ( (*( current_position)) > 17u ) { 6623 if ( (*( current_position)) > 17u ) {
7021 if ( 24u <= (*( current_position)) && (*( curren t_position)) <= 25u ) 6624 if ( 24u <= (*( current_position)) && (*( curren t_position)) <= 25u )
7022 goto st115; 6625 goto st115;
(...skipping 12 matching lines...) Expand all
7035 if ( (*( current_position)) > 247u ) { 6638 if ( (*( current_position)) > 247u ) {
7036 if ( 254u <= (*( current_position)) ) 6639 if ( 254u <= (*( current_position)) )
7037 goto st123; 6640 goto st123;
7038 } else if ( (*( current_position)) >= 246u ) 6641 } else if ( (*( current_position)) >= 246u )
7039 goto st122; 6642 goto st122;
7040 } else 6643 } else
7041 goto st115; 6644 goto st115;
7042 } else 6645 } else
7043 goto st115; 6646 goto st115;
7044 goto tr16; 6647 goto tr16;
7045 st200: 6648 st185:
7046 if ( ++( current_position) == ( end_of_bundle) ) 6649 if ( ++( current_position) == ( end_of_bundle) )
7047 » » goto _test_eof200; 6650 » » goto _test_eof185;
7048 case 200: 6651 case 185:
7049 if ( (*( current_position)) == 199u ) 6652 if ( (*( current_position)) == 199u )
7050 goto st61; 6653 goto st61;
7051 if ( (*( current_position)) > 177u ) { 6654 if ( (*( current_position)) > 177u ) {
7052 if ( 192u <= (*( current_position)) && (*( current_position)) <= 193u ) 6655 if ( 192u <= (*( current_position)) && (*( current_position)) <= 193u )
7053 goto st115; 6656 goto st115;
7054 } else if ( (*( current_position)) >= 176u ) 6657 } else if ( (*( current_position)) >= 176u )
7055 goto st115; 6658 goto st115;
7056 goto tr16; 6659 goto tr16;
7057 st201: 6660 st186:
7058 if ( ++( current_position) == ( end_of_bundle) ) 6661 if ( ++( current_position) == ( end_of_bundle) )
7059 » » goto _test_eof201; 6662 » » goto _test_eof186;
7060 case 201: 6663 case 186:
7061 switch( (*( current_position)) ) { 6664 switch( (*( current_position)) ) {
7062 case 4u: goto st131; 6665 case 4u: goto st131;
7063 case 5u: goto st132; 6666 case 5u: goto st132;
7064 case 12u: goto st131; 6667 case 12u: goto st131;
7065 case 13u: goto st132; 6668 case 13u: goto st132;
7066 case 20u: goto st131; 6669 case 20u: goto st131;
7067 case 21u: goto st132; 6670 case 21u: goto st132;
7068 case 28u: goto st131; 6671 case 28u: goto st131;
7069 case 29u: goto st132; 6672 case 29u: goto st132;
7070 case 36u: goto st131; 6673 case 36u: goto st131;
(...skipping 19 matching lines...) Expand all
7090 } 6693 }
7091 if ( (*( current_position)) < 64u ) { 6694 if ( (*( current_position)) < 64u ) {
7092 if ( (*( current_position)) <= 55u ) 6695 if ( (*( current_position)) <= 55u )
7093 goto st11; 6696 goto st11;
7094 } else if ( (*( current_position)) > 119u ) { 6697 } else if ( (*( current_position)) > 119u ) {
7095 if ( 128u <= (*( current_position)) && (*( current_position)) <= 183u ) 6698 if ( 128u <= (*( current_position)) && (*( current_position)) <= 183u )
7096 goto st132; 6699 goto st132;
7097 } else 6700 } else
7098 goto st136; 6701 goto st136;
7099 goto tr16; 6702 goto tr16;
7100 st202: 6703 st187:
7101 if ( ++( current_position) == ( end_of_bundle) ) 6704 if ( ++( current_position) == ( end_of_bundle) )
7102 » » goto _test_eof202; 6705 » » goto _test_eof187;
7103 case 202: 6706 case 187:
7104 switch( (*( current_position)) ) { 6707 switch( (*( current_position)) ) {
7105 » » case 15u: goto st203; 6708 » » case 15u: goto st188;
7106 case 102u: goto st124; 6709 case 102u: goto st124;
7107 } 6710 }
7108 if ( (*( current_position)) > 167u ) { 6711 if ( (*( current_position)) > 167u ) {
7109 if ( 174u <= (*( current_position)) && (*( current_position)) <= 175u ) 6712 if ( 174u <= (*( current_position)) && (*( current_position)) <= 175u )
7110 goto tr0; 6713 goto tr0;
7111 } else if ( (*( current_position)) >= 166u ) 6714 } else if ( (*( current_position)) >= 166u )
7112 goto tr0; 6715 goto tr0;
7113 goto tr16; 6716 goto tr16;
7114 st203: 6717 st188:
7115 if ( ++( current_position) == ( end_of_bundle) ) 6718 if ( ++( current_position) == ( end_of_bundle) )
7116 » » goto _test_eof203; 6719 » » goto _test_eof188;
7117 case 203: 6720 case 188:
7118 switch( (*( current_position)) ) { 6721 switch( (*( current_position)) ) {
7119 case 18u: goto st96; 6722 case 18u: goto st96;
7120 » » case 43u: goto st204; 6723 » » case 43u: goto st189;
7121 » » case 56u: goto st205; 6724 » » case 56u: goto st190;
7122 case 81u: goto st32; 6725 case 81u: goto st32;
7123 case 112u: goto st92; 6726 case 112u: goto st92;
7124 » » case 120u: goto st206; 6727 » » case 120u: goto st191;
7125 case 121u: goto st95; 6728 case 121u: goto st95;
7126 case 194u: goto st92; 6729 case 194u: goto st92;
7127 case 208u: goto st28; 6730 case 208u: goto st28;
7128 case 214u: goto st91; 6731 case 214u: goto st91;
7129 case 230u: goto st32; 6732 case 230u: goto st32;
7130 » » case 240u: goto st209; 6733 » » case 240u: goto st194;
7131 } 6734 }
7132 if ( (*( current_position)) < 88u ) { 6735 if ( (*( current_position)) < 88u ) {
7133 if ( (*( current_position)) > 17u ) { 6736 if ( (*( current_position)) > 17u ) {
7134 if ( 42u <= (*( current_position)) && (*( current_positi on)) <= 45u ) 6737 if ( 42u <= (*( current_position)) && (*( current_positi on)) <= 45u )
7135 goto st32; 6738 goto st32;
7136 } else if ( (*( current_position)) >= 16u ) 6739 } else if ( (*( current_position)) >= 16u )
7137 goto st32; 6740 goto st32;
7138 } else if ( (*( current_position)) > 90u ) { 6741 } else if ( (*( current_position)) > 90u ) {
7139 if ( (*( current_position)) > 95u ) { 6742 if ( (*( current_position)) > 95u ) {
7140 if ( 124u <= (*( current_position)) && (*( current_posit ion)) <= 125u ) 6743 if ( 124u <= (*( current_position)) && (*( current_posit ion)) <= 125u )
7141 goto st96; 6744 goto st96;
7142 } else if ( (*( current_position)) >= 92u ) 6745 } else if ( (*( current_position)) >= 92u )
7143 goto st32; 6746 goto st32;
7144 } else 6747 } else
7145 goto st32; 6748 goto st32;
7146 goto tr16; 6749 goto tr16;
7147 st204: 6750 st189:
7148 if ( ++( current_position) == ( end_of_bundle) ) 6751 if ( ++( current_position) == ( end_of_bundle) )
7149 » » goto _test_eof204; 6752 » » goto _test_eof189;
7150 case 204: 6753 case 189:
7151 switch( (*( current_position)) ) { 6754 switch( (*( current_position)) ) {
7152 » » case 4u: goto tr431; 6755 » » case 4u: goto tr404;
7153 » » case 12u: goto tr431; 6756 » » case 5u: goto tr405;
7154 » » case 20u: goto tr431; 6757 » » case 12u: goto tr404;
7155 » » case 28u: goto tr431; 6758 » » case 13u: goto tr405;
7156 » » case 36u: goto tr431; 6759 » » case 20u: goto tr404;
7157 » » case 44u: goto tr431; 6760 » » case 21u: goto tr405;
7158 » » case 52u: goto tr431; 6761 » » case 28u: goto tr404;
7159 » » case 60u: goto tr431; 6762 » » case 29u: goto tr405;
7160 » » case 68u: goto tr434; 6763 » » case 36u: goto tr404;
7161 » » case 76u: goto tr434; 6764 » » case 37u: goto tr405;
7162 » » case 84u: goto tr434; 6765 » » case 44u: goto tr404;
7163 » » case 92u: goto tr434; 6766 » » case 45u: goto tr405;
7164 » » case 100u: goto tr434; 6767 » » case 52u: goto tr404;
7165 » » case 108u: goto tr434; 6768 » » case 53u: goto tr405;
7166 » » case 116u: goto tr434; 6769 » » case 60u: goto tr404;
7167 » » case 124u: goto tr434; 6770 » » case 61u: goto tr405;
7168 » » case 132u: goto tr435; 6771 » » case 68u: goto tr407;
7169 » » case 140u: goto tr435; 6772 » » case 76u: goto tr407;
7170 » » case 148u: goto tr435; 6773 » » case 84u: goto tr407;
7171 » » case 156u: goto tr435; 6774 » » case 92u: goto tr407;
7172 » » case 164u: goto tr435; 6775 » » case 100u: goto tr407;
7173 » » case 172u: goto tr435; 6776 » » case 108u: goto tr407;
7174 » » case 180u: goto tr435; 6777 » » case 116u: goto tr407;
7175 » » case 188u: goto tr435; 6778 » » case 124u: goto tr407;
6779 » » case 132u: goto tr408;
6780 » » case 140u: goto tr408;
6781 » » case 148u: goto tr408;
6782 » » case 156u: goto tr408;
6783 » » case 164u: goto tr408;
6784 » » case 172u: goto tr408;
6785 » » case 180u: goto tr408;
6786 » » case 188u: goto tr408;
7176 } 6787 }
7177 » if ( (*( current_position)) < 38u ) { 6788 » if ( (*( current_position)) < 64u ) {
7178 » » if ( (*( current_position)) < 14u ) { 6789 » » if ( (*( current_position)) <= 63u )
7179 » » » if ( (*( current_position)) > 3u ) {
7180 » » » » if ( 6u <= (*( current_position)) && (*( current _position)) <= 11u )
7181 » » » » » goto tr255;
7182 » » » } else
7183 » » » » goto tr255;
7184 » » } else if ( (*( current_position)) > 19u ) {
7185 » » » if ( (*( current_position)) > 27u ) {
7186 » » » » if ( 30u <= (*( current_position)) && (*( curren t_position)) <= 35u )
7187 » » » » » goto tr255;
7188 » » » } else if ( (*( current_position)) >= 22u )
7189 » » » » goto tr255;
7190 » » } else
7191 goto tr255; 6790 goto tr255;
7192 » } else if ( (*( current_position)) > 43u ) { 6791 » } else if ( (*( current_position)) > 127u ) {
7193 » » if ( (*( current_position)) < 62u ) { 6792 » » if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
7194 » » » if ( (*( current_position)) > 51u ) { 6793 » » » goto tr405;
7195 » » » » if ( 54u <= (*( current_position)) && (*( curren t_position)) <= 59u )
7196 » » » » » goto tr255;
7197 » » » } else if ( (*( current_position)) >= 46u )
7198 » » » » goto tr255;
7199 » » } else if ( (*( current_position)) > 63u ) {
7200 » » » if ( (*( current_position)) > 127u ) {
7201 » » » » if ( 192u <= (*( current_position)) )
7202 » » » » » goto tr16;
7203 » » » } else if ( (*( current_position)) >= 64u )
7204 » » » » goto tr433;
7205 » » } else
7206 » » » goto tr255;
7207 } else 6794 } else
7208 » » goto tr255; 6795 » » goto tr406;
7209 » goto tr432; 6796 » goto tr16;
7210 st205: 6797 st190:
7211 if ( ++( current_position) == ( end_of_bundle) ) 6798 if ( ++( current_position) == ( end_of_bundle) )
7212 » » goto _test_eof205; 6799 » » goto _test_eof190;
7213 case 205: 6800 case 190:
7214 if ( 240u <= (*( current_position)) && (*( current_position)) <= 241u ) 6801 if ( 240u <= (*( current_position)) && (*( current_position)) <= 241u )
7215 goto st84; 6802 goto st84;
7216 goto tr16; 6803 goto tr16;
7217 st206: 6804 st191:
7218 if ( ++( current_position) == ( end_of_bundle) ) 6805 if ( ++( current_position) == ( end_of_bundle) )
7219 » » goto _test_eof206; 6806 » » goto _test_eof191;
7220 case 206: 6807 case 191:
7221 if ( 192u <= (*( current_position)) ) 6808 if ( 192u <= (*( current_position)) )
7222 » » goto tr436; 6809 » » goto tr409;
7223 goto tr16; 6810 goto tr16;
7224 tr436: 6811 tr409:
7225 { SET_CPU_FEATURE(CPUFeature_SSE4A); } 6812 { SET_CPU_FEATURE(CPUFeature_SSE4A); }
7226 » goto st207; 6813 » goto st192;
7227 st207: 6814 st192:
7228 if ( ++( current_position) == ( end_of_bundle) ) 6815 if ( ++( current_position) == ( end_of_bundle) )
7229 » » goto _test_eof207; 6816 » » goto _test_eof192;
7230 case 207: 6817 case 192:
7231 » goto tr437; 6818 » goto tr410;
7232 tr437: 6819 tr410:
7233 { 6820 {
7234 SET_IMM_TYPE(IMM8); 6821 SET_IMMEDIATE_FORMAT(IMM8);
7235 SET_IMM_PTR(current_position); 6822 SET_IMMEDIATE_POINTER(current_position);
7236 } 6823 }
7237 {} 6824 {}
7238 » goto st208; 6825 » goto st193;
7239 st208: 6826 st193:
7240 if ( ++( current_position) == ( end_of_bundle) ) 6827 if ( ++( current_position) == ( end_of_bundle) )
7241 » » goto _test_eof208; 6828 » » goto _test_eof193;
7242 case 208: 6829 case 193:
7243 » goto tr438; 6830 » goto tr411;
7244 st209: 6831 st194:
7245 if ( ++( current_position) == ( end_of_bundle) ) 6832 if ( ++( current_position) == ( end_of_bundle) )
7246 » » goto _test_eof209; 6833 » » goto _test_eof194;
7247 case 209: 6834 case 194:
7248 switch( (*( current_position)) ) { 6835 switch( (*( current_position)) ) {
7249 case 4u: goto tr257; 6836 case 4u: goto tr257;
7250 case 12u: goto tr257; 6837 case 12u: goto tr257;
7251 case 20u: goto tr257; 6838 case 20u: goto tr257;
7252 case 28u: goto tr257; 6839 case 28u: goto tr257;
7253 case 36u: goto tr257; 6840 case 36u: goto tr257;
7254 case 44u: goto tr257; 6841 case 44u: goto tr257;
7255 case 52u: goto tr257; 6842 case 52u: goto tr257;
7256 case 60u: goto tr257; 6843 case 60u: goto tr257;
7257 case 68u: goto tr260; 6844 case 68u: goto tr260;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
7297 if ( (*( current_position)) > 127u ) { 6884 if ( (*( current_position)) > 127u ) {
7298 if ( 192u <= (*( current_position)) ) 6885 if ( 192u <= (*( current_position)) )
7299 goto tr16; 6886 goto tr16;
7300 } else if ( (*( current_position)) >= 64u ) 6887 } else if ( (*( current_position)) >= 64u )
7301 goto tr259; 6888 goto tr259;
7302 } else 6889 } else
7303 goto tr256; 6890 goto tr256;
7304 } else 6891 } else
7305 goto tr256; 6892 goto tr256;
7306 goto tr258; 6893 goto tr258;
7307 st210: 6894 st195:
7308 if ( ++( current_position) == ( end_of_bundle) ) 6895 if ( ++( current_position) == ( end_of_bundle) )
7309 » » goto _test_eof210; 6896 » » goto _test_eof195;
7310 case 210: 6897 case 195:
7311 switch( (*( current_position)) ) { 6898 switch( (*( current_position)) ) {
7312 » » case 15u: goto st211; 6899 » » case 15u: goto st196;
7313 case 102u: goto st127; 6900 case 102u: goto st127;
7314 case 144u: goto tr0; 6901 case 144u: goto tr0;
7315 } 6902 }
7316 if ( (*( current_position)) < 170u ) { 6903 if ( (*( current_position)) < 170u ) {
7317 if ( 164u <= (*( current_position)) && (*( current_position)) <= 167u ) 6904 if ( 164u <= (*( current_position)) && (*( current_position)) <= 167u )
7318 goto tr0; 6905 goto tr0;
7319 } else if ( (*( current_position)) > 171u ) { 6906 } else if ( (*( current_position)) > 171u ) {
7320 if ( 174u <= (*( current_position)) && (*( current_position)) <= 175u ) 6907 if ( 174u <= (*( current_position)) && (*( current_position)) <= 175u )
7321 goto tr0; 6908 goto tr0;
7322 } else 6909 } else
7323 goto tr0; 6910 goto tr0;
7324 goto tr16; 6911 goto tr16;
7325 st211: 6912 st196:
7326 if ( ++( current_position) == ( end_of_bundle) ) 6913 if ( ++( current_position) == ( end_of_bundle) )
7327 » » goto _test_eof211; 6914 » » goto _test_eof196;
7328 case 211: 6915 case 196:
7329 switch( (*( current_position)) ) { 6916 switch( (*( current_position)) ) {
7330 case 18u: goto st96; 6917 case 18u: goto st96;
7331 case 22u: goto st96; 6918 case 22u: goto st96;
7332 » » case 43u: goto st204; 6919 » » case 43u: goto st189;
7333 case 111u: goto st32; 6920 case 111u: goto st32;
7334 case 112u: goto st92; 6921 case 112u: goto st92;
7335 » » case 184u: goto st212; 6922 » » case 184u: goto st197;
7336 » » case 188u: goto st213; 6923 » » case 188u: goto st198;
7337 » » case 189u: goto st214; 6924 » » case 189u: goto st199;
7338 case 194u: goto st58; 6925 case 194u: goto st58;
7339 case 214u: goto st91; 6926 case 214u: goto st91;
7340 case 230u: goto st32; 6927 case 230u: goto st32;
7341 } 6928 }
7342 if ( (*( current_position)) < 88u ) { 6929 if ( (*( current_position)) < 88u ) {
7343 if ( (*( current_position)) < 42u ) { 6930 if ( (*( current_position)) < 42u ) {
7344 if ( 16u <= (*( current_position)) && (*( current_positi on)) <= 17u ) 6931 if ( 16u <= (*( current_position)) && (*( current_positi on)) <= 17u )
7345 goto st28; 6932 goto st28;
7346 } else if ( (*( current_position)) > 45u ) { 6933 } else if ( (*( current_position)) > 45u ) {
7347 if ( 81u <= (*( current_position)) && (*( current_positi on)) <= 83u ) 6934 if ( 81u <= (*( current_position)) && (*( current_positi on)) <= 83u )
7348 goto st28; 6935 goto st28;
7349 } else 6936 } else
7350 goto st28; 6937 goto st28;
7351 } else if ( (*( current_position)) > 89u ) { 6938 } else if ( (*( current_position)) > 89u ) {
7352 if ( (*( current_position)) < 92u ) { 6939 if ( (*( current_position)) < 92u ) {
7353 if ( 90u <= (*( current_position)) && (*( current_positi on)) <= 91u ) 6940 if ( 90u <= (*( current_position)) && (*( current_positi on)) <= 91u )
7354 goto st32; 6941 goto st32;
7355 } else if ( (*( current_position)) > 95u ) { 6942 } else if ( (*( current_position)) > 95u ) {
7356 if ( 126u <= (*( current_position)) && (*( current_posit ion)) <= 127u ) 6943 if ( 126u <= (*( current_position)) && (*( current_posit ion)) <= 127u )
7357 goto st32; 6944 goto st32;
7358 } else 6945 } else
7359 goto st28; 6946 goto st28;
7360 } else 6947 } else
7361 goto st28; 6948 goto st28;
7362 goto tr16; 6949 goto tr16;
7363 st212: 6950 st197:
7364 if ( ++( current_position) == ( end_of_bundle) ) 6951 if ( ++( current_position) == ( end_of_bundle) )
7365 » » goto _test_eof212; 6952 » » goto _test_eof197;
7366 case 212: 6953 case 197:
7367 switch( (*( current_position)) ) { 6954 switch( (*( current_position)) ) {
7368 » » case 4u: goto tr444; 6955 » » case 4u: goto tr417;
7369 » » case 5u: goto tr445; 6956 » » case 5u: goto tr418;
7370 » » case 12u: goto tr444; 6957 » » case 12u: goto tr417;
7371 » » case 13u: goto tr445; 6958 » » case 13u: goto tr418;
7372 » » case 20u: goto tr444; 6959 » » case 20u: goto tr417;
7373 » » case 21u: goto tr445; 6960 » » case 21u: goto tr418;
7374 » » case 28u: goto tr444; 6961 » » case 28u: goto tr417;
7375 » » case 29u: goto tr445; 6962 » » case 29u: goto tr418;
7376 » » case 36u: goto tr444; 6963 » » case 36u: goto tr417;
7377 » » case 37u: goto tr445; 6964 » » case 37u: goto tr418;
7378 » » case 44u: goto tr444; 6965 » » case 44u: goto tr417;
7379 » » case 45u: goto tr445; 6966 » » case 45u: goto tr418;
7380 » » case 52u: goto tr444; 6967 » » case 52u: goto tr417;
7381 » » case 53u: goto tr445; 6968 » » case 53u: goto tr418;
7382 » » case 60u: goto tr444; 6969 » » case 60u: goto tr417;
7383 » » case 61u: goto tr445; 6970 » » case 61u: goto tr418;
7384 » » case 68u: goto tr447; 6971 » » case 68u: goto tr420;
7385 » » case 76u: goto tr447; 6972 » » case 76u: goto tr420;
7386 » » case 84u: goto tr447; 6973 » » case 84u: goto tr420;
7387 » » case 92u: goto tr447; 6974 » » case 92u: goto tr420;
7388 » » case 100u: goto tr447; 6975 » » case 100u: goto tr420;
7389 » » case 108u: goto tr447; 6976 » » case 108u: goto tr420;
7390 » » case 116u: goto tr447; 6977 » » case 116u: goto tr420;
7391 » » case 124u: goto tr447; 6978 » » case 124u: goto tr420;
7392 » » case 132u: goto tr448; 6979 » » case 132u: goto tr421;
7393 » » case 140u: goto tr448; 6980 » » case 140u: goto tr421;
7394 » » case 148u: goto tr448; 6981 » » case 148u: goto tr421;
7395 » » case 156u: goto tr448; 6982 » » case 156u: goto tr421;
7396 » » case 164u: goto tr448; 6983 » » case 164u: goto tr421;
7397 » » case 172u: goto tr448; 6984 » » case 172u: goto tr421;
7398 » » case 180u: goto tr448; 6985 » » case 180u: goto tr421;
7399 » » case 188u: goto tr448; 6986 » » case 188u: goto tr421;
7400 } 6987 }
7401 if ( (*( current_position)) > 127u ) { 6988 if ( (*( current_position)) > 127u ) {
7402 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 6989 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
7403 » » » goto tr445; 6990 » » » goto tr418;
7404 } else if ( (*( current_position)) >= 64u ) 6991 } else if ( (*( current_position)) >= 64u )
7405 » » goto tr446; 6992 » » goto tr419;
7406 » goto tr443; 6993 » goto tr416;
7407 st213: 6994 st198:
7408 if ( ++( current_position) == ( end_of_bundle) ) 6995 if ( ++( current_position) == ( end_of_bundle) )
7409 » » goto _test_eof213; 6996 » » goto _test_eof198;
7410 case 213: 6997 case 198:
7411 switch( (*( current_position)) ) { 6998 switch( (*( current_position)) ) {
7412 » » case 4u: goto tr450; 6999 » » case 4u: goto tr423;
7413 » » case 5u: goto tr451; 7000 » » case 5u: goto tr424;
7414 » » case 12u: goto tr450; 7001 » » case 12u: goto tr423;
7415 » » case 13u: goto tr451; 7002 » » case 13u: goto tr424;
7416 » » case 20u: goto tr450; 7003 » » case 20u: goto tr423;
7417 » » case 21u: goto tr451; 7004 » » case 21u: goto tr424;
7418 » » case 28u: goto tr450; 7005 » » case 28u: goto tr423;
7419 » » case 29u: goto tr451; 7006 » » case 29u: goto tr424;
7420 » » case 36u: goto tr450; 7007 » » case 36u: goto tr423;
7421 » » case 37u: goto tr451; 7008 » » case 37u: goto tr424;
7422 » » case 44u: goto tr450; 7009 » » case 44u: goto tr423;
7423 » » case 45u: goto tr451; 7010 » » case 45u: goto tr424;
7424 » » case 52u: goto tr450; 7011 » » case 52u: goto tr423;
7425 » » case 53u: goto tr451; 7012 » » case 53u: goto tr424;
7426 » » case 60u: goto tr450; 7013 » » case 60u: goto tr423;
7427 » » case 61u: goto tr451; 7014 » » case 61u: goto tr424;
7428 » » case 68u: goto tr453; 7015 » » case 68u: goto tr426;
7429 » » case 76u: goto tr453; 7016 » » case 76u: goto tr426;
7430 » » case 84u: goto tr453; 7017 » » case 84u: goto tr426;
7431 » » case 92u: goto tr453; 7018 » » case 92u: goto tr426;
7432 » » case 100u: goto tr453; 7019 » » case 100u: goto tr426;
7433 » » case 108u: goto tr453; 7020 » » case 108u: goto tr426;
7434 » » case 116u: goto tr453; 7021 » » case 116u: goto tr426;
7435 » » case 124u: goto tr453; 7022 » » case 124u: goto tr426;
7436 » » case 132u: goto tr454; 7023 » » case 132u: goto tr427;
7437 » » case 140u: goto tr454; 7024 » » case 140u: goto tr427;
7438 » » case 148u: goto tr454; 7025 » » case 148u: goto tr427;
7439 » » case 156u: goto tr454; 7026 » » case 156u: goto tr427;
7440 » » case 164u: goto tr454; 7027 » » case 164u: goto tr427;
7441 » » case 172u: goto tr454; 7028 » » case 172u: goto tr427;
7442 » » case 180u: goto tr454; 7029 » » case 180u: goto tr427;
7443 » » case 188u: goto tr454; 7030 » » case 188u: goto tr427;
7444 } 7031 }
7445 if ( (*( current_position)) > 127u ) { 7032 if ( (*( current_position)) > 127u ) {
7446 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 7033 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
7447 » » » goto tr451; 7034 » » » goto tr424;
7448 } else if ( (*( current_position)) >= 64u ) 7035 } else if ( (*( current_position)) >= 64u )
7449 » » goto tr452; 7036 » » goto tr425;
7450 » goto tr449; 7037 » goto tr422;
7451 st214: 7038 st199:
7452 if ( ++( current_position) == ( end_of_bundle) ) 7039 if ( ++( current_position) == ( end_of_bundle) )
7453 » » goto _test_eof214; 7040 » » goto _test_eof199;
7454 case 214: 7041 case 199:
7455 switch( (*( current_position)) ) { 7042 switch( (*( current_position)) ) {
7456 » » case 4u: goto tr456; 7043 » » case 4u: goto tr429;
7457 » » case 5u: goto tr457; 7044 » » case 5u: goto tr430;
7458 » » case 12u: goto tr456; 7045 » » case 12u: goto tr429;
7459 » » case 13u: goto tr457; 7046 » » case 13u: goto tr430;
7460 » » case 20u: goto tr456; 7047 » » case 20u: goto tr429;
7461 » » case 21u: goto tr457; 7048 » » case 21u: goto tr430;
7462 » » case 28u: goto tr456; 7049 » » case 28u: goto tr429;
7463 » » case 29u: goto tr457; 7050 » » case 29u: goto tr430;
7464 » » case 36u: goto tr456; 7051 » » case 36u: goto tr429;
7465 » » case 37u: goto tr457; 7052 » » case 37u: goto tr430;
7466 » » case 44u: goto tr456; 7053 » » case 44u: goto tr429;
7467 » » case 45u: goto tr457; 7054 » » case 45u: goto tr430;
7468 » » case 52u: goto tr456; 7055 » » case 52u: goto tr429;
7469 » » case 53u: goto tr457; 7056 » » case 53u: goto tr430;
7470 » » case 60u: goto tr456; 7057 » » case 60u: goto tr429;
7471 » » case 61u: goto tr457; 7058 » » case 61u: goto tr430;
7472 » » case 68u: goto tr459; 7059 » » case 68u: goto tr432;
7473 » » case 76u: goto tr459; 7060 » » case 76u: goto tr432;
7474 » » case 84u: goto tr459; 7061 » » case 84u: goto tr432;
7475 » » case 92u: goto tr459; 7062 » » case 92u: goto tr432;
7476 » » case 100u: goto tr459; 7063 » » case 100u: goto tr432;
7477 » » case 108u: goto tr459; 7064 » » case 108u: goto tr432;
7478 » » case 116u: goto tr459; 7065 » » case 116u: goto tr432;
7479 » » case 124u: goto tr459; 7066 » » case 124u: goto tr432;
7480 » » case 132u: goto tr460; 7067 » » case 132u: goto tr433;
7481 » » case 140u: goto tr460; 7068 » » case 140u: goto tr433;
7482 » » case 148u: goto tr460; 7069 » » case 148u: goto tr433;
7483 » » case 156u: goto tr460; 7070 » » case 156u: goto tr433;
7484 » » case 164u: goto tr460; 7071 » » case 164u: goto tr433;
7485 » » case 172u: goto tr460; 7072 » » case 172u: goto tr433;
7486 » » case 180u: goto tr460; 7073 » » case 180u: goto tr433;
7487 » » case 188u: goto tr460; 7074 » » case 188u: goto tr433;
7488 } 7075 }
7489 if ( (*( current_position)) > 127u ) { 7076 if ( (*( current_position)) > 127u ) {
7490 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u ) 7077 if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
7491 » » » goto tr457; 7078 » » » goto tr430;
7492 } else if ( (*( current_position)) >= 64u ) 7079 } else if ( (*( current_position)) >= 64u )
7493 » » goto tr458; 7080 » » goto tr431;
7494 » goto tr455; 7081 » goto tr428;
7495 st215: 7082 st200:
7496 if ( ++( current_position) == ( end_of_bundle) ) 7083 if ( ++( current_position) == ( end_of_bundle) )
7497 » » goto _test_eof215; 7084 » » goto _test_eof200;
7498 case 215: 7085 case 200:
7499 switch( (*( current_position)) ) { 7086 switch( (*( current_position)) ) {
7500 case 4u: goto st39; 7087 case 4u: goto st39;
7501 case 5u: goto st40; 7088 case 5u: goto st40;
7502 case 20u: goto st2; 7089 case 20u: goto st2;
7503 case 21u: goto st3; 7090 case 21u: goto st3;
7504 case 28u: goto st2; 7091 case 28u: goto st2;
7505 case 29u: goto st3; 7092 case 29u: goto st3;
7506 case 36u: goto st2; 7093 case 36u: goto st2;
7507 case 37u: goto st3; 7094 case 37u: goto st3;
7508 case 44u: goto st2; 7095 case 44u: goto st2;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
7549 if ( (*( current_position)) > 199u ) { 7136 if ( (*( current_position)) > 199u ) {
7550 if ( 200u <= (*( current_position)) && (*( curre nt_position)) <= 207u ) 7137 if ( 200u <= (*( current_position)) && (*( curre nt_position)) <= 207u )
7551 goto tr16; 7138 goto tr16;
7552 } else if ( (*( current_position)) >= 192u ) 7139 } else if ( (*( current_position)) >= 192u )
7553 goto st10; 7140 goto st10;
7554 } else 7141 } else
7555 goto st3; 7142 goto st3;
7556 } else 7143 } else
7557 goto st7; 7144 goto st7;
7558 goto tr0; 7145 goto tr0;
7559 st216: 7146 st201:
7560 if ( ++( current_position) == ( end_of_bundle) ) 7147 if ( ++( current_position) == ( end_of_bundle) )
7561 » » goto _test_eof216; 7148 » » goto _test_eof201;
7562 case 216: 7149 case 201:
7563 switch( (*( current_position)) ) { 7150 switch( (*( current_position)) ) {
7564 case 4u: goto st131; 7151 case 4u: goto st131;
7565 case 5u: goto st132; 7152 case 5u: goto st132;
7566 case 20u: goto st2; 7153 case 20u: goto st2;
7567 case 21u: goto st3; 7154 case 21u: goto st3;
7568 case 28u: goto st2; 7155 case 28u: goto st2;
7569 case 29u: goto st3; 7156 case 29u: goto st3;
7570 case 36u: goto st2; 7157 case 36u: goto st2;
7571 case 37u: goto st3; 7158 case 37u: goto st3;
7572 case 44u: goto st2; 7159 case 44u: goto st2;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
7613 if ( (*( current_position)) > 199u ) { 7200 if ( (*( current_position)) > 199u ) {
7614 if ( 200u <= (*( current_position)) && (*( curre nt_position)) <= 207u ) 7201 if ( 200u <= (*( current_position)) && (*( curre nt_position)) <= 207u )
7615 goto tr16; 7202 goto tr16;
7616 } else if ( (*( current_position)) >= 192u ) 7203 } else if ( (*( current_position)) >= 192u )
7617 goto st11; 7204 goto st11;
7618 } else 7205 } else
7619 goto st3; 7206 goto st3;
7620 } else 7207 } else
7621 goto st7; 7208 goto st7;
7622 goto tr0; 7209 goto tr0;
7623 st217: 7210 st202:
7624 if ( ++( current_position) == ( end_of_bundle) ) 7211 if ( ++( current_position) == ( end_of_bundle) )
7625 » » goto _test_eof217; 7212 » » goto _test_eof202;
7626 case 217: 7213 case 202:
7627 switch( (*( current_position)) ) { 7214 switch( (*( current_position)) ) {
7628 case 4u: goto st2; 7215 case 4u: goto st2;
7629 case 5u: goto st3; 7216 case 5u: goto st3;
7630 case 12u: goto st2; 7217 case 12u: goto st2;
7631 case 13u: goto st3; 7218 case 13u: goto st3;
7632 case 68u: goto st8; 7219 case 68u: goto st8;
7633 case 76u: goto st8; 7220 case 76u: goto st8;
7634 case 132u: goto st9; 7221 case 132u: goto st9;
7635 case 140u: goto st9; 7222 case 140u: goto st9;
7636 } 7223 }
7637 if ( (*( current_position)) < 64u ) { 7224 if ( (*( current_position)) < 64u ) {
7638 if ( (*( current_position)) <= 15u ) 7225 if ( (*( current_position)) <= 15u )
7639 goto tr0; 7226 goto tr0;
7640 } else if ( (*( current_position)) > 79u ) { 7227 } else if ( (*( current_position)) > 79u ) {
7641 if ( (*( current_position)) > 143u ) { 7228 if ( (*( current_position)) > 143u ) {
7642 if ( 192u <= (*( current_position)) && (*( current_posit ion)) <= 207u ) 7229 if ( 192u <= (*( current_position)) && (*( current_posit ion)) <= 207u )
7643 goto tr0; 7230 goto tr0;
7644 } else if ( (*( current_position)) >= 128u ) 7231 } else if ( (*( current_position)) >= 128u )
7645 goto st3; 7232 goto st3;
7646 } else 7233 } else
7647 goto st7; 7234 goto st7;
7648 goto tr16; 7235 goto tr16;
7649 st218: 7236 st203:
7650 if ( ++( current_position) == ( end_of_bundle) ) 7237 if ( ++( current_position) == ( end_of_bundle) )
7651 » » goto _test_eof218; 7238 » » goto _test_eof203;
7652 case 218: 7239 case 203:
7653 switch( (*( current_position)) ) { 7240 switch( (*( current_position)) ) {
7654 case 4u: goto st2; 7241 case 4u: goto st2;
7655 case 5u: goto st3; 7242 case 5u: goto st3;
7656 case 12u: goto st2; 7243 case 12u: goto st2;
7657 case 13u: goto st3; 7244 case 13u: goto st3;
7658 case 52u: goto st2; 7245 case 52u: goto st2;
7659 case 53u: goto st3; 7246 case 53u: goto st3;
7660 case 68u: goto st8; 7247 case 68u: goto st8;
7661 case 76u: goto st8; 7248 case 76u: goto st8;
7662 case 116u: goto st8; 7249 case 116u: goto st8;
7663 case 132u: goto st9; 7250 case 132u: goto st9;
7664 case 140u: goto st9; 7251 case 140u: goto st9;
7665 case 180u: goto st9; 7252 case 180u: goto st9;
7666 » » case 208u: goto tr461; 7253 » » case 208u: goto tr434;
7667 » » case 224u: goto tr462; 7254 » » case 224u: goto tr435;
7668 } 7255 }
7669 if ( (*( current_position)) < 112u ) { 7256 if ( (*( current_position)) < 112u ) {
7670 if ( (*( current_position)) < 48u ) { 7257 if ( (*( current_position)) < 48u ) {
7671 if ( (*( current_position)) <= 15u ) 7258 if ( (*( current_position)) <= 15u )
7672 goto tr0; 7259 goto tr0;
7673 } else if ( (*( current_position)) > 55u ) { 7260 } else if ( (*( current_position)) > 55u ) {
7674 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 7261 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
7675 goto st7; 7262 goto st7;
7676 } else 7263 } else
7677 goto tr0; 7264 goto tr0;
7678 } else if ( (*( current_position)) > 119u ) { 7265 } else if ( (*( current_position)) > 119u ) {
7679 if ( (*( current_position)) < 176u ) { 7266 if ( (*( current_position)) < 176u ) {
7680 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 7267 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
7681 goto st3; 7268 goto st3;
7682 } else if ( (*( current_position)) > 183u ) { 7269 } else if ( (*( current_position)) > 183u ) {
7683 if ( (*( current_position)) > 207u ) { 7270 if ( (*( current_position)) > 207u ) {
7684 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 7271 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
7685 goto tr0; 7272 goto tr0;
7686 } else if ( (*( current_position)) >= 192u ) 7273 } else if ( (*( current_position)) >= 192u )
7687 goto tr0; 7274 goto tr0;
7688 } else 7275 } else
7689 goto st3; 7276 goto st3;
7690 } else 7277 } else
7691 goto st7; 7278 goto st7;
7692 goto tr16; 7279 goto tr16;
7693 st219: 7280 st204:
7694 if ( ++( current_position) == ( end_of_bundle) ) 7281 if ( ++( current_position) == ( end_of_bundle) )
7695 » » goto _test_eof219; 7282 » » goto _test_eof204;
7696 case 219: 7283 case 204:
7697 if ( (*( current_position)) == 224u ) 7284 if ( (*( current_position)) == 224u )
7698 » » goto tr463; 7285 » » goto tr436;
7699 goto tr11; 7286 goto tr11;
7700 tr463: 7287 tr436:
7701 { 7288 {
7702 SET_IMM_TYPE(IMM8); 7289 SET_IMMEDIATE_FORMAT(IMM8);
7703 SET_IMM_PTR(current_position); 7290 SET_IMMEDIATE_POINTER(current_position);
7704 } 7291 }
7705 {} 7292 {}
7706 { 7293 {
7707 /* Mark start of this instruction as a valid target for jump. */ 7294 /* Mark start of this instruction as a valid target for jump. */
7708 MarkValidJumpTarget(instruction_begin - data, valid_targets); 7295 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
7709 7296
7710 /* Call user-supplied callback. */ 7297 /* Call user-supplied callback. */
7711 instruction_end = current_position + 1; 7298 instruction_end = current_position + 1;
7712 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 7299 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
7713 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 7300 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
7714 result &= user_callback(instruction_begin, instruction_end, 7301 result &= user_callback(instruction_begin, instruction_end,
7715 instruction_info_collected, callback_data); 7302 instruction_info_collected, callback_data);
7716 } 7303 }
7717 7304
7718 /* On successful match the instruction_begin must point to the next byte 7305 /*
7719 * to be able to report the new offset as the start of instruction 7306 * We may set instruction_begin at the first byte of the instruction instead
7720 * causing error. */ 7307 * of here but in the case of incorrect one byte instructions user callback
7308 * may be called before instruction_begin is set.
7309 */
7721 instruction_begin = instruction_end; 7310 instruction_begin = instruction_end;
7722 7311
7723 /* Clear variables (well, one variable currently). */ 7312 /* Clear variables (well, one variable currently). */
7724 instruction_info_collected = 0; 7313 instruction_info_collected = 0;
7725 } 7314 }
7726 » goto st235; 7315 » goto st220;
7727 st235: 7316 st220:
7728 if ( ++( current_position) == ( end_of_bundle) ) 7317 if ( ++( current_position) == ( end_of_bundle) )
7729 » » goto _test_eof235; 7318 » » goto _test_eof220;
7730 case 235: 7319 case 220:
7731 switch( (*( current_position)) ) { 7320 switch( (*( current_position)) ) {
7732 case 4u: goto st10; 7321 case 4u: goto st10;
7733 case 5u: goto st11; 7322 case 5u: goto st11;
7734 case 12u: goto st10; 7323 case 12u: goto st10;
7735 case 13u: goto st11; 7324 case 13u: goto st11;
7736 case 15u: goto st15; 7325 case 15u: goto st15;
7737 case 20u: goto st10; 7326 case 20u: goto st10;
7738 case 21u: goto st11; 7327 case 21u: goto st11;
7739 case 28u: goto st10; 7328 case 28u: goto st10;
7740 case 29u: goto st11; 7329 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
7752 case 102u: goto st74; 7341 case 102u: goto st74;
7753 case 104u: goto st11; 7342 case 104u: goto st11;
7754 case 105u: goto st130; 7343 case 105u: goto st130;
7755 case 106u: goto st10; 7344 case 106u: goto st10;
7756 case 107u: goto st56; 7345 case 107u: goto st56;
7757 case 128u: goto st56; 7346 case 128u: goto st56;
7758 case 129u: goto st130; 7347 case 129u: goto st130;
7759 case 131u: goto st139; 7348 case 131u: goto st139;
7760 case 141u: goto st115; 7349 case 141u: goto st115;
7761 case 143u: goto st141; 7350 case 143u: goto st141;
7762 » » case 155u: goto tr413; 7351 » » case 155u: goto tr386;
7763 case 168u: goto st10; 7352 case 168u: goto st10;
7764 case 169u: goto st11; 7353 case 169u: goto st11;
7765 case 196u: goto st153; 7354 case 196u: goto st153;
7766 » » case 198u: goto st185; 7355 » » case 198u: goto st170;
7767 » » case 199u: goto st186; 7356 » » case 199u: goto st171;
7768 case 201u: goto tr0; 7357 case 201u: goto tr0;
7769 » » case 216u: goto st187; 7358 » » case 216u: goto st172;
7770 » » case 217u: goto st188; 7359 » » case 217u: goto st173;
7771 » » case 218u: goto st189; 7360 » » case 218u: goto st174;
7772 » » case 219u: goto st190; 7361 » » case 219u: goto st175;
7773 » » case 220u: goto st191; 7362 » » case 220u: goto st176;
7774 » » case 221u: goto st192; 7363 » » case 221u: goto st177;
7775 » » case 222u: goto st193; 7364 » » case 222u: goto st178;
7776 » » case 223u: goto st194; 7365 » » case 223u: goto st179;
7777 » » case 232u: goto st195; 7366 » » case 232u: goto st180;
7778 case 233u: goto st52; 7367 case 233u: goto st52;
7779 case 235u: goto st67; 7368 case 235u: goto st67;
7780 » » case 240u: goto st199; 7369 » » case 240u: goto st184;
7781 » » case 242u: goto st202; 7370 » » case 242u: goto st187;
7782 » » case 243u: goto st210; 7371 » » case 243u: goto st195;
7783 » » case 246u: goto st215; 7372 » » case 246u: goto st200;
7784 » » case 247u: goto st216; 7373 » » case 247u: goto st201;
7785 » » case 254u: goto st217; 7374 » » case 254u: goto st202;
7786 » » case 255u: goto st220; 7375 » » case 255u: goto st205;
7787 } 7376 }
7788 if ( (*( current_position)) < 132u ) { 7377 if ( (*( current_position)) < 132u ) {
7789 if ( (*( current_position)) < 32u ) { 7378 if ( (*( current_position)) < 32u ) {
7790 if ( (*( current_position)) < 8u ) { 7379 if ( (*( current_position)) < 8u ) {
7791 if ( (*( current_position)) <= 3u ) 7380 if ( (*( current_position)) <= 3u )
7792 goto st1; 7381 goto st1;
7793 } else if ( (*( current_position)) > 11u ) { 7382 } else if ( (*( current_position)) > 11u ) {
7794 if ( (*( current_position)) > 19u ) { 7383 if ( (*( current_position)) > 19u ) {
7795 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 7384 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
7796 goto st1; 7385 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
7844 goto tr0; 7433 goto tr0;
7845 } else if ( (*( current_position)) >= 244u ) 7434 } else if ( (*( current_position)) >= 244u )
7846 goto tr0; 7435 goto tr0;
7847 } else 7436 } else
7848 goto st118; 7437 goto st118;
7849 } else 7438 } else
7850 goto st10; 7439 goto st10;
7851 } else 7440 } else
7852 goto st1; 7441 goto st1;
7853 goto tr16; 7442 goto tr16;
7854 st220: 7443 st205:
7855 if ( ++( current_position) == ( end_of_bundle) ) 7444 if ( ++( current_position) == ( end_of_bundle) )
7856 » » goto _test_eof220; 7445 » » goto _test_eof205;
7857 case 220: 7446 case 205:
7858 switch( (*( current_position)) ) { 7447 switch( (*( current_position)) ) {
7859 case 4u: goto st2; 7448 case 4u: goto st2;
7860 case 5u: goto st3; 7449 case 5u: goto st3;
7861 case 12u: goto st2; 7450 case 12u: goto st2;
7862 case 13u: goto st3; 7451 case 13u: goto st3;
7863 case 52u: goto st2; 7452 case 52u: goto st2;
7864 case 53u: goto st3; 7453 case 53u: goto st3;
7865 case 68u: goto st8; 7454 case 68u: goto st8;
7866 case 76u: goto st8; 7455 case 76u: goto st8;
7867 case 116u: goto st8; 7456 case 116u: goto st8;
7868 case 132u: goto st9; 7457 case 132u: goto st9;
7869 case 140u: goto st9; 7458 case 140u: goto st9;
7870 case 180u: goto st9; 7459 case 180u: goto st9;
7871 » » case 209u: goto tr461; 7460 » » case 209u: goto tr434;
7872 » » case 225u: goto tr462; 7461 » » case 225u: goto tr435;
7873 } 7462 }
7874 if ( (*( current_position)) < 112u ) { 7463 if ( (*( current_position)) < 112u ) {
7875 if ( (*( current_position)) < 48u ) { 7464 if ( (*( current_position)) < 48u ) {
7876 if ( (*( current_position)) <= 15u ) 7465 if ( (*( current_position)) <= 15u )
7877 goto tr0; 7466 goto tr0;
7878 } else if ( (*( current_position)) > 55u ) { 7467 } else if ( (*( current_position)) > 55u ) {
7879 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 7468 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
7880 goto st7; 7469 goto st7;
7881 } else 7470 } else
7882 goto tr0; 7471 goto tr0;
7883 } else if ( (*( current_position)) > 119u ) { 7472 } else if ( (*( current_position)) > 119u ) {
7884 if ( (*( current_position)) < 176u ) { 7473 if ( (*( current_position)) < 176u ) {
7885 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 7474 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
7886 goto st3; 7475 goto st3;
7887 } else if ( (*( current_position)) > 183u ) { 7476 } else if ( (*( current_position)) > 183u ) {
7888 if ( (*( current_position)) > 207u ) { 7477 if ( (*( current_position)) > 207u ) {
7889 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 7478 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
7890 goto tr0; 7479 goto tr0;
7891 } else if ( (*( current_position)) >= 192u ) 7480 } else if ( (*( current_position)) >= 192u )
7892 goto tr0; 7481 goto tr0;
7893 } else 7482 } else
7894 goto st3; 7483 goto st3;
7895 } else 7484 } else
7896 goto st7; 7485 goto st7;
7897 goto tr16; 7486 goto tr16;
7898 st221: 7487 st206:
7899 if ( ++( current_position) == ( end_of_bundle) ) 7488 if ( ++( current_position) == ( end_of_bundle) )
7900 » » goto _test_eof221; 7489 » » goto _test_eof206;
7901 case 221: 7490 case 206:
7902 if ( (*( current_position)) == 224u ) 7491 if ( (*( current_position)) == 224u )
7903 » » goto tr464; 7492 » » goto tr437;
7904 goto tr11; 7493 goto tr11;
7905 tr464: 7494 tr437:
7906 { 7495 {
7907 SET_IMM_TYPE(IMM8); 7496 SET_IMMEDIATE_FORMAT(IMM8);
7908 SET_IMM_PTR(current_position); 7497 SET_IMMEDIATE_POINTER(current_position);
7909 } 7498 }
7910 {} 7499 {}
7911 { 7500 {
7912 /* Mark start of this instruction as a valid target for jump. */ 7501 /* Mark start of this instruction as a valid target for jump. */
7913 MarkValidJumpTarget(instruction_begin - data, valid_targets); 7502 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
7914 7503
7915 /* Call user-supplied callback. */ 7504 /* Call user-supplied callback. */
7916 instruction_end = current_position + 1; 7505 instruction_end = current_position + 1;
7917 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 7506 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
7918 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 7507 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
7919 result &= user_callback(instruction_begin, instruction_end, 7508 result &= user_callback(instruction_begin, instruction_end,
7920 instruction_info_collected, callback_data); 7509 instruction_info_collected, callback_data);
7921 } 7510 }
7922 7511
7923 /* On successful match the instruction_begin must point to the next byte 7512 /*
7924 * to be able to report the new offset as the start of instruction 7513 * We may set instruction_begin at the first byte of the instruction instead
7925 * causing error. */ 7514 * of here but in the case of incorrect one byte instructions user callback
7515 * may be called before instruction_begin is set.
7516 */
7926 instruction_begin = instruction_end; 7517 instruction_begin = instruction_end;
7927 7518
7928 /* Clear variables (well, one variable currently). */ 7519 /* Clear variables (well, one variable currently). */
7929 instruction_info_collected = 0; 7520 instruction_info_collected = 0;
7930 } 7521 }
7931 » goto st236; 7522 » goto st221;
7932 st236: 7523 st221:
7933 if ( ++( current_position) == ( end_of_bundle) ) 7524 if ( ++( current_position) == ( end_of_bundle) )
7934 » » goto _test_eof236; 7525 » » goto _test_eof221;
7935 case 236: 7526 case 221:
7936 switch( (*( current_position)) ) { 7527 switch( (*( current_position)) ) {
7937 case 4u: goto st10; 7528 case 4u: goto st10;
7938 case 5u: goto st11; 7529 case 5u: goto st11;
7939 case 12u: goto st10; 7530 case 12u: goto st10;
7940 case 13u: goto st11; 7531 case 13u: goto st11;
7941 case 15u: goto st15; 7532 case 15u: goto st15;
7942 case 20u: goto st10; 7533 case 20u: goto st10;
7943 case 21u: goto st11; 7534 case 21u: goto st11;
7944 case 28u: goto st10; 7535 case 28u: goto st10;
7945 case 29u: goto st11; 7536 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
7957 case 102u: goto st74; 7548 case 102u: goto st74;
7958 case 104u: goto st11; 7549 case 104u: goto st11;
7959 case 105u: goto st130; 7550 case 105u: goto st130;
7960 case 106u: goto st10; 7551 case 106u: goto st10;
7961 case 107u: goto st56; 7552 case 107u: goto st56;
7962 case 128u: goto st56; 7553 case 128u: goto st56;
7963 case 129u: goto st130; 7554 case 129u: goto st130;
7964 case 131u: goto st139; 7555 case 131u: goto st139;
7965 case 141u: goto st115; 7556 case 141u: goto st115;
7966 case 143u: goto st141; 7557 case 143u: goto st141;
7967 » » case 155u: goto tr413; 7558 » » case 155u: goto tr386;
7968 case 168u: goto st10; 7559 case 168u: goto st10;
7969 case 169u: goto st11; 7560 case 169u: goto st11;
7970 case 196u: goto st153; 7561 case 196u: goto st153;
7971 » » case 198u: goto st185; 7562 » » case 198u: goto st170;
7972 » » case 199u: goto st186; 7563 » » case 199u: goto st171;
7973 case 201u: goto tr0; 7564 case 201u: goto tr0;
7974 » » case 216u: goto st187; 7565 » » case 216u: goto st172;
7975 » » case 217u: goto st188; 7566 » » case 217u: goto st173;
7976 » » case 218u: goto st189; 7567 » » case 218u: goto st174;
7977 » » case 219u: goto st190; 7568 » » case 219u: goto st175;
7978 » » case 220u: goto st191; 7569 » » case 220u: goto st176;
7979 » » case 221u: goto st192; 7570 » » case 221u: goto st177;
7980 » » case 222u: goto st193; 7571 » » case 222u: goto st178;
7981 » » case 223u: goto st194; 7572 » » case 223u: goto st179;
7982 » » case 232u: goto st195; 7573 » » case 232u: goto st180;
7983 case 233u: goto st52; 7574 case 233u: goto st52;
7984 case 235u: goto st67; 7575 case 235u: goto st67;
7985 » » case 240u: goto st199; 7576 » » case 240u: goto st184;
7986 » » case 242u: goto st202; 7577 » » case 242u: goto st187;
7987 » » case 243u: goto st210; 7578 » » case 243u: goto st195;
7988 » » case 246u: goto st215; 7579 » » case 246u: goto st200;
7989 » » case 247u: goto st216; 7580 » » case 247u: goto st201;
7990 » » case 254u: goto st217; 7581 » » case 254u: goto st202;
7991 » » case 255u: goto st222; 7582 » » case 255u: goto st207;
7992 } 7583 }
7993 if ( (*( current_position)) < 132u ) { 7584 if ( (*( current_position)) < 132u ) {
7994 if ( (*( current_position)) < 32u ) { 7585 if ( (*( current_position)) < 32u ) {
7995 if ( (*( current_position)) < 8u ) { 7586 if ( (*( current_position)) < 8u ) {
7996 if ( (*( current_position)) <= 3u ) 7587 if ( (*( current_position)) <= 3u )
7997 goto st1; 7588 goto st1;
7998 } else if ( (*( current_position)) > 11u ) { 7589 } else if ( (*( current_position)) > 11u ) {
7999 if ( (*( current_position)) > 19u ) { 7590 if ( (*( current_position)) > 19u ) {
8000 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 7591 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
8001 goto st1; 7592 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
8049 goto tr0; 7640 goto tr0;
8050 } else if ( (*( current_position)) >= 244u ) 7641 } else if ( (*( current_position)) >= 244u )
8051 goto tr0; 7642 goto tr0;
8052 } else 7643 } else
8053 goto st118; 7644 goto st118;
8054 } else 7645 } else
8055 goto st10; 7646 goto st10;
8056 } else 7647 } else
8057 goto st1; 7648 goto st1;
8058 goto tr16; 7649 goto tr16;
8059 st222: 7650 st207:
8060 if ( ++( current_position) == ( end_of_bundle) ) 7651 if ( ++( current_position) == ( end_of_bundle) )
8061 » » goto _test_eof222; 7652 » » goto _test_eof207;
8062 case 222: 7653 case 207:
8063 switch( (*( current_position)) ) { 7654 switch( (*( current_position)) ) {
8064 case 4u: goto st2; 7655 case 4u: goto st2;
8065 case 5u: goto st3; 7656 case 5u: goto st3;
8066 case 12u: goto st2; 7657 case 12u: goto st2;
8067 case 13u: goto st3; 7658 case 13u: goto st3;
8068 case 52u: goto st2; 7659 case 52u: goto st2;
8069 case 53u: goto st3; 7660 case 53u: goto st3;
8070 case 68u: goto st8; 7661 case 68u: goto st8;
8071 case 76u: goto st8; 7662 case 76u: goto st8;
8072 case 116u: goto st8; 7663 case 116u: goto st8;
8073 case 132u: goto st9; 7664 case 132u: goto st9;
8074 case 140u: goto st9; 7665 case 140u: goto st9;
8075 case 180u: goto st9; 7666 case 180u: goto st9;
8076 » » case 210u: goto tr461; 7667 » » case 210u: goto tr434;
8077 » » case 226u: goto tr462; 7668 » » case 226u: goto tr435;
8078 } 7669 }
8079 if ( (*( current_position)) < 112u ) { 7670 if ( (*( current_position)) < 112u ) {
8080 if ( (*( current_position)) < 48u ) { 7671 if ( (*( current_position)) < 48u ) {
8081 if ( (*( current_position)) <= 15u ) 7672 if ( (*( current_position)) <= 15u )
8082 goto tr0; 7673 goto tr0;
8083 } else if ( (*( current_position)) > 55u ) { 7674 } else if ( (*( current_position)) > 55u ) {
8084 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 7675 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
8085 goto st7; 7676 goto st7;
8086 } else 7677 } else
8087 goto tr0; 7678 goto tr0;
8088 } else if ( (*( current_position)) > 119u ) { 7679 } else if ( (*( current_position)) > 119u ) {
8089 if ( (*( current_position)) < 176u ) { 7680 if ( (*( current_position)) < 176u ) {
8090 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 7681 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
8091 goto st3; 7682 goto st3;
8092 } else if ( (*( current_position)) > 183u ) { 7683 } else if ( (*( current_position)) > 183u ) {
8093 if ( (*( current_position)) > 207u ) { 7684 if ( (*( current_position)) > 207u ) {
8094 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 7685 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
8095 goto tr0; 7686 goto tr0;
8096 } else if ( (*( current_position)) >= 192u ) 7687 } else if ( (*( current_position)) >= 192u )
8097 goto tr0; 7688 goto tr0;
8098 } else 7689 } else
8099 goto st3; 7690 goto st3;
8100 } else 7691 } else
8101 goto st7; 7692 goto st7;
8102 goto tr16; 7693 goto tr16;
8103 st223: 7694 st208:
8104 if ( ++( current_position) == ( end_of_bundle) ) 7695 if ( ++( current_position) == ( end_of_bundle) )
8105 » » goto _test_eof223; 7696 » » goto _test_eof208;
8106 case 223: 7697 case 208:
8107 if ( (*( current_position)) == 224u ) 7698 if ( (*( current_position)) == 224u )
8108 » » goto tr465; 7699 » » goto tr438;
8109 goto tr11; 7700 goto tr11;
8110 tr465: 7701 tr438:
8111 { 7702 {
8112 SET_IMM_TYPE(IMM8); 7703 SET_IMMEDIATE_FORMAT(IMM8);
8113 SET_IMM_PTR(current_position); 7704 SET_IMMEDIATE_POINTER(current_position);
8114 } 7705 }
8115 {} 7706 {}
8116 { 7707 {
8117 /* Mark start of this instruction as a valid target for jump. */ 7708 /* Mark start of this instruction as a valid target for jump. */
8118 MarkValidJumpTarget(instruction_begin - data, valid_targets); 7709 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
8119 7710
8120 /* Call user-supplied callback. */ 7711 /* Call user-supplied callback. */
8121 instruction_end = current_position + 1; 7712 instruction_end = current_position + 1;
8122 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 7713 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
8123 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 7714 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
8124 result &= user_callback(instruction_begin, instruction_end, 7715 result &= user_callback(instruction_begin, instruction_end,
8125 instruction_info_collected, callback_data); 7716 instruction_info_collected, callback_data);
8126 } 7717 }
8127 7718
8128 /* On successful match the instruction_begin must point to the next byte 7719 /*
8129 * to be able to report the new offset as the start of instruction 7720 * We may set instruction_begin at the first byte of the instruction instead
8130 * causing error. */ 7721 * of here but in the case of incorrect one byte instructions user callback
7722 * may be called before instruction_begin is set.
7723 */
8131 instruction_begin = instruction_end; 7724 instruction_begin = instruction_end;
8132 7725
8133 /* Clear variables (well, one variable currently). */ 7726 /* Clear variables (well, one variable currently). */
8134 instruction_info_collected = 0; 7727 instruction_info_collected = 0;
8135 } 7728 }
8136 » goto st237; 7729 » goto st222;
8137 st237: 7730 st222:
8138 if ( ++( current_position) == ( end_of_bundle) ) 7731 if ( ++( current_position) == ( end_of_bundle) )
8139 » » goto _test_eof237; 7732 » » goto _test_eof222;
8140 case 237: 7733 case 222:
8141 switch( (*( current_position)) ) { 7734 switch( (*( current_position)) ) {
8142 case 4u: goto st10; 7735 case 4u: goto st10;
8143 case 5u: goto st11; 7736 case 5u: goto st11;
8144 case 12u: goto st10; 7737 case 12u: goto st10;
8145 case 13u: goto st11; 7738 case 13u: goto st11;
8146 case 15u: goto st15; 7739 case 15u: goto st15;
8147 case 20u: goto st10; 7740 case 20u: goto st10;
8148 case 21u: goto st11; 7741 case 21u: goto st11;
8149 case 28u: goto st10; 7742 case 28u: goto st10;
8150 case 29u: goto st11; 7743 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
8162 case 102u: goto st74; 7755 case 102u: goto st74;
8163 case 104u: goto st11; 7756 case 104u: goto st11;
8164 case 105u: goto st130; 7757 case 105u: goto st130;
8165 case 106u: goto st10; 7758 case 106u: goto st10;
8166 case 107u: goto st56; 7759 case 107u: goto st56;
8167 case 128u: goto st56; 7760 case 128u: goto st56;
8168 case 129u: goto st130; 7761 case 129u: goto st130;
8169 case 131u: goto st139; 7762 case 131u: goto st139;
8170 case 141u: goto st115; 7763 case 141u: goto st115;
8171 case 143u: goto st141; 7764 case 143u: goto st141;
8172 » » case 155u: goto tr413; 7765 » » case 155u: goto tr386;
8173 case 168u: goto st10; 7766 case 168u: goto st10;
8174 case 169u: goto st11; 7767 case 169u: goto st11;
8175 case 196u: goto st153; 7768 case 196u: goto st153;
8176 » » case 198u: goto st185; 7769 » » case 198u: goto st170;
8177 » » case 199u: goto st186; 7770 » » case 199u: goto st171;
8178 case 201u: goto tr0; 7771 case 201u: goto tr0;
8179 » » case 216u: goto st187; 7772 » » case 216u: goto st172;
8180 » » case 217u: goto st188; 7773 » » case 217u: goto st173;
8181 » » case 218u: goto st189; 7774 » » case 218u: goto st174;
8182 » » case 219u: goto st190; 7775 » » case 219u: goto st175;
8183 » » case 220u: goto st191; 7776 » » case 220u: goto st176;
8184 » » case 221u: goto st192; 7777 » » case 221u: goto st177;
8185 » » case 222u: goto st193; 7778 » » case 222u: goto st178;
8186 » » case 223u: goto st194; 7779 » » case 223u: goto st179;
8187 » » case 232u: goto st195; 7780 » » case 232u: goto st180;
8188 case 233u: goto st52; 7781 case 233u: goto st52;
8189 case 235u: goto st67; 7782 case 235u: goto st67;
8190 » » case 240u: goto st199; 7783 » » case 240u: goto st184;
8191 » » case 242u: goto st202; 7784 » » case 242u: goto st187;
8192 » » case 243u: goto st210; 7785 » » case 243u: goto st195;
8193 » » case 246u: goto st215; 7786 » » case 246u: goto st200;
8194 » » case 247u: goto st216; 7787 » » case 247u: goto st201;
8195 » » case 254u: goto st217; 7788 » » case 254u: goto st202;
8196 » » case 255u: goto st224; 7789 » » case 255u: goto st209;
8197 } 7790 }
8198 if ( (*( current_position)) < 132u ) { 7791 if ( (*( current_position)) < 132u ) {
8199 if ( (*( current_position)) < 32u ) { 7792 if ( (*( current_position)) < 32u ) {
8200 if ( (*( current_position)) < 8u ) { 7793 if ( (*( current_position)) < 8u ) {
8201 if ( (*( current_position)) <= 3u ) 7794 if ( (*( current_position)) <= 3u )
8202 goto st1; 7795 goto st1;
8203 } else if ( (*( current_position)) > 11u ) { 7796 } else if ( (*( current_position)) > 11u ) {
8204 if ( (*( current_position)) > 19u ) { 7797 if ( (*( current_position)) > 19u ) {
8205 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 7798 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
8206 goto st1; 7799 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
8254 goto tr0; 7847 goto tr0;
8255 } else if ( (*( current_position)) >= 244u ) 7848 } else if ( (*( current_position)) >= 244u )
8256 goto tr0; 7849 goto tr0;
8257 } else 7850 } else
8258 goto st118; 7851 goto st118;
8259 } else 7852 } else
8260 goto st10; 7853 goto st10;
8261 } else 7854 } else
8262 goto st1; 7855 goto st1;
8263 goto tr16; 7856 goto tr16;
8264 st224: 7857 st209:
8265 if ( ++( current_position) == ( end_of_bundle) ) 7858 if ( ++( current_position) == ( end_of_bundle) )
8266 » » goto _test_eof224; 7859 » » goto _test_eof209;
8267 case 224: 7860 case 209:
8268 switch( (*( current_position)) ) { 7861 switch( (*( current_position)) ) {
8269 case 4u: goto st2; 7862 case 4u: goto st2;
8270 case 5u: goto st3; 7863 case 5u: goto st3;
8271 case 12u: goto st2; 7864 case 12u: goto st2;
8272 case 13u: goto st3; 7865 case 13u: goto st3;
8273 case 52u: goto st2; 7866 case 52u: goto st2;
8274 case 53u: goto st3; 7867 case 53u: goto st3;
8275 case 68u: goto st8; 7868 case 68u: goto st8;
8276 case 76u: goto st8; 7869 case 76u: goto st8;
8277 case 116u: goto st8; 7870 case 116u: goto st8;
8278 case 132u: goto st9; 7871 case 132u: goto st9;
8279 case 140u: goto st9; 7872 case 140u: goto st9;
8280 case 180u: goto st9; 7873 case 180u: goto st9;
8281 » » case 211u: goto tr461; 7874 » » case 211u: goto tr434;
8282 » » case 227u: goto tr462; 7875 » » case 227u: goto tr435;
8283 } 7876 }
8284 if ( (*( current_position)) < 112u ) { 7877 if ( (*( current_position)) < 112u ) {
8285 if ( (*( current_position)) < 48u ) { 7878 if ( (*( current_position)) < 48u ) {
8286 if ( (*( current_position)) <= 15u ) 7879 if ( (*( current_position)) <= 15u )
8287 goto tr0; 7880 goto tr0;
8288 } else if ( (*( current_position)) > 55u ) { 7881 } else if ( (*( current_position)) > 55u ) {
8289 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 7882 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
8290 goto st7; 7883 goto st7;
8291 } else 7884 } else
8292 goto tr0; 7885 goto tr0;
8293 } else if ( (*( current_position)) > 119u ) { 7886 } else if ( (*( current_position)) > 119u ) {
8294 if ( (*( current_position)) < 176u ) { 7887 if ( (*( current_position)) < 176u ) {
8295 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 7888 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
8296 goto st3; 7889 goto st3;
8297 } else if ( (*( current_position)) > 183u ) { 7890 } else if ( (*( current_position)) > 183u ) {
8298 if ( (*( current_position)) > 207u ) { 7891 if ( (*( current_position)) > 207u ) {
8299 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 7892 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
8300 goto tr0; 7893 goto tr0;
8301 } else if ( (*( current_position)) >= 192u ) 7894 } else if ( (*( current_position)) >= 192u )
8302 goto tr0; 7895 goto tr0;
8303 } else 7896 } else
8304 goto st3; 7897 goto st3;
8305 } else 7898 } else
8306 goto st7; 7899 goto st7;
8307 goto tr16; 7900 goto tr16;
8308 st225: 7901 st210:
8309 if ( ++( current_position) == ( end_of_bundle) ) 7902 if ( ++( current_position) == ( end_of_bundle) )
8310 » » goto _test_eof225; 7903 » » goto _test_eof210;
8311 case 225: 7904 case 210:
8312 if ( (*( current_position)) == 224u ) 7905 if ( (*( current_position)) == 224u )
8313 » » goto tr466; 7906 » » goto tr439;
8314 goto tr11; 7907 goto tr11;
8315 tr466: 7908 tr439:
8316 { 7909 {
8317 SET_IMM_TYPE(IMM8); 7910 SET_IMMEDIATE_FORMAT(IMM8);
8318 SET_IMM_PTR(current_position); 7911 SET_IMMEDIATE_POINTER(current_position);
8319 } 7912 }
8320 {} 7913 {}
8321 { 7914 {
8322 /* Mark start of this instruction as a valid target for jump. */ 7915 /* Mark start of this instruction as a valid target for jump. */
8323 MarkValidJumpTarget(instruction_begin - data, valid_targets); 7916 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
8324 7917
8325 /* Call user-supplied callback. */ 7918 /* Call user-supplied callback. */
8326 instruction_end = current_position + 1; 7919 instruction_end = current_position + 1;
8327 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 7920 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
8328 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 7921 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
8329 result &= user_callback(instruction_begin, instruction_end, 7922 result &= user_callback(instruction_begin, instruction_end,
8330 instruction_info_collected, callback_data); 7923 instruction_info_collected, callback_data);
8331 } 7924 }
8332 7925
8333 /* On successful match the instruction_begin must point to the next byte 7926 /*
8334 * to be able to report the new offset as the start of instruction 7927 * We may set instruction_begin at the first byte of the instruction instead
8335 * causing error. */ 7928 * of here but in the case of incorrect one byte instructions user callback
7929 * may be called before instruction_begin is set.
7930 */
8336 instruction_begin = instruction_end; 7931 instruction_begin = instruction_end;
8337 7932
8338 /* Clear variables (well, one variable currently). */ 7933 /* Clear variables (well, one variable currently). */
8339 instruction_info_collected = 0; 7934 instruction_info_collected = 0;
8340 } 7935 }
8341 » goto st238; 7936 » goto st223;
8342 st238: 7937 st223:
8343 if ( ++( current_position) == ( end_of_bundle) ) 7938 if ( ++( current_position) == ( end_of_bundle) )
8344 » » goto _test_eof238; 7939 » » goto _test_eof223;
8345 case 238: 7940 case 223:
8346 switch( (*( current_position)) ) { 7941 switch( (*( current_position)) ) {
8347 case 4u: goto st10; 7942 case 4u: goto st10;
8348 case 5u: goto st11; 7943 case 5u: goto st11;
8349 case 12u: goto st10; 7944 case 12u: goto st10;
8350 case 13u: goto st11; 7945 case 13u: goto st11;
8351 case 15u: goto st15; 7946 case 15u: goto st15;
8352 case 20u: goto st10; 7947 case 20u: goto st10;
8353 case 21u: goto st11; 7948 case 21u: goto st11;
8354 case 28u: goto st10; 7949 case 28u: goto st10;
8355 case 29u: goto st11; 7950 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
8367 case 102u: goto st74; 7962 case 102u: goto st74;
8368 case 104u: goto st11; 7963 case 104u: goto st11;
8369 case 105u: goto st130; 7964 case 105u: goto st130;
8370 case 106u: goto st10; 7965 case 106u: goto st10;
8371 case 107u: goto st56; 7966 case 107u: goto st56;
8372 case 128u: goto st56; 7967 case 128u: goto st56;
8373 case 129u: goto st130; 7968 case 129u: goto st130;
8374 case 131u: goto st139; 7969 case 131u: goto st139;
8375 case 141u: goto st115; 7970 case 141u: goto st115;
8376 case 143u: goto st141; 7971 case 143u: goto st141;
8377 » » case 155u: goto tr413; 7972 » » case 155u: goto tr386;
8378 case 168u: goto st10; 7973 case 168u: goto st10;
8379 case 169u: goto st11; 7974 case 169u: goto st11;
8380 case 196u: goto st153; 7975 case 196u: goto st153;
8381 » » case 198u: goto st185; 7976 » » case 198u: goto st170;
8382 » » case 199u: goto st186; 7977 » » case 199u: goto st171;
8383 case 201u: goto tr0; 7978 case 201u: goto tr0;
8384 » » case 216u: goto st187; 7979 » » case 216u: goto st172;
8385 » » case 217u: goto st188; 7980 » » case 217u: goto st173;
8386 » » case 218u: goto st189; 7981 » » case 218u: goto st174;
8387 » » case 219u: goto st190; 7982 » » case 219u: goto st175;
8388 » » case 220u: goto st191; 7983 » » case 220u: goto st176;
8389 » » case 221u: goto st192; 7984 » » case 221u: goto st177;
8390 » » case 222u: goto st193; 7985 » » case 222u: goto st178;
8391 » » case 223u: goto st194; 7986 » » case 223u: goto st179;
8392 » » case 232u: goto st195; 7987 » » case 232u: goto st180;
8393 case 233u: goto st52; 7988 case 233u: goto st52;
8394 case 235u: goto st67; 7989 case 235u: goto st67;
8395 » » case 240u: goto st199; 7990 » » case 240u: goto st184;
8396 » » case 242u: goto st202; 7991 » » case 242u: goto st187;
8397 » » case 243u: goto st210; 7992 » » case 243u: goto st195;
8398 » » case 246u: goto st215; 7993 » » case 246u: goto st200;
8399 » » case 247u: goto st216; 7994 » » case 247u: goto st201;
8400 » » case 254u: goto st217; 7995 » » case 254u: goto st202;
8401 » » case 255u: goto st226; 7996 » » case 255u: goto st211;
8402 } 7997 }
8403 if ( (*( current_position)) < 132u ) { 7998 if ( (*( current_position)) < 132u ) {
8404 if ( (*( current_position)) < 32u ) { 7999 if ( (*( current_position)) < 32u ) {
8405 if ( (*( current_position)) < 8u ) { 8000 if ( (*( current_position)) < 8u ) {
8406 if ( (*( current_position)) <= 3u ) 8001 if ( (*( current_position)) <= 3u )
8407 goto st1; 8002 goto st1;
8408 } else if ( (*( current_position)) > 11u ) { 8003 } else if ( (*( current_position)) > 11u ) {
8409 if ( (*( current_position)) > 19u ) { 8004 if ( (*( current_position)) > 19u ) {
8410 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 8005 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
8411 goto st1; 8006 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
8459 goto tr0; 8054 goto tr0;
8460 } else if ( (*( current_position)) >= 244u ) 8055 } else if ( (*( current_position)) >= 244u )
8461 goto tr0; 8056 goto tr0;
8462 } else 8057 } else
8463 goto st118; 8058 goto st118;
8464 } else 8059 } else
8465 goto st10; 8060 goto st10;
8466 } else 8061 } else
8467 goto st1; 8062 goto st1;
8468 goto tr16; 8063 goto tr16;
8469 st226: 8064 st211:
8470 if ( ++( current_position) == ( end_of_bundle) ) 8065 if ( ++( current_position) == ( end_of_bundle) )
8471 » » goto _test_eof226; 8066 » » goto _test_eof211;
8472 case 226: 8067 case 211:
8473 switch( (*( current_position)) ) { 8068 switch( (*( current_position)) ) {
8474 case 4u: goto st2; 8069 case 4u: goto st2;
8475 case 5u: goto st3; 8070 case 5u: goto st3;
8476 case 12u: goto st2; 8071 case 12u: goto st2;
8477 case 13u: goto st3; 8072 case 13u: goto st3;
8478 case 52u: goto st2; 8073 case 52u: goto st2;
8479 case 53u: goto st3; 8074 case 53u: goto st3;
8480 case 68u: goto st8; 8075 case 68u: goto st8;
8481 case 76u: goto st8; 8076 case 76u: goto st8;
8482 case 116u: goto st8; 8077 case 116u: goto st8;
8483 case 132u: goto st9; 8078 case 132u: goto st9;
8484 case 140u: goto st9; 8079 case 140u: goto st9;
8485 case 180u: goto st9; 8080 case 180u: goto st9;
8486 » » case 212u: goto tr461; 8081 » » case 212u: goto tr434;
8487 » » case 228u: goto tr462; 8082 » » case 228u: goto tr435;
8488 } 8083 }
8489 if ( (*( current_position)) < 112u ) { 8084 if ( (*( current_position)) < 112u ) {
8490 if ( (*( current_position)) < 48u ) { 8085 if ( (*( current_position)) < 48u ) {
8491 if ( (*( current_position)) <= 15u ) 8086 if ( (*( current_position)) <= 15u )
8492 goto tr0; 8087 goto tr0;
8493 } else if ( (*( current_position)) > 55u ) { 8088 } else if ( (*( current_position)) > 55u ) {
8494 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 8089 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
8495 goto st7; 8090 goto st7;
8496 } else 8091 } else
8497 goto tr0; 8092 goto tr0;
8498 } else if ( (*( current_position)) > 119u ) { 8093 } else if ( (*( current_position)) > 119u ) {
8499 if ( (*( current_position)) < 176u ) { 8094 if ( (*( current_position)) < 176u ) {
8500 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 8095 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
8501 goto st3; 8096 goto st3;
8502 } else if ( (*( current_position)) > 183u ) { 8097 } else if ( (*( current_position)) > 183u ) {
8503 if ( (*( current_position)) > 207u ) { 8098 if ( (*( current_position)) > 207u ) {
8504 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 8099 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
8505 goto tr0; 8100 goto tr0;
8506 } else if ( (*( current_position)) >= 192u ) 8101 } else if ( (*( current_position)) >= 192u )
8507 goto tr0; 8102 goto tr0;
8508 } else 8103 } else
8509 goto st3; 8104 goto st3;
8510 } else 8105 } else
8511 goto st7; 8106 goto st7;
8512 goto tr16; 8107 goto tr16;
8513 st227: 8108 st212:
8514 if ( ++( current_position) == ( end_of_bundle) ) 8109 if ( ++( current_position) == ( end_of_bundle) )
8515 » » goto _test_eof227; 8110 » » goto _test_eof212;
8516 case 227: 8111 case 212:
8517 if ( (*( current_position)) == 224u ) 8112 if ( (*( current_position)) == 224u )
8518 » » goto tr467; 8113 » » goto tr440;
8519 goto tr11; 8114 goto tr11;
8520 tr467: 8115 tr440:
8521 { 8116 {
8522 SET_IMM_TYPE(IMM8); 8117 SET_IMMEDIATE_FORMAT(IMM8);
8523 SET_IMM_PTR(current_position); 8118 SET_IMMEDIATE_POINTER(current_position);
8524 } 8119 }
8525 {} 8120 {}
8526 { 8121 {
8527 /* Mark start of this instruction as a valid target for jump. */ 8122 /* Mark start of this instruction as a valid target for jump. */
8528 MarkValidJumpTarget(instruction_begin - data, valid_targets); 8123 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
8529 8124
8530 /* Call user-supplied callback. */ 8125 /* Call user-supplied callback. */
8531 instruction_end = current_position + 1; 8126 instruction_end = current_position + 1;
8532 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 8127 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
8533 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 8128 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
8534 result &= user_callback(instruction_begin, instruction_end, 8129 result &= user_callback(instruction_begin, instruction_end,
8535 instruction_info_collected, callback_data); 8130 instruction_info_collected, callback_data);
8536 } 8131 }
8537 8132
8538 /* On successful match the instruction_begin must point to the next byte 8133 /*
8539 * to be able to report the new offset as the start of instruction 8134 * We may set instruction_begin at the first byte of the instruction instead
8540 * causing error. */ 8135 * of here but in the case of incorrect one byte instructions user callback
8136 * may be called before instruction_begin is set.
8137 */
8541 instruction_begin = instruction_end; 8138 instruction_begin = instruction_end;
8542 8139
8543 /* Clear variables (well, one variable currently). */ 8140 /* Clear variables (well, one variable currently). */
8544 instruction_info_collected = 0; 8141 instruction_info_collected = 0;
8545 } 8142 }
8546 » goto st239; 8143 » goto st224;
8547 st239: 8144 st224:
8548 if ( ++( current_position) == ( end_of_bundle) ) 8145 if ( ++( current_position) == ( end_of_bundle) )
8549 » » goto _test_eof239; 8146 » » goto _test_eof224;
8550 case 239: 8147 case 224:
8551 switch( (*( current_position)) ) { 8148 switch( (*( current_position)) ) {
8552 case 4u: goto st10; 8149 case 4u: goto st10;
8553 case 5u: goto st11; 8150 case 5u: goto st11;
8554 case 12u: goto st10; 8151 case 12u: goto st10;
8555 case 13u: goto st11; 8152 case 13u: goto st11;
8556 case 15u: goto st15; 8153 case 15u: goto st15;
8557 case 20u: goto st10; 8154 case 20u: goto st10;
8558 case 21u: goto st11; 8155 case 21u: goto st11;
8559 case 28u: goto st10; 8156 case 28u: goto st10;
8560 case 29u: goto st11; 8157 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
8572 case 102u: goto st74; 8169 case 102u: goto st74;
8573 case 104u: goto st11; 8170 case 104u: goto st11;
8574 case 105u: goto st130; 8171 case 105u: goto st130;
8575 case 106u: goto st10; 8172 case 106u: goto st10;
8576 case 107u: goto st56; 8173 case 107u: goto st56;
8577 case 128u: goto st56; 8174 case 128u: goto st56;
8578 case 129u: goto st130; 8175 case 129u: goto st130;
8579 case 131u: goto st139; 8176 case 131u: goto st139;
8580 case 141u: goto st115; 8177 case 141u: goto st115;
8581 case 143u: goto st141; 8178 case 143u: goto st141;
8582 » » case 155u: goto tr413; 8179 » » case 155u: goto tr386;
8583 case 168u: goto st10; 8180 case 168u: goto st10;
8584 case 169u: goto st11; 8181 case 169u: goto st11;
8585 case 196u: goto st153; 8182 case 196u: goto st153;
8586 » » case 198u: goto st185; 8183 » » case 198u: goto st170;
8587 » » case 199u: goto st186; 8184 » » case 199u: goto st171;
8588 case 201u: goto tr0; 8185 case 201u: goto tr0;
8589 » » case 216u: goto st187; 8186 » » case 216u: goto st172;
8590 » » case 217u: goto st188; 8187 » » case 217u: goto st173;
8591 » » case 218u: goto st189; 8188 » » case 218u: goto st174;
8592 » » case 219u: goto st190; 8189 » » case 219u: goto st175;
8593 » » case 220u: goto st191; 8190 » » case 220u: goto st176;
8594 » » case 221u: goto st192; 8191 » » case 221u: goto st177;
8595 » » case 222u: goto st193; 8192 » » case 222u: goto st178;
8596 » » case 223u: goto st194; 8193 » » case 223u: goto st179;
8597 » » case 232u: goto st195; 8194 » » case 232u: goto st180;
8598 case 233u: goto st52; 8195 case 233u: goto st52;
8599 case 235u: goto st67; 8196 case 235u: goto st67;
8600 » » case 240u: goto st199; 8197 » » case 240u: goto st184;
8601 » » case 242u: goto st202; 8198 » » case 242u: goto st187;
8602 » » case 243u: goto st210; 8199 » » case 243u: goto st195;
8603 » » case 246u: goto st215; 8200 » » case 246u: goto st200;
8604 » » case 247u: goto st216; 8201 » » case 247u: goto st201;
8605 » » case 254u: goto st217; 8202 » » case 254u: goto st202;
8606 » » case 255u: goto st228; 8203 » » case 255u: goto st213;
8607 } 8204 }
8608 if ( (*( current_position)) < 132u ) { 8205 if ( (*( current_position)) < 132u ) {
8609 if ( (*( current_position)) < 32u ) { 8206 if ( (*( current_position)) < 32u ) {
8610 if ( (*( current_position)) < 8u ) { 8207 if ( (*( current_position)) < 8u ) {
8611 if ( (*( current_position)) <= 3u ) 8208 if ( (*( current_position)) <= 3u )
8612 goto st1; 8209 goto st1;
8613 } else if ( (*( current_position)) > 11u ) { 8210 } else if ( (*( current_position)) > 11u ) {
8614 if ( (*( current_position)) > 19u ) { 8211 if ( (*( current_position)) > 19u ) {
8615 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 8212 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
8616 goto st1; 8213 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
8664 goto tr0; 8261 goto tr0;
8665 } else if ( (*( current_position)) >= 244u ) 8262 } else if ( (*( current_position)) >= 244u )
8666 goto tr0; 8263 goto tr0;
8667 } else 8264 } else
8668 goto st118; 8265 goto st118;
8669 } else 8266 } else
8670 goto st10; 8267 goto st10;
8671 } else 8268 } else
8672 goto st1; 8269 goto st1;
8673 goto tr16; 8270 goto tr16;
8674 st228: 8271 st213:
8675 if ( ++( current_position) == ( end_of_bundle) ) 8272 if ( ++( current_position) == ( end_of_bundle) )
8676 » » goto _test_eof228; 8273 » » goto _test_eof213;
8677 case 228: 8274 case 213:
8678 switch( (*( current_position)) ) { 8275 switch( (*( current_position)) ) {
8679 case 4u: goto st2; 8276 case 4u: goto st2;
8680 case 5u: goto st3; 8277 case 5u: goto st3;
8681 case 12u: goto st2; 8278 case 12u: goto st2;
8682 case 13u: goto st3; 8279 case 13u: goto st3;
8683 case 52u: goto st2; 8280 case 52u: goto st2;
8684 case 53u: goto st3; 8281 case 53u: goto st3;
8685 case 68u: goto st8; 8282 case 68u: goto st8;
8686 case 76u: goto st8; 8283 case 76u: goto st8;
8687 case 116u: goto st8; 8284 case 116u: goto st8;
8688 case 132u: goto st9; 8285 case 132u: goto st9;
8689 case 140u: goto st9; 8286 case 140u: goto st9;
8690 case 180u: goto st9; 8287 case 180u: goto st9;
8691 » » case 213u: goto tr461; 8288 » » case 213u: goto tr434;
8692 » » case 229u: goto tr462; 8289 » » case 229u: goto tr435;
8693 } 8290 }
8694 if ( (*( current_position)) < 112u ) { 8291 if ( (*( current_position)) < 112u ) {
8695 if ( (*( current_position)) < 48u ) { 8292 if ( (*( current_position)) < 48u ) {
8696 if ( (*( current_position)) <= 15u ) 8293 if ( (*( current_position)) <= 15u )
8697 goto tr0; 8294 goto tr0;
8698 } else if ( (*( current_position)) > 55u ) { 8295 } else if ( (*( current_position)) > 55u ) {
8699 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 8296 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
8700 goto st7; 8297 goto st7;
8701 } else 8298 } else
8702 goto tr0; 8299 goto tr0;
8703 } else if ( (*( current_position)) > 119u ) { 8300 } else if ( (*( current_position)) > 119u ) {
8704 if ( (*( current_position)) < 176u ) { 8301 if ( (*( current_position)) < 176u ) {
8705 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 8302 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
8706 goto st3; 8303 goto st3;
8707 } else if ( (*( current_position)) > 183u ) { 8304 } else if ( (*( current_position)) > 183u ) {
8708 if ( (*( current_position)) > 207u ) { 8305 if ( (*( current_position)) > 207u ) {
8709 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 8306 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
8710 goto tr0; 8307 goto tr0;
8711 } else if ( (*( current_position)) >= 192u ) 8308 } else if ( (*( current_position)) >= 192u )
8712 goto tr0; 8309 goto tr0;
8713 } else 8310 } else
8714 goto st3; 8311 goto st3;
8715 } else 8312 } else
8716 goto st7; 8313 goto st7;
8717 goto tr16; 8314 goto tr16;
8718 st229: 8315 st214:
8719 if ( ++( current_position) == ( end_of_bundle) ) 8316 if ( ++( current_position) == ( end_of_bundle) )
8720 » » goto _test_eof229; 8317 » » goto _test_eof214;
8721 case 229: 8318 case 214:
8722 if ( (*( current_position)) == 224u ) 8319 if ( (*( current_position)) == 224u )
8723 » » goto tr468; 8320 » » goto tr441;
8724 goto tr11; 8321 goto tr11;
8725 tr468: 8322 tr441:
8726 { 8323 {
8727 SET_IMM_TYPE(IMM8); 8324 SET_IMMEDIATE_FORMAT(IMM8);
8728 SET_IMM_PTR(current_position); 8325 SET_IMMEDIATE_POINTER(current_position);
8729 } 8326 }
8730 {} 8327 {}
8731 { 8328 {
8732 /* Mark start of this instruction as a valid target for jump. */ 8329 /* Mark start of this instruction as a valid target for jump. */
8733 MarkValidJumpTarget(instruction_begin - data, valid_targets); 8330 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
8734 8331
8735 /* Call user-supplied callback. */ 8332 /* Call user-supplied callback. */
8736 instruction_end = current_position + 1; 8333 instruction_end = current_position + 1;
8737 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 8334 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
8738 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 8335 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
8739 result &= user_callback(instruction_begin, instruction_end, 8336 result &= user_callback(instruction_begin, instruction_end,
8740 instruction_info_collected, callback_data); 8337 instruction_info_collected, callback_data);
8741 } 8338 }
8742 8339
8743 /* On successful match the instruction_begin must point to the next byte 8340 /*
8744 * to be able to report the new offset as the start of instruction 8341 * We may set instruction_begin at the first byte of the instruction instead
8745 * causing error. */ 8342 * of here but in the case of incorrect one byte instructions user callback
8343 * may be called before instruction_begin is set.
8344 */
8746 instruction_begin = instruction_end; 8345 instruction_begin = instruction_end;
8747 8346
8748 /* Clear variables (well, one variable currently). */ 8347 /* Clear variables (well, one variable currently). */
8749 instruction_info_collected = 0; 8348 instruction_info_collected = 0;
8750 } 8349 }
8751 » goto st240; 8350 » goto st225;
8752 st240: 8351 st225:
8753 if ( ++( current_position) == ( end_of_bundle) ) 8352 if ( ++( current_position) == ( end_of_bundle) )
8754 » » goto _test_eof240; 8353 » » goto _test_eof225;
8755 case 240: 8354 case 225:
8756 switch( (*( current_position)) ) { 8355 switch( (*( current_position)) ) {
8757 case 4u: goto st10; 8356 case 4u: goto st10;
8758 case 5u: goto st11; 8357 case 5u: goto st11;
8759 case 12u: goto st10; 8358 case 12u: goto st10;
8760 case 13u: goto st11; 8359 case 13u: goto st11;
8761 case 15u: goto st15; 8360 case 15u: goto st15;
8762 case 20u: goto st10; 8361 case 20u: goto st10;
8763 case 21u: goto st11; 8362 case 21u: goto st11;
8764 case 28u: goto st10; 8363 case 28u: goto st10;
8765 case 29u: goto st11; 8364 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
8777 case 102u: goto st74; 8376 case 102u: goto st74;
8778 case 104u: goto st11; 8377 case 104u: goto st11;
8779 case 105u: goto st130; 8378 case 105u: goto st130;
8780 case 106u: goto st10; 8379 case 106u: goto st10;
8781 case 107u: goto st56; 8380 case 107u: goto st56;
8782 case 128u: goto st56; 8381 case 128u: goto st56;
8783 case 129u: goto st130; 8382 case 129u: goto st130;
8784 case 131u: goto st139; 8383 case 131u: goto st139;
8785 case 141u: goto st115; 8384 case 141u: goto st115;
8786 case 143u: goto st141; 8385 case 143u: goto st141;
8787 » » case 155u: goto tr413; 8386 » » case 155u: goto tr386;
8788 case 168u: goto st10; 8387 case 168u: goto st10;
8789 case 169u: goto st11; 8388 case 169u: goto st11;
8790 case 196u: goto st153; 8389 case 196u: goto st153;
8791 » » case 198u: goto st185; 8390 » » case 198u: goto st170;
8792 » » case 199u: goto st186; 8391 » » case 199u: goto st171;
8793 case 201u: goto tr0; 8392 case 201u: goto tr0;
8794 » » case 216u: goto st187; 8393 » » case 216u: goto st172;
8795 » » case 217u: goto st188; 8394 » » case 217u: goto st173;
8796 » » case 218u: goto st189; 8395 » » case 218u: goto st174;
8797 » » case 219u: goto st190; 8396 » » case 219u: goto st175;
8798 » » case 220u: goto st191; 8397 » » case 220u: goto st176;
8799 » » case 221u: goto st192; 8398 » » case 221u: goto st177;
8800 » » case 222u: goto st193; 8399 » » case 222u: goto st178;
8801 » » case 223u: goto st194; 8400 » » case 223u: goto st179;
8802 » » case 232u: goto st195; 8401 » » case 232u: goto st180;
8803 case 233u: goto st52; 8402 case 233u: goto st52;
8804 case 235u: goto st67; 8403 case 235u: goto st67;
8805 » » case 240u: goto st199; 8404 » » case 240u: goto st184;
8806 » » case 242u: goto st202; 8405 » » case 242u: goto st187;
8807 » » case 243u: goto st210; 8406 » » case 243u: goto st195;
8808 » » case 246u: goto st215; 8407 » » case 246u: goto st200;
8809 » » case 247u: goto st216; 8408 » » case 247u: goto st201;
8810 » » case 254u: goto st217; 8409 » » case 254u: goto st202;
8811 » » case 255u: goto st230; 8410 » » case 255u: goto st215;
8812 } 8411 }
8813 if ( (*( current_position)) < 132u ) { 8412 if ( (*( current_position)) < 132u ) {
8814 if ( (*( current_position)) < 32u ) { 8413 if ( (*( current_position)) < 32u ) {
8815 if ( (*( current_position)) < 8u ) { 8414 if ( (*( current_position)) < 8u ) {
8816 if ( (*( current_position)) <= 3u ) 8415 if ( (*( current_position)) <= 3u )
8817 goto st1; 8416 goto st1;
8818 } else if ( (*( current_position)) > 11u ) { 8417 } else if ( (*( current_position)) > 11u ) {
8819 if ( (*( current_position)) > 19u ) { 8418 if ( (*( current_position)) > 19u ) {
8820 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 8419 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
8821 goto st1; 8420 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
8869 goto tr0; 8468 goto tr0;
8870 } else if ( (*( current_position)) >= 244u ) 8469 } else if ( (*( current_position)) >= 244u )
8871 goto tr0; 8470 goto tr0;
8872 } else 8471 } else
8873 goto st118; 8472 goto st118;
8874 } else 8473 } else
8875 goto st10; 8474 goto st10;
8876 } else 8475 } else
8877 goto st1; 8476 goto st1;
8878 goto tr16; 8477 goto tr16;
8879 st230: 8478 st215:
8880 if ( ++( current_position) == ( end_of_bundle) ) 8479 if ( ++( current_position) == ( end_of_bundle) )
8881 » » goto _test_eof230; 8480 » » goto _test_eof215;
8882 case 230: 8481 case 215:
8883 switch( (*( current_position)) ) { 8482 switch( (*( current_position)) ) {
8884 case 4u: goto st2; 8483 case 4u: goto st2;
8885 case 5u: goto st3; 8484 case 5u: goto st3;
8886 case 12u: goto st2; 8485 case 12u: goto st2;
8887 case 13u: goto st3; 8486 case 13u: goto st3;
8888 case 52u: goto st2; 8487 case 52u: goto st2;
8889 case 53u: goto st3; 8488 case 53u: goto st3;
8890 case 68u: goto st8; 8489 case 68u: goto st8;
8891 case 76u: goto st8; 8490 case 76u: goto st8;
8892 case 116u: goto st8; 8491 case 116u: goto st8;
8893 case 132u: goto st9; 8492 case 132u: goto st9;
8894 case 140u: goto st9; 8493 case 140u: goto st9;
8895 case 180u: goto st9; 8494 case 180u: goto st9;
8896 » » case 214u: goto tr461; 8495 » » case 214u: goto tr434;
8897 » » case 230u: goto tr462; 8496 » » case 230u: goto tr435;
8898 } 8497 }
8899 if ( (*( current_position)) < 112u ) { 8498 if ( (*( current_position)) < 112u ) {
8900 if ( (*( current_position)) < 48u ) { 8499 if ( (*( current_position)) < 48u ) {
8901 if ( (*( current_position)) <= 15u ) 8500 if ( (*( current_position)) <= 15u )
8902 goto tr0; 8501 goto tr0;
8903 } else if ( (*( current_position)) > 55u ) { 8502 } else if ( (*( current_position)) > 55u ) {
8904 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 8503 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
8905 goto st7; 8504 goto st7;
8906 } else 8505 } else
8907 goto tr0; 8506 goto tr0;
8908 } else if ( (*( current_position)) > 119u ) { 8507 } else if ( (*( current_position)) > 119u ) {
8909 if ( (*( current_position)) < 176u ) { 8508 if ( (*( current_position)) < 176u ) {
8910 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 8509 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
8911 goto st3; 8510 goto st3;
8912 } else if ( (*( current_position)) > 183u ) { 8511 } else if ( (*( current_position)) > 183u ) {
8913 if ( (*( current_position)) > 207u ) { 8512 if ( (*( current_position)) > 207u ) {
8914 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 8513 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
8915 goto tr0; 8514 goto tr0;
8916 } else if ( (*( current_position)) >= 192u ) 8515 } else if ( (*( current_position)) >= 192u )
8917 goto tr0; 8516 goto tr0;
8918 } else 8517 } else
8919 goto st3; 8518 goto st3;
8920 } else 8519 } else
8921 goto st7; 8520 goto st7;
8922 goto tr16; 8521 goto tr16;
8923 st231: 8522 st216:
8924 if ( ++( current_position) == ( end_of_bundle) ) 8523 if ( ++( current_position) == ( end_of_bundle) )
8925 » » goto _test_eof231; 8524 » » goto _test_eof216;
8926 case 231: 8525 case 216:
8927 if ( (*( current_position)) == 224u ) 8526 if ( (*( current_position)) == 224u )
8928 » » goto tr469; 8527 » » goto tr442;
8929 goto tr11; 8528 goto tr11;
8930 tr469: 8529 tr442:
8931 { 8530 {
8932 SET_IMM_TYPE(IMM8); 8531 SET_IMMEDIATE_FORMAT(IMM8);
8933 SET_IMM_PTR(current_position); 8532 SET_IMMEDIATE_POINTER(current_position);
8934 } 8533 }
8935 {} 8534 {}
8936 { 8535 {
8937 /* Mark start of this instruction as a valid target for jump. */ 8536 /* Mark start of this instruction as a valid target for jump. */
8938 MarkValidJumpTarget(instruction_begin - data, valid_targets); 8537 MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
8939 8538
8940 /* Call user-supplied callback. */ 8539 /* Call user-supplied callback. */
8941 instruction_end = current_position + 1; 8540 instruction_end = current_position + 1;
8942 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) || 8541 if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
8943 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) { 8542 (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
8944 result &= user_callback(instruction_begin, instruction_end, 8543 result &= user_callback(instruction_begin, instruction_end,
8945 instruction_info_collected, callback_data); 8544 instruction_info_collected, callback_data);
8946 } 8545 }
8947 8546
8948 /* On successful match the instruction_begin must point to the next byte 8547 /*
8949 * to be able to report the new offset as the start of instruction 8548 * We may set instruction_begin at the first byte of the instruction instead
8950 * causing error. */ 8549 * of here but in the case of incorrect one byte instructions user callback
8550 * may be called before instruction_begin is set.
8551 */
8951 instruction_begin = instruction_end; 8552 instruction_begin = instruction_end;
8952 8553
8953 /* Clear variables (well, one variable currently). */ 8554 /* Clear variables (well, one variable currently). */
8954 instruction_info_collected = 0; 8555 instruction_info_collected = 0;
8955 } 8556 }
8956 » goto st241; 8557 » goto st226;
8957 st241: 8558 st226:
8958 if ( ++( current_position) == ( end_of_bundle) ) 8559 if ( ++( current_position) == ( end_of_bundle) )
8959 » » goto _test_eof241; 8560 » » goto _test_eof226;
8960 case 241: 8561 case 226:
8961 switch( (*( current_position)) ) { 8562 switch( (*( current_position)) ) {
8962 case 4u: goto st10; 8563 case 4u: goto st10;
8963 case 5u: goto st11; 8564 case 5u: goto st11;
8964 case 12u: goto st10; 8565 case 12u: goto st10;
8965 case 13u: goto st11; 8566 case 13u: goto st11;
8966 case 15u: goto st15; 8567 case 15u: goto st15;
8967 case 20u: goto st10; 8568 case 20u: goto st10;
8968 case 21u: goto st11; 8569 case 21u: goto st11;
8969 case 28u: goto st10; 8570 case 28u: goto st10;
8970 case 29u: goto st11; 8571 case 29u: goto st11;
(...skipping 11 matching lines...) Expand all
8982 case 102u: goto st74; 8583 case 102u: goto st74;
8983 case 104u: goto st11; 8584 case 104u: goto st11;
8984 case 105u: goto st130; 8585 case 105u: goto st130;
8985 case 106u: goto st10; 8586 case 106u: goto st10;
8986 case 107u: goto st56; 8587 case 107u: goto st56;
8987 case 128u: goto st56; 8588 case 128u: goto st56;
8988 case 129u: goto st130; 8589 case 129u: goto st130;
8989 case 131u: goto st139; 8590 case 131u: goto st139;
8990 case 141u: goto st115; 8591 case 141u: goto st115;
8991 case 143u: goto st141; 8592 case 143u: goto st141;
8992 » » case 155u: goto tr413; 8593 » » case 155u: goto tr386;
8993 case 168u: goto st10; 8594 case 168u: goto st10;
8994 case 169u: goto st11; 8595 case 169u: goto st11;
8995 case 196u: goto st153; 8596 case 196u: goto st153;
8996 » » case 198u: goto st185; 8597 » » case 198u: goto st170;
8997 » » case 199u: goto st186; 8598 » » case 199u: goto st171;
8998 case 201u: goto tr0; 8599 case 201u: goto tr0;
8999 » » case 216u: goto st187; 8600 » » case 216u: goto st172;
9000 » » case 217u: goto st188; 8601 » » case 217u: goto st173;
9001 » » case 218u: goto st189; 8602 » » case 218u: goto st174;
9002 » » case 219u: goto st190; 8603 » » case 219u: goto st175;
9003 » » case 220u: goto st191; 8604 » » case 220u: goto st176;
9004 » » case 221u: goto st192; 8605 » » case 221u: goto st177;
9005 » » case 222u: goto st193; 8606 » » case 222u: goto st178;
9006 » » case 223u: goto st194; 8607 » » case 223u: goto st179;
9007 » » case 232u: goto st195; 8608 » » case 232u: goto st180;
9008 case 233u: goto st52; 8609 case 233u: goto st52;
9009 case 235u: goto st67; 8610 case 235u: goto st67;
9010 » » case 240u: goto st199; 8611 » » case 240u: goto st184;
9011 » » case 242u: goto st202; 8612 » » case 242u: goto st187;
9012 » » case 243u: goto st210; 8613 » » case 243u: goto st195;
9013 » » case 246u: goto st215; 8614 » » case 246u: goto st200;
9014 » » case 247u: goto st216; 8615 » » case 247u: goto st201;
9015 » » case 254u: goto st217; 8616 » » case 254u: goto st202;
9016 » » case 255u: goto st232; 8617 » » case 255u: goto st217;
9017 } 8618 }
9018 if ( (*( current_position)) < 132u ) { 8619 if ( (*( current_position)) < 132u ) {
9019 if ( (*( current_position)) < 32u ) { 8620 if ( (*( current_position)) < 32u ) {
9020 if ( (*( current_position)) < 8u ) { 8621 if ( (*( current_position)) < 8u ) {
9021 if ( (*( current_position)) <= 3u ) 8622 if ( (*( current_position)) <= 3u )
9022 goto st1; 8623 goto st1;
9023 } else if ( (*( current_position)) > 11u ) { 8624 } else if ( (*( current_position)) > 11u ) {
9024 if ( (*( current_position)) > 19u ) { 8625 if ( (*( current_position)) > 19u ) {
9025 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u ) 8626 if ( 24u <= (*( current_position)) && (* ( current_position)) <= 27u )
9026 goto st1; 8627 goto st1;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
9074 goto tr0; 8675 goto tr0;
9075 } else if ( (*( current_position)) >= 244u ) 8676 } else if ( (*( current_position)) >= 244u )
9076 goto tr0; 8677 goto tr0;
9077 } else 8678 } else
9078 goto st118; 8679 goto st118;
9079 } else 8680 } else
9080 goto st10; 8681 goto st10;
9081 } else 8682 } else
9082 goto st1; 8683 goto st1;
9083 goto tr16; 8684 goto tr16;
9084 st232: 8685 st217:
9085 if ( ++( current_position) == ( end_of_bundle) ) 8686 if ( ++( current_position) == ( end_of_bundle) )
9086 » » goto _test_eof232; 8687 » » goto _test_eof217;
9087 case 232: 8688 case 217:
9088 switch( (*( current_position)) ) { 8689 switch( (*( current_position)) ) {
9089 case 4u: goto st2; 8690 case 4u: goto st2;
9090 case 5u: goto st3; 8691 case 5u: goto st3;
9091 case 12u: goto st2; 8692 case 12u: goto st2;
9092 case 13u: goto st3; 8693 case 13u: goto st3;
9093 case 52u: goto st2; 8694 case 52u: goto st2;
9094 case 53u: goto st3; 8695 case 53u: goto st3;
9095 case 68u: goto st8; 8696 case 68u: goto st8;
9096 case 76u: goto st8; 8697 case 76u: goto st8;
9097 case 116u: goto st8; 8698 case 116u: goto st8;
9098 case 132u: goto st9; 8699 case 132u: goto st9;
9099 case 140u: goto st9; 8700 case 140u: goto st9;
9100 case 180u: goto st9; 8701 case 180u: goto st9;
9101 » » case 215u: goto tr461; 8702 » » case 215u: goto tr434;
9102 » » case 231u: goto tr462; 8703 » » case 231u: goto tr435;
9103 } 8704 }
9104 if ( (*( current_position)) < 112u ) { 8705 if ( (*( current_position)) < 112u ) {
9105 if ( (*( current_position)) < 48u ) { 8706 if ( (*( current_position)) < 48u ) {
9106 if ( (*( current_position)) <= 15u ) 8707 if ( (*( current_position)) <= 15u )
9107 goto tr0; 8708 goto tr0;
9108 } else if ( (*( current_position)) > 55u ) { 8709 } else if ( (*( current_position)) > 55u ) {
9109 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u ) 8710 if ( 64u <= (*( current_position)) && (*( current_positi on)) <= 79u )
9110 goto st7; 8711 goto st7;
9111 } else 8712 } else
9112 goto tr0; 8713 goto tr0;
9113 } else if ( (*( current_position)) > 119u ) { 8714 } else if ( (*( current_position)) > 119u ) {
9114 if ( (*( current_position)) < 176u ) { 8715 if ( (*( current_position)) < 176u ) {
9115 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u ) 8716 if ( 128u <= (*( current_position)) && (*( current_posit ion)) <= 143u )
9116 goto st3; 8717 goto st3;
9117 } else if ( (*( current_position)) > 183u ) { 8718 } else if ( (*( current_position)) > 183u ) {
9118 if ( (*( current_position)) > 207u ) { 8719 if ( (*( current_position)) > 207u ) {
9119 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u ) 8720 if ( 240u <= (*( current_position)) && (*( curre nt_position)) <= 247u )
9120 goto tr0; 8721 goto tr0;
9121 } else if ( (*( current_position)) >= 192u ) 8722 } else if ( (*( current_position)) >= 192u )
9122 goto tr0; 8723 goto tr0;
9123 } else 8724 } else
9124 goto st3; 8725 goto st3;
9125 } else 8726 } else
9126 goto st7; 8727 goto st7;
9127 goto tr16; 8728 goto tr16;
9128 } 8729 }
9129 » _test_eof233: ( current_state) = 233; goto _test_eof; 8730 » _test_eof218: ( current_state) = 218; goto _test_eof;
9130 _test_eof1: ( current_state) = 1; goto _test_eof; 8731 _test_eof1: ( current_state) = 1; goto _test_eof;
9131 _test_eof2: ( current_state) = 2; goto _test_eof; 8732 _test_eof2: ( current_state) = 2; goto _test_eof;
9132 _test_eof3: ( current_state) = 3; goto _test_eof; 8733 _test_eof3: ( current_state) = 3; goto _test_eof;
9133 _test_eof4: ( current_state) = 4; goto _test_eof; 8734 _test_eof4: ( current_state) = 4; goto _test_eof;
9134 _test_eof5: ( current_state) = 5; goto _test_eof; 8735 _test_eof5: ( current_state) = 5; goto _test_eof;
9135 _test_eof6: ( current_state) = 6; goto _test_eof; 8736 _test_eof6: ( current_state) = 6; goto _test_eof;
9136 _test_eof7: ( current_state) = 7; goto _test_eof; 8737 _test_eof7: ( current_state) = 7; goto _test_eof;
9137 _test_eof8: ( current_state) = 8; goto _test_eof; 8738 _test_eof8: ( current_state) = 8; goto _test_eof;
9138 _test_eof9: ( current_state) = 9; goto _test_eof; 8739 _test_eof9: ( current_state) = 9; goto _test_eof;
9139 _test_eof10: ( current_state) = 10; goto _test_eof; 8740 _test_eof10: ( current_state) = 10; goto _test_eof;
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
9260 _test_eof131: ( current_state) = 131; goto _test_eof; 8861 _test_eof131: ( current_state) = 131; goto _test_eof;
9261 _test_eof132: ( current_state) = 132; goto _test_eof; 8862 _test_eof132: ( current_state) = 132; goto _test_eof;
9262 _test_eof133: ( current_state) = 133; goto _test_eof; 8863 _test_eof133: ( current_state) = 133; goto _test_eof;
9263 _test_eof134: ( current_state) = 134; goto _test_eof; 8864 _test_eof134: ( current_state) = 134; goto _test_eof;
9264 _test_eof135: ( current_state) = 135; goto _test_eof; 8865 _test_eof135: ( current_state) = 135; goto _test_eof;
9265 _test_eof136: ( current_state) = 136; goto _test_eof; 8866 _test_eof136: ( current_state) = 136; goto _test_eof;
9266 _test_eof137: ( current_state) = 137; goto _test_eof; 8867 _test_eof137: ( current_state) = 137; goto _test_eof;
9267 _test_eof138: ( current_state) = 138; goto _test_eof; 8868 _test_eof138: ( current_state) = 138; goto _test_eof;
9268 _test_eof139: ( current_state) = 139; goto _test_eof; 8869 _test_eof139: ( current_state) = 139; goto _test_eof;
9269 _test_eof140: ( current_state) = 140; goto _test_eof; 8870 _test_eof140: ( current_state) = 140; goto _test_eof;
9270 » _test_eof234: ( current_state) = 234; goto _test_eof; 8871 » _test_eof219: ( current_state) = 219; goto _test_eof;
9271 _test_eof141: ( current_state) = 141; goto _test_eof; 8872 _test_eof141: ( current_state) = 141; goto _test_eof;
9272 _test_eof142: ( current_state) = 142; goto _test_eof; 8873 _test_eof142: ( current_state) = 142; goto _test_eof;
9273 _test_eof143: ( current_state) = 143; goto _test_eof; 8874 _test_eof143: ( current_state) = 143; goto _test_eof;
9274 _test_eof144: ( current_state) = 144; goto _test_eof; 8875 _test_eof144: ( current_state) = 144; goto _test_eof;
9275 _test_eof145: ( current_state) = 145; goto _test_eof; 8876 _test_eof145: ( current_state) = 145; goto _test_eof;
9276 _test_eof146: ( current_state) = 146; goto _test_eof; 8877 _test_eof146: ( current_state) = 146; goto _test_eof;
9277 _test_eof147: ( current_state) = 147; goto _test_eof; 8878 _test_eof147: ( current_state) = 147; goto _test_eof;
9278 _test_eof148: ( current_state) = 148; goto _test_eof; 8879 _test_eof148: ( current_state) = 148; goto _test_eof;
9279 _test_eof149: ( current_state) = 149; goto _test_eof; 8880 _test_eof149: ( current_state) = 149; goto _test_eof;
9280 _test_eof150: ( current_state) = 150; goto _test_eof; 8881 _test_eof150: ( current_state) = 150; goto _test_eof;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
9325 _test_eof195: ( current_state) = 195; goto _test_eof; 8926 _test_eof195: ( current_state) = 195; goto _test_eof;
9326 _test_eof196: ( current_state) = 196; goto _test_eof; 8927 _test_eof196: ( current_state) = 196; goto _test_eof;
9327 _test_eof197: ( current_state) = 197; goto _test_eof; 8928 _test_eof197: ( current_state) = 197; goto _test_eof;
9328 _test_eof198: ( current_state) = 198; goto _test_eof; 8929 _test_eof198: ( current_state) = 198; goto _test_eof;
9329 _test_eof199: ( current_state) = 199; goto _test_eof; 8930 _test_eof199: ( current_state) = 199; goto _test_eof;
9330 _test_eof200: ( current_state) = 200; goto _test_eof; 8931 _test_eof200: ( current_state) = 200; goto _test_eof;
9331 _test_eof201: ( current_state) = 201; goto _test_eof; 8932 _test_eof201: ( current_state) = 201; goto _test_eof;
9332 _test_eof202: ( current_state) = 202; goto _test_eof; 8933 _test_eof202: ( current_state) = 202; goto _test_eof;
9333 _test_eof203: ( current_state) = 203; goto _test_eof; 8934 _test_eof203: ( current_state) = 203; goto _test_eof;
9334 _test_eof204: ( current_state) = 204; goto _test_eof; 8935 _test_eof204: ( current_state) = 204; goto _test_eof;
8936 _test_eof220: ( current_state) = 220; goto _test_eof;
9335 _test_eof205: ( current_state) = 205; goto _test_eof; 8937 _test_eof205: ( current_state) = 205; goto _test_eof;
9336 _test_eof206: ( current_state) = 206; goto _test_eof; 8938 _test_eof206: ( current_state) = 206; goto _test_eof;
8939 _test_eof221: ( current_state) = 221; goto _test_eof;
9337 _test_eof207: ( current_state) = 207; goto _test_eof; 8940 _test_eof207: ( current_state) = 207; goto _test_eof;
9338 _test_eof208: ( current_state) = 208; goto _test_eof; 8941 _test_eof208: ( current_state) = 208; goto _test_eof;
8942 _test_eof222: ( current_state) = 222; goto _test_eof;
9339 _test_eof209: ( current_state) = 209; goto _test_eof; 8943 _test_eof209: ( current_state) = 209; goto _test_eof;
9340 _test_eof210: ( current_state) = 210; goto _test_eof; 8944 _test_eof210: ( current_state) = 210; goto _test_eof;
8945 _test_eof223: ( current_state) = 223; goto _test_eof;
9341 _test_eof211: ( current_state) = 211; goto _test_eof; 8946 _test_eof211: ( current_state) = 211; goto _test_eof;
9342 _test_eof212: ( current_state) = 212; goto _test_eof; 8947 _test_eof212: ( current_state) = 212; goto _test_eof;
8948 _test_eof224: ( current_state) = 224; goto _test_eof;
9343 _test_eof213: ( current_state) = 213; goto _test_eof; 8949 _test_eof213: ( current_state) = 213; goto _test_eof;
9344 _test_eof214: ( current_state) = 214; goto _test_eof; 8950 _test_eof214: ( current_state) = 214; goto _test_eof;
8951 _test_eof225: ( current_state) = 225; goto _test_eof;
9345 _test_eof215: ( current_state) = 215; goto _test_eof; 8952 _test_eof215: ( current_state) = 215; goto _test_eof;
9346 _test_eof216: ( current_state) = 216; goto _test_eof; 8953 _test_eof216: ( current_state) = 216; goto _test_eof;
8954 _test_eof226: ( current_state) = 226; goto _test_eof;
9347 _test_eof217: ( current_state) = 217; goto _test_eof; 8955 _test_eof217: ( current_state) = 217; goto _test_eof;
9348 _test_eof218: ( current_state) = 218; goto _test_eof;
9349 _test_eof219: ( current_state) = 219; goto _test_eof;
9350 _test_eof235: ( current_state) = 235; goto _test_eof;
9351 _test_eof220: ( current_state) = 220; goto _test_eof;
9352 _test_eof221: ( current_state) = 221; goto _test_eof;
9353 _test_eof236: ( current_state) = 236; goto _test_eof;
9354 _test_eof222: ( current_state) = 222; goto _test_eof;
9355 _test_eof223: ( current_state) = 223; goto _test_eof;
9356 _test_eof237: ( current_state) = 237; goto _test_eof;
9357 _test_eof224: ( current_state) = 224; goto _test_eof;
9358 _test_eof225: ( current_state) = 225; goto _test_eof;
9359 _test_eof238: ( current_state) = 238; goto _test_eof;
9360 _test_eof226: ( current_state) = 226; goto _test_eof;
9361 _test_eof227: ( current_state) = 227; goto _test_eof;
9362 _test_eof239: ( current_state) = 239; goto _test_eof;
9363 _test_eof228: ( current_state) = 228; goto _test_eof;
9364 _test_eof229: ( current_state) = 229; goto _test_eof;
9365 _test_eof240: ( current_state) = 240; goto _test_eof;
9366 _test_eof230: ( current_state) = 230; goto _test_eof;
9367 _test_eof231: ( current_state) = 231; goto _test_eof;
9368 _test_eof241: ( current_state) = 241; goto _test_eof;
9369 _test_eof232: ( current_state) = 232; goto _test_eof;
9370 8956
9371 _test_eof: {} 8957 _test_eof: {}
9372 if ( ( current_position) == ( end_of_bundle) ) 8958 if ( ( current_position) == ( end_of_bundle) )
9373 { 8959 {
9374 switch ( ( current_state) ) { 8960 switch ( ( current_state) ) {
9375 case 1: 8961 case 1:
9376 case 2: 8962 case 2:
9377 case 3: 8963 case 3:
9378 case 4: 8964 case 4:
9379 case 5: 8965 case 5:
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
9582 case 208: 9168 case 208:
9583 case 209: 9169 case 209:
9584 case 210: 9170 case 210:
9585 case 211: 9171 case 211:
9586 case 212: 9172 case 212:
9587 case 213: 9173 case 213:
9588 case 214: 9174 case 214:
9589 case 215: 9175 case 215:
9590 case 216: 9176 case 216:
9591 case 217: 9177 case 217:
9592 case 218:
9593 case 219:
9594 case 220:
9595 case 221:
9596 case 222:
9597 case 223:
9598 case 224:
9599 case 225:
9600 case 226:
9601 case 227:
9602 case 228:
9603 case 229:
9604 case 230:
9605 case 231:
9606 case 232:
9607 { 9178 {
9608 result &= user_callback(instruction_begin, current_position, 9179 result &= user_callback(instruction_begin, current_position,
9609 UNRECOGNIZED_INSTRUCTION, callback_data); 9180 UNRECOGNIZED_INSTRUCTION, callback_data);
9610 /* 9181 /*
9611 * Process the next bundle: "continue" here is for the "for" cycle in 9182 * Process the next bundle: "continue" here is for the "for" cycle in
9612 * the ValidateChunkIA32 function. 9183 * the ValidateChunkIA32 function.
9613 * 9184 *
9614 * It does not affect the case which we really care about (when code 9185 * It does not affect the case which we really care about (when code
9615 * is validatable), but makes it possible to detect more errors in one 9186 * is validatable), but makes it possible to detect more errors in one
9616 * run in tools like ncval. 9187 * run in tools like ncval.
9617 */ 9188 */
9618 continue; 9189 continue;
9619 } 9190 }
9620 break; 9191 break;
9621 } 9192 }
9622 } 9193 }
9623 9194
9624 _out: {} 9195 _out: {}
9625 } 9196 }
9626 9197
9627 } 9198 }
9628 9199
9629 /* 9200 /*
9630 * Check the direct jumps. All the targets from jump_dests must be in 9201 * Check the direct jumps. All the targets from jump_dests must be in
9631 * valid_targets. 9202 * valid_targets.
9632 */ 9203 */
9633 result &= ProcessInvalidJumpTargets(data, size, valid_targets, jump_dests, 9204 result &= ProcessInvalidJumpTargets(codeblock,
9634 user_callback, callback_data); 9205 size,
9206 valid_targets,
9207 jump_dests,
9208 user_callback,
9209 callback_data);
9635 9210
9636 /* We only use malloc for a large code sequences */ 9211 /* We only use malloc for a large code sequences */
9637 if (jump_dests != &jump_dests_small) free(jump_dests); 9212 if (jump_dests != &jump_dests_small) free(jump_dests);
9638 if (valid_targets != &valid_targets_small) free(valid_targets); 9213 if (valid_targets != &valid_targets_small) free(valid_targets);
9639 if (!result) errno = EINVAL; 9214 if (!result) errno = EINVAL;
9640 return result; 9215 return result;
9641 } 9216 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698