| Index: src/trusted/validator_ragel/gen/validator_x86_32.c
|
| ===================================================================
|
| --- src/trusted/validator_ragel/gen/validator_x86_32.c (revision 11037)
|
| +++ src/trusted/validator_ragel/gen/validator_x86_32.c (working copy)
|
| @@ -19,28 +19,33 @@
|
| #include <string.h>
|
|
|
| #include "native_client/src/trusted/validator_ragel/bitmap.h"
|
| -#include "native_client/src/trusted/validator_ragel/unreviewed/validator_internal.h"
|
| +#include "native_client/src/trusted/validator_ragel/validator_internal.h"
|
|
|
| /* Ignore this information: it's not used by security model in IA32 mode. */
|
| +/* TODO(khim): change gen_dfa to remove needs for these lines. */
|
| #undef GET_VEX_PREFIX3
|
| #define GET_VEX_PREFIX3 0
|
| #undef SET_VEX_PREFIX3
|
| -#define SET_VEX_PREFIX3(P)
|
| +#define SET_VEX_PREFIX3(PREFIX_BYTE)
|
|
|
|
|
|
|
|
|
| +/*
|
| + * The "write data" statement causes Ragel to emit the constant static data
|
| + * needed by the ragel machine.
|
| + */
|
|
|
| -static const int x86_32_validator_start = 233;
|
| -static const int x86_32_validator_first_final = 233;
|
| +static const int x86_32_validator_start = 218;
|
| +static const int x86_32_validator_first_final = 218;
|
| static const int x86_32_validator_error = 0;
|
|
|
| -static const int x86_32_validator_en_main = 233;
|
| +static const int x86_32_validator_en_main = 218;
|
|
|
|
|
|
|
| -
|
| -Bool ValidateChunkIA32(const uint8_t *data, size_t size,
|
| +Bool ValidateChunkIA32(const uint8_t codeblock[],
|
| + size_t size,
|
| uint32_t options,
|
| const NaClCPUFeaturesX86 *cpu_features,
|
| ValidationCallbackFunc user_callback,
|
| @@ -76,12 +81,12 @@
|
| /*
|
| * This option is usually used in tests: we will process the whole chunk
|
| * in one pass. Usually each bundle is processed separately which means
|
| - * instructions (and super-instructions) can not cross borders of the bundle.
|
| + * instructions (and "superinstructions") can not cross borders of the bundle.
|
| */
|
| if (options & PROCESS_CHUNK_AS_A_CONTIGUOUS_STREAM)
|
| - end_of_bundle = data + size;
|
| + end_of_bundle = codeblock + size;
|
| else
|
| - end_of_bundle = data + kBundleSize;
|
| + end_of_bundle = codeblock + kBundleSize;
|
|
|
| /*
|
| * Main loop. Here we process the data array bundle-after-bundle.
|
| @@ -89,8 +94,8 @@
|
| * It collects the two arrays: valid_targets and jump_dests which are used
|
| * to test direct jumps later.
|
| */
|
| - for (current_position = data;
|
| - current_position < data + size;
|
| + for (current_position = codeblock;
|
| + current_position < codeblock + size;
|
| current_position = end_of_bundle,
|
| end_of_bundle = current_position + kBundleSize) {
|
| /* Start of the instruction being processed. */
|
| @@ -100,11 +105,19 @@
|
| uint32_t instruction_info_collected = 0;
|
| int current_state;
|
|
|
| + /*
|
| + * The "write init" statement causes Ragel to emit initialization code.
|
| + * This should be executed once before the ragel machine is started.
|
| + */
|
|
|
| {
|
| ( current_state) = x86_32_validator_start;
|
| }
|
|
|
| + /*
|
| + * The "write exec" statement causes Ragel to emit the ragel machine's
|
| + * execution code.
|
| + */
|
|
|
| {
|
| if ( ( current_position) == ( end_of_bundle) )
|
| @@ -114,7 +127,7 @@
|
| tr0:
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -124,24 +137,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr9:
|
| {
|
| - SET_DISP_TYPE(DISP32);
|
| - SET_DISP_PTR(current_position - 3);
|
| + SET_DISPLACEMENT_FORMAT(DISP32);
|
| + SET_DISPLACEMENT_POINTER(current_position - 3);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -151,24 +166,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr10:
|
| {
|
| - SET_DISP_TYPE(DISP8);
|
| - SET_DISP_PTR(current_position);
|
| + SET_DISPLACEMENT_FORMAT(DISP8);
|
| + SET_DISPLACEMENT_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -178,24 +195,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr11:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -205,24 +224,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr15:
|
| {
|
| - SET_IMM_TYPE(IMM32);
|
| - SET_IMM_PTR(current_position - 3);
|
| + SET_IMMEDIATE_FORMAT(IMM32);
|
| + SET_IMMEDIATE_POINTER(current_position - 3);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -232,20 +253,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr19:
|
| { SET_CPU_FEATURE(CPUFeature_3DNOW); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -255,20 +278,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr26:
|
| { SET_CPU_FEATURE(CPUFeature_TSC); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -278,20 +303,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr35:
|
| { SET_CPU_FEATURE(CPUFeature_MMX); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -301,20 +328,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr47:
|
| { SET_CPU_FEATURE(CPUFeature_MON); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -324,20 +353,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr48:
|
| { SET_CPU_FEATURE(CPUFeature_FXSR); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -347,20 +378,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr49:
|
| { SET_CPU_FEATURE(CPUFeature_3DPRFTCH); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -370,15 +403,17 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr61:
|
| {
|
| instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
|
| @@ -386,7 +421,7 @@
|
| { SET_CPU_FEATURE(CPUFeature_E3DNOW); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -396,15 +431,17 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr62:
|
| {
|
| instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
|
| @@ -412,7 +449,7 @@
|
| { SET_CPU_FEATURE(CPUFeature_3DNOW); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -422,20 +459,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr68:
|
| { SET_CPU_FEATURE(CPUFeature_SSE); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -445,20 +484,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr74:
|
| { SET_CPU_FEATURE(CPUFeature_SSE2); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -468,20 +509,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr82:
|
| { SET_CPU_FEATURE(CPUFeature_SSSE3); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -491,20 +534,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr93:
|
| { SET_CPU_FEATURE(CPUFeature_MOVBE); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -514,20 +559,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr114:
|
| { SET_CPU_FEATURE(CPUFeature_CMOV); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -537,24 +584,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr130:
|
| {
|
| - Rel32Operand(current_position + 1, data, jump_dests, size,
|
| + Rel32Operand(current_position + 1, codeblock, jump_dests, size,
|
| &instruction_info_collected);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -564,20 +613,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr136:
|
| { SET_CPU_FEATURE(CPUFeature_CLFLUSH); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -587,20 +638,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr145:
|
| { SET_CPU_FEATURE(CPUFeature_EMMXSSE); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -610,20 +663,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr152:
|
| { SET_CPU_FEATURE(CPUFeature_CX8); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -633,24 +688,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr165:
|
| {
|
| - Rel8Operand(current_position + 1, data, jump_dests, size,
|
| + Rel8Operand(current_position + 1, codeblock, jump_dests, size,
|
| &instruction_info_collected);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -660,24 +717,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr186:
|
| {
|
| - SET_IMM_TYPE(IMM16);
|
| - SET_IMM_PTR(current_position - 1);
|
| + SET_IMMEDIATE_FORMAT(IMM16);
|
| + SET_IMMEDIATE_POINTER(current_position - 1);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -687,20 +746,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr203:
|
| { SET_CPU_FEATURE(CPUFeature_SSE41); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -710,20 +771,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr209:
|
| { SET_CPU_FEATURE(CPUFeature_SSE42); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -733,20 +796,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr215:
|
| { SET_CPU_FEATURE(CPUFeature_AES); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -756,20 +821,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr255:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -779,20 +846,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr256:
|
| { SET_CPU_FEATURE(CPUFeature_SSE3); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -802,20 +871,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr310:
|
| { SET_CPU_FEATURE(CPUFeature_TBM); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -825,20 +896,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| + goto st218;
|
| tr317:
|
| { SET_CPU_FEATURE(CPUFeature_LWP); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -848,20 +921,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr344:
|
| + goto st218;
|
| +tr342:
|
| { SET_CPU_FEATURE(CPUFeature_BMI1); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -871,43 +946,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr352:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA); }
|
| - {
|
| - /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| -
|
| - /* Call user-supplied callback. */
|
| - instruction_end = current_position + 1;
|
| - if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
|
| - (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
|
| - result &= user_callback(instruction_begin, instruction_end,
|
| - instruction_info_collected, callback_data);
|
| - }
|
| -
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| - instruction_begin = instruction_end;
|
| -
|
| - /* Clear variables (well, one variable currently). */
|
| - instruction_info_collected = 0;
|
| - }
|
| - goto st233;
|
| -tr358:
|
| + goto st218;
|
| +tr349:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -917,20 +971,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr365:
|
| + goto st218;
|
| +tr356:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -940,45 +996,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr391:
|
| - {
|
| - instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
|
| - }
|
| - {
|
| - /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| -
|
| - /* Call user-supplied callback. */
|
| - instruction_end = current_position + 1;
|
| - if ((instruction_info_collected & VALIDATION_ERRORS_MASK) ||
|
| - (options & CALL_USER_CALLBACK_ON_EACH_INSTRUCTION)) {
|
| - result &= user_callback(instruction_begin, instruction_end,
|
| - instruction_info_collected, callback_data);
|
| - }
|
| -
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| - instruction_begin = instruction_end;
|
| -
|
| - /* Clear variables (well, one variable currently). */
|
| - instruction_info_collected = 0;
|
| - }
|
| - goto st233;
|
| -tr413:
|
| + goto st218;
|
| +tr386:
|
| { SET_CPU_FEATURE(CPUFeature_x87); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -988,20 +1021,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr419:
|
| + goto st218;
|
| +tr392:
|
| { SET_CPU_FEATURE(CPUFeature_CMOVx87); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1011,28 +1046,30 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr423:
|
| + goto st218;
|
| +tr396:
|
| {
|
| - Rel32Operand(current_position + 1, data, jump_dests, size,
|
| + Rel32Operand(current_position + 1, codeblock, jump_dests, size,
|
| &instruction_info_collected);
|
| }
|
| {}
|
| {
|
| - if (((current_position - data) & kBundleMask) != kBundleMask)
|
| + if (((current_position - codeblock) & kBundleMask) != kBundleMask)
|
| instruction_info_collected |= BAD_CALL_ALIGNMENT;
|
| }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1042,24 +1079,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr438:
|
| + goto st218;
|
| +tr411:
|
| {
|
| - SET_IMM2_TYPE(IMM8);
|
| - SET_IMM2_PTR(current_position);
|
| + SET_SECOND_IMMEDIATE_FORMAT(IMM8);
|
| + SET_SECOND_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1069,20 +1108,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr443:
|
| + goto st218;
|
| +tr416:
|
| { SET_CPU_FEATURE(CPUFeature_POPCNT); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1092,20 +1133,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr449:
|
| + goto st218;
|
| +tr422:
|
| { SET_CPU_FEATURE(CPUFeature_TZCNT); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1115,20 +1158,22 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr455:
|
| + goto st218;
|
| +tr428:
|
| { SET_CPU_FEATURE(CPUFeature_LZCNT); }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1138,28 +1183,30 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr461:
|
| + goto st218;
|
| +tr434:
|
| {
|
| - UnmarkValidJumpTarget((current_position - data) - 1, valid_targets);
|
| + UnmarkValidJumpTarget((current_position - codeblock) - 1, valid_targets);
|
| instruction_begin -= 3;
|
| instruction_info_collected |= SPECIAL_INSTRUCTION;
|
| }
|
| {
|
| - if (((current_position - data) & kBundleMask) != kBundleMask)
|
| + if (((current_position - codeblock) & kBundleMask) != kBundleMask)
|
| instruction_info_collected |= BAD_CALL_ALIGNMENT;
|
| }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1169,24 +1216,26 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -tr462:
|
| + goto st218;
|
| +tr435:
|
| {
|
| - UnmarkValidJumpTarget((current_position - data) - 1, valid_targets);
|
| + UnmarkValidJumpTarget((current_position - codeblock) - 1, valid_targets);
|
| instruction_begin -= 3;
|
| instruction_info_collected |= SPECIAL_INSTRUCTION;
|
| }
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -1196,19 +1245,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st233;
|
| -st233:
|
| + goto st218;
|
| +st218:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof233;
|
| -case 233:
|
| + goto _test_eof218;
|
| +case 218:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -1240,30 +1291,30 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| case 255u: goto st129;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| @@ -1424,31 +1475,28 @@
|
| tr311:
|
| { SET_CPU_FEATURE(CPUFeature_TBM); }
|
| goto st2;
|
| -tr345:
|
| +tr343:
|
| { SET_CPU_FEATURE(CPUFeature_BMI1); }
|
| goto st2;
|
| -tr353:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA); }
|
| - goto st2;
|
| -tr359:
|
| +tr350:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st2;
|
| -tr366:
|
| +tr357:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st2;
|
| -tr414:
|
| +tr387:
|
| { SET_CPU_FEATURE(CPUFeature_x87); }
|
| goto st2;
|
| -tr431:
|
| +tr404:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| goto st2;
|
| -tr444:
|
| +tr417:
|
| { SET_CPU_FEATURE(CPUFeature_POPCNT); }
|
| goto st2;
|
| -tr450:
|
| +tr423:
|
| { SET_CPU_FEATURE(CPUFeature_TZCNT); }
|
| goto st2;
|
| -tr456:
|
| +tr429:
|
| { SET_CPU_FEATURE(CPUFeature_LZCNT); }
|
| goto st2;
|
| st2:
|
| @@ -1538,31 +1586,28 @@
|
| tr312:
|
| { SET_CPU_FEATURE(CPUFeature_TBM); }
|
| goto st3;
|
| -tr346:
|
| +tr344:
|
| { SET_CPU_FEATURE(CPUFeature_BMI1); }
|
| goto st3;
|
| -tr354:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA); }
|
| - goto st3;
|
| -tr360:
|
| +tr351:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st3;
|
| -tr367:
|
| +tr358:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st3;
|
| -tr415:
|
| +tr388:
|
| { SET_CPU_FEATURE(CPUFeature_x87); }
|
| goto st3;
|
| -tr432:
|
| +tr405:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| goto st3;
|
| -tr445:
|
| +tr418:
|
| { SET_CPU_FEATURE(CPUFeature_POPCNT); }
|
| goto st3;
|
| -tr451:
|
| +tr424:
|
| { SET_CPU_FEATURE(CPUFeature_TZCNT); }
|
| goto st3;
|
| -tr457:
|
| +tr430:
|
| { SET_CPU_FEATURE(CPUFeature_LZCNT); }
|
| goto st3;
|
| st3:
|
| @@ -1642,31 +1687,28 @@
|
| tr313:
|
| { SET_CPU_FEATURE(CPUFeature_TBM); }
|
| goto st7;
|
| -tr347:
|
| +tr345:
|
| { SET_CPU_FEATURE(CPUFeature_BMI1); }
|
| goto st7;
|
| -tr355:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA); }
|
| - goto st7;
|
| -tr361:
|
| +tr352:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st7;
|
| -tr368:
|
| +tr359:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st7;
|
| -tr416:
|
| +tr389:
|
| { SET_CPU_FEATURE(CPUFeature_x87); }
|
| goto st7;
|
| -tr433:
|
| +tr406:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| goto st7;
|
| -tr446:
|
| +tr419:
|
| { SET_CPU_FEATURE(CPUFeature_POPCNT); }
|
| goto st7;
|
| -tr452:
|
| +tr425:
|
| { SET_CPU_FEATURE(CPUFeature_TZCNT); }
|
| goto st7;
|
| -tr458:
|
| +tr431:
|
| { SET_CPU_FEATURE(CPUFeature_LZCNT); }
|
| goto st7;
|
| st7:
|
| @@ -1722,31 +1764,28 @@
|
| tr314:
|
| { SET_CPU_FEATURE(CPUFeature_TBM); }
|
| goto st8;
|
| -tr348:
|
| +tr346:
|
| { SET_CPU_FEATURE(CPUFeature_BMI1); }
|
| goto st8;
|
| -tr356:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA); }
|
| - goto st8;
|
| -tr362:
|
| +tr353:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st8;
|
| -tr369:
|
| +tr360:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st8;
|
| -tr417:
|
| +tr390:
|
| { SET_CPU_FEATURE(CPUFeature_x87); }
|
| goto st8;
|
| -tr434:
|
| +tr407:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| goto st8;
|
| -tr447:
|
| +tr420:
|
| { SET_CPU_FEATURE(CPUFeature_POPCNT); }
|
| goto st8;
|
| -tr453:
|
| +tr426:
|
| { SET_CPU_FEATURE(CPUFeature_TZCNT); }
|
| goto st8;
|
| -tr459:
|
| +tr432:
|
| { SET_CPU_FEATURE(CPUFeature_LZCNT); }
|
| goto st8;
|
| st8:
|
| @@ -1802,31 +1841,28 @@
|
| tr315:
|
| { SET_CPU_FEATURE(CPUFeature_TBM); }
|
| goto st9;
|
| -tr349:
|
| +tr347:
|
| { SET_CPU_FEATURE(CPUFeature_BMI1); }
|
| goto st9;
|
| -tr357:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA); }
|
| - goto st9;
|
| -tr363:
|
| +tr354:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st9;
|
| -tr370:
|
| +tr361:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st9;
|
| -tr418:
|
| +tr391:
|
| { SET_CPU_FEATURE(CPUFeature_x87); }
|
| goto st9;
|
| -tr435:
|
| +tr408:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| goto st9;
|
| -tr448:
|
| +tr421:
|
| { SET_CPU_FEATURE(CPUFeature_POPCNT); }
|
| goto st9;
|
| -tr454:
|
| +tr427:
|
| { SET_CPU_FEATURE(CPUFeature_TZCNT); }
|
| goto st9;
|
| -tr460:
|
| +tr433:
|
| { SET_CPU_FEATURE(CPUFeature_LZCNT); }
|
| goto st9;
|
| st9:
|
| @@ -1836,15 +1872,15 @@
|
| goto st3;
|
| tr111:
|
| {
|
| - SET_DISP_TYPE(DISP32);
|
| - SET_DISP_PTR(current_position - 3);
|
| + SET_DISPLACEMENT_FORMAT(DISP32);
|
| + SET_DISPLACEMENT_POINTER(current_position - 3);
|
| }
|
| {}
|
| goto st10;
|
| tr112:
|
| {
|
| - SET_DISP_TYPE(DISP8);
|
| - SET_DISP_PTR(current_position);
|
| + SET_DISPLACEMENT_FORMAT(DISP8);
|
| + SET_DISPLACEMENT_POINTER(current_position);
|
| }
|
| {}
|
| goto st10;
|
| @@ -1875,13 +1911,13 @@
|
| tr231:
|
| { SET_CPU_FEATURE(CPUFeature_CLMUL); }
|
| goto st10;
|
| -tr400:
|
| +tr373:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st10;
|
| -tr407:
|
| +tr380:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st10;
|
| -tr379:
|
| +tr367:
|
| { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
|
| goto st10;
|
| st10:
|
| @@ -1891,15 +1927,15 @@
|
| goto tr11;
|
| tr293:
|
| {
|
| - SET_DISP_TYPE(DISP32);
|
| - SET_DISP_PTR(current_position - 3);
|
| + SET_DISPLACEMENT_FORMAT(DISP32);
|
| + SET_DISPLACEMENT_POINTER(current_position - 3);
|
| }
|
| {}
|
| goto st11;
|
| tr294:
|
| {
|
| - SET_DISP_TYPE(DISP8);
|
| - SET_DISP_PTR(current_position);
|
| + SET_DISPLACEMENT_FORMAT(DISP8);
|
| + SET_DISPLACEMENT_POINTER(current_position);
|
| }
|
| {}
|
| goto st11;
|
| @@ -2154,15 +2190,15 @@
|
| goto st19;
|
| tr66:
|
| {
|
| - SET_DISP_TYPE(DISP32);
|
| - SET_DISP_PTR(current_position - 3);
|
| + SET_DISPLACEMENT_FORMAT(DISP32);
|
| + SET_DISPLACEMENT_POINTER(current_position - 3);
|
| }
|
| {}
|
| goto st19;
|
| tr67:
|
| {
|
| - SET_DISP_TYPE(DISP8);
|
| - SET_DISP_PTR(current_position);
|
| + SET_DISPLACEMENT_FORMAT(DISP8);
|
| + SET_DISPLACEMENT_POINTER(current_position);
|
| }
|
| {}
|
| goto st19;
|
| @@ -2727,13 +2763,13 @@
|
| tr232:
|
| { SET_CPU_FEATURE(CPUFeature_CLMUL); }
|
| goto st39;
|
| -tr401:
|
| +tr374:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st39;
|
| -tr408:
|
| +tr381:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st39;
|
| -tr380:
|
| +tr368:
|
| { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
|
| goto st39;
|
| st39:
|
| @@ -2799,13 +2835,13 @@
|
| tr233:
|
| { SET_CPU_FEATURE(CPUFeature_CLMUL); }
|
| goto st40;
|
| -tr402:
|
| +tr375:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st40;
|
| -tr409:
|
| +tr382:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st40;
|
| -tr381:
|
| +tr369:
|
| { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
|
| goto st40;
|
| st40:
|
| @@ -2861,13 +2897,13 @@
|
| tr234:
|
| { SET_CPU_FEATURE(CPUFeature_CLMUL); }
|
| goto st44;
|
| -tr403:
|
| +tr376:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st44;
|
| -tr410:
|
| +tr383:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st44;
|
| -tr382:
|
| +tr370:
|
| { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
|
| goto st44;
|
| st44:
|
| @@ -2899,13 +2935,13 @@
|
| tr235:
|
| { SET_CPU_FEATURE(CPUFeature_CLMUL); }
|
| goto st45;
|
| -tr404:
|
| +tr377:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st45;
|
| -tr411:
|
| +tr384:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st45;
|
| -tr383:
|
| +tr371:
|
| { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
|
| goto st45;
|
| st45:
|
| @@ -2937,13 +2973,13 @@
|
| tr236:
|
| { SET_CPU_FEATURE(CPUFeature_CLMUL); }
|
| goto st46;
|
| -tr405:
|
| +tr378:
|
| { SET_CPU_FEATURE(CPUFeature_AESAVX); }
|
| goto st46;
|
| -tr412:
|
| +tr385:
|
| { SET_CPU_FEATURE(CPUFeature_F16C); }
|
| goto st46;
|
| -tr384:
|
| +tr372:
|
| { SET_CPU_FEATURE(CPUFeature_CLMULAVX); }
|
| goto st46;
|
| st46:
|
| @@ -3612,15 +3648,15 @@
|
| goto tr16;
|
| tr276:
|
| {
|
| - SET_DISP_TYPE(DISP32);
|
| - SET_DISP_PTR(current_position - 3);
|
| + SET_DISPLACEMENT_FORMAT(DISP32);
|
| + SET_DISPLACEMENT_POINTER(current_position - 3);
|
| }
|
| {}
|
| goto st75;
|
| tr277:
|
| {
|
| - SET_DISP_TYPE(DISP8);
|
| - SET_DISP_PTR(current_position);
|
| + SET_DISPLACEMENT_FORMAT(DISP8);
|
| + SET_DISPLACEMENT_POINTER(current_position);
|
| }
|
| {}
|
| goto st75;
|
| @@ -5168,13 +5204,13 @@
|
| case 180u: goto st46;
|
| case 188u: goto st46;
|
| case 224u: goto st140;
|
| - case 225u: goto st219;
|
| - case 226u: goto st221;
|
| - case 227u: goto st223;
|
| - case 228u: goto st225;
|
| - case 229u: goto st227;
|
| - case 230u: goto st229;
|
| - case 231u: goto st231;
|
| + case 225u: goto st204;
|
| + case 226u: goto st206;
|
| + case 227u: goto st208;
|
| + case 228u: goto st210;
|
| + case 229u: goto st212;
|
| + case 230u: goto st214;
|
| + case 231u: goto st216;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| @@ -5191,13 +5227,13 @@
|
| goto tr11;
|
| tr303:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -5207,19 +5243,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st234;
|
| -st234:
|
| + goto st219;
|
| +st219:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof234;
|
| -case 234:
|
| + goto _test_eof219;
|
| +case 219:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -5251,31 +5289,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st218;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st203;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -5625,7 +5663,7 @@
|
| case 153:
|
| switch( (*( current_position)) ) {
|
| case 226u: goto st154;
|
| - case 227u: goto st166;
|
| + case 227u: goto st163;
|
| }
|
| goto tr16;
|
| st154:
|
| @@ -5635,44 +5673,21 @@
|
| switch( (*( current_position)) ) {
|
| case 64u: goto tr336;
|
| case 65u: goto tr337;
|
| - case 69u: goto tr338;
|
| case 72u: goto tr336;
|
| case 73u: goto tr337;
|
| - case 77u: goto tr338;
|
| case 80u: goto tr336;
|
| case 81u: goto tr337;
|
| - case 85u: goto tr338;
|
| case 88u: goto tr336;
|
| case 89u: goto tr337;
|
| - case 93u: goto tr338;
|
| case 96u: goto tr336;
|
| case 97u: goto tr337;
|
| - case 101u: goto tr338;
|
| case 104u: goto tr336;
|
| case 105u: goto tr337;
|
| - case 109u: goto tr338;
|
| case 112u: goto tr336;
|
| case 113u: goto tr337;
|
| - case 117u: goto tr338;
|
| case 120u: goto tr336;
|
| - case 121u: goto tr339;
|
| - case 125u: goto tr340;
|
| - case 193u: goto tr341;
|
| - case 197u: goto tr338;
|
| - case 201u: goto tr341;
|
| - case 205u: goto tr338;
|
| - case 209u: goto tr341;
|
| - case 213u: goto tr338;
|
| - case 217u: goto tr341;
|
| - case 221u: goto tr338;
|
| - case 225u: goto tr341;
|
| - case 229u: goto tr338;
|
| - case 233u: goto tr341;
|
| - case 237u: goto tr338;
|
| - case 241u: goto tr341;
|
| - case 245u: goto tr338;
|
| - case 249u: goto tr341;
|
| - case 253u: goto tr338;
|
| + case 121u: goto tr338;
|
| + case 125u: goto tr339;
|
| }
|
| goto tr16;
|
| tr336:
|
| @@ -5695,74 +5710,74 @@
|
| goto _test_eof156;
|
| case 156:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr345;
|
| - case 5u: goto tr346;
|
| - case 12u: goto tr345;
|
| - case 13u: goto tr346;
|
| - case 20u: goto tr345;
|
| - case 21u: goto tr346;
|
| - case 28u: goto tr345;
|
| - case 29u: goto tr346;
|
| - case 36u: goto tr345;
|
| - case 37u: goto tr346;
|
| - case 44u: goto tr345;
|
| - case 45u: goto tr346;
|
| - case 52u: goto tr345;
|
| - case 53u: goto tr346;
|
| - case 60u: goto tr345;
|
| - case 61u: goto tr346;
|
| - case 68u: goto tr348;
|
| - case 76u: goto tr348;
|
| - case 84u: goto tr348;
|
| - case 92u: goto tr348;
|
| - case 100u: goto tr348;
|
| - case 108u: goto tr348;
|
| - case 116u: goto tr348;
|
| - case 124u: goto tr348;
|
| - case 132u: goto tr349;
|
| - case 140u: goto tr349;
|
| - case 148u: goto tr349;
|
| - case 156u: goto tr349;
|
| - case 164u: goto tr349;
|
| - case 172u: goto tr349;
|
| - case 180u: goto tr349;
|
| - case 188u: goto tr349;
|
| + case 4u: goto tr343;
|
| + case 5u: goto tr344;
|
| + case 12u: goto tr343;
|
| + case 13u: goto tr344;
|
| + case 20u: goto tr343;
|
| + case 21u: goto tr344;
|
| + case 28u: goto tr343;
|
| + case 29u: goto tr344;
|
| + case 36u: goto tr343;
|
| + case 37u: goto tr344;
|
| + case 44u: goto tr343;
|
| + case 45u: goto tr344;
|
| + case 52u: goto tr343;
|
| + case 53u: goto tr344;
|
| + case 60u: goto tr343;
|
| + case 61u: goto tr344;
|
| + case 68u: goto tr346;
|
| + case 76u: goto tr346;
|
| + case 84u: goto tr346;
|
| + case 92u: goto tr346;
|
| + case 100u: goto tr346;
|
| + case 108u: goto tr346;
|
| + case 116u: goto tr346;
|
| + case 124u: goto tr346;
|
| + case 132u: goto tr347;
|
| + case 140u: goto tr347;
|
| + case 148u: goto tr347;
|
| + case 156u: goto tr347;
|
| + case 164u: goto tr347;
|
| + case 172u: goto tr347;
|
| + case 180u: goto tr347;
|
| + case 188u: goto tr347;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr346;
|
| + goto tr344;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr347;
|
| - goto tr344;
|
| + goto tr345;
|
| + goto tr342;
|
| st157:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof157;
|
| case 157:
|
| switch( (*( current_position)) ) {
|
| - case 12u: goto tr345;
|
| - case 13u: goto tr346;
|
| - case 20u: goto tr345;
|
| - case 21u: goto tr346;
|
| - case 28u: goto tr345;
|
| - case 29u: goto tr346;
|
| - case 76u: goto tr348;
|
| - case 84u: goto tr348;
|
| - case 92u: goto tr348;
|
| - case 140u: goto tr349;
|
| - case 148u: goto tr349;
|
| - case 156u: goto tr349;
|
| + case 12u: goto tr343;
|
| + case 13u: goto tr344;
|
| + case 20u: goto tr343;
|
| + case 21u: goto tr344;
|
| + case 28u: goto tr343;
|
| + case 29u: goto tr344;
|
| + case 76u: goto tr346;
|
| + case 84u: goto tr346;
|
| + case 92u: goto tr346;
|
| + case 140u: goto tr347;
|
| + case 148u: goto tr347;
|
| + case 156u: goto tr347;
|
| }
|
| if ( (*( current_position)) < 72u ) {
|
| if ( 8u <= (*( current_position)) && (*( current_position)) <= 31u )
|
| - goto tr344;
|
| + goto tr342;
|
| } else if ( (*( current_position)) > 95u ) {
|
| if ( (*( current_position)) > 159u ) {
|
| if ( 200u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| - goto tr344;
|
| + goto tr342;
|
| } else if ( (*( current_position)) >= 136u )
|
| - goto tr346;
|
| + goto tr344;
|
| } else
|
| - goto tr347;
|
| + goto tr345;
|
| goto tr16;
|
| tr337:
|
| {
|
| @@ -5773,16 +5788,7 @@
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof158;
|
| case 158:
|
| - if ( (*( current_position)) < 166u ) {
|
| - if ( 150u <= (*( current_position)) && (*( current_position)) <= 159u )
|
| - goto st159;
|
| - } else if ( (*( current_position)) > 175u ) {
|
| - if ( (*( current_position)) > 191u ) {
|
| - if ( 219u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| - goto st160;
|
| - } else if ( (*( current_position)) >= 182u )
|
| - goto st159;
|
| - } else
|
| + if ( 219u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| goto st159;
|
| goto tr16;
|
| st159:
|
| @@ -5790,118 +5796,103 @@
|
| goto _test_eof159;
|
| case 159:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr353;
|
| - case 5u: goto tr354;
|
| - case 12u: goto tr353;
|
| - case 13u: goto tr354;
|
| - case 20u: goto tr353;
|
| - case 21u: goto tr354;
|
| - case 28u: goto tr353;
|
| - case 29u: goto tr354;
|
| - case 36u: goto tr353;
|
| - case 37u: goto tr354;
|
| - case 44u: goto tr353;
|
| - case 45u: goto tr354;
|
| - case 52u: goto tr353;
|
| - case 53u: goto tr354;
|
| - case 60u: goto tr353;
|
| - case 61u: goto tr354;
|
| - case 68u: goto tr356;
|
| - case 76u: goto tr356;
|
| - case 84u: goto tr356;
|
| - case 92u: goto tr356;
|
| - case 100u: goto tr356;
|
| - case 108u: goto tr356;
|
| - case 116u: goto tr356;
|
| - case 124u: goto tr356;
|
| - case 132u: goto tr357;
|
| - case 140u: goto tr357;
|
| - case 148u: goto tr357;
|
| - case 156u: goto tr357;
|
| - case 164u: goto tr357;
|
| - case 172u: goto tr357;
|
| - case 180u: goto tr357;
|
| - case 188u: goto tr357;
|
| + case 4u: goto tr350;
|
| + case 5u: goto tr351;
|
| + case 12u: goto tr350;
|
| + case 13u: goto tr351;
|
| + case 20u: goto tr350;
|
| + case 21u: goto tr351;
|
| + case 28u: goto tr350;
|
| + case 29u: goto tr351;
|
| + case 36u: goto tr350;
|
| + case 37u: goto tr351;
|
| + case 44u: goto tr350;
|
| + case 45u: goto tr351;
|
| + case 52u: goto tr350;
|
| + case 53u: goto tr351;
|
| + case 60u: goto tr350;
|
| + case 61u: goto tr351;
|
| + case 68u: goto tr353;
|
| + case 76u: goto tr353;
|
| + case 84u: goto tr353;
|
| + case 92u: goto tr353;
|
| + case 100u: goto tr353;
|
| + case 108u: goto tr353;
|
| + case 116u: goto tr353;
|
| + case 124u: goto tr353;
|
| + case 132u: goto tr354;
|
| + case 140u: goto tr354;
|
| + case 148u: goto tr354;
|
| + case 156u: goto tr354;
|
| + case 164u: goto tr354;
|
| + case 172u: goto tr354;
|
| + case 180u: goto tr354;
|
| + case 188u: goto tr354;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr354;
|
| + goto tr351;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr355;
|
| - goto tr352;
|
| -st160:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof160;
|
| -case 160:
|
| - switch( (*( current_position)) ) {
|
| - case 4u: goto tr359;
|
| - case 5u: goto tr360;
|
| - case 12u: goto tr359;
|
| - case 13u: goto tr360;
|
| - case 20u: goto tr359;
|
| - case 21u: goto tr360;
|
| - case 28u: goto tr359;
|
| - case 29u: goto tr360;
|
| - case 36u: goto tr359;
|
| - case 37u: goto tr360;
|
| - case 44u: goto tr359;
|
| - case 45u: goto tr360;
|
| - case 52u: goto tr359;
|
| - case 53u: goto tr360;
|
| - case 60u: goto tr359;
|
| - case 61u: goto tr360;
|
| - case 68u: goto tr362;
|
| - case 76u: goto tr362;
|
| - case 84u: goto tr362;
|
| - case 92u: goto tr362;
|
| - case 100u: goto tr362;
|
| - case 108u: goto tr362;
|
| - case 116u: goto tr362;
|
| - case 124u: goto tr362;
|
| - case 132u: goto tr363;
|
| - case 140u: goto tr363;
|
| - case 148u: goto tr363;
|
| - case 156u: goto tr363;
|
| - case 164u: goto tr363;
|
| - case 172u: goto tr363;
|
| - case 180u: goto tr363;
|
| - case 188u: goto tr363;
|
| - }
|
| - if ( (*( current_position)) > 127u ) {
|
| - if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr360;
|
| - } else if ( (*( current_position)) >= 64u )
|
| - goto tr361;
|
| - goto tr358;
|
| + goto tr352;
|
| + goto tr349;
|
| tr338:
|
| {
|
| SET_VEX_PREFIX3(*current_position);
|
| }
|
| - goto st161;
|
| + goto st160;
|
| +st160:
|
| + if ( ++( current_position) == ( end_of_bundle) )
|
| + goto _test_eof160;
|
| +case 160:
|
| + if ( (*( current_position)) == 19u )
|
| + goto st161;
|
| + if ( 219u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| + goto st159;
|
| + goto tr16;
|
| st161:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof161;
|
| case 161:
|
| switch( (*( current_position)) ) {
|
| - case 154u: goto st159;
|
| - case 156u: goto st159;
|
| - case 158u: goto st159;
|
| - case 170u: goto st159;
|
| - case 172u: goto st159;
|
| - case 174u: goto st159;
|
| - case 186u: goto st159;
|
| - case 188u: goto st159;
|
| - case 190u: goto st159;
|
| + case 4u: goto tr357;
|
| + case 5u: goto tr358;
|
| + case 12u: goto tr357;
|
| + case 13u: goto tr358;
|
| + case 20u: goto tr357;
|
| + case 21u: goto tr358;
|
| + case 28u: goto tr357;
|
| + case 29u: goto tr358;
|
| + case 36u: goto tr357;
|
| + case 37u: goto tr358;
|
| + case 44u: goto tr357;
|
| + case 45u: goto tr358;
|
| + case 52u: goto tr357;
|
| + case 53u: goto tr358;
|
| + case 60u: goto tr357;
|
| + case 61u: goto tr358;
|
| + case 68u: goto tr360;
|
| + case 76u: goto tr360;
|
| + case 84u: goto tr360;
|
| + case 92u: goto tr360;
|
| + case 100u: goto tr360;
|
| + case 108u: goto tr360;
|
| + case 116u: goto tr360;
|
| + case 124u: goto tr360;
|
| + case 132u: goto tr361;
|
| + case 140u: goto tr361;
|
| + case 148u: goto tr361;
|
| + case 156u: goto tr361;
|
| + case 164u: goto tr361;
|
| + case 172u: goto tr361;
|
| + case 180u: goto tr361;
|
| + case 188u: goto tr361;
|
| }
|
| - if ( (*( current_position)) < 166u ) {
|
| - if ( 150u <= (*( current_position)) && (*( current_position)) <= 152u )
|
| - goto st159;
|
| - } else if ( (*( current_position)) > 168u ) {
|
| - if ( 182u <= (*( current_position)) && (*( current_position)) <= 184u )
|
| - goto st159;
|
| - } else
|
| - goto st159;
|
| - goto tr16;
|
| + if ( (*( current_position)) > 127u ) {
|
| + if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| + goto tr358;
|
| + } else if ( (*( current_position)) >= 64u )
|
| + goto tr359;
|
| + goto tr356;
|
| tr339:
|
| {
|
| SET_VEX_PREFIX3(*current_position);
|
| @@ -5912,64 +5903,25 @@
|
| goto _test_eof162;
|
| case 162:
|
| if ( (*( current_position)) == 19u )
|
| - goto st163;
|
| - if ( (*( current_position)) < 166u ) {
|
| - if ( 150u <= (*( current_position)) && (*( current_position)) <= 159u )
|
| - goto st159;
|
| - } else if ( (*( current_position)) > 175u ) {
|
| - if ( (*( current_position)) > 191u ) {
|
| - if ( 219u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| - goto st160;
|
| - } else if ( (*( current_position)) >= 182u )
|
| - goto st159;
|
| - } else
|
| - goto st159;
|
| + goto st161;
|
| goto tr16;
|
| st163:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof163;
|
| case 163:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr366;
|
| - case 5u: goto tr367;
|
| - case 12u: goto tr366;
|
| - case 13u: goto tr367;
|
| - case 20u: goto tr366;
|
| - case 21u: goto tr367;
|
| - case 28u: goto tr366;
|
| - case 29u: goto tr367;
|
| - case 36u: goto tr366;
|
| - case 37u: goto tr367;
|
| - case 44u: goto tr366;
|
| - case 45u: goto tr367;
|
| - case 52u: goto tr366;
|
| - case 53u: goto tr367;
|
| - case 60u: goto tr366;
|
| - case 61u: goto tr367;
|
| - case 68u: goto tr369;
|
| - case 76u: goto tr369;
|
| - case 84u: goto tr369;
|
| - case 92u: goto tr369;
|
| - case 100u: goto tr369;
|
| - case 108u: goto tr369;
|
| - case 116u: goto tr369;
|
| - case 124u: goto tr369;
|
| - case 132u: goto tr370;
|
| - case 140u: goto tr370;
|
| - case 148u: goto tr370;
|
| - case 156u: goto tr370;
|
| - case 164u: goto tr370;
|
| - case 172u: goto tr370;
|
| - case 180u: goto tr370;
|
| - case 188u: goto tr370;
|
| + case 65u: goto tr362;
|
| + case 73u: goto tr362;
|
| + case 81u: goto tr362;
|
| + case 89u: goto tr362;
|
| + case 97u: goto tr362;
|
| + case 105u: goto tr362;
|
| + case 113u: goto tr362;
|
| + case 121u: goto tr363;
|
| + case 125u: goto tr364;
|
| }
|
| - if ( (*( current_position)) > 127u ) {
|
| - if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr367;
|
| - } else if ( (*( current_position)) >= 64u )
|
| - goto tr368;
|
| - goto tr365;
|
| -tr340:
|
| + goto tr16;
|
| +tr362:
|
| {
|
| SET_VEX_PREFIX3(*current_position);
|
| }
|
| @@ -5979,84 +5931,99 @@
|
| goto _test_eof164;
|
| case 164:
|
| switch( (*( current_position)) ) {
|
| - case 19u: goto st163;
|
| - case 154u: goto st159;
|
| - case 156u: goto st159;
|
| - case 158u: goto st159;
|
| - case 170u: goto st159;
|
| - case 172u: goto st159;
|
| - case 174u: goto st159;
|
| - case 186u: goto st159;
|
| - case 188u: goto st159;
|
| - case 190u: goto st159;
|
| + case 68u: goto st165;
|
| + case 223u: goto st166;
|
| }
|
| - if ( (*( current_position)) < 166u ) {
|
| - if ( 150u <= (*( current_position)) && (*( current_position)) <= 152u )
|
| - goto st159;
|
| - } else if ( (*( current_position)) > 168u ) {
|
| - if ( 182u <= (*( current_position)) && (*( current_position)) <= 184u )
|
| - goto st159;
|
| - } else
|
| - goto st159;
|
| goto tr16;
|
| -tr341:
|
| - {
|
| - SET_VEX_PREFIX3(*current_position);
|
| - }
|
| - goto st165;
|
| st165:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof165;
|
| case 165:
|
| - if ( (*( current_position)) < 166u ) {
|
| - if ( 150u <= (*( current_position)) && (*( current_position)) <= 159u )
|
| - goto st159;
|
| - } else if ( (*( current_position)) > 175u ) {
|
| - if ( 182u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto st159;
|
| - } else
|
| - goto st159;
|
| - goto tr16;
|
| + switch( (*( current_position)) ) {
|
| + case 4u: goto tr368;
|
| + case 5u: goto tr369;
|
| + case 12u: goto tr368;
|
| + case 13u: goto tr369;
|
| + case 20u: goto tr368;
|
| + case 21u: goto tr369;
|
| + case 28u: goto tr368;
|
| + case 29u: goto tr369;
|
| + case 36u: goto tr368;
|
| + case 37u: goto tr369;
|
| + case 44u: goto tr368;
|
| + case 45u: goto tr369;
|
| + case 52u: goto tr368;
|
| + case 53u: goto tr369;
|
| + case 60u: goto tr368;
|
| + case 61u: goto tr369;
|
| + case 68u: goto tr371;
|
| + case 76u: goto tr371;
|
| + case 84u: goto tr371;
|
| + case 92u: goto tr371;
|
| + case 100u: goto tr371;
|
| + case 108u: goto tr371;
|
| + case 116u: goto tr371;
|
| + case 124u: goto tr371;
|
| + case 132u: goto tr372;
|
| + case 140u: goto tr372;
|
| + case 148u: goto tr372;
|
| + case 156u: goto tr372;
|
| + case 164u: goto tr372;
|
| + case 172u: goto tr372;
|
| + case 180u: goto tr372;
|
| + case 188u: goto tr372;
|
| + }
|
| + if ( (*( current_position)) > 127u ) {
|
| + if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| + goto tr369;
|
| + } else if ( (*( current_position)) >= 64u )
|
| + goto tr370;
|
| + goto tr367;
|
| st166:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof166;
|
| case 166:
|
| switch( (*( current_position)) ) {
|
| - case 65u: goto tr371;
|
| - case 69u: goto tr372;
|
| - case 73u: goto tr371;
|
| - case 77u: goto tr372;
|
| - case 81u: goto tr371;
|
| - case 85u: goto tr372;
|
| - case 89u: goto tr371;
|
| - case 93u: goto tr372;
|
| - case 97u: goto tr371;
|
| - case 101u: goto tr372;
|
| - case 105u: goto tr371;
|
| - case 109u: goto tr372;
|
| - case 113u: goto tr371;
|
| - case 117u: goto tr372;
|
| - case 121u: goto tr373;
|
| - case 125u: goto tr374;
|
| - case 193u: goto tr375;
|
| - case 197u: goto tr372;
|
| - case 201u: goto tr375;
|
| - case 205u: goto tr372;
|
| - case 209u: goto tr375;
|
| - case 213u: goto tr372;
|
| - case 217u: goto tr375;
|
| - case 221u: goto tr372;
|
| - case 225u: goto tr375;
|
| - case 229u: goto tr372;
|
| - case 233u: goto tr375;
|
| - case 237u: goto tr372;
|
| - case 241u: goto tr375;
|
| - case 245u: goto tr372;
|
| - case 249u: goto tr375;
|
| - case 253u: goto tr372;
|
| + case 4u: goto tr374;
|
| + case 5u: goto tr375;
|
| + case 12u: goto tr374;
|
| + case 13u: goto tr375;
|
| + case 20u: goto tr374;
|
| + case 21u: goto tr375;
|
| + case 28u: goto tr374;
|
| + case 29u: goto tr375;
|
| + case 36u: goto tr374;
|
| + case 37u: goto tr375;
|
| + case 44u: goto tr374;
|
| + case 45u: goto tr375;
|
| + case 52u: goto tr374;
|
| + case 53u: goto tr375;
|
| + case 60u: goto tr374;
|
| + case 61u: goto tr375;
|
| + case 68u: goto tr377;
|
| + case 76u: goto tr377;
|
| + case 84u: goto tr377;
|
| + case 92u: goto tr377;
|
| + case 100u: goto tr377;
|
| + case 108u: goto tr377;
|
| + case 116u: goto tr377;
|
| + case 124u: goto tr377;
|
| + case 132u: goto tr378;
|
| + case 140u: goto tr378;
|
| + case 148u: goto tr378;
|
| + case 156u: goto tr378;
|
| + case 164u: goto tr378;
|
| + case 172u: goto tr378;
|
| + case 180u: goto tr378;
|
| + case 188u: goto tr378;
|
| }
|
| - goto tr16;
|
| -tr371:
|
| + if ( (*( current_position)) > 127u ) {
|
| + if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| + goto tr375;
|
| + } else if ( (*( current_position)) >= 64u )
|
| + goto tr376;
|
| + goto tr373;
|
| +tr363:
|
| {
|
| SET_VEX_PREFIX3(*current_position);
|
| }
|
| @@ -6066,420 +6033,72 @@
|
| goto _test_eof167;
|
| case 167:
|
| switch( (*( current_position)) ) {
|
| - case 68u: goto st168;
|
| - case 223u: goto st179;
|
| + case 29u: goto st168;
|
| + case 68u: goto st165;
|
| + case 223u: goto st166;
|
| }
|
| - if ( (*( current_position)) < 104u ) {
|
| - if ( 92u <= (*( current_position)) && (*( current_position)) <= 95u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) > 111u ) {
|
| - if ( 120u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto st169;
|
| - } else
|
| - goto st169;
|
| goto tr16;
|
| st168:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof168;
|
| case 168:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr380;
|
| - case 5u: goto tr381;
|
| - case 12u: goto tr380;
|
| - case 13u: goto tr381;
|
| - case 20u: goto tr380;
|
| - case 21u: goto tr381;
|
| - case 28u: goto tr380;
|
| - case 29u: goto tr381;
|
| - case 36u: goto tr380;
|
| - case 37u: goto tr381;
|
| - case 44u: goto tr380;
|
| - case 45u: goto tr381;
|
| - case 52u: goto tr380;
|
| - case 53u: goto tr381;
|
| - case 60u: goto tr380;
|
| - case 61u: goto tr381;
|
| - case 68u: goto tr383;
|
| - case 76u: goto tr383;
|
| - case 84u: goto tr383;
|
| - case 92u: goto tr383;
|
| - case 100u: goto tr383;
|
| - case 108u: goto tr383;
|
| - case 116u: goto tr383;
|
| - case 124u: goto tr383;
|
| - case 132u: goto tr384;
|
| - case 140u: goto tr384;
|
| - case 148u: goto tr384;
|
| - case 156u: goto tr384;
|
| - case 164u: goto tr384;
|
| - case 172u: goto tr384;
|
| - case 180u: goto tr384;
|
| - case 188u: goto tr384;
|
| + case 4u: goto tr381;
|
| + case 5u: goto tr382;
|
| + case 12u: goto tr381;
|
| + case 13u: goto tr382;
|
| + case 20u: goto tr381;
|
| + case 21u: goto tr382;
|
| + case 28u: goto tr381;
|
| + case 29u: goto tr382;
|
| + case 36u: goto tr381;
|
| + case 37u: goto tr382;
|
| + case 44u: goto tr381;
|
| + case 45u: goto tr382;
|
| + case 52u: goto tr381;
|
| + case 53u: goto tr382;
|
| + case 60u: goto tr381;
|
| + case 61u: goto tr382;
|
| + case 68u: goto tr384;
|
| + case 76u: goto tr384;
|
| + case 84u: goto tr384;
|
| + case 92u: goto tr384;
|
| + case 100u: goto tr384;
|
| + case 108u: goto tr384;
|
| + case 116u: goto tr384;
|
| + case 124u: goto tr384;
|
| + case 132u: goto tr385;
|
| + case 140u: goto tr385;
|
| + case 148u: goto tr385;
|
| + case 156u: goto tr385;
|
| + case 164u: goto tr385;
|
| + case 172u: goto tr385;
|
| + case 180u: goto tr385;
|
| + case 188u: goto tr385;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr381;
|
| + goto tr382;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr382;
|
| - goto tr379;
|
| + goto tr383;
|
| + goto tr380;
|
| +tr364:
|
| + {
|
| + SET_VEX_PREFIX3(*current_position);
|
| + }
|
| + goto st169;
|
| st169:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof169;
|
| case 169:
|
| - switch( (*( current_position)) ) {
|
| - case 4u: goto tr386;
|
| - case 5u: goto tr387;
|
| - case 12u: goto tr386;
|
| - case 13u: goto tr387;
|
| - case 20u: goto tr386;
|
| - case 21u: goto tr387;
|
| - case 28u: goto tr386;
|
| - case 29u: goto tr387;
|
| - case 36u: goto tr386;
|
| - case 37u: goto tr387;
|
| - case 44u: goto tr386;
|
| - case 45u: goto tr387;
|
| - case 52u: goto tr386;
|
| - case 53u: goto tr387;
|
| - case 60u: goto tr386;
|
| - case 61u: goto tr387;
|
| - case 68u: goto tr389;
|
| - case 76u: goto tr389;
|
| - case 84u: goto tr389;
|
| - case 92u: goto tr389;
|
| - case 100u: goto tr389;
|
| - case 108u: goto tr389;
|
| - case 116u: goto tr389;
|
| - case 124u: goto tr389;
|
| - case 132u: goto tr390;
|
| - case 140u: goto tr390;
|
| - case 148u: goto tr390;
|
| - case 156u: goto tr390;
|
| - case 164u: goto tr390;
|
| - case 172u: goto tr390;
|
| - case 180u: goto tr390;
|
| - case 188u: goto tr390;
|
| - }
|
| - if ( (*( current_position)) > 127u ) {
|
| - if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr387;
|
| - } else if ( (*( current_position)) >= 64u )
|
| - goto tr388;
|
| - goto tr385;
|
| -tr397:
|
| - {
|
| - SET_DISP_TYPE(DISP32);
|
| - SET_DISP_PTR(current_position - 3);
|
| - }
|
| - {}
|
| - goto st170;
|
| -tr398:
|
| - {
|
| - SET_DISP_TYPE(DISP8);
|
| - SET_DISP_PTR(current_position);
|
| - }
|
| - {}
|
| - goto st170;
|
| -tr385:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA4); }
|
| - goto st170;
|
| + if ( (*( current_position)) == 29u )
|
| + goto st168;
|
| + goto tr16;
|
| st170:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| goto _test_eof170;
|
| case 170:
|
| switch( (*( current_position)) ) {
|
| - case 0u: goto tr391;
|
| - case 16u: goto tr391;
|
| - case 32u: goto tr391;
|
| - case 48u: goto tr391;
|
| - case 64u: goto tr391;
|
| - case 80u: goto tr391;
|
| - case 96u: goto tr391;
|
| - case 112u: goto tr391;
|
| - }
|
| - goto tr16;
|
| -tr386:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA4); }
|
| - goto st171;
|
| -st171:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof171;
|
| -case 171:
|
| - switch( (*( current_position)) ) {
|
| - case 5u: goto st172;
|
| - case 13u: goto st172;
|
| - case 21u: goto st172;
|
| - case 29u: goto st172;
|
| - case 37u: goto st172;
|
| - case 45u: goto st172;
|
| - case 53u: goto st172;
|
| - case 61u: goto st172;
|
| - case 69u: goto st172;
|
| - case 77u: goto st172;
|
| - case 85u: goto st172;
|
| - case 93u: goto st172;
|
| - case 101u: goto st172;
|
| - case 109u: goto st172;
|
| - case 117u: goto st172;
|
| - case 125u: goto st172;
|
| - case 133u: goto st172;
|
| - case 141u: goto st172;
|
| - case 149u: goto st172;
|
| - case 157u: goto st172;
|
| - case 165u: goto st172;
|
| - case 173u: goto st172;
|
| - case 181u: goto st172;
|
| - case 189u: goto st172;
|
| - case 197u: goto st172;
|
| - case 205u: goto st172;
|
| - case 213u: goto st172;
|
| - case 221u: goto st172;
|
| - case 229u: goto st172;
|
| - case 237u: goto st172;
|
| - case 245u: goto st172;
|
| - case 253u: goto st172;
|
| - }
|
| - goto st170;
|
| -tr387:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA4); }
|
| - goto st172;
|
| -st172:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof172;
|
| -case 172:
|
| - goto tr394;
|
| -tr394:
|
| - {}
|
| - goto st173;
|
| -st173:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof173;
|
| -case 173:
|
| - goto tr395;
|
| -tr395:
|
| - {}
|
| - goto st174;
|
| -st174:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof174;
|
| -case 174:
|
| - goto tr396;
|
| -tr396:
|
| - {}
|
| - goto st175;
|
| -st175:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof175;
|
| -case 175:
|
| - goto tr397;
|
| -tr388:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA4); }
|
| - goto st176;
|
| -st176:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof176;
|
| -case 176:
|
| - goto tr398;
|
| -tr389:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA4); }
|
| - goto st177;
|
| -st177:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof177;
|
| -case 177:
|
| - goto st176;
|
| -tr390:
|
| - { SET_CPU_FEATURE(CPUFeature_FMA4); }
|
| - goto st178;
|
| -st178:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof178;
|
| -case 178:
|
| - goto st172;
|
| -st179:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof179;
|
| -case 179:
|
| - switch( (*( current_position)) ) {
|
| - case 4u: goto tr401;
|
| - case 5u: goto tr402;
|
| - case 12u: goto tr401;
|
| - case 13u: goto tr402;
|
| - case 20u: goto tr401;
|
| - case 21u: goto tr402;
|
| - case 28u: goto tr401;
|
| - case 29u: goto tr402;
|
| - case 36u: goto tr401;
|
| - case 37u: goto tr402;
|
| - case 44u: goto tr401;
|
| - case 45u: goto tr402;
|
| - case 52u: goto tr401;
|
| - case 53u: goto tr402;
|
| - case 60u: goto tr401;
|
| - case 61u: goto tr402;
|
| - case 68u: goto tr404;
|
| - case 76u: goto tr404;
|
| - case 84u: goto tr404;
|
| - case 92u: goto tr404;
|
| - case 100u: goto tr404;
|
| - case 108u: goto tr404;
|
| - case 116u: goto tr404;
|
| - case 124u: goto tr404;
|
| - case 132u: goto tr405;
|
| - case 140u: goto tr405;
|
| - case 148u: goto tr405;
|
| - case 156u: goto tr405;
|
| - case 164u: goto tr405;
|
| - case 172u: goto tr405;
|
| - case 180u: goto tr405;
|
| - case 188u: goto tr405;
|
| - }
|
| - if ( (*( current_position)) > 127u ) {
|
| - if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr402;
|
| - } else if ( (*( current_position)) >= 64u )
|
| - goto tr403;
|
| - goto tr400;
|
| -tr372:
|
| - {
|
| - SET_VEX_PREFIX3(*current_position);
|
| - }
|
| - goto st180;
|
| -st180:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof180;
|
| -case 180:
|
| - if ( (*( current_position)) < 108u ) {
|
| - if ( (*( current_position)) > 95u ) {
|
| - if ( 104u <= (*( current_position)) && (*( current_position)) <= 105u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) >= 92u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) > 109u ) {
|
| - if ( (*( current_position)) > 121u ) {
|
| - if ( 124u <= (*( current_position)) && (*( current_position)) <= 125u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) >= 120u )
|
| - goto st169;
|
| - } else
|
| - goto st169;
|
| - goto tr16;
|
| -tr373:
|
| - {
|
| - SET_VEX_PREFIX3(*current_position);
|
| - }
|
| - goto st181;
|
| -st181:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof181;
|
| -case 181:
|
| - switch( (*( current_position)) ) {
|
| - case 29u: goto st182;
|
| - case 68u: goto st168;
|
| - case 223u: goto st179;
|
| - }
|
| - if ( (*( current_position)) < 104u ) {
|
| - if ( 92u <= (*( current_position)) && (*( current_position)) <= 95u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) > 111u ) {
|
| - if ( 120u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto st169;
|
| - } else
|
| - goto st169;
|
| - goto tr16;
|
| -st182:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof182;
|
| -case 182:
|
| - switch( (*( current_position)) ) {
|
| - case 4u: goto tr408;
|
| - case 5u: goto tr409;
|
| - case 12u: goto tr408;
|
| - case 13u: goto tr409;
|
| - case 20u: goto tr408;
|
| - case 21u: goto tr409;
|
| - case 28u: goto tr408;
|
| - case 29u: goto tr409;
|
| - case 36u: goto tr408;
|
| - case 37u: goto tr409;
|
| - case 44u: goto tr408;
|
| - case 45u: goto tr409;
|
| - case 52u: goto tr408;
|
| - case 53u: goto tr409;
|
| - case 60u: goto tr408;
|
| - case 61u: goto tr409;
|
| - case 68u: goto tr411;
|
| - case 76u: goto tr411;
|
| - case 84u: goto tr411;
|
| - case 92u: goto tr411;
|
| - case 100u: goto tr411;
|
| - case 108u: goto tr411;
|
| - case 116u: goto tr411;
|
| - case 124u: goto tr411;
|
| - case 132u: goto tr412;
|
| - case 140u: goto tr412;
|
| - case 148u: goto tr412;
|
| - case 156u: goto tr412;
|
| - case 164u: goto tr412;
|
| - case 172u: goto tr412;
|
| - case 180u: goto tr412;
|
| - case 188u: goto tr412;
|
| - }
|
| - if ( (*( current_position)) > 127u ) {
|
| - if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr409;
|
| - } else if ( (*( current_position)) >= 64u )
|
| - goto tr410;
|
| - goto tr407;
|
| -tr374:
|
| - {
|
| - SET_VEX_PREFIX3(*current_position);
|
| - }
|
| - goto st183;
|
| -st183:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof183;
|
| -case 183:
|
| - if ( (*( current_position)) == 29u )
|
| - goto st182;
|
| - if ( (*( current_position)) < 108u ) {
|
| - if ( (*( current_position)) > 95u ) {
|
| - if ( 104u <= (*( current_position)) && (*( current_position)) <= 105u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) >= 92u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) > 109u ) {
|
| - if ( (*( current_position)) > 121u ) {
|
| - if ( 124u <= (*( current_position)) && (*( current_position)) <= 125u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) >= 120u )
|
| - goto st169;
|
| - } else
|
| - goto st169;
|
| - goto tr16;
|
| -tr375:
|
| - {
|
| - SET_VEX_PREFIX3(*current_position);
|
| - }
|
| - goto st184;
|
| -st184:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof184;
|
| -case 184:
|
| - if ( (*( current_position)) < 104u ) {
|
| - if ( 92u <= (*( current_position)) && (*( current_position)) <= 95u )
|
| - goto st169;
|
| - } else if ( (*( current_position)) > 111u ) {
|
| - if ( 120u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto st169;
|
| - } else
|
| - goto st169;
|
| - goto tr16;
|
| -st185:
|
| - if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof185;
|
| -case 185:
|
| - switch( (*( current_position)) ) {
|
| case 4u: goto st39;
|
| case 5u: goto st40;
|
| case 68u: goto st45;
|
| @@ -6497,10 +6116,10 @@
|
| } else
|
| goto st44;
|
| goto tr16;
|
| -st186:
|
| +st171:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof186;
|
| -case 186:
|
| + goto _test_eof171;
|
| +case 171:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st131;
|
| case 5u: goto st132;
|
| @@ -6519,83 +6138,83 @@
|
| } else
|
| goto st136;
|
| goto tr16;
|
| -st187:
|
| +st172:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof187;
|
| -case 187:
|
| + goto _test_eof172;
|
| +case 172:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 12u: goto tr414;
|
| - case 13u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 36u: goto tr414;
|
| - case 37u: goto tr415;
|
| - case 44u: goto tr414;
|
| - case 45u: goto tr415;
|
| - case 52u: goto tr414;
|
| - case 53u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 12u: goto tr387;
|
| + case 13u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 36u: goto tr387;
|
| + case 37u: goto tr388;
|
| + case 44u: goto tr387;
|
| + case 45u: goto tr388;
|
| + case 52u: goto tr387;
|
| + case 53u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr415;
|
| + goto tr388;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr416;
|
| - goto tr413;
|
| -st188:
|
| + goto tr389;
|
| + goto tr386;
|
| +st173:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof188;
|
| -case 188:
|
| + goto _test_eof173;
|
| +case 173:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 36u: goto tr414;
|
| - case 37u: goto tr415;
|
| - case 44u: goto tr414;
|
| - case 45u: goto tr415;
|
| - case 52u: goto tr414;
|
| - case 53u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 36u: goto tr387;
|
| + case 37u: goto tr388;
|
| + case 44u: goto tr387;
|
| + case 45u: goto tr388;
|
| + case 52u: goto tr387;
|
| + case 53u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| case 239u: goto tr16;
|
| }
|
| if ( (*( current_position)) < 128u ) {
|
| @@ -6605,16 +6224,16 @@
|
| } else if ( (*( current_position)) > 71u ) {
|
| if ( (*( current_position)) > 79u ) {
|
| if ( 80u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) >= 72u )
|
| goto tr16;
|
| } else
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) > 135u ) {
|
| if ( (*( current_position)) < 209u ) {
|
| if ( (*( current_position)) > 143u ) {
|
| if ( 144u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr415;
|
| + goto tr388;
|
| } else if ( (*( current_position)) >= 136u )
|
| goto tr16;
|
| } else if ( (*( current_position)) > 223u ) {
|
| @@ -6626,221 +6245,221 @@
|
| } else
|
| goto tr16;
|
| } else
|
| - goto tr415;
|
| - goto tr413;
|
| -st189:
|
| + goto tr388;
|
| + goto tr386;
|
| +st174:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof189;
|
| -case 189:
|
| + goto _test_eof174;
|
| +case 174:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 12u: goto tr414;
|
| - case 20u: goto tr414;
|
| - case 28u: goto tr414;
|
| - case 36u: goto tr414;
|
| - case 44u: goto tr414;
|
| - case 52u: goto tr414;
|
| - case 60u: goto tr414;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| - case 233u: goto tr413;
|
| + case 4u: goto tr387;
|
| + case 12u: goto tr387;
|
| + case 20u: goto tr387;
|
| + case 28u: goto tr387;
|
| + case 36u: goto tr387;
|
| + case 44u: goto tr387;
|
| + case 52u: goto tr387;
|
| + case 60u: goto tr387;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| + case 233u: goto tr386;
|
| }
|
| if ( (*( current_position)) < 38u ) {
|
| if ( (*( current_position)) < 14u ) {
|
| if ( (*( current_position)) > 3u ) {
|
| if ( 6u <= (*( current_position)) && (*( current_position)) <= 11u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) > 19u ) {
|
| if ( (*( current_position)) > 27u ) {
|
| if ( 30u <= (*( current_position)) && (*( current_position)) <= 35u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) >= 22u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) > 43u ) {
|
| if ( (*( current_position)) < 62u ) {
|
| if ( (*( current_position)) > 51u ) {
|
| if ( 54u <= (*( current_position)) && (*( current_position)) <= 59u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) >= 46u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) > 63u ) {
|
| if ( (*( current_position)) < 192u ) {
|
| if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) > 223u ) {
|
| if ( 224u <= (*( current_position)) )
|
| goto tr16;
|
| } else
|
| - goto tr419;
|
| + goto tr392;
|
| } else
|
| - goto tr413;
|
| + goto tr386;
|
| } else
|
| - goto tr413;
|
| - goto tr415;
|
| -st190:
|
| + goto tr386;
|
| + goto tr388;
|
| +st175:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof190;
|
| -case 190:
|
| + goto _test_eof175;
|
| +case 175:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 12u: goto tr414;
|
| - case 13u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 44u: goto tr414;
|
| - case 45u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 12u: goto tr387;
|
| + case 13u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 44u: goto tr387;
|
| + case 45u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 188u: goto tr391;
|
| }
|
| if ( (*( current_position)) < 120u ) {
|
| if ( (*( current_position)) < 56u ) {
|
| if ( (*( current_position)) > 31u ) {
|
| if ( 40u <= (*( current_position)) && (*( current_position)) <= 47u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) > 63u ) {
|
| if ( (*( current_position)) > 95u ) {
|
| if ( 104u <= (*( current_position)) && (*( current_position)) <= 111u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else
|
| - goto tr413;
|
| + goto tr386;
|
| } else if ( (*( current_position)) > 127u ) {
|
| if ( (*( current_position)) < 184u ) {
|
| if ( (*( current_position)) > 159u ) {
|
| if ( 168u <= (*( current_position)) && (*( current_position)) <= 175u )
|
| - goto tr415;
|
| + goto tr388;
|
| } else if ( (*( current_position)) >= 128u )
|
| - goto tr415;
|
| + goto tr388;
|
| } else if ( (*( current_position)) > 191u ) {
|
| if ( (*( current_position)) < 226u ) {
|
| if ( 192u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| - goto tr419;
|
| + goto tr392;
|
| } else if ( (*( current_position)) > 227u ) {
|
| if ( 232u <= (*( current_position)) && (*( current_position)) <= 247u )
|
| - goto tr413;
|
| + goto tr386;
|
| } else
|
| - goto tr413;
|
| + goto tr386;
|
| } else
|
| - goto tr415;
|
| + goto tr388;
|
| } else
|
| - goto tr416;
|
| + goto tr389;
|
| goto tr16;
|
| -st191:
|
| +st176:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof191;
|
| -case 191:
|
| + goto _test_eof176;
|
| +case 176:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 12u: goto tr414;
|
| - case 13u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 36u: goto tr414;
|
| - case 37u: goto tr415;
|
| - case 44u: goto tr414;
|
| - case 45u: goto tr415;
|
| - case 52u: goto tr414;
|
| - case 53u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 12u: goto tr387;
|
| + case 13u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 36u: goto tr387;
|
| + case 37u: goto tr388;
|
| + case 44u: goto tr387;
|
| + case 45u: goto tr388;
|
| + case 52u: goto tr387;
|
| + case 53u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| }
|
| if ( (*( current_position)) < 128u ) {
|
| if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) > 191u ) {
|
| if ( 208u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| goto tr16;
|
| } else
|
| - goto tr415;
|
| - goto tr413;
|
| -st192:
|
| + goto tr388;
|
| + goto tr386;
|
| +st177:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof192;
|
| -case 192:
|
| + goto _test_eof177;
|
| +case 177:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 12u: goto tr414;
|
| - case 13u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 36u: goto tr414;
|
| - case 37u: goto tr415;
|
| - case 52u: goto tr414;
|
| - case 53u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 12u: goto tr387;
|
| + case 13u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 36u: goto tr387;
|
| + case 37u: goto tr388;
|
| + case 52u: goto tr387;
|
| + case 53u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| }
|
| if ( (*( current_position)) < 128u ) {
|
| if ( (*( current_position)) < 64u ) {
|
| @@ -6849,11 +6468,11 @@
|
| } else if ( (*( current_position)) > 103u ) {
|
| if ( (*( current_position)) > 111u ) {
|
| if ( 112u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) >= 104u )
|
| goto tr16;
|
| } else
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) > 167u ) {
|
| if ( (*( current_position)) < 176u ) {
|
| if ( 168u <= (*( current_position)) && (*( current_position)) <= 175u )
|
| @@ -6865,51 +6484,51 @@
|
| } else if ( (*( current_position)) >= 200u )
|
| goto tr16;
|
| } else
|
| - goto tr415;
|
| + goto tr388;
|
| } else
|
| - goto tr415;
|
| - goto tr413;
|
| -st193:
|
| + goto tr388;
|
| + goto tr386;
|
| +st178:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof193;
|
| -case 193:
|
| + goto _test_eof178;
|
| +case 178:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 12u: goto tr414;
|
| - case 13u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 36u: goto tr414;
|
| - case 37u: goto tr415;
|
| - case 44u: goto tr414;
|
| - case 45u: goto tr415;
|
| - case 52u: goto tr414;
|
| - case 53u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 12u: goto tr387;
|
| + case 13u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 36u: goto tr387;
|
| + case 37u: goto tr388;
|
| + case 44u: goto tr387;
|
| + case 45u: goto tr388;
|
| + case 52u: goto tr387;
|
| + case 53u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| }
|
| if ( (*( current_position)) < 128u ) {
|
| if ( 64u <= (*( current_position)) && (*( current_position)) <= 127u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) > 191u ) {
|
| if ( (*( current_position)) > 216u ) {
|
| if ( 218u <= (*( current_position)) && (*( current_position)) <= 223u )
|
| @@ -6917,52 +6536,52 @@
|
| } else if ( (*( current_position)) >= 208u )
|
| goto tr16;
|
| } else
|
| - goto tr415;
|
| - goto tr413;
|
| -st194:
|
| + goto tr388;
|
| + goto tr386;
|
| +st179:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof194;
|
| -case 194:
|
| + goto _test_eof179;
|
| +case 179:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr414;
|
| - case 5u: goto tr415;
|
| - case 12u: goto tr414;
|
| - case 13u: goto tr415;
|
| - case 20u: goto tr414;
|
| - case 21u: goto tr415;
|
| - case 28u: goto tr414;
|
| - case 29u: goto tr415;
|
| - case 36u: goto tr414;
|
| - case 37u: goto tr415;
|
| - case 44u: goto tr414;
|
| - case 45u: goto tr415;
|
| - case 52u: goto tr414;
|
| - case 53u: goto tr415;
|
| - case 60u: goto tr414;
|
| - case 61u: goto tr415;
|
| - case 68u: goto tr417;
|
| - case 76u: goto tr417;
|
| - case 84u: goto tr417;
|
| - case 92u: goto tr417;
|
| - case 100u: goto tr417;
|
| - case 108u: goto tr417;
|
| - case 116u: goto tr417;
|
| - case 124u: goto tr417;
|
| - case 132u: goto tr418;
|
| - case 140u: goto tr418;
|
| - case 148u: goto tr418;
|
| - case 156u: goto tr418;
|
| - case 164u: goto tr418;
|
| - case 172u: goto tr418;
|
| - case 180u: goto tr418;
|
| - case 188u: goto tr418;
|
| + case 4u: goto tr387;
|
| + case 5u: goto tr388;
|
| + case 12u: goto tr387;
|
| + case 13u: goto tr388;
|
| + case 20u: goto tr387;
|
| + case 21u: goto tr388;
|
| + case 28u: goto tr387;
|
| + case 29u: goto tr388;
|
| + case 36u: goto tr387;
|
| + case 37u: goto tr388;
|
| + case 44u: goto tr387;
|
| + case 45u: goto tr388;
|
| + case 52u: goto tr387;
|
| + case 53u: goto tr388;
|
| + case 60u: goto tr387;
|
| + case 61u: goto tr388;
|
| + case 68u: goto tr390;
|
| + case 76u: goto tr390;
|
| + case 84u: goto tr390;
|
| + case 92u: goto tr390;
|
| + case 100u: goto tr390;
|
| + case 108u: goto tr390;
|
| + case 116u: goto tr390;
|
| + case 124u: goto tr390;
|
| + case 132u: goto tr391;
|
| + case 140u: goto tr391;
|
| + case 148u: goto tr391;
|
| + case 156u: goto tr391;
|
| + case 164u: goto tr391;
|
| + case 172u: goto tr391;
|
| + case 180u: goto tr391;
|
| + case 188u: goto tr391;
|
| }
|
| if ( (*( current_position)) < 192u ) {
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr415;
|
| + goto tr388;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr416;
|
| + goto tr389;
|
| } else if ( (*( current_position)) > 223u ) {
|
| if ( (*( current_position)) > 231u ) {
|
| if ( 248u <= (*( current_position)) )
|
| @@ -6971,45 +6590,45 @@
|
| goto tr16;
|
| } else
|
| goto tr16;
|
| - goto tr413;
|
| -st195:
|
| + goto tr386;
|
| +st180:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof195;
|
| -case 195:
|
| - goto tr420;
|
| -tr420:
|
| + goto _test_eof180;
|
| +case 180:
|
| + goto tr393;
|
| +tr393:
|
| {}
|
| - goto st196;
|
| -st196:
|
| + goto st181;
|
| +st181:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof196;
|
| -case 196:
|
| - goto tr421;
|
| -tr421:
|
| + goto _test_eof181;
|
| +case 181:
|
| + goto tr394;
|
| +tr394:
|
| {}
|
| - goto st197;
|
| -st197:
|
| + goto st182;
|
| +st182:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof197;
|
| -case 197:
|
| - goto tr422;
|
| -tr422:
|
| + goto _test_eof182;
|
| +case 182:
|
| + goto tr395;
|
| +tr395:
|
| {}
|
| - goto st198;
|
| -st198:
|
| + goto st183;
|
| +st183:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof198;
|
| -case 198:
|
| - goto tr423;
|
| -st199:
|
| + goto _test_eof183;
|
| +case 183:
|
| + goto tr396;
|
| +st184:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof199;
|
| -case 199:
|
| + goto _test_eof184;
|
| +case 184:
|
| switch( (*( current_position)) ) {
|
| - case 15u: goto st200;
|
| + case 15u: goto st185;
|
| case 102u: goto st119;
|
| case 128u: goto st121;
|
| - case 129u: goto st201;
|
| + case 129u: goto st186;
|
| case 131u: goto st121;
|
| }
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -7042,10 +6661,10 @@
|
| } else
|
| goto st115;
|
| goto tr16;
|
| -st200:
|
| +st185:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof200;
|
| -case 200:
|
| + goto _test_eof185;
|
| +case 185:
|
| if ( (*( current_position)) == 199u )
|
| goto st61;
|
| if ( (*( current_position)) > 177u ) {
|
| @@ -7054,10 +6673,10 @@
|
| } else if ( (*( current_position)) >= 176u )
|
| goto st115;
|
| goto tr16;
|
| -st201:
|
| +st186:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof201;
|
| -case 201:
|
| + goto _test_eof186;
|
| +case 186:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st131;
|
| case 5u: goto st132;
|
| @@ -7097,12 +6716,12 @@
|
| } else
|
| goto st136;
|
| goto tr16;
|
| -st202:
|
| +st187:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof202;
|
| -case 202:
|
| + goto _test_eof187;
|
| +case 187:
|
| switch( (*( current_position)) ) {
|
| - case 15u: goto st203;
|
| + case 15u: goto st188;
|
| case 102u: goto st124;
|
| }
|
| if ( (*( current_position)) > 167u ) {
|
| @@ -7111,23 +6730,23 @@
|
| } else if ( (*( current_position)) >= 166u )
|
| goto tr0;
|
| goto tr16;
|
| -st203:
|
| +st188:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof203;
|
| -case 203:
|
| + goto _test_eof188;
|
| +case 188:
|
| switch( (*( current_position)) ) {
|
| case 18u: goto st96;
|
| - case 43u: goto st204;
|
| - case 56u: goto st205;
|
| + case 43u: goto st189;
|
| + case 56u: goto st190;
|
| case 81u: goto st32;
|
| case 112u: goto st92;
|
| - case 120u: goto st206;
|
| + case 120u: goto st191;
|
| case 121u: goto st95;
|
| case 194u: goto st92;
|
| case 208u: goto st28;
|
| case 214u: goto st91;
|
| case 230u: goto st32;
|
| - case 240u: goto st209;
|
| + case 240u: goto st194;
|
| }
|
| if ( (*( current_position)) < 88u ) {
|
| if ( (*( current_position)) > 17u ) {
|
| @@ -7144,35 +6763,35 @@
|
| } else
|
| goto st32;
|
| goto tr16;
|
| -st204:
|
| +st189:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof204;
|
| -case 204:
|
| + goto _test_eof189;
|
| +case 189:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr431;
|
| - case 12u: goto tr431;
|
| - case 20u: goto tr431;
|
| - case 28u: goto tr431;
|
| - case 36u: goto tr431;
|
| - case 44u: goto tr431;
|
| - case 52u: goto tr431;
|
| - case 60u: goto tr431;
|
| - case 68u: goto tr434;
|
| - case 76u: goto tr434;
|
| - case 84u: goto tr434;
|
| - case 92u: goto tr434;
|
| - case 100u: goto tr434;
|
| - case 108u: goto tr434;
|
| - case 116u: goto tr434;
|
| - case 124u: goto tr434;
|
| - case 132u: goto tr435;
|
| - case 140u: goto tr435;
|
| - case 148u: goto tr435;
|
| - case 156u: goto tr435;
|
| - case 164u: goto tr435;
|
| - case 172u: goto tr435;
|
| - case 180u: goto tr435;
|
| - case 188u: goto tr435;
|
| + case 4u: goto tr404;
|
| + case 12u: goto tr404;
|
| + case 20u: goto tr404;
|
| + case 28u: goto tr404;
|
| + case 36u: goto tr404;
|
| + case 44u: goto tr404;
|
| + case 52u: goto tr404;
|
| + case 60u: goto tr404;
|
| + case 68u: goto tr407;
|
| + case 76u: goto tr407;
|
| + case 84u: goto tr407;
|
| + case 92u: goto tr407;
|
| + case 100u: goto tr407;
|
| + case 108u: goto tr407;
|
| + case 116u: goto tr407;
|
| + case 124u: goto tr407;
|
| + case 132u: goto tr408;
|
| + case 140u: goto tr408;
|
| + case 148u: goto tr408;
|
| + case 156u: goto tr408;
|
| + case 164u: goto tr408;
|
| + case 172u: goto tr408;
|
| + case 180u: goto tr408;
|
| + case 188u: goto tr408;
|
| }
|
| if ( (*( current_position)) < 38u ) {
|
| if ( (*( current_position)) < 14u ) {
|
| @@ -7201,50 +6820,50 @@
|
| if ( 192u <= (*( current_position)) )
|
| goto tr16;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr433;
|
| + goto tr406;
|
| } else
|
| goto tr255;
|
| } else
|
| goto tr255;
|
| - goto tr432;
|
| -st205:
|
| + goto tr405;
|
| +st190:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof205;
|
| -case 205:
|
| + goto _test_eof190;
|
| +case 190:
|
| if ( 240u <= (*( current_position)) && (*( current_position)) <= 241u )
|
| goto st84;
|
| goto tr16;
|
| -st206:
|
| +st191:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof206;
|
| -case 206:
|
| + goto _test_eof191;
|
| +case 191:
|
| if ( 192u <= (*( current_position)) )
|
| - goto tr436;
|
| + goto tr409;
|
| goto tr16;
|
| -tr436:
|
| +tr409:
|
| { SET_CPU_FEATURE(CPUFeature_SSE4A); }
|
| - goto st207;
|
| -st207:
|
| + goto st192;
|
| +st192:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof207;
|
| -case 207:
|
| - goto tr437;
|
| -tr437:
|
| + goto _test_eof192;
|
| +case 192:
|
| + goto tr410;
|
| +tr410:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| - goto st208;
|
| -st208:
|
| + goto st193;
|
| +st193:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof208;
|
| -case 208:
|
| - goto tr438;
|
| -st209:
|
| + goto _test_eof193;
|
| +case 193:
|
| + goto tr411;
|
| +st194:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof209;
|
| -case 209:
|
| + goto _test_eof194;
|
| +case 194:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto tr257;
|
| case 12u: goto tr257;
|
| @@ -7304,12 +6923,12 @@
|
| } else
|
| goto tr256;
|
| goto tr258;
|
| -st210:
|
| +st195:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof210;
|
| -case 210:
|
| + goto _test_eof195;
|
| +case 195:
|
| switch( (*( current_position)) ) {
|
| - case 15u: goto st211;
|
| + case 15u: goto st196;
|
| case 102u: goto st127;
|
| case 144u: goto tr0;
|
| }
|
| @@ -7322,19 +6941,19 @@
|
| } else
|
| goto tr0;
|
| goto tr16;
|
| -st211:
|
| +st196:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof211;
|
| -case 211:
|
| + goto _test_eof196;
|
| +case 196:
|
| switch( (*( current_position)) ) {
|
| case 18u: goto st96;
|
| case 22u: goto st96;
|
| - case 43u: goto st204;
|
| + case 43u: goto st189;
|
| case 111u: goto st32;
|
| case 112u: goto st92;
|
| - case 184u: goto st212;
|
| - case 188u: goto st213;
|
| - case 189u: goto st214;
|
| + case 184u: goto st197;
|
| + case 188u: goto st198;
|
| + case 189u: goto st199;
|
| case 194u: goto st58;
|
| case 214u: goto st91;
|
| case 230u: goto st32;
|
| @@ -7360,142 +6979,142 @@
|
| } else
|
| goto st28;
|
| goto tr16;
|
| -st212:
|
| +st197:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof212;
|
| -case 212:
|
| + goto _test_eof197;
|
| +case 197:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr444;
|
| - case 5u: goto tr445;
|
| - case 12u: goto tr444;
|
| - case 13u: goto tr445;
|
| - case 20u: goto tr444;
|
| - case 21u: goto tr445;
|
| - case 28u: goto tr444;
|
| - case 29u: goto tr445;
|
| - case 36u: goto tr444;
|
| - case 37u: goto tr445;
|
| - case 44u: goto tr444;
|
| - case 45u: goto tr445;
|
| - case 52u: goto tr444;
|
| - case 53u: goto tr445;
|
| - case 60u: goto tr444;
|
| - case 61u: goto tr445;
|
| - case 68u: goto tr447;
|
| - case 76u: goto tr447;
|
| - case 84u: goto tr447;
|
| - case 92u: goto tr447;
|
| - case 100u: goto tr447;
|
| - case 108u: goto tr447;
|
| - case 116u: goto tr447;
|
| - case 124u: goto tr447;
|
| - case 132u: goto tr448;
|
| - case 140u: goto tr448;
|
| - case 148u: goto tr448;
|
| - case 156u: goto tr448;
|
| - case 164u: goto tr448;
|
| - case 172u: goto tr448;
|
| - case 180u: goto tr448;
|
| - case 188u: goto tr448;
|
| + case 4u: goto tr417;
|
| + case 5u: goto tr418;
|
| + case 12u: goto tr417;
|
| + case 13u: goto tr418;
|
| + case 20u: goto tr417;
|
| + case 21u: goto tr418;
|
| + case 28u: goto tr417;
|
| + case 29u: goto tr418;
|
| + case 36u: goto tr417;
|
| + case 37u: goto tr418;
|
| + case 44u: goto tr417;
|
| + case 45u: goto tr418;
|
| + case 52u: goto tr417;
|
| + case 53u: goto tr418;
|
| + case 60u: goto tr417;
|
| + case 61u: goto tr418;
|
| + case 68u: goto tr420;
|
| + case 76u: goto tr420;
|
| + case 84u: goto tr420;
|
| + case 92u: goto tr420;
|
| + case 100u: goto tr420;
|
| + case 108u: goto tr420;
|
| + case 116u: goto tr420;
|
| + case 124u: goto tr420;
|
| + case 132u: goto tr421;
|
| + case 140u: goto tr421;
|
| + case 148u: goto tr421;
|
| + case 156u: goto tr421;
|
| + case 164u: goto tr421;
|
| + case 172u: goto tr421;
|
| + case 180u: goto tr421;
|
| + case 188u: goto tr421;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr445;
|
| + goto tr418;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr446;
|
| - goto tr443;
|
| -st213:
|
| + goto tr419;
|
| + goto tr416;
|
| +st198:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof213;
|
| -case 213:
|
| + goto _test_eof198;
|
| +case 198:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr450;
|
| - case 5u: goto tr451;
|
| - case 12u: goto tr450;
|
| - case 13u: goto tr451;
|
| - case 20u: goto tr450;
|
| - case 21u: goto tr451;
|
| - case 28u: goto tr450;
|
| - case 29u: goto tr451;
|
| - case 36u: goto tr450;
|
| - case 37u: goto tr451;
|
| - case 44u: goto tr450;
|
| - case 45u: goto tr451;
|
| - case 52u: goto tr450;
|
| - case 53u: goto tr451;
|
| - case 60u: goto tr450;
|
| - case 61u: goto tr451;
|
| - case 68u: goto tr453;
|
| - case 76u: goto tr453;
|
| - case 84u: goto tr453;
|
| - case 92u: goto tr453;
|
| - case 100u: goto tr453;
|
| - case 108u: goto tr453;
|
| - case 116u: goto tr453;
|
| - case 124u: goto tr453;
|
| - case 132u: goto tr454;
|
| - case 140u: goto tr454;
|
| - case 148u: goto tr454;
|
| - case 156u: goto tr454;
|
| - case 164u: goto tr454;
|
| - case 172u: goto tr454;
|
| - case 180u: goto tr454;
|
| - case 188u: goto tr454;
|
| + case 4u: goto tr423;
|
| + case 5u: goto tr424;
|
| + case 12u: goto tr423;
|
| + case 13u: goto tr424;
|
| + case 20u: goto tr423;
|
| + case 21u: goto tr424;
|
| + case 28u: goto tr423;
|
| + case 29u: goto tr424;
|
| + case 36u: goto tr423;
|
| + case 37u: goto tr424;
|
| + case 44u: goto tr423;
|
| + case 45u: goto tr424;
|
| + case 52u: goto tr423;
|
| + case 53u: goto tr424;
|
| + case 60u: goto tr423;
|
| + case 61u: goto tr424;
|
| + case 68u: goto tr426;
|
| + case 76u: goto tr426;
|
| + case 84u: goto tr426;
|
| + case 92u: goto tr426;
|
| + case 100u: goto tr426;
|
| + case 108u: goto tr426;
|
| + case 116u: goto tr426;
|
| + case 124u: goto tr426;
|
| + case 132u: goto tr427;
|
| + case 140u: goto tr427;
|
| + case 148u: goto tr427;
|
| + case 156u: goto tr427;
|
| + case 164u: goto tr427;
|
| + case 172u: goto tr427;
|
| + case 180u: goto tr427;
|
| + case 188u: goto tr427;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr451;
|
| + goto tr424;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr452;
|
| - goto tr449;
|
| -st214:
|
| + goto tr425;
|
| + goto tr422;
|
| +st199:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof214;
|
| -case 214:
|
| + goto _test_eof199;
|
| +case 199:
|
| switch( (*( current_position)) ) {
|
| - case 4u: goto tr456;
|
| - case 5u: goto tr457;
|
| - case 12u: goto tr456;
|
| - case 13u: goto tr457;
|
| - case 20u: goto tr456;
|
| - case 21u: goto tr457;
|
| - case 28u: goto tr456;
|
| - case 29u: goto tr457;
|
| - case 36u: goto tr456;
|
| - case 37u: goto tr457;
|
| - case 44u: goto tr456;
|
| - case 45u: goto tr457;
|
| - case 52u: goto tr456;
|
| - case 53u: goto tr457;
|
| - case 60u: goto tr456;
|
| - case 61u: goto tr457;
|
| - case 68u: goto tr459;
|
| - case 76u: goto tr459;
|
| - case 84u: goto tr459;
|
| - case 92u: goto tr459;
|
| - case 100u: goto tr459;
|
| - case 108u: goto tr459;
|
| - case 116u: goto tr459;
|
| - case 124u: goto tr459;
|
| - case 132u: goto tr460;
|
| - case 140u: goto tr460;
|
| - case 148u: goto tr460;
|
| - case 156u: goto tr460;
|
| - case 164u: goto tr460;
|
| - case 172u: goto tr460;
|
| - case 180u: goto tr460;
|
| - case 188u: goto tr460;
|
| + case 4u: goto tr429;
|
| + case 5u: goto tr430;
|
| + case 12u: goto tr429;
|
| + case 13u: goto tr430;
|
| + case 20u: goto tr429;
|
| + case 21u: goto tr430;
|
| + case 28u: goto tr429;
|
| + case 29u: goto tr430;
|
| + case 36u: goto tr429;
|
| + case 37u: goto tr430;
|
| + case 44u: goto tr429;
|
| + case 45u: goto tr430;
|
| + case 52u: goto tr429;
|
| + case 53u: goto tr430;
|
| + case 60u: goto tr429;
|
| + case 61u: goto tr430;
|
| + case 68u: goto tr432;
|
| + case 76u: goto tr432;
|
| + case 84u: goto tr432;
|
| + case 92u: goto tr432;
|
| + case 100u: goto tr432;
|
| + case 108u: goto tr432;
|
| + case 116u: goto tr432;
|
| + case 124u: goto tr432;
|
| + case 132u: goto tr433;
|
| + case 140u: goto tr433;
|
| + case 148u: goto tr433;
|
| + case 156u: goto tr433;
|
| + case 164u: goto tr433;
|
| + case 172u: goto tr433;
|
| + case 180u: goto tr433;
|
| + case 188u: goto tr433;
|
| }
|
| if ( (*( current_position)) > 127u ) {
|
| if ( 128u <= (*( current_position)) && (*( current_position)) <= 191u )
|
| - goto tr457;
|
| + goto tr430;
|
| } else if ( (*( current_position)) >= 64u )
|
| - goto tr458;
|
| - goto tr455;
|
| -st215:
|
| + goto tr431;
|
| + goto tr428;
|
| +st200:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof215;
|
| -case 215:
|
| + goto _test_eof200;
|
| +case 200:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st39;
|
| case 5u: goto st40;
|
| @@ -7556,10 +7175,10 @@
|
| } else
|
| goto st7;
|
| goto tr0;
|
| -st216:
|
| +st201:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof216;
|
| -case 216:
|
| + goto _test_eof201;
|
| +case 201:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st131;
|
| case 5u: goto st132;
|
| @@ -7620,10 +7239,10 @@
|
| } else
|
| goto st7;
|
| goto tr0;
|
| -st217:
|
| +st202:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof217;
|
| -case 217:
|
| + goto _test_eof202;
|
| +case 202:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -7646,10 +7265,10 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st218:
|
| +st203:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof218;
|
| -case 218:
|
| + goto _test_eof203;
|
| +case 203:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -7663,8 +7282,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 208u: goto tr461;
|
| - case 224u: goto tr462;
|
| + case 208u: goto tr434;
|
| + case 224u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -7690,22 +7309,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st219:
|
| +st204:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof219;
|
| -case 219:
|
| + goto _test_eof204;
|
| +case 204:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr463;
|
| + goto tr436;
|
| goto tr11;
|
| -tr463:
|
| +tr436:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -7715,19 +7334,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st235;
|
| -st235:
|
| + goto st220;
|
| +st220:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof235;
|
| -case 235:
|
| + goto _test_eof220;
|
| +case 220:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -7759,31 +7380,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st220;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st205;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -7851,10 +7472,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st220:
|
| +st205:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof220;
|
| -case 220:
|
| + goto _test_eof205;
|
| +case 205:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -7868,8 +7489,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 209u: goto tr461;
|
| - case 225u: goto tr462;
|
| + case 209u: goto tr434;
|
| + case 225u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -7895,22 +7516,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st221:
|
| +st206:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof221;
|
| -case 221:
|
| + goto _test_eof206;
|
| +case 206:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr464;
|
| + goto tr437;
|
| goto tr11;
|
| -tr464:
|
| +tr437:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -7920,19 +7541,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st236;
|
| -st236:
|
| + goto st221;
|
| +st221:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof236;
|
| -case 236:
|
| + goto _test_eof221;
|
| +case 221:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -7964,31 +7587,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st222;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st207;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -8056,10 +7679,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st222:
|
| +st207:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof222;
|
| -case 222:
|
| + goto _test_eof207;
|
| +case 207:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -8073,8 +7696,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 210u: goto tr461;
|
| - case 226u: goto tr462;
|
| + case 210u: goto tr434;
|
| + case 226u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -8100,22 +7723,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st223:
|
| +st208:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof223;
|
| -case 223:
|
| + goto _test_eof208;
|
| +case 208:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr465;
|
| + goto tr438;
|
| goto tr11;
|
| -tr465:
|
| +tr438:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -8125,19 +7748,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st237;
|
| -st237:
|
| + goto st222;
|
| +st222:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof237;
|
| -case 237:
|
| + goto _test_eof222;
|
| +case 222:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -8169,31 +7794,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st224;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st209;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -8261,10 +7886,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st224:
|
| +st209:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof224;
|
| -case 224:
|
| + goto _test_eof209;
|
| +case 209:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -8278,8 +7903,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 211u: goto tr461;
|
| - case 227u: goto tr462;
|
| + case 211u: goto tr434;
|
| + case 227u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -8305,22 +7930,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st225:
|
| +st210:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof225;
|
| -case 225:
|
| + goto _test_eof210;
|
| +case 210:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr466;
|
| + goto tr439;
|
| goto tr11;
|
| -tr466:
|
| +tr439:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -8330,19 +7955,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st238;
|
| -st238:
|
| + goto st223;
|
| +st223:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof238;
|
| -case 238:
|
| + goto _test_eof223;
|
| +case 223:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -8374,31 +8001,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st226;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st211;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -8466,10 +8093,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st226:
|
| +st211:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof226;
|
| -case 226:
|
| + goto _test_eof211;
|
| +case 211:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -8483,8 +8110,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 212u: goto tr461;
|
| - case 228u: goto tr462;
|
| + case 212u: goto tr434;
|
| + case 228u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -8510,22 +8137,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st227:
|
| +st212:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof227;
|
| -case 227:
|
| + goto _test_eof212;
|
| +case 212:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr467;
|
| + goto tr440;
|
| goto tr11;
|
| -tr467:
|
| +tr440:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -8535,19 +8162,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st239;
|
| -st239:
|
| + goto st224;
|
| +st224:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof239;
|
| -case 239:
|
| + goto _test_eof224;
|
| +case 224:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -8579,31 +8208,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st228;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st213;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -8671,10 +8300,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st228:
|
| +st213:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof228;
|
| -case 228:
|
| + goto _test_eof213;
|
| +case 213:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -8688,8 +8317,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 213u: goto tr461;
|
| - case 229u: goto tr462;
|
| + case 213u: goto tr434;
|
| + case 229u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -8715,22 +8344,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st229:
|
| +st214:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof229;
|
| -case 229:
|
| + goto _test_eof214;
|
| +case 214:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr468;
|
| + goto tr441;
|
| goto tr11;
|
| -tr468:
|
| +tr441:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -8740,19 +8369,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st240;
|
| -st240:
|
| + goto st225;
|
| +st225:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof240;
|
| -case 240:
|
| + goto _test_eof225;
|
| +case 225:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -8784,31 +8415,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st230;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st215;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -8876,10 +8507,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st230:
|
| +st215:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof230;
|
| -case 230:
|
| + goto _test_eof215;
|
| +case 215:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -8893,8 +8524,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 214u: goto tr461;
|
| - case 230u: goto tr462;
|
| + case 214u: goto tr434;
|
| + case 230u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -8920,22 +8551,22 @@
|
| } else
|
| goto st7;
|
| goto tr16;
|
| -st231:
|
| +st216:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof231;
|
| -case 231:
|
| + goto _test_eof216;
|
| +case 216:
|
| if ( (*( current_position)) == 224u )
|
| - goto tr469;
|
| + goto tr442;
|
| goto tr11;
|
| -tr469:
|
| +tr442:
|
| {
|
| - SET_IMM_TYPE(IMM8);
|
| - SET_IMM_PTR(current_position);
|
| + SET_IMMEDIATE_FORMAT(IMM8);
|
| + SET_IMMEDIATE_POINTER(current_position);
|
| }
|
| {}
|
| {
|
| /* Mark start of this instruction as a valid target for jump. */
|
| - MarkValidJumpTarget(instruction_begin - data, valid_targets);
|
| + MarkValidJumpTarget(instruction_begin - codeblock, valid_targets);
|
|
|
| /* Call user-supplied callback. */
|
| instruction_end = current_position + 1;
|
| @@ -8945,19 +8576,21 @@
|
| instruction_info_collected, callback_data);
|
| }
|
|
|
| - /* On successful match the instruction_begin must point to the next byte
|
| - * to be able to report the new offset as the start of instruction
|
| - * causing error. */
|
| + /*
|
| + * We may set instruction_begin at the first byte of the instruction instead
|
| + * of here but in the case of incorrect one byte instructions user callback
|
| + * may be called before instruction_begin is set.
|
| + */
|
| instruction_begin = instruction_end;
|
|
|
| /* Clear variables (well, one variable currently). */
|
| instruction_info_collected = 0;
|
| }
|
| - goto st241;
|
| -st241:
|
| + goto st226;
|
| +st226:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof241;
|
| -case 241:
|
| + goto _test_eof226;
|
| +case 226:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st10;
|
| case 5u: goto st11;
|
| @@ -8989,31 +8622,31 @@
|
| case 131u: goto st139;
|
| case 141u: goto st115;
|
| case 143u: goto st141;
|
| - case 155u: goto tr413;
|
| + case 155u: goto tr386;
|
| case 168u: goto st10;
|
| case 169u: goto st11;
|
| case 196u: goto st153;
|
| - case 198u: goto st185;
|
| - case 199u: goto st186;
|
| + case 198u: goto st170;
|
| + case 199u: goto st171;
|
| case 201u: goto tr0;
|
| - case 216u: goto st187;
|
| - case 217u: goto st188;
|
| - case 218u: goto st189;
|
| - case 219u: goto st190;
|
| - case 220u: goto st191;
|
| - case 221u: goto st192;
|
| - case 222u: goto st193;
|
| - case 223u: goto st194;
|
| - case 232u: goto st195;
|
| + case 216u: goto st172;
|
| + case 217u: goto st173;
|
| + case 218u: goto st174;
|
| + case 219u: goto st175;
|
| + case 220u: goto st176;
|
| + case 221u: goto st177;
|
| + case 222u: goto st178;
|
| + case 223u: goto st179;
|
| + case 232u: goto st180;
|
| case 233u: goto st52;
|
| case 235u: goto st67;
|
| - case 240u: goto st199;
|
| - case 242u: goto st202;
|
| - case 243u: goto st210;
|
| - case 246u: goto st215;
|
| - case 247u: goto st216;
|
| - case 254u: goto st217;
|
| - case 255u: goto st232;
|
| + case 240u: goto st184;
|
| + case 242u: goto st187;
|
| + case 243u: goto st195;
|
| + case 246u: goto st200;
|
| + case 247u: goto st201;
|
| + case 254u: goto st202;
|
| + case 255u: goto st217;
|
| }
|
| if ( (*( current_position)) < 132u ) {
|
| if ( (*( current_position)) < 32u ) {
|
| @@ -9081,10 +8714,10 @@
|
| } else
|
| goto st1;
|
| goto tr16;
|
| -st232:
|
| +st217:
|
| if ( ++( current_position) == ( end_of_bundle) )
|
| - goto _test_eof232;
|
| -case 232:
|
| + goto _test_eof217;
|
| +case 217:
|
| switch( (*( current_position)) ) {
|
| case 4u: goto st2;
|
| case 5u: goto st3;
|
| @@ -9098,8 +8731,8 @@
|
| case 132u: goto st9;
|
| case 140u: goto st9;
|
| case 180u: goto st9;
|
| - case 215u: goto tr461;
|
| - case 231u: goto tr462;
|
| + case 215u: goto tr434;
|
| + case 231u: goto tr435;
|
| }
|
| if ( (*( current_position)) < 112u ) {
|
| if ( (*( current_position)) < 48u ) {
|
| @@ -9126,7 +8759,7 @@
|
| goto st7;
|
| goto tr16;
|
| }
|
| - _test_eof233: ( current_state) = 233; goto _test_eof;
|
| + _test_eof218: ( current_state) = 218; goto _test_eof;
|
| _test_eof1: ( current_state) = 1; goto _test_eof;
|
| _test_eof2: ( current_state) = 2; goto _test_eof;
|
| _test_eof3: ( current_state) = 3; goto _test_eof;
|
| @@ -9267,7 +8900,7 @@
|
| _test_eof138: ( current_state) = 138; goto _test_eof;
|
| _test_eof139: ( current_state) = 139; goto _test_eof;
|
| _test_eof140: ( current_state) = 140; goto _test_eof;
|
| - _test_eof234: ( current_state) = 234; goto _test_eof;
|
| + _test_eof219: ( current_state) = 219; goto _test_eof;
|
| _test_eof141: ( current_state) = 141; goto _test_eof;
|
| _test_eof142: ( current_state) = 142; goto _test_eof;
|
| _test_eof143: ( current_state) = 143; goto _test_eof;
|
| @@ -9332,41 +8965,26 @@
|
| _test_eof202: ( current_state) = 202; goto _test_eof;
|
| _test_eof203: ( current_state) = 203; goto _test_eof;
|
| _test_eof204: ( current_state) = 204; goto _test_eof;
|
| + _test_eof220: ( current_state) = 220; goto _test_eof;
|
| _test_eof205: ( current_state) = 205; goto _test_eof;
|
| _test_eof206: ( current_state) = 206; goto _test_eof;
|
| + _test_eof221: ( current_state) = 221; goto _test_eof;
|
| _test_eof207: ( current_state) = 207; goto _test_eof;
|
| _test_eof208: ( current_state) = 208; goto _test_eof;
|
| + _test_eof222: ( current_state) = 222; goto _test_eof;
|
| _test_eof209: ( current_state) = 209; goto _test_eof;
|
| _test_eof210: ( current_state) = 210; goto _test_eof;
|
| + _test_eof223: ( current_state) = 223; goto _test_eof;
|
| _test_eof211: ( current_state) = 211; goto _test_eof;
|
| _test_eof212: ( current_state) = 212; goto _test_eof;
|
| + _test_eof224: ( current_state) = 224; goto _test_eof;
|
| _test_eof213: ( current_state) = 213; goto _test_eof;
|
| _test_eof214: ( current_state) = 214; goto _test_eof;
|
| + _test_eof225: ( current_state) = 225; goto _test_eof;
|
| _test_eof215: ( current_state) = 215; goto _test_eof;
|
| _test_eof216: ( current_state) = 216; goto _test_eof;
|
| - _test_eof217: ( current_state) = 217; goto _test_eof;
|
| - _test_eof218: ( current_state) = 218; goto _test_eof;
|
| - _test_eof219: ( current_state) = 219; goto _test_eof;
|
| - _test_eof235: ( current_state) = 235; goto _test_eof;
|
| - _test_eof220: ( current_state) = 220; goto _test_eof;
|
| - _test_eof221: ( current_state) = 221; goto _test_eof;
|
| - _test_eof236: ( current_state) = 236; goto _test_eof;
|
| - _test_eof222: ( current_state) = 222; goto _test_eof;
|
| - _test_eof223: ( current_state) = 223; goto _test_eof;
|
| - _test_eof237: ( current_state) = 237; goto _test_eof;
|
| - _test_eof224: ( current_state) = 224; goto _test_eof;
|
| - _test_eof225: ( current_state) = 225; goto _test_eof;
|
| - _test_eof238: ( current_state) = 238; goto _test_eof;
|
| _test_eof226: ( current_state) = 226; goto _test_eof;
|
| - _test_eof227: ( current_state) = 227; goto _test_eof;
|
| - _test_eof239: ( current_state) = 239; goto _test_eof;
|
| - _test_eof228: ( current_state) = 228; goto _test_eof;
|
| - _test_eof229: ( current_state) = 229; goto _test_eof;
|
| - _test_eof240: ( current_state) = 240; goto _test_eof;
|
| - _test_eof230: ( current_state) = 230; goto _test_eof;
|
| - _test_eof231: ( current_state) = 231; goto _test_eof;
|
| - _test_eof241: ( current_state) = 241; goto _test_eof;
|
| - _test_eof232: ( current_state) = 232; goto _test_eof;
|
| + _test_eof217: ( current_state) = 217; goto _test_eof;
|
|
|
| _test_eof: {}
|
| if ( ( current_position) == ( end_of_bundle) )
|
| @@ -9589,21 +9207,6 @@
|
| case 215:
|
| case 216:
|
| case 217:
|
| - case 218:
|
| - case 219:
|
| - case 220:
|
| - case 221:
|
| - case 222:
|
| - case 223:
|
| - case 224:
|
| - case 225:
|
| - case 226:
|
| - case 227:
|
| - case 228:
|
| - case 229:
|
| - case 230:
|
| - case 231:
|
| - case 232:
|
| {
|
| result &= user_callback(instruction_begin, current_position,
|
| UNRECOGNIZED_INSTRUCTION, callback_data);
|
| @@ -9630,8 +9233,12 @@
|
| * Check the direct jumps. All the targets from jump_dests must be in
|
| * valid_targets.
|
| */
|
| - result &= ProcessInvalidJumpTargets(data, size, valid_targets, jump_dests,
|
| - user_callback, callback_data);
|
| + result &= ProcessInvalidJumpTargets(codeblock,
|
| + size,
|
| + valid_targets,
|
| + jump_dests,
|
| + user_callback,
|
| + callback_data);
|
|
|
| /* We only use malloc for a large code sequences */
|
| if (jump_dests != &jump_dests_small) free(jump_dests);
|
|
|