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

Unified Diff: src/trusted/validator_x86/testdata/64/rep_tests.tf

Issue 10908137: (abandoned) Validator tests: convert hexes to TFs and run on bots (for prod. validator only) (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: restore 'read overflow' and 'SegmentationError' 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_x86/testdata/64/rep_tests.tf
diff --git a/src/trusted/validator_x86/testdata/64/rep_tests.tf b/src/trusted/validator_x86/testdata/64/rep_tests.tf
new file mode 100644
index 0000000000000000000000000000000000000000..1e167919e2fc26f1d8173662ece0c27ed912d35d
--- /dev/null
+++ b/src/trusted/validator_x86/testdata/64/rep_tests.tf
@@ -0,0 +1,81 @@
+BITS: 64
+OUTCOME: invalid
+
+# This file does some simple tests to see if we recognize when the REP/REPNE (F2 F3)
+# prefix bytes are allowed.
+
+# The following is an example of an instruction without the REP/REPNE prefix.
+# add %al, %al
+asm: add %al,%al
+hex: 00 c0
+
+
+# The following is the same instruction with an illegal REP prefix.
+hex: f3 00 c0
+nc_out: ERROR: Use of REP (F3) prefix for instruction not allowed by Native Client
+
+
+# The following is the same instruction with an illegal REPNE prefix.
+hex: f2 00 c0
+nc_out: ERROR: Use of REPNE (F2) prefix for instruction not allowed by Native Client
+
+
+# The following is an example of a multibyte instruction explicitly requiring
+# a REP prefix.
+# movss %xmm0, [%rdx]
+asm: movss (%rdx),%xmm0
+hex: f3 0f 10 02
+nc_out: ERROR: Invalid base register in memory offset
+
+
+# The following is an example of a multibyte instruction explicitly requiring
+# a REPNE prefix.
+# movsd [%rsp+0x10], %xmm2
+asm: movsd %xmm2,0x10(%rsp)
+hex: f2 0f 11 54 24 10
+
+
+# The following is an example of an instruction that can get a REP prefix.
+# insb
+asm: insb (%dx),%es:(%rdi)
+hex: 6c
+nc_out: ERROR: This instruction has been marked illegal by Native Client
+nc_out: ERROR: Segment memory reference not allowed
+
+
+# The same instrucition with a REP prefix.
+asm: rep insb (%dx),%es:(%rdi)
+hex: f3 6c
+nc_out: ERROR: This instruction has been marked illegal by Native Client
+nc_out: ERROR: Segment memory reference not allowed
+
+
+# The same instruction with a REPNE prefix.
+asm: repnz insb (%dx),%es:(%rdi)
+hex: f2 6c
+nc_out: ERROR: This instruction has been marked illegal by Native Client
+nc_out: ERROR: Use of REPNE (F2) prefix for instruction not allowed by Native Client
+nc_out: ERROR: Segment memory reference not allowed
+
+
+# The following is an example of an instruction that can get a REP/REPNE prefix.
+# cmpsb
+asm: cmpsb %es:(%rdi),%ds:(%rsi)
+hex: a6
+nc_out: ERROR: Segment memory reference not allowed
+nc_out: ERROR: Segment memory reference not allowed
+
+
+# The same instruction with a REP prefix.
+asm: repz cmpsb %es:(%rdi),%ds:(%rsi)
+hex: f3 a6
+nc_out: ERROR: Segment memory reference not allowed
+nc_out: ERROR: Segment memory reference not allowed
+
+
+# The same instruction with a REPNE prefix
+asm: repnz cmpsb %es:(%rdi),%ds:(%rsi)
+hex: f2 a6
+nc_out: ERROR: Segment memory reference not allowed
+nc_out: ERROR: Segment memory reference not allowed
+

Powered by Google App Engine
This is Rietveld 408576698