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

Unified Diff: src/trusted/validator_ragel/gen/validator_x86_64.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:
Download patch
Index: src/trusted/validator_ragel/gen/validator_x86_64.c
===================================================================
--- src/trusted/validator_ragel/gen/validator_x86_64.c (revision 10976)
+++ src/trusted/validator_ragel/gen/validator_x86_64.c (working copy)
@@ -19,11 +19,15 @@
#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"
+/*
+ * The "write data" statement causes Ragel to emit the constant static data
+ * needed by the ragel machine.
+ */
static const int x86_64_validator_start = 798;
static const int x86_64_validator_first_final = 798;
@@ -554,7 +558,7 @@
/*
* 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;
@@ -590,11 +594,19 @@
uint8_t vex_prefix2 = VEX_R | VEX_X | VEX_B;
uint8_t vex_prefix3 = 0x00;
+ /*
+ * The "write init" statement causes Ragel to emit initialization code.
+ * This should be executed once before the ragel machine is started.
+ */
{
( current_state) = x86_64_validator_start;
}
+ /*
+ * The "write exec" statement causes Ragel to emit the ragel machine's
+ * execution code.
+ */
{
if ( ( current_position) == ( end_of_bundle) )
@@ -7921,8 +7933,10 @@
goto st798;
tr645:
{ if (restricted_register == REG_RBP)
+ /* RESTRICTED_REGISTER_USED is informational flag used in tests. */
instruction_info_collected |= RESTRICTED_REGISTER_USED;
else
+ /* UNRESTRICTED_RSP_PROCESSED is error flag used in production. */
instruction_info_collected |= UNRESTRICTED_RBP_PROCESSED;
restricted_register = NO_REG;
UnmarkValidJumpTarget((instruction_begin - data), valid_targets);
@@ -20279,9 +20293,9 @@
if ( ++( current_position) == ( end_of_bundle) )
goto _test_eof225;
case 225:
- if ( 128u <= (*( current_position)) )
- goto tr603;
- goto tr52;
+ if ( (*( current_position)) <= 127u )
+ goto tr52;
+ goto tr603;
st226:
if ( ++( current_position) == ( end_of_bundle) )
goto _test_eof226;
@@ -23185,8 +23199,10 @@
goto st808;
tr956:
{ if (restricted_register == REG_RBP)
+ /* RESTRICTED_REGISTER_USED is informational flag used in tests. */
instruction_info_collected |= RESTRICTED_REGISTER_USED;
else
+ /* UNRESTRICTED_RSP_PROCESSED is error flag used in production. */
instruction_info_collected |= UNRESTRICTED_RBP_PROCESSED;
restricted_register = NO_REG;
UnmarkValidJumpTarget((instruction_begin - data), valid_targets);
@@ -28526,8 +28542,10 @@
goto st817;
tr1487:
{ if (restricted_register == REG_RBP)
+ /* RESTRICTED_REGISTER_USED is informational flag used in tests. */
instruction_info_collected |= RESTRICTED_REGISTER_USED;
else
+ /* UNRESTRICTED_RSP_PROCESSED is error flag used in production. */
instruction_info_collected |= UNRESTRICTED_RBP_PROCESSED;
restricted_register = NO_REG;
UnmarkValidJumpTarget((instruction_begin - data), valid_targets);
@@ -29624,8 +29642,10 @@
goto st822;
tr1522:
{ if (restricted_register == REG_RBP)
+ /* RESTRICTED_REGISTER_USED is informational flag used in tests. */
instruction_info_collected |= RESTRICTED_REGISTER_USED;
else
+ /* UNRESTRICTED_RSP_PROCESSED is error flag used in production. */
instruction_info_collected |= UNRESTRICTED_RBP_PROCESSED;
restricted_register = NO_REG;
UnmarkValidJumpTarget((instruction_begin - data), valid_targets);
@@ -29893,8 +29913,10 @@
goto st823;
tr1528:
{ if (restricted_register == REG_RBP)
+ /* RESTRICTED_REGISTER_USED is informational flag used in tests. */
instruction_info_collected |= RESTRICTED_REGISTER_USED;
else
+ /* UNRESTRICTED_RSP_PROCESSED is error flag used in production. */
instruction_info_collected |= UNRESTRICTED_RBP_PROCESSED;
restricted_register = NO_REG;
UnmarkValidJumpTarget((instruction_begin - data), valid_targets);

Powered by Google App Engine
This is Rietveld 408576698