OLD | NEW |
| (Empty) |
1 @hex: | |
2 # Due to bug, REP(NE) is not allowed for 16-bit versions of string instruction
s | |
3 # (because there would be two non-rex prefixes: rep and data16). | |
4 # See http://code.google.com/p/nativeclient/issues/detail?id=1950 | |
5 | |
6 # mov %edi, %edi | |
7 89 ff | |
8 # lea (%r15,%rdi,1), %rdi | |
9 49 8d 3c 3f | |
10 # rep scasw %es:(%rdi), %ax | |
11 66 f3 af | |
12 @rval: | |
13 VALIDATOR: 0000000000000006: 66 f3 af scas
w [%rdi] | |
14 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
15 VALIDATOR: Checking jump targets: 0 to 9 | |
16 VALIDATOR: Checking that basic blocks are aligned | |
17 *** <input> IS UNSAFE *** | |
18 @dis: | |
19 0000000000000000: 89 ff mov %edi, %edi | |
20 0000000000000002: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
21 0000000000000006: 66 f3 af scasw [%rdi] | |
22 @rdfa_output: | |
23 6: [0] unrecognized instruction | |
24 return code: 1 | |
25 ---------------------------------------------------------------------- | |
26 @hex: | |
27 # mov %edi, %edi | |
28 89 ff | |
29 # lea (%r15,%rdi,1), %rdi | |
30 49 8d 3c 3f | |
31 # repne scasw %es:(%rdi), %ax | |
32 66 f2 af | |
33 @rval: | |
34 VALIDATOR: 0000000000000006: 66 f2 af scas
w [%rdi] | |
35 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
36 VALIDATOR: Checking jump targets: 0 to 9 | |
37 VALIDATOR: Checking that basic blocks are aligned | |
38 *** <input> IS UNSAFE *** | |
39 @dis: | |
40 0000000000000000: 89 ff mov %edi, %edi | |
41 0000000000000002: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
42 0000000000000006: 66 f2 af scasw [%rdi] | |
43 @rdfa_output: | |
44 6: [0] unrecognized instruction | |
45 return code: 1 | |
46 ---------------------------------------------------------------------- | |
47 @hex: | |
48 # mov %edi, %edi | |
49 89 ff | |
50 # lea (%r15,%rdi,1), %rdi | |
51 49 8d 3c 3f | |
52 # rep stosw %ax, %es:(%rdi) | |
53 66 f3 ab | |
54 @rval: | |
55 VALIDATOR: 0000000000000006: 66 f3 ab stos
w [%rdi] | |
56 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
57 VALIDATOR: Checking jump targets: 0 to 9 | |
58 VALIDATOR: Checking that basic blocks are aligned | |
59 *** <input> IS UNSAFE *** | |
60 @dis: | |
61 0000000000000000: 89 ff mov %edi, %edi | |
62 0000000000000002: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
63 0000000000000006: 66 f3 ab stosw [%rdi] | |
64 @rdfa_output: | |
65 6: [0] unrecognized instruction | |
66 return code: 1 | |
67 ---------------------------------------------------------------------- | |
68 @hex: | |
69 # mov %esi, %esi | |
70 89 f6 | |
71 # lea (%r15,%rsi,1), %rsi | |
72 49 8d 34 37 | |
73 # rep lodsw %ds:(%rsi), %ax | |
74 66 f3 ad | |
75 @rval: | |
76 VALIDATOR: 0000000000000006: 66 f3 ad lods
w [%rsi] | |
77 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
78 VALIDATOR: Checking jump targets: 0 to 9 | |
79 VALIDATOR: Checking that basic blocks are aligned | |
80 *** <input> IS UNSAFE *** | |
81 @dis: | |
82 0000000000000000: 89 f6 mov %esi, %esi | |
83 0000000000000002: 49 8d 34 37 lea %rsi, [%r15
+%rsi*1] | |
84 0000000000000006: 66 f3 ad lodsw [%rsi] | |
85 @rdfa_output: | |
86 6: [0] unrecognized instruction | |
87 return code: 1 | |
88 ---------------------------------------------------------------------- | |
89 @hex: | |
90 # mov %esi, %esi | |
91 89 f6 | |
92 # lea (%r15,%rsi,1), %rsi | |
93 49 8d 34 37 | |
94 # mov %edi, %edi | |
95 89 ff | |
96 # lea (%r15,%rdi,1), %rdi | |
97 49 8d 3c 3f | |
98 # rep movsw %ds:(%rsi), %es:(%rdi) | |
99 66 f3 a5 | |
100 @rval: | |
101 VALIDATOR: 000000000000000c: 66 f3 a5 movs
w [%rdi], [%rsi] | |
102 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
103 VALIDATOR: Checking jump targets: 0 to f | |
104 VALIDATOR: Checking that basic blocks are aligned | |
105 *** <input> IS UNSAFE *** | |
106 @dis: | |
107 0000000000000000: 89 f6 mov %esi, %esi | |
108 0000000000000002: 49 8d 34 37 lea %rsi, [%r15
+%rsi*1] | |
109 0000000000000006: 89 ff mov %edi, %edi | |
110 0000000000000008: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
111 000000000000000c: 66 f3 a5 movsw [%rdi], [
%rsi] | |
112 @rdfa_output: | |
113 c: [0] unrecognized instruction | |
114 return code: 1 | |
115 ---------------------------------------------------------------------- | |
116 @hex: | |
117 # mov %esi, %esi | |
118 89 f6 | |
119 # lea (%r15,%rsi,1), %rsi | |
120 49 8d 34 37 | |
121 # mov %edi, %edi | |
122 89 ff | |
123 # lea (%r15,%rdi,1), %rdi | |
124 49 8d 3c 3f | |
125 # rep cmpsw %es:(%rdi), %ds:(%rsi) | |
126 66 f3 a7 | |
127 @rval: | |
128 VALIDATOR: 000000000000000c: 66 f3 a7 cmps
w [%rdi], [%rsi] | |
129 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
130 VALIDATOR: Checking jump targets: 0 to f | |
131 VALIDATOR: Checking that basic blocks are aligned | |
132 *** <input> IS UNSAFE *** | |
133 @dis: | |
134 0000000000000000: 89 f6 mov %esi, %esi | |
135 0000000000000002: 49 8d 34 37 lea %rsi, [%r15
+%rsi*1] | |
136 0000000000000006: 89 ff mov %edi, %edi | |
137 0000000000000008: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
138 000000000000000c: 66 f3 a7 cmpsw [%rdi], [
%rsi] | |
139 @rdfa_output: | |
140 c: [0] unrecognized instruction | |
141 return code: 1 | |
142 ---------------------------------------------------------------------- | |
143 @hex: | |
144 # mov %esi, %esi | |
145 89 f6 | |
146 # lea (%r15,%rsi,1), %rsi | |
147 49 8d 34 37 | |
148 # mov %edi, %edi | |
149 89 ff | |
150 # lea (%r15,%rdi,1), %rdi | |
151 49 8d 3c 3f | |
152 # repne cmpsw %es:(%rdi), %ds:(%rsi) | |
153 66 f2 a7 | |
154 @rval: | |
155 VALIDATOR: 000000000000000c: 66 f2 a7 cmps
w [%rdi], [%rsi] | |
156 VALIDATOR: ERROR: More than one (non-REX) prefix byte specified | |
157 VALIDATOR: Checking jump targets: 0 to f | |
158 VALIDATOR: Checking that basic blocks are aligned | |
159 *** <input> IS UNSAFE *** | |
160 @dis: | |
161 0000000000000000: 89 f6 mov %esi, %esi | |
162 0000000000000002: 49 8d 34 37 lea %rsi, [%r15
+%rsi*1] | |
163 0000000000000006: 89 ff mov %edi, %edi | |
164 0000000000000008: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
165 000000000000000c: 66 f2 a7 cmpsw [%rdi], [
%rsi] | |
166 @rdfa_output: | |
167 c: [0] unrecognized instruction | |
168 return code: 1 | |
169 ---------------------------------------------------------------------- | |
170 @hex: | |
171 # Examples of valid string instructions. | |
172 | |
173 # DATA16, but no REP/REPNE prefix: | |
174 # mov %edi, %edi | |
175 89 ff \\ | |
176 # lea (%r15,%rdi,1), %rdi | |
177 49 8d 3c 3f \\ | |
178 # scasw %es:(%rdi), %ax | |
179 66 af | |
180 | |
181 # REP, but no DATA16 prefix: | |
182 # mov %edi, %edi | |
183 89 ff \\ | |
184 # lea (%r15,%rdi,1),%rdi | |
185 49 8d 3c 3f \\ | |
186 # rep stosb %al, %es:(%rdi) | |
187 f3 aa | |
188 @rval: | |
189 VALIDATOR: Checking jump targets: 0 to 10 | |
190 VALIDATOR: Checking that basic blocks are aligned | |
191 *** <input> is safe *** | |
192 @dis: | |
193 0000000000000000: 89 ff mov %edi, %edi | |
194 0000000000000002: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
195 0000000000000006: 66 af scasw [%rdi] | |
196 0000000000000008: 89 ff mov %edi, %edi | |
197 000000000000000a: 49 8d 3c 3f lea %rdi, [%r15
+%rdi*1] | |
198 000000000000000e: f3 aa stosb [%rdi] | |
199 @rdfa_output: | |
200 return code: 0 | |
OLD | NEW |