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

Side by Side Diff: src/trusted/validator_x86/testdata/64/maskmov_test.test

Issue 625923004: Delete old x86 validator. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 6 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 @hex:
2 # Show that we handle the expected sandboxing instructions for maskmov.
3
4 # Case one: correct masking of segment DS:%rsi
5 # mov %edi, %edi
6 89 ff
7 # lea (%r15, %rdi), %rdi
8 49 8d 3c 3f
9 # maskmovq %mm1, %mm2
10 0f f7 d1
11
12 # Case two: incorrect masking of segment DS:%rsi
13 # add %edi, %edi
14 01 ff
15 # lea (%r15, %rdi), %rdi
16 49 8d 3c 3f
17 # maskmovq %mm1, %mm2
18 0f f7 d1
19
20 # Maskmovdqu is also fine
21 # mov %edi, %edi
22 89 ff
23 # lea (%r15, %rdi), %rdi
24 49 8d 3c 3f
25 # maskmovdqu %xmm1, %xmm2
26 66 0f f7 d1
27
28 90 90 90 90
29
30 # But vmaskmovdqu is not
31 # mov %edi, %edi
32 # lea (%r15, %rdi), %rdi
33 # vmaskmovdqu %xmm1, %xmm2
34 # (machine code is written in one line to avoid spurious errors caused
35 # by nop patching)
36 89 ff 49 8d 3c 3f c5 f9 f7 d1
37 @rval:
38 VALIDATOR: 000000000000000f: 0f f7 d1 mask movq %mmx2, %mmx1
39 VALIDATOR: ERROR: Segment memory reference not allowed
40 VALIDATOR: 0000000000000026: c5 inva lid
41 VALIDATOR: ERROR: This instruction has been marked illegal by Native Client
42 VALIDATOR: 0000000000000026: c5 inva lid
43 VALIDATOR: ERROR: Opcode sequence doesn't define a valid x86 instruction
44 VALIDATOR: Checking jump targets: 0 to 2a
45 VALIDATOR: Checking that basic blocks are aligned
46 *** <input> IS UNSAFE ***
47 @dis:
48 0000000000000000: 89 ff mov %edi, %edi
49 0000000000000002: 49 8d 3c 3f lea %rdi, [%r15 +%rdi*1]
50 0000000000000006: 0f f7 d1 maskmovq %mmx2, %mmx1
51 0000000000000009: 01 ff add %edi, %edi
52 000000000000000b: 49 8d 3c 3f lea %rdi, [%r15 +%rdi*1]
53 000000000000000f: 0f f7 d1 maskmovq %mmx2, %mmx1
54 0000000000000012: 89 ff mov %edi, %edi
55 0000000000000014: 49 8d 3c 3f lea %rdi, [%r15 +%rdi*1]
56 0000000000000018: 66 0f f7 d1 maskmovdqu %xmm 2, %xmm1
57 000000000000001c: 90 nop
58 000000000000001d: 90 nop
59 000000000000001e: 90 nop
60 000000000000001f: 90 nop
61 0000000000000020: 89 ff mov %edi, %edi
62 0000000000000022: 49 8d 3c 3f lea %rdi, [%r15 +%rdi*1]
63 0000000000000026: c5 invalid
64 0000000000000027: f9 stc
65 0000000000000028: f7 d1 not %ecx
66 @rdfa_output:
67 f: [0] unrecognized instruction
68 20: [0] unrecognized instruction
69 return code: 1
70 @validators_disagree:
71 RDFA validator recognizes vmackmovdqu in the triple
72 mov %edi, %edi
73 lea (%r15, %rdi), %rdi
74 vmaskmovdqu %xmm1, %xmm2
75 and then rejects it, so error message points at the beginning of the triple.
76
77 errors reported by old validator but not by rdfa one:
78 0x26
79 errors reported by rdfa validator but not by old one:
80 0x20
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698