x86: Add {disp16} pseudo prefix
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-pseudos.s
1 # Check 64bit instructions with pseudo prefixes for encoding
2
3 .text
4 _start:
5 {vex3} vmovaps %xmm7,%xmm2
6 {vex3} {load} vmovaps %xmm7,%xmm2
7 {vex3} {store} vmovaps %xmm7,%xmm2
8 vmovaps %xmm7,%xmm2
9 {vex} vmovaps %xmm7,%xmm2
10 {vex} {load} vmovaps %xmm7,%xmm2
11 {vex} {store} vmovaps %xmm7,%xmm2
12 {vex3} vmovaps (%rax),%xmm2
13 vmovaps (%rax),%xmm2
14 {vex2} vmovaps (%rax),%xmm2
15 {evex} vmovaps (%rax),%xmm2
16 {disp32} vmovaps (%rax),%xmm2
17 {evex} {disp8} vmovaps (%rax),%xmm2
18 {evex} {disp32} vmovaps (%rax),%xmm2
19
20 {vex} {disp8} vmovaps 128(%rax),%xmm2
21 {vex} {disp32} vmovaps 128(%rax),%xmm2
22 {evex} {disp8} vmovaps 128(%rax),%xmm2
23 {evex} {disp32} vmovaps 128(%rax),%xmm2
24
25 mov %rcx, %rax
26 {load} mov %rcx, %rax
27 {store} mov %rcx, %rax
28 adc %ecx, %eax
29 {load} adc %ecx, %eax
30 {store} adc %ecx, %eax
31 add %ecx, %eax
32 {load} add %ecx, %eax
33 {store} add %ecx, %eax
34 and %ecx, %eax
35 {load} and %ecx, %eax
36 {store} and %ecx, %eax
37 cmp %ecx, %eax
38 {load} cmp %ecx, %eax
39 {store} cmp %ecx, %eax
40 or %ecx, %eax
41 {load} or %ecx, %eax
42 {store} or %ecx, %eax
43 sbb %ecx, %eax
44 {load} sbb %ecx, %eax
45 {store} sbb %ecx, %eax
46 sub %ecx, %eax
47 {load} sub %ecx, %eax
48 {store} sub %ecx, %eax
49 xor %ecx, %eax
50 {load} xor %ecx, %eax
51 {store} xor %ecx, %eax
52
53 {load} mov 0x12345678, %eax
54 {load} mov %eax, 0x12345678
55 {store} mov 0x12345678, %eax
56 {store} mov %eax, 0x12345678
57 {load} mov 0x123456789abcdef0, %eax
58 {load} mov %eax, 0x123456789abcdef0
59 {store} mov 0x123456789abcdef0, %eax
60 {store} mov %eax, 0x123456789abcdef0
61 {load} movabs 0x123456789abcdef0, %eax
62 {load} movabs %eax, 0x123456789abcdef0
63 {store} movabs 0x123456789abcdef0, %eax
64 {store} movabs %eax, 0x123456789abcdef0
65 {load} mov %eax, (%rdi)
66 {load} mov (%rdi), %eax
67 {store} mov %eax, (%rdi)
68 {store} mov (%rdi), %eax
69 {load} mov %es, %edi
70 {load} mov %eax, %gs
71 {store} mov %es, %edi
72 {store} mov %eax, %gs
73 {load} mov %cr0, %rdi
74 {load} mov %rax, %cr7
75 {store} mov %cr0, %rdi
76 {store} mov %rax, %cr7
77 {load} mov %dr0, %rdi
78 {load} mov %rax, %dr7
79 {store} mov %dr0, %rdi
80 {store} mov %rax, %dr7
81 {load} kmovb %k0, %edi
82 {load} kmovb %eax, %k7
83 {store} kmovb %k0, %edi
84 {store} kmovb %eax, %k7
85 {load} kmovd %k0, %edi
86 {load} kmovd %eax, %k7
87 {store} kmovd %k0, %edi
88 {store} kmovd %eax, %k7
89 {load} kmovq %k0, %rdi
90 {load} kmovq %rax, %k7
91 {store} kmovq %k0, %rdi
92 {store} kmovq %rax, %k7
93 {load} kmovw %k0, %edi
94 {load} kmovw %eax, %k7
95 {store} kmovw %k0, %edi
96 {store} kmovw %eax, %k7
97 {load} kmovb %k0, %k7
98 {store} kmovb %k0, %k7
99 {load} kmovd %k0, %k7
100 {store} kmovd %k0, %k7
101 {load} kmovq %k0, %k7
102 {store} kmovq %k0, %k7
103 {load} kmovw %k0, %k7
104 {store} kmovw %k0, %k7
105 {load} adc %eax, (%rdi)
106 {load} adc (%rdi), %eax
107 {store} adc %eax, (%rdi)
108 {store} adc (%rdi), %eax
109 {load} add %eax, (%rdi)
110 {load} add (%rdi), %eax
111 {store} add %eax, (%rdi)
112 {store} add (%rdi), %eax
113 {load} and %eax, (%rdi)
114 {load} and (%rdi), %eax
115 {store} and %eax, (%rdi)
116 {store} and (%rdi), %eax
117 {load} cmp %eax, (%rdi)
118 {load} cmp (%rdi), %eax
119 {store} cmp %eax, (%rdi)
120 {store} cmp (%rdi), %eax
121 {load} or %eax, (%rdi)
122 {load} or (%rdi), %eax
123 {store} or %eax, (%rdi)
124 {store} or (%rdi), %eax
125 {load} sbb %eax, (%rdi)
126 {load} sbb (%rdi), %eax
127 {store} sbb %eax, (%rdi)
128 {store} sbb (%rdi), %eax
129 {load} sub %eax, (%rdi)
130 {load} sub (%rdi), %eax
131 {store} sub %eax, (%rdi)
132 {store} sub (%rdi), %eax
133 {load} xor %eax, (%rdi)
134 {load} xor (%rdi), %eax
135 {store} xor %eax, (%rdi)
136 {store} xor (%rdi), %eax
137
138 fadd %st, %st
139 {load} fadd %st, %st
140 {store} fadd %st, %st
141 fdiv %st, %st
142 {load} fdiv %st, %st
143 {store} fdiv %st, %st
144 fdivr %st, %st
145 {load} fdivr %st, %st
146 {store} fdivr %st, %st
147 fmul %st, %st
148 {load} fmul %st, %st
149 {store} fmul %st, %st
150 fsub %st, %st
151 {load} fsub %st, %st
152 {store} fsub %st, %st
153 fsubr %st, %st
154 {load} fsubr %st, %st
155 {store} fsubr %st, %st
156
157 movq %mm0, %mm7
158 {load} movq %mm0, %mm7
159 {store} movq %mm0, %mm7
160
161 movaps %xmm0, %xmm7
162 {load} movaps %xmm0, %xmm7
163 {store} movaps %xmm0, %xmm7
164 movups %xmm0, %xmm7
165 {load} movups %xmm0, %xmm7
166 {store} movups %xmm0, %xmm7
167 movss %xmm0, %xmm7
168 {load} movss %xmm0, %xmm7
169 {store} movss %xmm0, %xmm7
170 movapd %xmm0, %xmm7
171 {load} movapd %xmm0, %xmm7
172 {store} movapd %xmm0, %xmm7
173 movupd %xmm0, %xmm7
174 {load} movupd %xmm0, %xmm7
175 {store} movupd %xmm0, %xmm7
176 movsd %xmm0, %xmm7
177 {load} movsd %xmm0, %xmm7
178 {store} movsd %xmm0, %xmm7
179 movdqa %xmm0, %xmm7
180 {load} movdqa %xmm0, %xmm7
181 {store} movdqa %xmm0, %xmm7
182 movdqu %xmm0, %xmm7
183 {load} movdqu %xmm0, %xmm7
184 {store} movdqu %xmm0, %xmm7
185 movq %xmm0, %xmm7
186 {load} movq %xmm0, %xmm7
187 {store} movq %xmm0, %xmm7
188 vmovaps %xmm0, %xmm7
189 {load} vmovaps %xmm0, %xmm7
190 {store} vmovaps %xmm0, %xmm7
191 vmovaps %zmm0, %zmm7
192 {load} vmovaps %zmm0, %zmm7
193 {store} vmovaps %zmm0, %zmm7
194 vmovaps %xmm0, %xmm7{%k7}
195 {load} vmovaps %xmm0, %xmm7{%k7}
196 {store} vmovaps %xmm0, %xmm7{%k7}
197 vmovups %zmm0, %zmm7
198 {load} vmovups %zmm0, %zmm7
199 {store} vmovups %zmm0, %zmm7
200 vmovups %xmm0, %xmm7
201 {load} vmovups %xmm0, %xmm7
202 {store} vmovups %xmm0, %xmm7
203 vmovups %xmm0, %xmm7{%k7}
204 {load} vmovups %xmm0, %xmm7{%k7}
205 {store} vmovups %xmm0, %xmm7{%k7}
206 vmovss %xmm0, %xmm1, %xmm7
207 {load} vmovss %xmm0, %xmm1, %xmm7
208 {store} vmovss %xmm0, %xmm1, %xmm7
209 vmovss %xmm0, %xmm1, %xmm7{%k7}
210 {load} vmovss %xmm0, %xmm1, %xmm7{%k7}
211 {store} vmovss %xmm0, %xmm1, %xmm7{%k7}
212 vmovapd %xmm0, %xmm7
213 {load} vmovapd %xmm0, %xmm7
214 {store} vmovapd %xmm0, %xmm7
215 vmovapd %zmm0, %zmm7
216 {load} vmovapd %zmm0, %zmm7
217 {store} vmovapd %zmm0, %zmm7
218 vmovapd %xmm0, %xmm7{%k7}
219 {load} vmovapd %xmm0, %xmm7{%k7}
220 {store} vmovapd %xmm0, %xmm7{%k7}
221 vmovupd %xmm0, %xmm7
222 {load} vmovupd %xmm0, %xmm7
223 {store} vmovupd %xmm0, %xmm7
224 vmovupd %zmm0, %zmm7
225 {load} vmovupd %zmm0, %zmm7
226 {store} vmovupd %zmm0, %zmm7
227 vmovupd %xmm0, %xmm7{%k7}
228 {load} vmovupd %xmm0, %xmm7{%k7}
229 {store} vmovupd %xmm0, %xmm7{%k7}
230 vmovsd %xmm0, %xmm1, %xmm7
231 {load} vmovsd %xmm0, %xmm1, %xmm7
232 {store} vmovsd %xmm0, %xmm1, %xmm7
233 vmovsd %xmm0, %xmm1, %xmm7{%k7}
234 {load} vmovsd %xmm0, %xmm1, %xmm7{%k7}
235 {store} vmovsd %xmm0, %xmm1, %xmm7{%k7}
236 vmovdqa %xmm0, %xmm7
237 {load} vmovdqa %xmm0, %xmm7
238 {store} vmovdqa %xmm0, %xmm7
239 vmovdqa32 %zmm0, %zmm7
240 {load} vmovdqa32 %zmm0, %zmm7
241 {store} vmovdqa32 %zmm0, %zmm7
242 vmovdqa32 %xmm0, %xmm7
243 {load} vmovdqa32 %xmm0, %xmm7
244 {store} vmovdqa32 %xmm0, %xmm7
245 vmovdqa64 %zmm0, %zmm7
246 {load} vmovdqa64 %zmm0, %zmm7
247 {store} vmovdqa64 %zmm0, %zmm7
248 vmovdqa64 %xmm0, %xmm7
249 {load} vmovdqa64 %xmm0, %xmm7
250 {store} vmovdqa64 %xmm0, %xmm7
251 vmovdqu %xmm0, %xmm7
252 {load} vmovdqu %xmm0, %xmm7
253 {store} vmovdqu %xmm0, %xmm7
254 vmovdqu8 %zmm0, %zmm7
255 {load} vmovdqu8 %zmm0, %zmm7
256 {store} vmovdqu8 %zmm0, %zmm7
257 vmovdqu8 %xmm0, %xmm7
258 {load} vmovdqu8 %xmm0, %xmm7
259 {store} vmovdqu8 %zmm0, %zmm7
260 vmovdqu16 %zmm0, %zmm7
261 {load} vmovdqu16 %zmm0, %zmm7
262 {store} vmovdqu16 %zmm0, %zmm7
263 vmovdqu16 %xmm0, %xmm7
264 {load} vmovdqu16 %xmm0, %xmm7
265 {store} vmovdqu16 %xmm0, %xmm7
266 vmovdqu32 %zmm0, %zmm7
267 {load} vmovdqu32 %zmm0, %zmm7
268 {store} vmovdqu32 %zmm0, %zmm7
269 vmovdqu32 %xmm0, %xmm7
270 {load} vmovdqu32 %xmm0, %xmm7
271 {store} vmovdqu32 %xmm0, %xmm7
272 vmovdqu64 %zmm0, %zmm7
273 {load} vmovdqu64 %zmm0, %zmm7
274 {store} vmovdqu64 %zmm0, %zmm7
275 vmovdqu64 %xmm0, %xmm7
276 {load} vmovdqu64 %xmm0, %xmm7
277 {store} vmovdqu64 %xmm0, %xmm7
278 vmovq %xmm0, %xmm7
279 {load} vmovq %xmm0, %xmm7
280 {store} vmovq %xmm0, %xmm7
281 {evex} vmovq %xmm0, %xmm7
282 {load} {evex} vmovq %xmm0, %xmm7
283 {store} {evex} vmovq %xmm0, %xmm7
284
285 pextrw $0, %xmm0, %edi
286 {load} pextrw $0, %xmm0, %edi
287 {store} pextrw $0, %xmm0, %edi
288
289 vpextrw $0, %xmm0, %edi
290 {load} vpextrw $0, %xmm0, %edi
291 {store} vpextrw $0, %xmm0, %edi
292
293 {evex} vpextrw $0, %xmm0, %edi
294 {load} {evex} vpextrw $0, %xmm0, %edi
295 {store} {evex} vpextrw $0, %xmm0, %edi
296
297 bndmov %bnd3, %bnd0
298 {load} bndmov %bnd3, %bnd0
299 {store} bndmov %bnd3, %bnd0
300
301 movaps (%rax),%xmm2
302 {load} movaps (%rax),%xmm2
303 {store} movaps (%rax),%xmm2
304 {disp8} movaps (%rax),%xmm2
305 {disp32} movaps (%rax),%xmm2
306 movaps -1(%rax),%xmm2
307 {disp8} movaps -1(%rax),%xmm2
308 {disp32} movaps -1(%rax),%xmm2
309 movaps 128(%rax),%xmm2
310 {disp8} movaps 128(%rax),%xmm2
311 {disp32} movaps 128(%rax),%xmm2
312 {rex} mov %al,%ah
313 {rex} shl %cl, %eax
314 {rex} movabs 1, %al
315 {rex} cmp %cl, %dl
316 {rex} mov $1, %bl
317 {rex} crc32 %cl, %eax
318 {rex} movl %eax,%ebx
319 {rex} movl %eax,%r14d
320 {rex} movl %eax,(%r8)
321 {rex} movaps %xmm7,%xmm2
322 {rex} movaps %xmm7,%xmm12
323 {rex} movaps (%rcx),%xmm2
324 {rex} movaps (%r8),%xmm2
325 {rex} phaddw (%rcx),%mm0
326 {rex} phaddw (%r8),%mm0
327
328 movb (%rbp),%al
329 {disp8} movb (%rbp),%al
330 {disp32} movb (%rbp),%al
331
332 movb (%ebp),%al
333 {disp8} movb (%ebp),%al
334 {disp32} movb (%ebp),%al
335
336 movb (%r13),%al
337 {disp8} movb (%r13),%al
338 {disp32} movb (%r13),%al
339
340 movb (%r13d),%al
341 {disp8} movb (%r13d),%al
342 {disp32} movb (%r13d),%al
343
344 .intel_syntax noprefix
345 {vex3} vmovaps xmm2,xmm7
346 {vex3} {load} vmovaps xmm2,xmm7
347 {vex3} {store} vmovaps xmm2,xmm7
348 vmovaps xmm2,xmm7
349 {vex2} vmovaps xmm2,xmm7
350 {vex2} {load} vmovaps xmm2,xmm7
351 {vex2} {store} vmovaps xmm2,xmm7
352 {vex3} vmovaps xmm2,XMMWORD PTR [rax]
353 vmovaps xmm2,XMMWORD PTR [rax]
354 {vex2} vmovaps xmm2,XMMWORD PTR [rax]
355 {evex} vmovaps xmm2,XMMWORD PTR [rax]
356 {disp32} vmovaps xmm2,XMMWORD PTR [rax]
357 {evex} {disp8} vmovaps xmm2,XMMWORD PTR [rax]
358 {evex} {disp32} vmovaps xmm2,XMMWORD PTR [rax]
359
360 {vex} {disp8} vmovaps xmm2,XMMWORD PTR [rax+128]
361 {vex} {disp32} vmovaps xmm2,XMMWORD PTR [rax+128]
362 {evex} {disp8} vmovaps xmm2,XMMWORD PTR [rax+128]
363 {evex} {disp32} vmovaps xmm2,XMMWORD PTR [rax+128]
364
365 mov rax,rcx
366 {load} mov rax,rcx
367 {store} mov rax,rcx
368 movaps xmm2,XMMWORD PTR [rax]
369 {load} movaps xmm2,XMMWORD PTR [rax]
370 {store} movaps xmm2,XMMWORD PTR [rax]
371 {disp8} movaps xmm2,XMMWORD PTR [rax]
372 {disp32} movaps xmm2,XMMWORD PTR [rax]
373 movaps xmm2,XMMWORD PTR [rax-1]
374 {disp8} movaps xmm2,XMMWORD PTR [rax-1]
375 {disp32} movaps xmm2,XMMWORD PTR [rax-1]
376 movaps xmm2,XMMWORD PTR [rax+128]
377 {disp8} movaps xmm2,XMMWORD PTR [rax+128]
378 {disp32} movaps xmm2,XMMWORD PTR [rax+128]
379 {rex} mov ah,al
380 {rex} mov ebx,eax
381 {rex} mov r14d,eax
382 {rex} mov DWORD PTR [r8],eax
383 {rex} movaps xmm2,xmm7
384 {rex} movaps xmm12,xmm7
385 {rex} movaps xmm2,XMMWORD PTR [rcx]
386 {rex} movaps xmm2,XMMWORD PTR [r8]
387 {rex} phaddw mm0,QWORD PTR [rcx]
388 {rex} phaddw mm0,QWORD PTR [r8]
389
390 mov al, BYTE PTR [rbp]
391 {disp8} mov al, BYTE PTR [rbp]
392 {disp32} mov al, BYTE PTR [rbp]
393
394 mov al, BYTE PTR [ebp]
395 {disp8} mov al, BYTE PTR [ebp]
396 {disp32} mov al, BYTE PTR [ebp]
397
398 mov al, BYTE PTR [r13]
399 {disp8} mov al, BYTE PTR [r13]
400 {disp32} mov al, BYTE PTR [r13]
401
402 mov al, BYTE PTR [r13]
403 {disp8} mov al, BYTE PTR [r13d]
404 {disp32} mov al, BYTE PTR [r13d]
This page took 0.044791 seconds and 4 git commands to generate.