| Index: src/trusted/validator_x86/testdata/64/strings.tf
|
| diff --git a/src/trusted/validator_x86/testdata/64/strings.tf b/src/trusted/validator_x86/testdata/64/strings.tf
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b40888907483b288a97d417d127c60798f394818
|
| --- /dev/null
|
| +++ b/src/trusted/validator_x86/testdata/64/strings.tf
|
| @@ -0,0 +1,171 @@
|
| +BITS: 64
|
| +OUTCOME: invalid
|
| +
|
| +# Test string operations with 1 memory operand
|
| +# mov %edi,%edi
|
| +# lea (%r15,%rdi,1),%rdi
|
| +# scas %es:(%rdi),%al
|
| +asm: mov %edi,%edi
|
| +hex: 89 ff
|
| +
|
| +asm: lea (%r15,%rdi,1),%rdi
|
| +hex: 49 8d 3c 3f
|
| +
|
| +asm: scas %es:(%rdi),%al
|
| +hex: ae
|
| +
|
| +
|
| +# add %edi,%edi
|
| +# lea (%r15,%rdi,1),%rdi
|
| +# scas %es:(%rdi),%al
|
| +asm: add %edi,%edi
|
| +hex: 01 ff
|
| +
|
| +asm: lea (%r15,%rdi,1),%rdi
|
| +hex: 49 8d 3c 3f
|
| +
|
| +asm: scas %es:(%rdi),%al
|
| +hex: ae
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
| +
|
| +# mov %edi,%edi
|
| +# add %r15,%rdi
|
| +# scas %es:(%rdi),%al
|
| +asm: mov %edi,%edi
|
| +hex: 89 ff
|
| +
|
| +asm: add %r15,%rdi
|
| +hex: 4c 01 ff
|
| +
|
| +asm: scas %es:(%rdi),%al
|
| +hex: ae
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
| +
|
| +# mov %edi,%edi
|
| +# lea (%rdi,%r15,1),%rdi
|
| +# scas %es:(%rdi),%al
|
| +asm: mov %edi,%edi
|
| +hex: 89 ff
|
| +
|
| +asm: lea (%rdi,%r15,1),%rdi
|
| +hex: 4a 8d 3c 3f
|
| +
|
| +asm: scas %es:(%rdi),%al
|
| +hex: ae
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
| +
|
| +# Test string operations with 2 memory operands.
|
| +# mov %esi,%esi
|
| +# add %r15,%rsi
|
| +# mov %edi,%edi
|
| +# add %r15,%rdi
|
| +# movsl %ds:(%rsi),%es:(%rdi)
|
| +asm: mov %esi,%esi
|
| +hex: 89 f6
|
| +
|
| +asm: add %r15,%rsi
|
| +hex: 4c 01 fe
|
| +
|
| +asm: mov %edi,%edi
|
| +hex: 89 ff
|
| +
|
| +asm: add %r15,%rdi
|
| +hex: 4c 01 ff
|
| +
|
| +asm: movsl %ds:(%rsi),%es:(%rdi)
|
| +hex: a5
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
| +
|
| +# mov %esi,%esi
|
| +# add %r15,%rsi
|
| +# mov %edi,%edi
|
| +# add %r15,%rdi
|
| +# cmpsl %es:(%rdi),%ds:(%rsi)
|
| +asm: mov %esi,%esi
|
| +hex: 89 f6
|
| +
|
| +asm: add %r15,%rsi
|
| +hex: 4c 01 fe
|
| +
|
| +asm: mov %edi,%edi
|
| +hex: 89 ff
|
| +
|
| +asm: add %r15,%rdi
|
| +hex: 4c 01 ff
|
| +
|
| +asm: cmpsl %es:(%rdi),%ds:(%rsi)
|
| +hex: a7
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
| +
|
| +# mov %esi,%esi
|
| +# lea (%r15,%rsi),%rsi
|
| +# mov %edi,%edi
|
| +# lea (%r15,%rdi),%rdi
|
| +# cmpsl %es:(%rdi),%ds:(%rsi)
|
| +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: cmpsl %es:(%rdi),%ds:(%rsi)
|
| +hex: a7
|
| +
|
| +
|
| +# mov %edi,%edi
|
| +# lea (%r15,%rdi),%rdi
|
| +# mov %esi,%esi
|
| +# lea (%r15,%rsi),%rsi
|
| +# cmpsl %es:(%rdi),%ds:(%rsi)
|
| +asm: mov %edi,%edi
|
| +hex: 89 ff
|
| +
|
| +asm: lea (%r15,%rdi,1),%rdi
|
| +hex: 49 8d 3c 3f
|
| +
|
| +asm: mov %esi,%esi
|
| +hex: 89 f6
|
| +
|
| +asm: lea (%r15,%rsi,1),%rsi
|
| +hex: 49 8d 34 37
|
| +
|
| +asm: cmpsl %es:(%rdi),%ds:(%rsi)
|
| +hex: a7
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
| +
|
| +# add %esi,%esi
|
| +# lea (%r15,%rsi,1),%rsi
|
| +# add %edi,%edi
|
| +# lea (%r15,%rdi,1),%rdi
|
| +# cmpsl %es:(%rdi),%ds:(%rsi)
|
| +asm: add %esi,%esi
|
| +hex: 01 f6
|
| +
|
| +asm: lea (%r15,%rsi,1),%rsi
|
| +hex: 49 8d 34 37
|
| +
|
| +asm: add %edi,%edi
|
| +hex: 01 ff
|
| +
|
| +asm: lea (%r15,%rdi,1),%rdi
|
| +hex: 49 8d 3c 3f
|
| +
|
| +asm: cmpsl %es:(%rdi),%ds:(%rsi)
|
| +hex: a7
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +nc_out: ERROR: Segment memory reference not allowed
|
| +
|
|
|