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; |
+ }; |
+%%} |