Index: src/trusted/validator_x86/testdata/64/nops.tf |
diff --git a/src/trusted/validator_x86/testdata/64/nops.tf b/src/trusted/validator_x86/testdata/64/nops.tf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dd1ed8be16c4d88dbb98bdca7f4ca3e6bd517439 |
--- /dev/null |
+++ b/src/trusted/validator_x86/testdata/64/nops.tf |
@@ -0,0 +1,78 @@ |
+BITS: 64 |
+OUTCOME: invalid |
+ |
+# Note: sequences of ordinary nops (90 90 90 ...) are added |
+# for bundle alignemnt. |
+ |
+# Recommended nops |
+asm: nop |
+hex: 90 |
+ |
+asm: xchg %ax,%ax |
+hex: 66 90 |
+ |
+asm: nopl (%rax) |
+hex: 0F 1F 00 |
+ |
+hex: 0F 1F 40 00 |
+ |
+hex: 0F 1F 44 00 00 |
+ |
+hex: 66 0F 1F 44 00 00 |
+ |
+hex: 0F 1F 80 00 00 00 00 |
+ |
+asm: nop; nop; nop; nop |
+hex: 90 90 90 90 |
+ |
+hex: 0F 1F 84 00 00 00 00 00 |
+ |
+hex: 66 0F 1F 84 00 00 00 00 00 |
+ |
+# Large nops |
+hex: 66 2E 0F 1F 84 00 00 00 00 00 |
+ |
+asm: nop; nop; nop; nop; nop |
+hex: 90 90 90 90 90 |
+ |
+hex: 66 66 2E 0F 1F 84 00 00 00 00 00 |
+ |
+hex: 66 66 66 2E 0F 1F 84 00 00 00 00 00 |
+ |
+asm: nop; nop; nop; nop; nop; nop; nop; nop; nop |
+hex: 90 90 90 90 90 90 90 90 90 |
+ |
+hex: 66 66 66 66 2E 0F 1F 84 00 00 00 00 00 |
+ |
+hex: 66 66 66 66 66 2E 0F 1F 84 00 00 00 00 00 |
+ |
+hex: 66 66 66 66 66 66 2E 0F 1F 84 00 00 00 00 00 |
+nc_out: [at +5] Bad basic block alignment. |
+ |
+ |
+# Illegal nops |
+hex: 66 66 90 |
+nc_out: ERROR: More than one (non-REX) prefix byte specified |
+nc_out: ERROR: Duplicating a prefix byte is not allowed by Native Client |
+ |
+hex: 66 66 66 90 |
+nc_out: ERROR: More than one (non-REX) prefix byte specified |
+nc_out: ERROR: Duplicating a prefix byte is not allowed by Native Client |
+ |
+hex: 3E 0F 1F 84 00 00 00 00 00 |
+nc_out: ERROR: Uses a segment prefix byte not allowed by Native Client |
+ |
+asm: nop; nop; nop; nop; nop; nop |
+hex: 90 90 90 90 90 90 |
+ |
+hex: 66 3E 0F 1F 84 00 00 00 00 00 |
+nc_out: ERROR: More than one (non-REX) prefix byte specified |
+nc_out: ERROR: Uses a segment prefix byte not allowed by Native Client |
+nc_out: ERROR: Use of DATA16 (66) prefix for instruction not allowed by Native Client |
+ |
+hex: 66 66 0F 1F 84 00 00 00 00 00 |
+nc_out: ERROR: More than one (non-REX) prefix byte specified |
+nc_out: ERROR: Use of DATA16 (66) prefix for instruction not allowed by Native Client |
+nc_out: ERROR: Duplicating a prefix byte is not allowed by Native Client |
+ |
+ |