Add X86 assembler and disassembler support for AMD SVM instructions. Original patch...
[oota-llvm.git] / test / MC / Disassembler / X86 / x86-32.txt
1 # RUN: llvm-mc --disassemble %s -triple=i686-apple-darwin9 | FileCheck %s
2
3 # Coverage
4
5 # CHECK: pushl
6 0xff 0x34 0x24
7
8 # CHECK: popl
9 0x58
10
11 # CHECK: calll
12 0xff 0xd0
13
14 # CHECK: incl
15 0x40
16
17 # CHECK: leave
18 0xc9
19
20 # PR8873: some instructions not recognized in 32-bit mode
21
22 # CHECK: fld
23 0xdd 0x04 0x24
24
25 # CHECK: pshufb
26 0x0f 0x38 0x00 0xc0
27
28 # CHECK: crc32b %al, %eax
29 0xf2 0x0f 0x38 0xf0 0xc0
30
31 # CHECK: crc32w %ax, %eax
32 0x66 0xf2 0x0f 0x38 0xf1 0xc0
33
34 # CHECK: crc32l %eax, %eax
35 0xf2 0x0f 0x38 0xf1 0xc0
36
37
38 # CHECK: int    $33
39 0xCD 0x21 
40
41 # CHECK: int    $33
42 0xCD 0x21
43
44
45 # CHECK: addb   %al, (%eax)
46 0 0
47
48 # CHECK: calll  -1234
49 0xe8 0x2e 0xfb 0xff 0xff
50
51 # CHECK: lfence
52 0x0f 0xae 0xe8
53
54 # CHECK: mfence
55 0x0f 0xae 0xf0
56
57 # CHECK: monitor
58 0x0f 0x01 0xc8
59
60 # CHECK: mwait
61 0x0f 0x01 0xc9
62
63 # CHECK: vmcall
64 0x0f 0x01 0xc1
65
66 # CHECK: vmlaunch
67 0x0f 0x01 0xc2
68
69 # CHECK: vmresume
70 0x0f 0x01 0xc3
71
72 # CHECK: vmxoff
73 0x0f 0x01 0xc4
74
75 # CHECK: swapgs
76 0x0f 0x01 0xf8
77
78 # CHECK: rdtscp
79 0x0f 0x01 0xf9
80
81 # CHECK: vmxon
82 0xf3 0x0f 0xc7 0x30
83
84 # CHECK: vmptrld
85 0x0f 0xc7 0x30
86
87 # CHECK: vmptrst
88 0x0f 0xc7 0x38
89
90 # CHECK: vmrun
91 0x0f 0x01 0xd8
92
93 # CHECK: vmmcall
94 0x0f 0x01 0xd9
95
96 # CHECK: vmload
97 0x0f 0x01 0xda
98
99 # CHECK: vmsave
100 0x0f 0x01 0xdb
101
102 # CHECK: stgi
103 0x0f 0x01 0xdc
104
105 # CHECK: clgi
106 0x0f 0x01 0xdd
107
108 # CHECK: skinit
109 0x0f 0x01 0xde
110
111 # CHECK: invlpga
112 0x0f 0x01 0xdf
113
114 # CHECK: movl $0, -4(%ebp)
115 0xc7 0x45 0xfc 0x00 0x00 0x00 0x00
116
117 # CHECK: movl   %cr0, %ecx
118 0x0f 0x20 0xc1
119
120 # CHECK: leal   4(%esp), %ecx
121 0x8d 0x4c 0x24 0x04 
122
123 # CHECK: enter  $1, $2
124 0xc8 0x01 0x00 0x02
125
126 # CHECK: movw   $47416, -66(%ebp)
127 0x66 0xc7 0x45 0xbe 0x38 0xb9
128
129 # CHECK: vaddpd %ymm5, %ymm1, %ymm0
130 0xc4 0xc1 0x75 0x58 0xc5
131
132 # CHECK: vaddps %ymm3, %ymm1, %ymm0
133 0xc5 0xf4 0x58 0xc3
134
135 # CHECK: vandpd %ymm5, %ymm1, %ymm0
136 0xc4 0xc1 0x75 0x54 0xc5
137
138 # CHECK: vandps %ymm3, %ymm1, %ymm0
139 0xc5 0xf4 0x54 0xc3
140
141 # CHECK: vzeroall
142 0xc5 0xfc 0x77
143
144 # CHECK: vcvtps2pd %xmm0, %ymm0
145 0xc5 0xfc 0x5a 0xc0
146
147 # CHECK: vandps (%edx), %xmm1, %xmm7
148 0xc5 0xf0 0x54 0x3a
149
150 # CHECK: vcvtss2sil %xmm0, %eax
151 0xc5 0xfa 0x2d 0xc0
152
153 # CHECK: vcvtsd2si %xmm0, %eax
154 0xc5 0xfb 0x2d 0xc0
155
156 # CHECK: vcvtsd2si %xmm0, %eax
157 0xc4 0xe1 0x7b 0x2d 0xc0
158
159 # CHECK: vmaskmovpd %xmm0, %xmm1, (%eax)
160 0xc4 0xe2 0x71 0x2f 0x00
161
162 # CHECK: vmovapd %xmm0, %xmm2
163 0xc5 0xf9 0x28 0xd0
164
165 # Check these special case instructions that the immediate is not sign-extend.
166 # CHECK: blendps $129, %xmm2, %xmm1
167 0x66 0x0f 0x3a 0x0c 0xca 0x81
168
169 # CHECK: blendpd $129, %xmm2, %xmm1
170 0x66 0x0f 0x3a 0x0d 0xca 0x81
171
172 # CHECK: pblendw $129, %xmm2, %xmm1
173 0x66 0x0f 0x3a 0x0e 0xca 0x81
174
175 # CHECK: mpsadbw $129, %xmm2, %xmm1
176 0x66 0x0f 0x3a 0x42 0xca 0x81
177
178 # CHECK: dpps $129, %xmm2, %xmm1
179 0x66 0x0f 0x3a 0x40 0xca 0x81
180
181 # CHECK: dppd $129, %xmm2, %xmm1
182 0x66 0x0f 0x3a 0x41 0xca 0x81
183
184 # CHECK: insertps $129, %xmm2, %xmm1
185 0x66 0x0f 0x3a 0x21 0xca 0x81
186
187 # CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
188 0xc4 0xe3 0x55 0x0c 0xca 0x81
189
190 # CHECK: vblendps $129, (%eax), %ymm5, %ymm1
191 0xc4 0xe3 0x55 0x0c 0x08 0x81
192
193 # CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
194 0xc4 0xe3 0x55 0x0d 0xca 0x81
195
196 # CHECK: vblendpd $129, (%eax), %ymm5, %ymm1
197 0xc4 0xe3 0x55 0x0d 0x08 0x81
198
199 # CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
200 0xc4 0xe3 0x51 0x0e 0xca 0x81
201
202 # CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
203 0xc4 0xe3 0x51 0x42 0xca 0x81
204
205 # CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
206 0xc4 0xe3 0x55 0x40 0xca 0x81
207
208 # CHECK: vdpps $129, (%eax), %ymm5, %ymm1
209 0xc4 0xe3 0x55 0x40 0x08 0x81
210
211 # CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
212 0xc4 0xe3 0x51 0x41 0xca 0x81
213
214 # CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
215 0xc4 0xe3 0x69 0x21 0xcb 0x81
216
217 # CHECK: pause
218 0xf3 0x90
219
220 # CHECK: addl %eax, %edi
221 0x01 0xc7
222
223 # CHECK: addl %edi, %eax
224 0x03 0xc7
225
226 # CHECK: movl %eax, %edi
227 0x89 0xc7
228
229 # CHECK: movl %edi, %eax
230 0x8b 0xc7
231
232 # CHECK: movups %xmm1, %xmm0
233 0x0f 0x10 0xc1
234
235 # CHECK: movups %xmm0, %xmm1
236 0x0f 0x11 0xc1
237
238 # CHECK: movaps %xmm1, %xmm0
239 0x0f 0x28 0xc1
240
241 # CHECK: movaps %xmm0, %xmm1
242 0x0f 0x29 0xc1
243
244 # CHECK: movupd %xmm1, %xmm0
245 0x66 0x0f 0x10 0xc1
246
247 # CHECK: movupd %xmm0, %xmm1
248 0x66 0x0f 0x11 0xc1
249
250 # CHECK: movapd %xmm1, %xmm0
251 0x66 0x0f 0x28 0xc1
252
253 # CHECK: movapd %xmm0, %xmm1
254 0x66 0x0f 0x29 0xc1
255
256 # CHECK: vmovups %xmm1, %xmm0
257 0xc5 0xf8 0x10 0xc1
258
259 # CHECK: vmovups %xmm0, %xmm1
260 0xc5 0xf8 0x11 0xc1
261
262 # CHECK: vmovaps %xmm1, %xmm0
263 0xc5 0xf8 0x28 0xc1
264
265 # CHECK: vmovaps %xmm0, %xmm1
266 0xc5 0xf8 0x29 0xc1
267
268 # CHECK: vmovupd %xmm1, %xmm0
269 0xc5 0xf9 0x10 0xc1
270
271 # CHECK: vmovupd %xmm0, %xmm1
272 0xc5 0xf9 0x11 0xc1
273
274 # CHECK: vmovapd %xmm1, %xmm0
275 0xc5 0xf9 0x28 0xc1
276
277 # CHECK: vmovapd %xmm0, %xmm1
278 0xc5 0xf9 0x29 0xc1
279
280 # CHECK: vmovups %ymm1, %ymm0
281 0xc5 0xfc 0x10 0xc1
282
283 # CHECK: vmovups %ymm0, %ymm1
284 0xc5 0xfc 0x11 0xc1
285
286 # CHECK: vmovaps %ymm1, %ymm0
287 0xc5 0xfc 0x28 0xc1
288
289 # CHECK: vmovaps %ymm0, %ymm1
290 0xc5 0xfc 0x29 0xc1
291
292 # CHECK: movdqa %xmm1, %xmm0
293 0x66 0x0f 0x6f 0xc1
294
295 # CHECK: movdqa %xmm0, %xmm1
296 0x66 0x0f 0x7f 0xc1
297
298 # CHECK: movdqu %xmm1, %xmm0
299 0xf3 0x0f 0x6f 0xc1
300
301 # CHECK: movdqu %xmm0, %xmm1
302 0xf3 0x0f 0x7f 0xc1
303
304 # CHECK: vmovdqa %xmm1, %xmm0
305 0xc5 0xf9 0x6f 0xc1
306
307 # CHECK: vmovdqa %xmm0, %xmm1
308 0xc5 0xf9 0x7f 0xc1
309
310 # CHECK: vmovdqa %ymm1, %ymm0
311 0xc5 0xfd 0x6f 0xc1
312
313 # CHECK: vmovdqa %ymm0, %ymm1
314 0xc5 0xfd 0x7f 0xc1
315
316 # CHECK: vmovdqu %xmm1, %xmm0
317 0xc5 0xfa 0x6f 0xc1
318
319 # CHECK: vmovdqu %xmm0, %xmm1
320 0xc5 0xfa 0x7f 0xc1
321
322 # CHECK: vmovdqu %ymm1, %ymm0
323 0xc5 0xfe 0x6f 0xc1
324
325 # CHECK: vmovdqu %ymm0, %ymm1
326 0xc5 0xfe 0x7f 0xc1
327
328 # CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
329 0xc4 0xe3 0x69 0x4a 0xd9 0x41
330
331 # CHECK: vroundpd $0, %xmm0, %xmm0
332 0xc4 0xe3 0x79 0x09 0xc0 0x00
333
334 # CHECK: vroundps $0, %xmm0, %xmm0
335 0xc4 0xe3 0x79 0x08 0xc0 0x00
336
337 # CHECK: vroundpd $0, %ymm0, %ymm0
338 0xc4 0xe3 0x7d 0x09 0xc0 0x00
339
340 # CHECK: vroundps $0, %ymm0, %ymm0
341 0xc4 0xe3 0x7d 0x08 0xc0 0x00
342
343 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
344 0xc4 0xe3 0x79 0x0a 0xc0 0x00
345
346 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
347 0xc4 0xe3 0x79 0x0b 0xc0 0x00
348
349 # CHECK: invept (%eax), %eax
350 0x66 0x0f 0x38 0x80 0x00
351
352 # CHECK: invvpid (%eax), %eax
353 0x66 0x0f 0x38 0x81 0x00
354
355 # CHECK: invpcid (%eax), %eax
356 0x66 0x0f 0x38 0x82 0x00
357
358 # CHECK: nop
359 0x90
360
361 # CHECK: addb $0, %al
362 0x04 0x00
363
364 # CHECK: addw $0, %ax
365 0x66 0x05 0x00 0x00
366
367 # CHECK: addl $0, %eax
368 0x05 0x00 0x00 0x00 0x00
369
370 # CHECK: adcb $0, %al
371 0x14 0x00
372
373 # CHECK: adcw $0, %ax
374 0x66 0x15 0x00 0x00
375
376 # CHECK: adcl $0, %eax
377 0x15 0x00 0x00 0x00 0x00
378
379 # CHECK: cmpb $0, %al
380 0x3c 0x00
381
382 # CHECK: cmpw $0, %ax
383 0x66 0x3d 0x00 0x00
384
385 # CHECK: cmpl $0, %eax
386 0x3d 0x00 0x00 0x00 0x00
387
388 # CHECK: testb $0, %al
389 0xa8 0x00
390
391 # CHECK: testw $0, %ax
392 0x66 0xa9 0x00 0x00
393
394 # CHECK: testl $0, %eax
395 0xa9 0x00 0x00 0x00 0x00
396
397 # CHECK: movb 0, %al
398 0xa0 0x00 0x00 0x00 0x00
399
400 # CHECK: movw 0, %ax
401 0x66 0xa1 0x00 0x00 0x00 0x00
402
403 # CHECK: movl 0, %eax
404 0xa1 0x00 0x00 0x00 0x00
405
406 # CHECK: movb %al, 0
407 0xa2 0x00 0x00 0x00 0x00
408
409 # CHECK: movw %ax, 0
410 0x66 0xa3 0x00 0x00 0x00 0x00
411
412 # CHECK: movl %eax, 0
413 0xa3 0x00 0x00 0x00 0x00
414
415 # CHECK: vaddps %xmm3, %xmm7, %xmm0
416 0xc4 0xe1 0x00 0x58 0xc3
417
418 # CHECK: movbel (%eax), %eax
419 0x0f 0x38 0xf0 0x00
420
421 # CHECK: movbel %eax, (%eax)
422 0x0f 0x38 0xf1 0x00
423
424 # CHECK: movbew (%eax), %ax
425 0x66 0x0f 0x38 0xf0 0x00
426
427 # CHECK: movbew %ax, (%eax)
428 0x66 0x0f 0x38 0xf1 0x00
429
430 # CHECK: rdrandw %ax
431 0x66 0x0f 0xc7 0xf0
432
433 # CHECK: rdrandl %eax
434 0x0f 0xc7 0xf0
435
436 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
437 0xc4 0xe3 0x7d 0x0a 0xc0 0x00
438
439 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
440 0xc4 0xe3 0x7d 0x0b 0xc0 0x00
441
442 # CHECK: vcvtsd2si %xmm0, %eax
443 0xc4 0xe1 0x7f 0x2d 0xc0
444
445 # CHECK: vcvtsd2si %xmm0, %eax
446 0xc4 0xe1 0xff 0x2d 0xc0
447
448 # CHECK: vucomisd %xmm1, %xmm0
449 0xc5 0xfd 0x2e 0xc1
450
451 # CHECK: vucomiss %xmm1, %xmm0
452 0xc5 0xfc 0x2e 0xc1
453
454 # CHECK: vcomisd %xmm1, %xmm0
455 0xc5 0xfd 0x2f 0xc1
456
457 # CHECK: vcomiss %xmm1, %xmm0
458 0xc5 0xfc 0x2f 0xc1
459
460 # CHECK: vaddss %xmm1, %xmm0, %xmm0
461 0xc5 0xfe 0x58 0xc1
462
463 # CHECK: xsave (%eax)
464 0x0f 0xae 0x20
465
466 # CHECK: xrstor (%eax)
467 0x0f 0xae 0x28
468
469 # CHECK: xsaveopt (%eax)
470 0x0f 0xae 0x30
471
472 # CHECK: vcvtph2ps %xmm0, %xmm0
473 0xc4 0xe2 0x79 0x13 0xc0
474
475 # CHECK: vcvtph2ps (%eax), %xmm0
476 0xc4 0xe2 0x79 0x13 0x00
477
478 # CHECK: vcvtph2ps %xmm0, %ymm0
479 0xc4 0xe2 0x7d 0x13 0xc0
480
481 # CHECK: vcvtph2ps (%eax), %ymm0
482 0xc4 0xe2 0x7d 0x13 0x00
483
484 # CHECK: vcvtps2ph $0, %xmm0, %xmm0
485 0xc4 0xe3 0x79 0x1d 0xc0 0x00
486
487 # CHECK: vcvtps2ph $0, %xmm0, (%eax)
488 0xc4 0xe3 0x79 0x1d 0x00 0x00
489
490 # CHECK: vcvtps2ph $0, %ymm0, %xmm0
491 0xc4 0xe3 0x7d 0x1d 0xc0 0x00
492
493 # CHECK: vcvtps2ph $0, %ymm0, (%eax)
494 0xc4 0xe3 0x7d 0x1d 0x00 0x00
495
496 # CHECK: popcntl %eax, %eax
497 0xf3 0x0f 0xb8 0xc0
498
499 # CHECK: popcntw %ax, %ax
500 0x66 0xf3 0x0f 0xb8 0xc0
501
502 # CHECK: lzcntl %eax, %eax
503 0xf3 0x0f 0xbd 0xc0
504
505 # CHECK: lzcntw %ax, %ax
506 0x66 0xf3 0x0f 0xbd 0xc0
507
508 # CHECK: tzcntl %eax, %eax
509 0xf3 0x0f 0xbc 0xc0
510
511 # CHECK: tzcntw %ax, %ax
512 0x66 0xf3 0x0f 0xbc 0xc0
513
514 # CHECK: andnl %ecx, %edi, %eax
515 0xc4 0xe2 0x00 0xf2 0xc1
516
517 # CHECK: andnl (%eax), %edi, %eax
518 0xc4 0xe2 0x00 0xf2 0x00
519
520 # CHECK: andnl %ecx, %edi, %eax
521 0xc4 0xe2 0x80 0xf2 0xc1
522
523 # CHECK: andnl (%eax), %edi, %eax
524 0xc4 0xe2 0x80 0xf2 0x00
525
526 # CHECK: blsrl (%eax), %edi
527 0xc4 0xe2 0x40 0xf3 0x08
528
529 # CHECK: blsmskl (%eax), %edi
530 0xc4 0xe2 0x40 0xf3 0x10
531
532 # CHECK: blsil (%eax), %edi
533 0xc4 0xe2 0x40 0xf3 0x18
534
535 # CHECK: bextrl %esi, (%eax), %edx
536 0xc4 0xe2 0x08 0xf7 0x10
537
538 # CHECK: bextrl %esi, %ebx, %edx
539 0xc4 0xe2 0x08 0xf7 0xd3
540
541 # CHECK: bzhil %esi, (%eax), %edx
542 0xc4 0xe2 0x08 0xf5 0x10
543
544 # CHECK: bzhil %esi, %ebx, %edx
545 0xc4 0xe2 0x08 0xf5 0xd3
546
547 # CHECK: pextl %esp, %ecx, %edx
548 0xc4 0xe2 0x72 0xf5 0xd4
549
550 # CHECK: pextl (%eax), %ecx, %edx
551 0xc4 0xe2 0x72 0xf5 0x10
552
553 # CHECK: pdepl %esp, %ecx, %edx
554 0xc4 0xe2 0x73 0xf5 0xd4
555
556 # CHECK: pdepl (%eax), %ecx, %edx
557 0xc4 0xe2 0x73 0xf5 0x10
558
559 # CHECK: mulxl %esp, %ecx, %edx
560 0xc4 0xe2 0x73 0xf6 0xd4
561
562 # CHECK: mulxl (%eax), %ecx, %edx
563 0xc4 0xe2 0x73 0xf6 0x10
564
565 # CHECK: mulxl %esp, %ecx, %edx
566 0xc4 0xe2 0xf3 0xf6 0xd4
567
568 # CHECK: mulxl (%eax), %ecx, %edx
569 0xc4 0xe2 0xf3 0xf6 0x10
570
571 # CHECK: rorxl $1, %esp, %edx
572 0xc4 0xe3 0x7b 0xf0 0xd4 0x01
573
574 # CHECK: rorxl $31, (%eax), %edx
575 0xc4 0xe3 0x7b 0xf0 0x10 0x1f
576
577 # CHECK: shlxl %esi, (%eax), %edx
578 0xc4 0xe2 0x09 0xf7 0x10
579
580 # CHECK: shlxl %esi, %ebx, %edx
581 0xc4 0xe2 0x09 0xf7 0xd3
582
583 # CHECK: sarxl %esi, (%eax), %edx
584 0xc4 0xe2 0x0a 0xf7 0x10
585
586 # CHECK: sarxl %esi, %ebx, %edx
587 0xc4 0xe2 0x0a 0xf7 0xd3
588
589 # CHECK: shrxl %esi, (%eax), %edx
590 0xc4 0xe2 0x0b 0xf7 0x10
591
592 # CHECK: shrxl %esi, %ebx, %edx
593 0xc4 0xe2 0x0b 0xf7 0xd3