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

Unified Diff: src/trusted/validator_ragel/decoder_x86_64.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
« no previous file with comments | « src/trusted/validator_ragel/decoder_x86_32.rl ('k') | src/trusted/validator_ragel/decoding.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/trusted/validator_ragel/decoder_x86_64.rl
===================================================================
--- src/trusted/validator_ragel/decoder_x86_64.rl (revision 11020)
+++ src/trusted/validator_ragel/decoder_x86_64.rl (working copy)
@@ -21,15 +21,12 @@
#include "native_client/src/include/elf32.h"
#include "native_client/src/shared/utils/types.h"
-#include "native_client/src/trusted/validator_ragel/unreviewed/decoder_internal.h"
+#include "native_client/src/trusted/validator_ragel/decoder_internal.h"
-/*
- * These prefixes are only useful in AMD64 mode, but they will "cleaned up" by
- * decoder's cleanup procedure in IA32 mode anyway. That's why we define them
- * twice: "real" version here and "do-nothing" in decoder_x86_32.rl.
- */
-#define SET_REX_PREFIX(P) instruction.prefix.rex = (P)
-#define SET_VEX_PREFIX2(P) vex_prefix2 = (P)
+#define GET_REX_PREFIX() instruction.prefix.rex
+#define SET_REX_PREFIX(PREFIX_BYTE) instruction.prefix.rex = (PREFIX_BYTE)
+#define GET_VEX_PREFIX2() vex_prefix2
+#define SET_VEX_PREFIX2(PREFIX_BYTE) vex_prefix2 = (PREFIX_BYTE)
#define CLEAR_SPURIOUS_REX_B() \
instruction.prefix.rex_b_spurious = FALSE
#define SET_SPURIOUS_REX_B() \
@@ -96,9 +93,9 @@
process_instruction(instruction_begin, current_position + 1, &instruction,
userdata);
instruction_begin = current_position + 1;
- SET_DISP_TYPE(DISPNONE);
- SET_IMM_TYPE(IMMNONE);
- SET_IMM2_TYPE(IMMNONE);
+ SET_DISPLACEMENT_FORMAT(DISPNONE);
+ SET_IMMEDIATE_FORMAT(IMMNONE);
+ SET_SECOND_IMMEDIATE_FORMAT(IMMNONE);
SET_REX_PREFIX(FALSE);
SET_DATA16_PREFIX(FALSE);
SET_LOCK_PREFIX(FALSE);
@@ -129,6 +126,10 @@
$!report_fatal_error;
}%%
+/*
+ * The "write data" statement causes Ragel to emit the constant static data
+ * needed by the ragel machine.
+ */
%% write data;
int DecodeChunkAMD64(const uint8_t *data, size_t size,
@@ -153,7 +154,15 @@
memset(&instruction, 0, sizeof instruction);
+ /*
+ * The "write init" statement causes Ragel to emit initialization code.
+ * This should be executed once before the ragel machine is started.
+ */
%% write init;
+ /*
+ * The "write exec" statement causes Ragel to emit the ragel machine's
+ * execution code.
+ */
%% write exec;
error_detected:
« no previous file with comments | « src/trusted/validator_ragel/decoder_x86_32.rl ('k') | src/trusted/validator_ragel/decoding.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698