1 // RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s
7 // CHECK: encoding: [0x66,0xbb,0x78,0x56,0x34,0x12]
10 // CHECK: encoding: [0xf3,0x90]
13 // CHECK: encoding: [0x0f,0xae,0xf8]
16 // CHECK: encoding: [0x0f,0xae,0xe8]
20 // CHECK: encoding: [0x0f,0x01,0xdc]
23 // CHECK: encoding: [0x0f,0x01,0xdd]
27 // CHECK: encoding: [0x0f,0x01,0xf9]
30 // CHECK: movl %eax, 16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0x10]
32 // CHECK: movl %eax, -16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0xf0]
35 // CHECK: testb %bl, %cl # encoding: [0x84,0xcb]
38 // CHECK: cmpl %eax, %ebx # encoding: [0x66,0x39,0xc3]
41 // CHECK: addw %ax, %ax # encoding: [0x01,0xc0]
44 // CHECK: shrl %eax # encoding: [0x66,0xd1,0xe8]
47 // CHECK: shll %eax # encoding: [0x66,0xd1,0xe0]
49 // CHECK: shll %eax # encoding: [0x66,0xd1,0xe0]
54 // CHECK: encoding: [0xce]
57 // CHECK: encoding: [0xcc]
60 // CHECK: encoding: [0xcd,0x04]
63 // CHECK: encoding: [0xcd,0xff]
65 // CHECK: pushfw # encoding: [0x9c]
67 // CHECK: pushfl # encoding: [0x66,0x9c]
69 // CHECK: popfw # encoding: [0x9d]
71 // CHECK: popfl # encoding: [0x66,0x9d]
76 // CHECK: encoding: [0x66,0xc3]
78 // CHECK: cmoval %eax, %edx
79 // CHECK: encoding: [0x66,0x0f,0x47,0xd0]
82 // CHECK: cmovael %eax, %edx
83 // CHECK: encoding: [0x66,0x0f,0x43,0xd0]
86 // CHECK: cmovbel %eax, %edx
87 // CHECK: encoding: [0x66,0x0f,0x46,0xd0]
90 // CHECK: cmovbl %eax, %edx
91 // CHECK: encoding: [0x66,0x0f,0x42,0xd0]
94 // CHECK: cmovbw %bx, %bx
98 // CHECK: cmovbel %eax, %edx
99 // CHECK: encoding: [0x66,0x0f,0x46,0xd0]
102 // CHECK: cmovbl %eax, %edx
103 // CHECK: encoding: [0x66,0x0f,0x42,0xd0]
106 // CHECK: cmovel %eax, %edx
107 // CHECK: encoding: [0x66,0x0f,0x44,0xd0]
110 // CHECK: cmovgl %eax, %edx
111 // CHECK: encoding: [0x66,0x0f,0x4f,0xd0]
114 // CHECK: cmovgel %eax, %edx
115 // CHECK: encoding: [0x66,0x0f,0x4d,0xd0]
118 // CHECK: cmovll %eax, %edx
119 // CHECK: encoding: [0x66,0x0f,0x4c,0xd0]
122 // CHECK: cmovlel %eax, %edx
123 // CHECK: encoding: [0x66,0x0f,0x4e,0xd0]
126 // CHECK: cmovbel %eax, %edx
127 // CHECK: encoding: [0x66,0x0f,0x46,0xd0]
130 // CHECK: cmovnel %eax, %edx
131 // CHECK: encoding: [0x66,0x0f,0x45,0xd0]
134 // CHECK: cmovael %eax, %edx
135 // CHECK: encoding: [0x66,0x0f,0x43,0xd0]
138 // CHECK: cmoval %eax, %edx
139 // CHECK: encoding: [0x66,0x0f,0x47,0xd0]
142 // CHECK: cmovael %eax, %edx
143 // CHECK: encoding: [0x66,0x0f,0x43,0xd0]
146 // CHECK: cmovnel %eax, %edx
147 // CHECK: encoding: [0x66,0x0f,0x45,0xd0]
150 // CHECK: cmovlel %eax, %edx
151 // CHECK: encoding: [0x66,0x0f,0x4e,0xd0]
154 // CHECK: cmovgel %eax, %edx
155 // CHECK: encoding: [0x66,0x0f,0x4d,0xd0]
158 // CHECK: cmovnel %eax, %edx
159 // CHECK: encoding: [0x66,0x0f,0x45,0xd0]
162 // CHECK: cmovlel %eax, %edx
163 // CHECK: encoding: [0x66,0x0f,0x4e,0xd0]
166 // CHECK: cmovll %eax, %edx
167 // CHECK: encoding: [0x66,0x0f,0x4c,0xd0]
170 // CHECK: cmovgel %eax, %edx
171 // CHECK: encoding: [0x66,0x0f,0x4d,0xd0]
174 // CHECK: cmovgl %eax, %edx
175 // CHECK: encoding: [0x66,0x0f,0x4f,0xd0]
178 // CHECK: cmovnol %eax, %edx
179 // CHECK: encoding: [0x66,0x0f,0x41,0xd0]
182 // CHECK: cmovnpl %eax, %edx
183 // CHECK: encoding: [0x66,0x0f,0x4b,0xd0]
186 // CHECK: cmovnsl %eax, %edx
187 // CHECK: encoding: [0x66,0x0f,0x49,0xd0]
190 // CHECK: cmovnel %eax, %edx
191 // CHECK: encoding: [0x66,0x0f,0x45,0xd0]
194 // CHECK: cmovol %eax, %edx
195 // CHECK: encoding: [0x66,0x0f,0x40,0xd0]
198 // CHECK: cmovpl %eax, %edx
199 // CHECK: encoding: [0x66,0x0f,0x4a,0xd0]
202 // CHECK: cmovsl %eax, %edx
203 // CHECK: encoding: [0x66,0x0f,0x48,0xd0]
206 // CHECK: cmovel %eax, %edx
207 // CHECK: encoding: [0x66,0x0f,0x44,0xd0]
210 // CHECK: fmul %st(0)
211 // CHECK: encoding: [0xd8,0xc8]
214 // CHECK: fadd %st(0)
215 // CHECK: encoding: [0xd8,0xc0]
218 // CHECK: fsub %st(0)
219 // CHECK: encoding: [0xd8,0xe0]
222 // CHECK: fsubr %st(0)
223 // CHECK: encoding: [0xd8,0xe8]
226 // CHECK: fdivr %st(0)
227 // CHECK: encoding: [0xd8,0xf8]
230 // CHECK: fdiv %st(0)
231 // CHECK: encoding: [0xd8,0xf0]
234 // CHECK: movl %cs, %eax
235 // CHECK: encoding: [0x66,0x8c,0xc8]
238 // CHECK: movw %cs, %ax
239 // CHECK: encoding: [0x8c,0xc8]
242 // CHECK: movl %cs, (%eax)
243 // CHECK: encoding: [0x67,0x66,0x8c,0x08]
246 // CHECK: movw %cs, (%eax)
247 // CHECK: encoding: [0x67,0x8c,0x08]
250 // CHECK: movl %eax, %cs
251 // CHECK: encoding: [0x66,0x8e,0xc8]
254 // CHECK: movl (%eax), %cs
255 // CHECK: encoding: [0x67,0x66,0x8e,0x08]
258 // CHECK: movw (%eax), %cs
259 // CHECK: encoding: [0x67,0x8e,0x08]
262 // CHECK: movl %cr0, %eax
263 // CHECK: encoding: [0x0f,0x20,0xc0]
266 // CHECK: movl %cr1, %eax
267 // CHECK: encoding: [0x0f,0x20,0xc8]
270 // CHECK: movl %cr2, %eax
271 // CHECK: encoding: [0x0f,0x20,0xd0]
274 // CHECK: movl %cr3, %eax
275 // CHECK: encoding: [0x0f,0x20,0xd8]
278 // CHECK: movl %cr4, %eax
279 // CHECK: encoding: [0x0f,0x20,0xe0]
282 // CHECK: movl %dr0, %eax
283 // CHECK: encoding: [0x0f,0x21,0xc0]
286 // CHECK: movl %dr1, %eax
287 // CHECK: encoding: [0x0f,0x21,0xc8]
290 // CHECK: movl %dr1, %eax
291 // CHECK: encoding: [0x0f,0x21,0xc8]
294 // CHECK: movl %dr2, %eax
295 // CHECK: encoding: [0x0f,0x21,0xd0]
298 // CHECK: movl %dr3, %eax
299 // CHECK: encoding: [0x0f,0x21,0xd8]
302 // CHECK: movl %dr4, %eax
303 // CHECK: encoding: [0x0f,0x21,0xe0]
306 // CHECK: movl %dr5, %eax
307 // CHECK: encoding: [0x0f,0x21,0xe8]
310 // CHECK: movl %dr6, %eax
311 // CHECK: encoding: [0x0f,0x21,0xf0]
314 // CHECK: movl %dr7, %eax
315 // CHECK: encoding: [0x0f,0x21,0xf8]
319 // CHECK: encoding: [0x9b]
323 // CHECK: encoding: [0x60]
327 // CHECK: encoding: [0x61]
331 // CHECK: encoding: [0x60]
335 // CHECK: encoding: [0x61]
339 // CHECK: encoding: [0x66,0x60]
343 // CHECK: encoding: [0x66,0x61]
346 // CHECK: jmpw *8(%eax)
347 // CHECK: encoding: [0x67,0xff,0x60,0x08]
350 // CHECK: jmpl *8(%eax)
351 // CHECK: encoding: [0x67,0x66,0xff,0x60,0x08]
354 // CHECK: lcalll $2, $4660
355 // CHECK: encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
362 // CHECK: encoding: [0xe3,A]
365 // CHECK: encoding: [0x67,0xe3,A]
369 // CHECK: encoding: [0xcf]
372 // CHECK: encoding: [0xcf]
375 // CHECK: encoding: [0x66,0xcf]
379 // CHECK: encoding: [0x0f,0x07]
382 // CHECK: encoding: [0x0f,0x07]
384 testl %ecx, -24(%ebp)
385 // CHECK: testl -24(%ebp), %ecx
386 testl -24(%ebp), %ecx
387 // CHECK: testl -24(%ebp), %ecx
392 // CHECK: encoding: [0x0e]
395 // CHECK: encoding: [0x1e]
398 // CHECK: encoding: [0x16]
401 // CHECK: encoding: [0x06]
404 // CHECK: encoding: [0x0f,0xa0]
407 // CHECK: encoding: [0x0f,0xa8]
411 // CHECK: encoding: [0x0e]
414 // CHECK: encoding: [0x1e]
417 // CHECK: encoding: [0x16]
420 // CHECK: encoding: [0x06]
423 // CHECK: encoding: [0x0f,0xa0]
426 // CHECK: encoding: [0x0f,0xa8]
430 // CHECK: encoding: [0x66,0x0e]
433 // CHECK: encoding: [0x66,0x1e]
436 // CHECK: encoding: [0x66,0x16]
439 // CHECK: encoding: [0x66,0x06]
442 // CHECK: encoding: [0x66,0x0f,0xa0]
445 // CHECK: encoding: [0x66,0x0f,0xa8]
449 // CHECK: encoding: [0x17]
452 // CHECK: encoding: [0x1f]
455 // CHECK: encoding: [0x07]
459 // CHECK: encoding: [0x66,0x17]
462 // CHECK: encoding: [0x66,0x1f]
465 // CHECK: encoding: [0x66,0x07]
490 setneb %cl // CHECK: setne %cl
491 setcb %bl // CHECK: setb %bl
492 setnaeb %bl // CHECK: setb %bl
495 // CHECK: lcalll $31438, $31438
496 // CHECK: lcalll $31438, $31438
497 // CHECK: ljmpl $31438, $31438
498 // CHECK: ljmpl $31438, $31438
500 calll $0x7ace,$0x7ace
501 lcalll $0x7ace,$0x7ace
503 ljmpl $0x7ace,$0x7ace
505 // CHECK: lcallw $31438, $31438
506 // CHECK: lcallw $31438, $31438
507 // CHECK: ljmpw $31438, $31438
508 // CHECK: ljmpw $31438, $31438
510 callw $0x7ace,$0x7ace
511 lcallw $0x7ace,$0x7ace
513 ljmpw $0x7ace,$0x7ace
515 // CHECK: lcallw $31438, $31438
516 // CHECK: lcallw $31438, $31438
517 // CHECK: ljmpw $31438, $31438
518 // CHECK: ljmpw $31438, $31438
521 lcall $0x7ace,$0x7ace
528 // CHECK: incb %al # encoding: [0xfe,0xc0]
531 // CHECK: incw %ax # encoding: [0x40]
534 // CHECK: incl %eax # encoding: [0x66,0x40]
537 // CHECK: decb %al # encoding: [0xfe,0xc8]
540 // CHECK: decw %ax # encoding: [0x48]
543 // CHECK: decl %eax # encoding: [0x66,0x48]
546 // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e]
547 pshufw $14, %mm4, %mm0
549 // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a]
550 pshufw $90, %mm4, %mm0
553 // CHECK: encoding: [0x37]
557 // CHECK: encoding: [0xd5,0x01]
561 // CHECK: encoding: [0xd5,0x0a]
565 // CHECK: encoding: [0xd5,0x0a]
569 // CHECK: encoding: [0xd4,0x02]
573 // CHECK: encoding: [0xd4,0x0a]
577 // CHECK: encoding: [0xd4,0x0a]
581 // CHECK: encoding: [0x3f]
585 // CHECK: encoding: [0x27]
589 // CHECK: encoding: [0x2f]
592 // CHECK: retw $31438
593 // CHECK: encoding: [0xc2,0xce,0x7a]
596 // CHECK: lretw $31438
597 // CHECK: encoding: [0xca,0xce,0x7a]
600 // CHECK: retw $31438
601 // CHECK: encoding: [0xc2,0xce,0x7a]
604 // CHECK: lretw $31438
605 // CHECK: encoding: [0xca,0xce,0x7a]
608 // CHECK: retl $31438
609 // CHECK: encoding: [0x66,0xc2,0xce,0x7a]
612 // CHECK: lretl $31438
613 // CHECK: encoding: [0x66,0xca,0xce,0x7a]
616 // CHECK: bound 2(%eax), %bx
617 // CHECK: encoding: [0x67,0x62,0x58,0x02]
620 // CHECK: bound 4(%ebx), %ecx
621 // CHECK: encoding: [0x67,0x66,0x62,0x4b,0x04]
624 // CHECK: arpl %bx, %bx
625 // CHECK: encoding: [0x63,0xdb]
628 // CHECK: arpl %bx, 6(%ecx)
629 // CHECK: encoding: [0x67,0x63,0x59,0x06]
632 // CHECK: lgdtw 4(%eax)
633 // CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04]
636 // CHECK: lgdtw 4(%eax)
637 // CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04]
640 // CHECK: lgdtl 4(%eax)
641 // CHECK: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04]
644 // CHECK: lidtw 4(%eax)
645 // CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04]
648 // CHECK: lidtw 4(%eax)
649 // CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04]
652 // CHECK: lidtl 4(%eax)
653 // CHECK: encoding: [0x67,0x66,0x0f,0x01,0x58,0x04]
656 // CHECK: sgdtw 4(%eax)
657 // CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04]
660 // CHECK: sgdtw 4(%eax)
661 // CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04]
664 // CHECK: sgdtl 4(%eax)
665 // CHECK: encoding: [0x67,0x66,0x0f,0x01,0x40,0x04]
668 // CHECK: sidtw 4(%eax)
669 // CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04]
672 // CHECK: sidtw 4(%eax)
673 // CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04]
676 // CHECK: sidtl 4(%eax)
677 // CHECK: encoding: [0x67,0x66,0x0f,0x01,0x48,0x04]
680 // CHECK: fcompi %st(2)
681 // CHECK: encoding: [0xdf,0xf2]
684 // CHECK: fcompi %st(2)
685 // CHECK: encoding: [0xdf,0xf2]
689 // CHECK: encoding: [0xdf,0xf1]
692 // CHECK: fucompi %st(2)
693 // CHECK: encoding: [0xdf,0xea]
696 // CHECK: fucompi %st(2)
697 // CHECK: encoding: [0xdf,0xea]
701 // CHECK: encoding: [0xdf,0xe9]
705 // CHECK: encoding: [0x9b]
709 // CHECK: encoding: [0xdb,0xe2]
713 // CHECK: encoding: [0x0f,0x0b]
717 // CHECK: encoding: [0x0f,0x0b]
721 // CHECK: encoding: [0x0f,0xb9]
725 // CHECK: encoding: [0xe1,A]
729 // CHECK: encoding: [0xe0,A]
732 // CHECK: outsb # encoding: [0x6e]
739 // CHECK: outsw # encoding: [0x6f]
746 // CHECK: outsl # encoding: [0x66,0x6f]
752 // CHECK: insb # encoding: [0x6c]
757 // CHECK: insw # encoding: [0x6d]
762 // CHECK: insl # encoding: [0x66,0x6d]
767 // CHECK: movsb # encoding: [0xa4]
771 movsb %ds:(%si), %es:(%di)
772 movsb (%si), %es:(%di)
774 // CHECK: movsw # encoding: [0xa5]
778 movsw %ds:(%si), %es:(%di)
779 movsw (%si), %es:(%di)
781 // CHECK: movsl # encoding: [0x66,0xa5]
785 movsl %ds:(%si), %es:(%di)
786 movsl (%si), %es:(%di)
788 // CHECK: lodsb # encoding: [0xac]
799 // CHECK: lodsw # encoding: [0xad]
810 // CHECK: lodsl # encoding: [0x66,0xad]
816 lodsl %ds:(%si), %eax
821 // CHECK: stosb # encoding: [0xaa]
828 // CHECK: stosw # encoding: [0xab]
835 // CHECK: stosl # encoding: [0x66,0xab]
839 stosl %eax, %es:(%di)
843 // CHECK: encoding: [0x0f,0x00,0xc8]
847 // CHECK: encoding: [0x66,0x0f,0x00,0xc8]
852 // CHECK: encoding: [0xde,0xe1]
855 // CHECK: fsubp %st(2)
856 // CHECK: encoding: [0xde,0xe2]
859 // CHECK: xchgl %eax, %eax
860 // CHECK: encoding: [0x66,0x90]
863 // CHECK: xchgw %ax, %ax
864 // CHECK: encoding: [0x90]
867 // CHECK: xchgl %ecx, %eax
868 // CHECK: encoding: [0x66,0x91]
871 // CHECK: xchgl %ecx, %eax
872 // CHECK: encoding: [0x66,0x91]
876 // CHECK: encoding: [0xc3]
880 // CHECK: encoding: [0x66,0xc3]
884 // CHECK: encoding: [0xcb]
888 // CHECK: encoding: [0x66,0xcb]