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

Unified Diff: src/trusted/validator_ragel/parse_instruction.rl

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
Index: src/trusted/validator_ragel/parse_instruction.rl
===================================================================
--- src/trusted/validator_ragel/parse_instruction.rl (revision 11037)
+++ src/trusted/validator_ragel/parse_instruction.rl (working copy)
@@ -250,7 +250,7 @@
machine modrm_actions_ia32;
action modrm_only_base {
- SET_DISP_TYPE(DISPNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
SET_MODRM_BASE(RMFromModRM(*current_position));
SET_MODRM_INDEX(NO_REG);
SET_MODRM_SCALE(0);
@@ -267,13 +267,13 @@
SET_MODRM_SCALE(0);
}
action modrm_pure_index {
- SET_DISP_TYPE(DISPNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
SET_MODRM_BASE(NO_REG);
SET_MODRM_INDEX(index_registers[IndexFromSIB(*current_position)]);
SET_MODRM_SCALE(ScaleFromSIB(*current_position));
}
action modrm_parse_sib {
- SET_DISP_TYPE(DISPNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
SET_MODRM_BASE(BaseFromSIB(*current_position));
SET_MODRM_INDEX(index_registers[IndexFromSIB(*current_position)]);
SET_MODRM_SCALE(ScaleFromSIB(*current_position));
@@ -284,7 +284,7 @@
machine modrm_actions_amd64;
action modrm_only_base {
- SET_DISP_TYPE(DISPNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
SET_MODRM_BASE(BaseFromSIB(*current_position) |
BaseExtentionFromREX(GET_REX_PREFIX()) |
BaseExtentionFromVEX(GET_VEX_PREFIX2()));
@@ -306,7 +306,7 @@
SET_MODRM_SCALE(0);
}
action modrm_pure_index {
- SET_DISP_TYPE(DISPNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
SET_MODRM_BASE(NO_REG);
SET_MODRM_INDEX(index_registers[IndexFromSIB(*current_position) |
IndexExtentionFromREX(GET_REX_PREFIX()) |
@@ -314,7 +314,7 @@
SET_MODRM_SCALE(ScaleFromSIB(*current_position));
}
action modrm_parse_sib {
- SET_DISP_TYPE(DISPNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
SET_MODRM_BASE(BaseFromSIB(*current_position) |
BaseExtentionFromREX(GET_REX_PREFIX()) |
BaseExtentionFromVEX(GET_VEX_PREFIX2()));
@@ -656,16 +656,16 @@
machine displacement_fields_parsing;
action disp8_operand {
- SET_DISP_TYPE(DISP8);
- SET_DISP_PTR(current_position);
+ SET_DISPLACEMENT_FORMAT(DISP8);
+ SET_DISPLACEMENT_POINTER(current_position);
}
action disp32_operand {
- SET_DISP_TYPE(DISP32);
- SET_DISP_PTR(current_position - 3);
+ SET_DISPLACEMENT_FORMAT(DISP32);
+ SET_DISPLACEMENT_POINTER(current_position - 3);
}
action disp64_operand {
- SET_DISP_TYPE(DISP64);
- SET_DISP_PTR(current_position - 7);
+ SET_DISPLACEMENT_FORMAT(DISP64);
+ SET_DISPLACEMENT_POINTER(current_position - 7);
}
# This action is used to mark transitions corresponding to immediates,
@@ -683,40 +683,40 @@
machine immediate_fields_parsing;
action imm2_operand {
- SET_IMM_TYPE(IMM2);
- SET_IMM_PTR(current_position);
+ SET_IMMEDIATE_FORMAT(IMM2);
+ SET_IMMEDIATE_POINTER(current_position);
}
action imm8_operand {
- SET_IMM_TYPE(IMM8);
- SET_IMM_PTR(current_position);
+ SET_IMMEDIATE_FORMAT(IMM8);
+ SET_IMMEDIATE_POINTER(current_position);
}
action imm8_second_operand {
- SET_IMM2_TYPE(IMM8);
- SET_IMM2_PTR(current_position);
+ SET_SECOND_IMMEDIATE_FORMAT(IMM8);
+ SET_SECOND_IMMEDIATE_POINTER(current_position);
}
action imm16_operand {
- SET_IMM_TYPE(IMM16);
- SET_IMM_PTR(current_position - 1);
+ SET_IMMEDIATE_FORMAT(IMM16);
+ SET_IMMEDIATE_POINTER(current_position - 1);
}
action imm16_second_operand {
- SET_IMM2_TYPE(IMM16);
- SET_IMM2_PTR(current_position - 1);
+ SET_SECOND_IMMEDIATE_FORMAT(IMM16);
+ SET_SECOND_IMMEDIATE_POINTER(current_position - 1);
}
action imm32_operand {
- SET_IMM_TYPE(IMM32);
- SET_IMM_PTR(current_position - 3);
+ SET_IMMEDIATE_FORMAT(IMM32);
+ SET_IMMEDIATE_POINTER(current_position - 3);
}
action imm32_second_operand {
- SET_IMM2_TYPE(IMM32);
- SET_IMM2_PTR(current_position - 3);
+ SET_SECOND_IMMEDIATE_FORMAT(IMM32);
+ SET_SECOND_IMMEDIATE_POINTER(current_position - 3);
}
action imm64_operand {
- SET_IMM_TYPE(IMM64);
- SET_IMM_PTR(current_position - 7);
+ SET_IMMEDIATE_FORMAT(IMM64);
+ SET_IMMEDIATE_POINTER(current_position - 7);
}
action imm64_second_operand {
- SET_IMM2_TYPE(IMM64);
- SET_IMM2_PTR(current_position - 7);
+ SET_SECOND_IMMEDIATE_FORMAT(IMM64);
+ SET_SECOND_IMMEDIATE_POINTER(current_position - 7);
}
imm8 = any @imm8_operand $any_byte;
@@ -734,22 +734,22 @@
SET_MODRM_BASE(REG_RIP);
SET_MODRM_INDEX(NO_REG);
SET_MODRM_SCALE(0);
- SET_DISP_TYPE(DISP8);
- SET_DISP_PTR(current_position);
+ SET_DISPLACEMENT_FORMAT(DISP8);
+ SET_DISPLACEMENT_POINTER(current_position);
}
action rel16_operand {
SET_MODRM_BASE(REG_RIP);
SET_MODRM_INDEX(NO_REG);
SET_MODRM_SCALE(0);
- SET_DISP_TYPE(DISP16);
- SET_DISP_PTR(current_position - 1);
+ SET_DISPLACEMENT_FORMAT(DISP16);
+ SET_DISPLACEMENT_POINTER(current_position - 1);
}
action rel32_operand {
SET_MODRM_BASE(REG_RIP);
SET_MODRM_INDEX(NO_REG);
SET_MODRM_SCALE(0);
- SET_DISP_TYPE(DISP32);
- SET_DISP_PTR(current_position - 3);
+ SET_DISPLACEMENT_FORMAT(DISP32);
+ SET_DISPLACEMENT_POINTER(current_position - 3);
}
}%%
@@ -758,7 +758,7 @@
# rel8 actions are used in relative jumps with 8-bit offset.
action rel8_operand {
- Rel8Operand(current_position + 1, data, jump_dests, size,
+ Rel8Operand(current_position + 1, codeblock, jump_dests, size,
&instruction_info_collected);
}
@@ -772,9 +772,18 @@
# rel32 actions are used in relative calls and jumps with 32-bit offset.
action rel32_operand {
- Rel32Operand(current_position + 1, data, jump_dests, size,
+ Rel32Operand(current_position + 1, codeblock, jump_dests, size,
&instruction_info_collected);
}
+
+ # Action which marks last byte as not immediate. Most 3DNow! instructions,
+ # some AVX and XOP instructions have this property.
+ #
+ # This action is referenced by decode_x86_32 ragel machine in [autogenerated]
+ # "validator_x86_32_instruction.rl" file.
+ action last_byte_is_not_immediate {
+ instruction_info_collected |= LAST_BYTE_IS_NOT_IMMEDIATE;
+ }
}%%
%%{
« no previous file with comments | « src/trusted/validator_ragel/gen_dfa_test.py ('k') | src/trusted/validator_ragel/unreviewed/decoder_internal.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698