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

Unified Diff: src/trusted/validator_ragel/validator_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 8 years, 3 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/validator_x86_64.rl
===================================================================
--- src/trusted/validator_ragel/validator_x86_64.rl (revision 9857)
+++ src/trusted/validator_ragel/validator_x86_64.rl (working copy)
@@ -11,7 +11,7 @@
#include <stdlib.h>
#include <string.h>
-#include "native_client/src/trusted/validator_ragel/unreviewed/validator_internal.h"
+#include "native_client/src/trusted/validator_ragel/validator_internal.h"
%%{
machine x86_64_validator;
@@ -124,7 +124,7 @@
else
instruction_info_collected |= UNRESTRICTED_RBP_PROCESSED;
restricted_register = NO_REG;
- BitmapClearBit(valid_targets, (instruction_start - data));
+ MakeJumpTargetInvalid((instruction_start - data), valid_targets);
};
# Special %rbp modifications without required sandboxing
@@ -147,7 +147,7 @@
else
instruction_info_collected |= UNRESTRICTED_RSP_PROCESSED;
restricted_register = NO_REG;
- BitmapClearBit(valid_targets, (instruction_start - data));
+ MakeJumpTargetInvalid((instruction_start - data), valid_targets);
};
# naclcall or nacljmp. Note: first "and $~0x1f, %eXX" is a normal instruction
@@ -167,8 +167,8 @@
RMFromModRM(instruction_start[5]) ||
RMFromModRM(instruction_start[1]) != RMFromModRM(*current_position))
instruction_info_collected |= UNRECOGNIZED_INSTRUCTION;
- BitmapClearBit(valid_targets, (instruction_start - data) + 3);
- BitmapClearBit(valid_targets, (instruction_start - data) + 6);
+ MakeJumpTargetInvalid((instruction_start - data) + 3, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 6, valid_targets);
restricted_register = NO_REG;
} |
@@ -186,8 +186,8 @@
RegFromModRM(instruction_start[5]) ||
RMFromModRM(instruction_start[1]) != RMFromModRM(*current_position))
instruction_info_collected |= UNRECOGNIZED_INSTRUCTION;
- BitmapClearBit(valid_targets, (instruction_start - data) + 3);
- BitmapClearBit(valid_targets, (instruction_start - data) + 6);
+ MakeJumpTargetInvalid((instruction_start - data) + 3, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 6, valid_targets);
restricted_register = NO_REG;
} |
@@ -214,8 +214,8 @@
RMFromModRM(instruction_start[6]) ||
RMFromModRM(instruction_start[2]) != RMFromModRM(*current_position))
instruction_info_collected |= UNRECOGNIZED_INSTRUCTION;
- BitmapClearBit(valid_targets, (instruction_start - data) + 4);
- BitmapClearBit(valid_targets, (instruction_start - data) + 7);
+ MakeJumpTargetInvalid((instruction_start - data) + 4, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 7, valid_targets);
restricted_register = NO_REG;
} |
@@ -242,8 +242,8 @@
RegFromModRM(instruction_start[6]) ||
RMFromModRM(instruction_start[2]) != RMFromModRM(*current_position))
instruction_info_collected |= UNRECOGNIZED_INSTRUCTION;
- BitmapClearBit(valid_targets, (instruction_start - data) + 4);
- BitmapClearBit(valid_targets, (instruction_start - data) + 7);
+ MakeJumpTargetInvalid((instruction_start - data) + 4, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 7, valid_targets);
restricted_register = NO_REG;
};
@@ -295,8 +295,8 @@
string_instruction_rsi_no_rdi
@{
Brad Chen 2012/09/29 00:06:00 Please comment every action. # This action redefin
khim 2012/10/03 22:30:10 Done. Functions make absolutely no sense here: we
instruction_start -= 6;
- BitmapClearBit(valid_targets, (instruction_start - data) + 2);
- BitmapClearBit(valid_targets, (instruction_start - data) + 6);
+ MakeJumpTargetInvalid((instruction_start - data) + 2, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 6, valid_targets);
restricted_register = NO_REG;
} |
@@ -305,8 +305,8 @@
string_instruction_rsi_no_rdi
@{
instruction_start -= 7;
- BitmapClearBit(valid_targets, (instruction_start - data) + 3);
- BitmapClearBit(valid_targets, (instruction_start - data) + 7);
+ MakeJumpTargetInvalid((instruction_start - data) + 3, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 7, valid_targets);
restricted_register = NO_REG;
};
@@ -316,8 +316,8 @@
(string_instruction_rdi_no_rsi | mmx_sse_rdi_instruction)
@{
instruction_start -= 6;
- BitmapClearBit(valid_targets, (instruction_start - data) + 2);
- BitmapClearBit(valid_targets, (instruction_start - data) + 6);
+ MakeJumpTargetInvalid((instruction_start - data) + 2, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 6, valid_targets);
restricted_register = NO_REG;
} |
@@ -326,8 +326,8 @@
(string_instruction_rdi_no_rsi | mmx_sse_rdi_instruction)
@{
instruction_start -= 7;
- BitmapClearBit(valid_targets, (instruction_start - data) + 3);
- BitmapClearBit(valid_targets, (instruction_start - data) + 7);
+ MakeJumpTargetInvalid((instruction_start - data) + 3, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 7, valid_targets);
restricted_register = NO_REG;
};
@@ -341,10 +341,10 @@
string_instruction_rsi_rdi
@{
instruction_start -= 12;
- BitmapClearBit(valid_targets, (instruction_start - data) + 2);
- BitmapClearBit(valid_targets, (instruction_start - data) + 6);
- BitmapClearBit(valid_targets, (instruction_start - data) + 8);
- BitmapClearBit(valid_targets, (instruction_start - data) + 12);
+ MakeJumpTargetInvalid((instruction_start - data) + 2, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 6, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 8, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 12, valid_targets);
restricted_register = NO_REG;
} |
@@ -355,10 +355,10 @@
string_instruction_rsi_rdi
@{
instruction_start -= 13;
- BitmapClearBit(valid_targets, (instruction_start - data) + 2);
- BitmapClearBit(valid_targets, (instruction_start - data) + 6);
- BitmapClearBit(valid_targets, (instruction_start - data) + 9);
- BitmapClearBit(valid_targets, (instruction_start - data) + 13);
+ MakeJumpTargetInvalid((instruction_start - data) + 2, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 6, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 9, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 13, valid_targets);
restricted_register = NO_REG;
} |
@@ -369,10 +369,10 @@
string_instruction_rsi_rdi
@{
instruction_start -= 13;
- BitmapClearBit(valid_targets, (instruction_start - data) + 3);
- BitmapClearBit(valid_targets, (instruction_start - data) + 7);
- BitmapClearBit(valid_targets, (instruction_start - data) + 9);
- BitmapClearBit(valid_targets, (instruction_start - data) + 13);
+ MakeJumpTargetInvalid((instruction_start - data) + 3, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 7, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 9, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 13, valid_targets);
restricted_register = NO_REG;
} |
@@ -383,10 +383,10 @@
string_instruction_rsi_rdi
@{
instruction_start -= 14;
- BitmapClearBit(valid_targets, (instruction_start - data) + 3);
- BitmapClearBit(valid_targets, (instruction_start - data) + 7);
- BitmapClearBit(valid_targets, (instruction_start - data) + 10);
- BitmapClearBit(valid_targets, (instruction_start - data) + 14);
+ MakeJumpTargetInvalid((instruction_start - data) + 3, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 7, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 10, valid_targets);
+ MakeJumpTargetInvalid((instruction_start - data) + 14, valid_targets);
restricted_register = NO_REG;
};
@@ -425,7 +425,7 @@
main := ((call_alignment | normal_instruction | special_instruction)
>{
- BitmapSetBit(valid_targets, current_position - data);
+ MakeJumpTargetValid(current_position - data, valid_targets);
}
@{
if ((instruction_info_collected &

Powered by Google App Engine
This is Rietveld 408576698