Index: src/trusted/validator_x86/testdata/64/movs_test.tf |
diff --git a/src/trusted/validator_x86/testdata/64/movs_test.hex b/src/trusted/validator_x86/testdata/64/movs_test.tf |
similarity index 59% |
copy from src/trusted/validator_x86/testdata/64/movs_test.hex |
copy to src/trusted/validator_x86/testdata/64/movs_test.tf |
index 38751850b7f3703b478c3beb9d6d706c2a6e2369..e0b63578c8002ab551fd6bf17f8215f2712b4a10 100644 |
--- a/src/trusted/validator_x86/testdata/64/movs_test.hex |
+++ b/src/trusted/validator_x86/testdata/64/movs_test.tf |
@@ -1,3 +1,6 @@ |
+BITS: 64 |
+OUTCOME: invalid |
+ |
# Test that we correctly check both implicit arguments to movsb |
# Valid case, within bundle |
@@ -6,16 +9,32 @@ |
# 0000000000000006: 89 ff mov %edi, %edi |
# 0000000000000008: 49 8d 3c 3f lea %rdi, [%r15+%rdi*1] |
# 000000000000000c: a4 movsb |
-89 f6 |
-49 8d 34 37 |
-89 ff |
-49 8d 3c 3f |
-a4 |
+asm: mov %esi,%esi |
+hex: 89 f6 |
+ |
+asm: lea (%r15,%rsi,1),%rsi |
+hex: 49 8d 34 37 |
+ |
+asm: mov %edi,%edi |
+hex: 89 ff |
+ |
+asm: lea (%r15,%rdi,1),%rdi |
+hex: 49 8d 3c 3f |
+ |
+asm: movsb %ds:(%rsi),%es:(%rdi) |
+hex: a4 |
+ |
# Nop spacer. |
-90 90 90 90 90 90 90 90 |
-90 90 90 90 90 90 90 90 |
-90 |
+asm: nop; nop; nop; nop; nop; nop; nop; nop |
+hex: 90 90 90 90 90 90 90 90 |
+ |
+asm: nop; nop; nop; nop; nop; nop; nop; nop |
+hex: 90 90 90 90 90 90 90 90 |
+ |
+asm: nop |
+hex: 90 |
+ |
# invalid case, crosses bundle |
# 000000000000001e: 89 f6 mov %esi, %esi |
@@ -23,8 +42,19 @@ a4 |
# 0000000000000024: 89 ff mov %edi, %edi |
# 0000000000000026: 49 8d 3c 3f lea %rdi, [%r15+%rdi*1] |
# 000000000000002a: a4 movsb |
-89 f6 |
-49 8d 34 37 |
-89 ff |
-49 8d 3c 3f |
-a4 |
+asm: mov %esi,%esi |
+hex: 89 f6 |
+ |
+asm: lea (%r15,%rsi,1),%rsi |
+hex: 49 8d 34 37 |
+nc_out: Bad basic block alignment. |
+ |
+asm: mov %edi,%edi |
+hex: 89 ff |
+ |
+asm: lea (%r15,%rdi,1),%rdi |
+hex: 49 8d 3c 3f |
+ |
+asm: movsb %ds:(%rsi),%es:(%rdi) |
+hex: a4 |
+ |