| Index: src/trusted/validator_x86/testdata/64/maskmov_test.test
|
| diff --git a/src/trusted/validator_x86/testdata/64/maskmov_test.test b/src/trusted/validator_x86/testdata/64/maskmov_test.test
|
| deleted file mode 100644
|
| index b664aeb7473cf681ea925454a7d0f9cc60cb393d..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator_x86/testdata/64/maskmov_test.test
|
| +++ /dev/null
|
| @@ -1,80 +0,0 @@
|
| -@hex:
|
| - # Show that we handle the expected sandboxing instructions for maskmov.
|
| -
|
| - # Case one: correct masking of segment DS:%rsi
|
| - # mov %edi, %edi
|
| - 89 ff
|
| - # lea (%r15, %rdi), %rdi
|
| - 49 8d 3c 3f
|
| - # maskmovq %mm1, %mm2
|
| - 0f f7 d1
|
| -
|
| - # Case two: incorrect masking of segment DS:%rsi
|
| - # add %edi, %edi
|
| - 01 ff
|
| - # lea (%r15, %rdi), %rdi
|
| - 49 8d 3c 3f
|
| - # maskmovq %mm1, %mm2
|
| - 0f f7 d1
|
| -
|
| - # Maskmovdqu is also fine
|
| - # mov %edi, %edi
|
| - 89 ff
|
| - # lea (%r15, %rdi), %rdi
|
| - 49 8d 3c 3f
|
| - # maskmovdqu %xmm1, %xmm2
|
| - 66 0f f7 d1
|
| -
|
| - 90 90 90 90
|
| -
|
| - # But vmaskmovdqu is not
|
| - # mov %edi, %edi
|
| - # lea (%r15, %rdi), %rdi
|
| - # vmaskmovdqu %xmm1, %xmm2
|
| - # (machine code is written in one line to avoid spurious errors caused
|
| - # by nop patching)
|
| - 89 ff 49 8d 3c 3f c5 f9 f7 d1
|
| -@rval:
|
| - VALIDATOR: 000000000000000f: 0f f7 d1 maskmovq %mmx2, %mmx1
|
| - VALIDATOR: ERROR: Segment memory reference not allowed
|
| - VALIDATOR: 0000000000000026: c5 invalid
|
| - VALIDATOR: ERROR: This instruction has been marked illegal by Native Client
|
| - VALIDATOR: 0000000000000026: c5 invalid
|
| - VALIDATOR: ERROR: Opcode sequence doesn't define a valid x86 instruction
|
| - VALIDATOR: Checking jump targets: 0 to 2a
|
| - VALIDATOR: Checking that basic blocks are aligned
|
| - *** <input> IS UNSAFE ***
|
| -@dis:
|
| - 0000000000000000: 89 ff mov %edi, %edi
|
| - 0000000000000002: 49 8d 3c 3f lea %rdi, [%r15+%rdi*1]
|
| - 0000000000000006: 0f f7 d1 maskmovq %mmx2, %mmx1
|
| - 0000000000000009: 01 ff add %edi, %edi
|
| - 000000000000000b: 49 8d 3c 3f lea %rdi, [%r15+%rdi*1]
|
| - 000000000000000f: 0f f7 d1 maskmovq %mmx2, %mmx1
|
| - 0000000000000012: 89 ff mov %edi, %edi
|
| - 0000000000000014: 49 8d 3c 3f lea %rdi, [%r15+%rdi*1]
|
| - 0000000000000018: 66 0f f7 d1 maskmovdqu %xmm2, %xmm1
|
| - 000000000000001c: 90 nop
|
| - 000000000000001d: 90 nop
|
| - 000000000000001e: 90 nop
|
| - 000000000000001f: 90 nop
|
| - 0000000000000020: 89 ff mov %edi, %edi
|
| - 0000000000000022: 49 8d 3c 3f lea %rdi, [%r15+%rdi*1]
|
| - 0000000000000026: c5 invalid
|
| - 0000000000000027: f9 stc
|
| - 0000000000000028: f7 d1 not %ecx
|
| -@rdfa_output:
|
| - f: [0] unrecognized instruction
|
| - 20: [0] unrecognized instruction
|
| - return code: 1
|
| -@validators_disagree:
|
| - RDFA validator recognizes vmackmovdqu in the triple
|
| - mov %edi, %edi
|
| - lea (%r15, %rdi), %rdi
|
| - vmaskmovdqu %xmm1, %xmm2
|
| - and then rejects it, so error message points at the beginning of the triple.
|
| -
|
| - errors reported by old validator but not by rdfa one:
|
| - 0x26
|
| - errors reported by rdfa validator but not by old one:
|
| - 0x20
|
|
|