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

Unified Diff: src/trusted/validator_ragel/gen/validator_x86_32.c

Issue 11000033: Move validator_x86_XX.rl out of unreviewed. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/trusted/validator_ragel/gen/decoder_x86_64.c ('k') | src/trusted/validator_ragel/gen_dfa.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « src/trusted/validator_ragel/gen/decoder_x86_64.c ('k') | src/trusted/validator_ragel/gen_dfa.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698