1 // RUN
: llvm-mc
-triple i386-unknown-unknown
--show-encoding
%s | FileCheck
%s
5 // CHECK
: encoding
: [0xf3,0x90]
8 // CHECK
: encoding
: [0x0f,0xae,0xf8]
11 // CHECK
: encoding
: [0x0f,0xae,0xe8]
14 // CHECK
: encoding
: [0x0f,0xae,0xf0]
17 // CHECK
: encoding
: [0x0f,0x01,0xc8]
20 // CHECK
: encoding
: [0x0f,0x01,0xc9]
24 // CHECK
: encoding
: [0x0f,0x01,0xc1]
27 // CHECK
: encoding
: [0x0f,0x01,0xc2]
30 // CHECK
: encoding
: [0x0f,0x01,0xc3]
33 // CHECK
: encoding
: [0x0f,0x01,0xc4]
36 // CHECK
: encoding
: [0x0f,0x01,0xf8]
40 // CHECK
: encoding
: [0x0f,0x01,0xf9]
43 // CHECK
: movl
%eax
, 16(%ebp
) # encoding: [0x89,0x45,0x10]
45 // CHECK
: movl
%eax
, -16(%ebp
) # encoding: [0x89,0x45,0xf0]
48 // CHECK
: testb
%bl, %cl
# encoding: [0x84,0xcb]
51 // CHECK
: cmpl %eax
, %ebx
# encoding: [0x39,0xc3]
54 // CHECK
: addw
%ax
, %ax
# encoding: [0x66,0x01,0xc0]
57 // CHECK
: shrl
%eax
# encoding: [0xd1,0xe8]
60 // CHECK
: shll
%eax
# encoding: [0xd1,0xe0]
62 // CHECK
: shll
%eax
# encoding: [0xd1,0xe0]
65 // moffset forms of moves
, rdar
://7947184
66 movb
0, %al
// CHECK
: movb
0, %al
# encoding: [0xa0,A,A,A,A]
67 movw
0, %ax
// CHECK
: movw
0, %ax
# encoding: [0x66,0xa1,A,A,A,A]
68 movl
0, %eax
// CHECK
: movl
0, %eax
# encoding: [0xa1,A,A,A,A]
73 // CHECK
: encoding
: [0xce]
76 // CHECK
: encoding
: [0xcc]
79 // CHECK
: encoding
: [0xcd,0x04]
82 // CHECK
: encoding
: [0xcd,0xff]
84 // CHECK
: pushfl
# encoding: [0x9c]
86 // CHECK
: pushfl
# encoding: [0x9c]
88 // CHECK
: popfl
# encoding: [0x9d]
90 // CHECK
: popfl
# encoding: [0x9d]
96 // CHECK
: encoding
: [0xc3]
99 // CHECK
: cmoval
%eax
, %edx
100 // CHECK
: encoding
: [0x0f,0x47,0xd0]
103 // CHECK
: cmovael
%eax
, %edx
104 // CHECK
: encoding
: [0x0f,0x43,0xd0]
107 // CHECK
: cmovbel
%eax
, %edx
108 // CHECK
: encoding
: [0x0f,0x46,0xd0]
111 // CHECK
: cmovbl
%eax
, %edx
112 // CHECK
: encoding
: [0x0f,0x42,0xd0]
115 // CHECK
: cmovbw
%bx
, %bx
119 // CHECK
: cmovbel
%eax
, %edx
120 // CHECK
: encoding
: [0x0f,0x46,0xd0]
123 // CHECK
: cmovbl
%eax
, %edx
124 // CHECK
: encoding
: [0x0f,0x42,0xd0]
127 // CHECK
: cmovel
%eax
, %edx
128 // CHECK
: encoding
: [0x0f,0x44,0xd0]
131 // CHECK
: cmovgl
%eax
, %edx
132 // CHECK
: encoding
: [0x0f,0x4f,0xd0]
135 // CHECK
: cmovgel
%eax
, %edx
136 // CHECK
: encoding
: [0x0f,0x4d,0xd0]
139 // CHECK
: cmovll
%eax
, %edx
140 // CHECK
: encoding
: [0x0f,0x4c,0xd0]
143 // CHECK
: cmovlel
%eax
, %edx
144 // CHECK
: encoding
: [0x0f,0x4e,0xd0]
147 // CHECK
: cmovbel
%eax
, %edx
148 // CHECK
: encoding
: [0x0f,0x46,0xd0]
151 // CHECK
: cmovnel
%eax
, %edx
152 // CHECK
: encoding
: [0x0f,0x45,0xd0]
155 // CHECK
: cmovael
%eax
, %edx
156 // CHECK
: encoding
: [0x0f,0x43,0xd0]
159 // CHECK
: cmoval
%eax
, %edx
160 // CHECK
: encoding
: [0x0f,0x47,0xd0]
163 // CHECK
: cmovael
%eax
, %edx
164 // CHECK
: encoding
: [0x0f,0x43,0xd0]
167 // CHECK
: cmovnel
%eax
, %edx
168 // CHECK
: encoding
: [0x0f,0x45,0xd0]
171 // CHECK
: cmovlel
%eax
, %edx
172 // CHECK
: encoding
: [0x0f,0x4e,0xd0]
175 // CHECK
: cmovgel
%eax
, %edx
176 // CHECK
: encoding
: [0x0f,0x4d,0xd0]
179 // CHECK
: cmovnel
%eax
, %edx
180 // CHECK
: encoding
: [0x0f,0x45,0xd0]
183 // CHECK
: cmovlel
%eax
, %edx
184 // CHECK
: encoding
: [0x0f,0x4e,0xd0]
187 // CHECK
: cmovll
%eax
, %edx
188 // CHECK
: encoding
: [0x0f,0x4c,0xd0]
191 // CHECK
: cmovgel
%eax
, %edx
192 // CHECK
: encoding
: [0x0f,0x4d,0xd0]
195 // CHECK
: cmovgl
%eax
, %edx
196 // CHECK
: encoding
: [0x0f,0x4f,0xd0]
199 // CHECK
: cmovnol
%eax
, %edx
200 // CHECK
: encoding
: [0x0f,0x41,0xd0]
203 // CHECK
: cmovnpl
%eax
, %edx
204 // CHECK
: encoding
: [0x0f,0x4b,0xd0]
207 // CHECK
: cmovnsl
%eax
, %edx
208 // CHECK
: encoding
: [0x0f,0x49,0xd0]
211 // CHECK
: cmovnel
%eax
, %edx
212 // CHECK
: encoding
: [0x0f,0x45,0xd0]
215 // CHECK
: cmovol
%eax
, %edx
216 // CHECK
: encoding
: [0x0f,0x40,0xd0]
219 // CHECK
: cmovpl
%eax
, %edx
220 // CHECK
: encoding
: [0x0f,0x4a,0xd0]
223 // CHECK
: cmovsl
%eax
, %edx
224 // CHECK
: encoding
: [0x0f,0x48,0xd0]
227 // CHECK
: cmovel
%eax
, %edx
228 // CHECK
: encoding
: [0x0f,0x44,0xd0]
231 // CHECK
: cmpps $
0, %xmm0
, %xmm1
232 // CHECK
: encoding
: [0x0f,0xc2,0xc8,0x00]
233 cmpps $
0, %xmm0
, %xmm1
234 // CHECK
: cmpps $
0, (%eax
), %xmm1
235 // CHECK
: encoding
: [0x0f,0xc2,0x08,0x00]
236 cmpps $
0, 0(%eax
), %xmm1
237 // CHECK
: cmppd $
0, %xmm0
, %xmm1
238 // CHECK
: encoding
: [0x66,0x0f,0xc2,0xc8,0x00]
239 cmppd $
0, %xmm0
, %xmm1
240 // CHECK
: cmppd $
0, (%eax
), %xmm1
241 // CHECK
: encoding
: [0x66,0x0f,0xc2,0x08,0x00]
242 cmppd $
0, 0(%eax
), %xmm1
243 // CHECK
: cmpss $
0, %xmm0
, %xmm1
244 // CHECK
: encoding
: [0xf3,0x0f,0xc2,0xc8,0x00]
245 cmpss $
0, %xmm0
, %xmm1
246 // CHECK
: cmpss $
0, (%eax
), %xmm1
247 // CHECK
: encoding
: [0xf3,0x0f,0xc2,0x08,0x00]
248 cmpss $
0, 0(%eax
), %xmm1
249 // CHECK
: cmpsd $
0, %xmm0
, %xmm1
250 // CHECK
: encoding
: [0xf2,0x0f,0xc2,0xc8,0x00]
251 cmpsd $
0, %xmm0
, %xmm1
252 // CHECK
: cmpsd $
0, (%eax
), %xmm1
253 // CHECK
: encoding
: [0xf2,0x0f,0xc2,0x08,0x00]
254 cmpsd $
0, 0(%eax
), %xmm1
256 // Check matching of instructions which embed the SSE comparison code.
258 // CHECK
: cmpps $
0, %xmm0
, %xmm1
259 // CHECK
: encoding
: [0x0f,0xc2,0xc8,0x00]
262 // CHECK
: cmppd $
1, %xmm0
, %xmm1
263 // CHECK
: encoding
: [0x66,0x0f,0xc2,0xc8,0x01]
266 // CHECK
: cmpss $
2, %xmm0
, %xmm1
267 // CHECK
: encoding
: [0xf3,0x0f,0xc2,0xc8,0x02]
270 // CHECK
: cmppd $
3, %xmm0
, %xmm1
271 // CHECK
: encoding
: [0x66,0x0f,0xc2,0xc8,0x03]
272 cmpunordpd
%xmm0
, %xmm1
274 // CHECK
: cmpps $
4, %xmm0
, %xmm1
275 // CHECK
: encoding
: [0x0f,0xc2,0xc8,0x04]
276 cmpneqps
%xmm0
, %xmm1
278 // CHECK
: cmppd $
5, %xmm0
, %xmm1
279 // CHECK
: encoding
: [0x66,0x0f,0xc2,0xc8,0x05]
280 cmpnltpd
%xmm0
, %xmm1
282 // CHECK
: cmpss $
6, %xmm0
, %xmm1
283 // CHECK
: encoding
: [0xf3,0x0f,0xc2,0xc8,0x06]
284 cmpnless
%xmm0
, %xmm1
286 // CHECK
: cmpsd $
7, %xmm0
, %xmm1
287 // CHECK
: encoding
: [0xf2,0x0f,0xc2,0xc8,0x07]
288 cmpordsd
%xmm0
, %xmm1
291 // CHECK
: fmul %st(0)
292 // CHECK
: encoding
: [0xd8,0xc8]
295 // CHECK
: fadd %st(0)
296 // CHECK
: encoding
: [0xd8,0xc0]
299 // CHECK
: fsub %st(0)
300 // CHECK
: encoding
: [0xd8,0xe0]
303 // CHECK
: fsubr
%st(0)
304 // CHECK
: encoding
: [0xd8,0xe8]
307 // CHECK
: fdivr
%st(0)
308 // CHECK
: encoding
: [0xd8,0xf8]
311 // CHECK
: fdiv %st(0)
312 // CHECK
: encoding
: [0xd8,0xf0]
316 // CHECK
: movl
%cs
, %eax
317 // CHECK
: encoding
: [0x8c,0xc8]
320 // CHECK
: movw
%cs
, %ax
321 // CHECK
: encoding
: [0x66,0x8c,0xc8]
324 // CHECK
: movl
%cs
, (%eax
)
325 // CHECK
: encoding
: [0x8c,0x08]
328 // CHECK
: movw
%cs
, (%eax
)
329 // CHECK
: encoding
: [0x66,0x8c,0x08]
332 // CHECK
: movl
%eax
, %cs
333 // CHECK
: encoding
: [0x8e,0xc8]
336 // CHECK
: movl
(%eax
), %cs
337 // CHECK
: encoding
: [0x8e,0x08]
340 // CHECK
: movw
(%eax
), %cs
341 // CHECK
: encoding
: [0x66,0x8e,0x08]
345 // CHECK
: movl
%cr0, %eax
346 // CHECK
: encoding
: [0x0f,0x20,0xc0]
349 // CHECK
: movl
%cr1, %eax
350 // CHECK
: encoding
: [0x0f,0x20,0xc8]
353 // CHECK
: movl
%cr2
, %eax
354 // CHECK
: encoding
: [0x0f,0x20,0xd0]
357 // CHECK
: movl
%cr3
, %eax
358 // CHECK
: encoding
: [0x0f,0x20,0xd8]
361 // CHECK
: movl
%cr4
, %eax
362 // CHECK
: encoding
: [0x0f,0x20,0xe0]
365 // CHECK
: movl
%dr0
, %eax
366 // CHECK
: encoding
: [0x0f,0x21,0xc0]
369 // CHECK
: movl
%dr1
, %eax
370 // CHECK
: encoding
: [0x0f,0x21,0xc8]
373 // CHECK
: movl
%dr1
, %eax
374 // CHECK
: encoding
: [0x0f,0x21,0xc8]
377 // CHECK
: movl
%dr2
, %eax
378 // CHECK
: encoding
: [0x0f,0x21,0xd0]
381 // CHECK
: movl
%dr3
, %eax
382 // CHECK
: encoding
: [0x0f,0x21,0xd8]
385 // CHECK
: movl
%dr4
, %eax
386 // CHECK
: encoding
: [0x0f,0x21,0xe0]
389 // CHECK
: movl
%dr5
, %eax
390 // CHECK
: encoding
: [0x0f,0x21,0xe8]
393 // CHECK
: movl
%dr6
, %eax
394 // CHECK
: encoding
: [0x0f,0x21,0xf0]
397 // CHECK
: movl
%dr7
, %eax
398 // CHECK
: encoding
: [0x0f,0x21,0xf8]
403 // CHECK
: encoding
: [0x9b]
407 // CHECK
: [0x65,0x8b,0x05,0x7c,0x00,0x00,0x00]
408 // FIXME
: This is
a correct bug poor encoding
: Use
65 a1
7c
00 00 00
412 // CHECK
: encoding
: [0x60]
416 // CHECK
: encoding
: [0x61]
420 // CHECK
: encoding
: [0x60]
424 // CHECK
: encoding
: [0x61]
427 // CHECK
: jmpl
*8(%eax
)
428 // CHECK
: encoding
: [0xff,0x60,0x08]
432 // CHECK
: lcalll $
2, $
4660
433 // CHECK
: encoding
: [0x9a,0x34,0x12,0x00,0x00,0x02,0x00]
441 // CHECK
: encoding
: [0x67,0xe3,A]
444 // CHECK
: encoding
: [0xe3,A]
449 // CHECK
: encoding
: [0xcf]
452 // CHECK
: encoding
: [0x66,0xcf]
455 // CHECK
: encoding
: [0xcf]
460 // CHECK
: encoding
: [0x0f,0x07]
463 // CHECK
: encoding
: [0x0f,0x07]
466 testl
%ecx
, -24(%ebp
)
467 // CHECK
: testl
-24(%ebp
), %ecx
468 testl
-24(%ebp
), %ecx
469 // CHECK
: testl
-24(%ebp
), %ecx
475 // CHECK
: encoding
: [0x0e]
478 // CHECK
: encoding
: [0x1e]
481 // CHECK
: encoding
: [0x16]
484 // CHECK
: encoding
: [0x06]
487 // CHECK
: encoding
: [0x0f,0xa0]
490 // CHECK
: encoding
: [0x0f,0xa8]
494 // CHECK
: encoding
: [0x66,0x0e]
497 // CHECK
: encoding
: [0x66,0x1e]
500 // CHECK
: encoding
: [0x66,0x16]
503 // CHECK
: encoding
: [0x66,0x06]
506 // CHECK
: encoding
: [0x66,0x0f,0xa0]
509 // CHECK
: encoding
: [0x66,0x0f,0xa8]
513 // CHECK
: encoding
: [0x17]
516 // CHECK
: encoding
: [0x1f]
519 // CHECK
: encoding
: [0x07]
549 // CHECK
: lcalll $
31438, $
31438
550 // CHECK
: lcalll $
31438, $
31438
551 // CHECK
: ljmpl $
31438, $
31438
552 // CHECK
: ljmpl $
31438, $
31438
554 calll $
0x7ace,$
0x7ace
555 lcalll $
0x7ace,$
0x7ace
557 ljmpl $
0x7ace,$
0x7ace
559 // CHECK
: lcalll $
31438, $
31438
560 // CHECK
: lcalll $
31438, $
31438
561 // CHECK
: ljmpl $
31438, $
31438
562 // CHECK
: ljmpl $
31438, $
31438
565 lcall $
0x7ace,$
0x7ace
573 // CHECK
: incb
%al
# encoding: [0xfe,0xc0]
576 // CHECK
: incw
%ax
# encoding: [0x66,0x40]
579 // CHECK
: incl
%eax
# encoding: [0x40]
582 // CHECK
: decb
%al
# encoding: [0xfe,0xc8]
585 // CHECK
: decw
%ax
# encoding: [0x66,0x48]
588 // CHECK
: decl
%eax
# encoding: [0x48]
591 // CHECK
: pshufw $
14, %mm4
, %mm0
# encoding: [0x0f,0x70,0xc4,0x0e]
592 pshufw $
14, %mm4
, %mm0
594 // CHECK
: pshufw $
90, %mm4
, %mm0
# encoding: [0x0f,0x70,0xc4,0x5a]
596 pshufw $
90, %mm4
, %mm0
600 // CHECK
: encoding
: [0x37]
604 // CHECK
: encoding
: [0xd5,0x01]
608 // CHECK
: encoding
: [0xd5,0x0a]
612 // CHECK
: encoding
: [0xd5,0x0a]
616 // CHECK
: encoding
: [0xd4,0x02]
620 // CHECK
: encoding
: [0xd4,0x0a]
624 // CHECK
: encoding
: [0xd4,0x0a]
628 // CHECK
: encoding
: [0x3f]
632 // CHECK
: encoding
: [0x27]
636 // CHECK
: encoding
: [0x2f]
639 // CHECK
: retw $
31438
640 // CHECK
: encoding
: [0x66,0xc2,0xce,0x7a]
643 // CHECK
: lretw $
31438
644 // CHECK
: encoding
: [0x66,0xca,0xce,0x7a]
647 // CHECK
: bound
2(%eax
), %bx
648 // CHECK
: encoding
: [0x66,0x62,0x58,0x02]
651 // CHECK
: bound
4(%ebx
), %ecx
652 // CHECK
: encoding
: [0x62,0x4b,0x04]
655 // CHECK
: arpl
%bx
, %bx
656 // CHECK
: encoding
: [0x63,0xdb]
659 // CHECK
: arpl
%bx
, 6(%ecx
)
660 // CHECK
: encoding
: [0x63,0x59,0x06]
663 // CHECK
: lgdtw
4(%eax
)
664 // CHECK
: encoding
: [0x66,0x0f,0x01,0x50,0x04]
667 // CHECK
: lgdt
4(%eax
)
668 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
671 // CHECK
: lgdt
4(%eax
)
672 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
675 // CHECK
: lidtw
4(%eax
)
676 // CHECK
: encoding
: [0x66,0x0f,0x01,0x58,0x04]
679 // CHECK
: lidt
4(%eax
)
680 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
683 // CHECK
: lidt
4(%eax
)
684 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
687 // CHECK
: sgdtw
4(%eax
)
688 // CHECK
: encoding
: [0x66,0x0f,0x01,0x40,0x04]
691 // CHECK
: sgdt
4(%eax
)
692 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
695 // CHECK
: sgdt
4(%eax
)
696 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
699 // CHECK
: sidtw
4(%eax
)
700 // CHECK
: encoding
: [0x66,0x0f,0x01,0x48,0x04]
703 // CHECK
: sidt
4(%eax
)
704 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
707 // CHECK
: sidt
4(%eax
)
708 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
711 // CHECK
: fcomip
%st(2), %st(0)
712 // CHECK
: encoding
: [0xdf,0xf2]
715 // CHECK
: fcomip
%st(2), %st(0)
716 // CHECK
: encoding
: [0xdf,0xf2]
719 // CHECK
: fcomip
%st(1), %st(0)
720 // CHECK
: encoding
: [0xdf,0xf1]
723 // CHECK
: fucomip
%st(2), %st(0)
724 // CHECK
: encoding
: [0xdf,0xea]
727 // CHECK
: fucomip
%st(2), %st(0)
728 // CHECK
: encoding
: [0xdf,0xea]
731 // CHECK
: fucomip
%st(1), %st(0)
732 // CHECK
: encoding
: [0xdf,0xe9]
735 // CHECK
: fldcw
32493
736 // CHECK
: encoding
: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
739 // CHECK
: fldcw
32493
740 // CHECK
: encoding
: [0xd9,0x2d,0xed,0x7e,0x00,0x00]
743 // CHECK
: fnstcw
32493
744 // CHECK
: encoding
: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
747 // CHECK
: fnstcw
32493
748 // CHECK
: encoding
: [0xd9,0x3d,0xed,0x7e,0x00,0x00]
752 // CHECK
: encoding
: [0x9b]
756 // CHECK
: encoding
: [0x9b]
759 // CHECK
: fnstsw
32493
760 // CHECK
: encoding
: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
763 // CHECK
: fnstsw
32493
764 // CHECK
: encoding
: [0xdd,0x3d,0xed,0x7e,0x00,0x00]
768 // CHECK
: encoding
: [0x9b]
772 // CHECK
: encoding
: [0x9b]
776 // CHECK
: encoding
: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
780 // CHECK
: encoding
: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00]
784 // CHECK
: encoding
: [0x9b]
788 // CHECK
: encoding
: [0xdb,0xe2]
792 // CHECK
: encoding
: [0x0f,0x0b]
796 // CHECK
: encoding
: [0x0f,0x0b]
800 // CHECK
: encoding
: [0x0f,0xb9]