| Index: src/trusted/validator_ragel/unreviewed/parse_instruction.rl
|
| ===================================================================
|
| --- src/trusted/validator_ragel/unreviewed/parse_instruction.rl (revision 9857)
|
| +++ src/trusted/validator_ragel/unreviewed/parse_instruction.rl (working copy)
|
| @@ -885,3 +885,28 @@
|
| rel16 = any{2} @~rel16_operand_begin @rel16_operand_end;
|
| rel32 = any{4} @~rel32_operand_begin @rel32_operand_end;
|
| }%%
|
| +
|
| +%%{
|
| + machine decoder;
|
| +
|
| + decoder = (one_instruction
|
| + @{
|
| + process_instruction(instruction_start, current_position+1, &instruction,
|
| + userdata);
|
| + instruction_start = current_position + 1;
|
| + SET_DISP_TYPE(DISPNONE);
|
| + SET_IMM_TYPE(IMMNONE);
|
| + SET_IMM2_TYPE(IMMNONE);
|
| + SET_DATA16_PREFIX(FALSE);
|
| + SET_LOCK_PREFIX(FALSE);
|
| + SET_REPNZ_PREFIX(FALSE);
|
| + SET_REPZ_PREFIX(FALSE);
|
| + SET_BRANCH_NOT_TAKEN(FALSE);
|
| + SET_BRANCH_TAKEN(FALSE);
|
| + SET_VEX_PREFIX3(0x00);
|
| + })*
|
| + $!{ process_error(current_position, userdata);
|
| + result = FALSE;
|
| + goto error_detected;
|
| + };
|
| +%%}
|
|
|