1 // RUN
: llvm-mc
-triple x86_64-unknown-unknown
-show-encoding
%s
> %t 2> %t.err
2 // RUN
: FileCheck
< %t %s
3 // RUN
: FileCheck
--check-prefix
=CHECK-STDERR
< %t.err
%s
7 // CHECK
: encoding
: [0x0f,0x01,0xc8]
8 monitor
%rax
, %rcx
, %rdx
10 // CHECK
: encoding
: [0x0f,0x01,0xc8]
13 // CHECK
: encoding
: [0x0f,0x01,0xc9]
16 // CHECK
: encoding
: [0x0f,0x01,0xc9]
20 // CHECK
: addl $
0, %eax
22 // CHECK
: addb $
255, %al
24 // CHECK
: orq
%rax
, %rdx
26 // CHECK
: shlq $
3, %rax
30 // CHECK
: subb
%al
, %al
33 // CHECK
: addl $
24, %eax
36 // CHECK
: movl
%eax
, 10(%ebp
)
38 // CHECK
: movl
%eax
, 10(%ebp
,%ebx
)
39 movl
%eax
, 10(%ebp
, %ebx
)
40 // CHECK
: movl
%eax
, 10(%ebp
,%ebx
,4)
41 movl
%eax
, 10(%ebp
, %ebx
, 4)
42 // CHECK
: movl
%eax
, 10(,%ebx
,4)
43 movl
%eax
, 10(, %ebx
, 4)
45 // CHECK
: movl
0, %eax
47 // CHECK
: movl $
0, %eax
56 // FIXME
: Check that this matches SUB32ri8
57 // CHECK
: subl $
1, %eax
60 // FIXME
: Check that this matches SUB32ri8
61 // CHECK
: subl $
-1, %eax
64 // FIXME
: Check that this matches SUB32ri
65 // CHECK
: subl $
256, %eax
68 // FIXME
: Check that this matches XOR64ri8
69 // CHECK
: xorq $
1, %rax
72 // FIXME
: Check that this matches XOR64ri32
73 // CHECK
: xorq $
256, %rax
76 // FIXME
: Check that this matches SUB8rr
77 // CHECK
: subb
%al
, %bl
80 // FIXME
: Check that this matches SUB16rr
81 // CHECK
: subw
%ax
, %bx
84 // FIXME
: Check that this matches SUB32rr
85 // CHECK
: subl
%eax
, %ebx
88 // FIXME
: Check that this matches the correct instruction.
92 // FIXME
: Check that this matches the correct instruction.
93 // CHECK
: shldl
%cl
, %eax
, %ebx
96 // CHECK
: shll $
2, %eax
99 // CHECK
: shll $
2, %eax
121 smovb
// CHECK
: movsb
122 smovw
// CHECK
: movsw
123 smovl
// CHECK
: movsl
124 smovq
// CHECK
: movsq
139 // NOTE
: repz
and repe have the same opcode as rep
144 // NOTE
: repnz has the same opcode as repne
149 // NOTE
: repe
and repz have the same opcode as rep
159 // CHECK
: cmpxchgb
%al
, (%ebx
)
160 lock;cmpxchgb
%al
, 0(%ebx
)
163 // CHECK
: movb
(%eax
), %al
167 // CHECK
: movb
(%eax
), %al
171 // CHECK
: movb
(%eax
), %al
175 // CHECK
: movb
(%eax
), %al
179 // CHECK
: movb
(%eax
), %al
183 // CHECK
: movb
(%eax
), %al
186 // CHECK
: fadd %st(0)
187 // CHECK
: fadd %st(1)
188 // CHECK
: fadd %st(7)
194 // CHECK
: leal
0, %eax
197 // rdar
://7986634 - Insensitivity on opcodes.
201 // rdar
://8735979 - int $
3 -> int3
206 // Allow scale factor without index register.
207 // CHECK
: movaps
%xmm3
, (%esi
)
208 // CHECK-STDERR
: warning
: scale factor without index register is ignored
209 movaps
%xmm3
, (%esi
, 2)
211 // CHECK
: imull $
12, %eax
214 // CHECK
: imull
%ecx
, %eax
219 // CHECK
: outb
%al
, $
161
221 // CHECK
: outw
%ax
, $
128
223 // CHECK
: inb $
161, %al
232 // CHECK
: encoding
: [0x6a,0x01]
234 // CHECK
: encoding
: [0x68,0x47,0xf4,0x10,0x00]
241 // CHECK
: cmovnew
%bx
, %ax
243 // CHECK
: cmovneq
%rbx
, %rax
248 // CHECK
: inb $
127, %al
249 // CHECK
: inw
%dx
, %ax
250 // CHECK
: outb
%al
, $
127
251 // CHECK
: outw
%ax
, %dx
252 // CHECK
: inl
%dx
, %eax
261 // CHECK
: outb
%al
, %dx
262 // CHECK
: outb
%al
, %dx
263 // CHECK
: outw
%ax
, %dx
264 // CHECK
: outw
%ax
, %dx
265 // CHECK
: outl
%eax
, %dx
266 // CHECK
: outl
%eax
, %dx
275 // CHECK
: inb
%dx
, %al
276 // CHECK
: inb
%dx
, %al
277 // CHECK
: inw
%dx
, %ax
278 // CHECK
: inw
%dx
, %ax
279 // CHECK
: inl
%dx
, %eax
280 // CHECK
: inl
%dx
, %eax
292 // CHECK
: outsb
(%rsi
), %dx
294 // CHECK
: outsw
(%rsi
), %dx
296 // CHECK
: outsl
(%rsi
), %dx
298 insb
(%dx
), %es
:(%rdi
)
299 // CHECK
: insb
%dx
, %es
:(%rdi
)
300 insw
(%dx
), %es
:(%rdi
)
301 // CHECK
: insw
%dx
, %es
:(%rdi
)
302 insl
(%dx
), %es
:(%rdi
)
303 // CHECK
: insl
%dx
, %es
:(%rdi
)
307 // CHECK
: fxch
%st(1)
308 // CHECK
: fucom
%st(1)
309 // CHECK
: fucomp
%st(1)
310 // CHECK
: faddp
%st, %st(1)
311 // CHECK
: faddp
%st, %st(0)
312 // CHECK
: fsubp
%st, %st(1)
313 // CHECK
: fsubrp
%st, %st(1)
314 // CHECK
: fmulp
%st, %st(1)
315 // CHECK
: fdivp
%st, %st(1)
316 // CHECK
: fdivrp
%st, %st(1)
329 // CHECK
: fcomi
%st(1)
330 // CHECK
: fcomi
%st(2)
331 // CHECK
: fucomi
%st(1)
332 // CHECK
: fucomi
%st(2)
333 // CHECK
: fucomi
%st(2)
349 // CHECK
: rcll
3735928559(%ebx
,%ecx
,8)
351 // CHECK
: rcrl
305419896
353 rcll
0xdeadbeef(%ebx
,%ecx
,8)
357 rclb
%bl // CHECK
: rclb
%bl # encoding: [0xd0,0xd3]
358 rclb $
1, %bl // CHECK
: rclb
%bl # encoding: [0xd0,0xd3]
359 rclb $
2, %bl // CHECK
: rclb $
2, %bl # encoding: [0xc0,0xd3,0x02]
363 // CHECK
: shldw
%cl
, %bx
, %dx
364 // CHECK
: shldw
%cl
, %bx
, %dx
365 // CHECK
: shldw $
1, %bx
, %dx
366 // CHECK
: shldw
%cl
, %bx
, (%rax
)
367 // CHECK
: shldw
%cl
, %bx
, (%rax
)
368 // CHECK
: shrdw
%cl
, %bx
, %dx
369 // CHECK
: shrdw
%cl
, %bx
, %dx
370 // CHECK
: shrdw $
1, %bx
, %dx
371 // CHECK
: shrdw
%cl
, %bx
, (%rax
)
372 // CHECK
: shrdw
%cl
, %bx
, (%rax
)
378 shld
%cl
, %bx
, (%rax
)
383 shrd
%cl
, %bx
, (%rax
)
386 // CHECK
: encoding
: [0x0f,0x00,0xc1]
388 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc1]
393 // CHECK
: lcalll
*3135175374
394 // CHECK
: ljmpl
*3135175374
395 // CHECK
: lcalll
*(%rax
)
396 // CHECK
: ljmpl
*(%rax
)
403 // CHECK
: enter $
31438, $
0
404 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x00]
405 // CHECK
: enter $
31438, $
1
406 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x01]
407 // CHECK
: enter $
31438, $
127
408 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x7f]
415 // CHECK
: movw
%cs
, %ax
419 fcmovb
%st(1), %st // CHECK
: fcmovb
%st(1), %st
420 fcmove
%st(1), %st // CHECK
: fcmove
%st(1), %st
421 fcmovbe
%st(1), %st // CHECK
: fcmovbe
%st(1), %st
422 fcmovu
%st(1), %st // CHECK
: fcmovu
%st(1), %st
424 fcmovnb
%st(1), %st // CHECK
: fcmovnb
%st(1), %st
425 fcmovne
%st(1), %st // CHECK
: fcmovne
%st(1), %st
426 fcmovnbe
%st(1), %st // CHECK
: fcmovnbe
%st(1), %st
427 fcmovnu
%st(1), %st // CHECK
: fcmovnu
%st(1), %st
429 fcmovnae
%st(1), %st // CHECK
: fcmovb
%st(1), %st
430 fcmovna
%st(1), %st // CHECK
: fcmovbe
%st(1), %st
432 fcmovae
%st(1), %st // CHECK
: fcmovnb
%st(1), %st
433 fcmova
%st(1), %st // CHECK
: fcmovnbe
%st(1), %st
436 .byte (88 + 1) & 15 // CHECK: .byte 9
440 // CHECK
: movq
%rdx
, %cr0
441 // CHECK
: encoding
: [0x0f,0x22,0xc2]
443 // CHECK
: movq
%rdx
, %cr4
444 // CHECK
: encoding
: [0x0f,0x22,0xe2]
446 // CHECK
: movq
%rdx
, %cr8
447 // CHECK
: encoding
: [0x44,0x0f,0x22,0xc2]
449 // CHECK
: movq
%rdx
, %cr15
450 // CHECK
: encoding
: [0x44,0x0f,0x22,0xfa]
452 // CHECK
: movq
%rdx
, %dr15
453 // CHECK
: encoding
: [0x44,0x0f,0x23,0xfa]
455 // CHECK
: movq
%rdx
, %dr15
456 // CHECK
: encoding
: [0x44,0x0f,0x23,0xfa]
458 // rdar
://8456371 - Handle commutable instructions written backward.
459 // CHECK
: faddp
%st, %st(1)
460 // CHECK
: fmulp
%st, %st(2)
464 // rdar
://8468087 - Encode these accurately
, they are
not synonyms.
465 // CHECK
: fmul %st, %st(1)
466 // CHECK
: encoding
: [0xdc,0xc9]
467 // CHECK
: fmul %st(1)
468 // CHECK
: encoding
: [0xd8,0xc9]
472 // CHECK
: fadd %st, %st(1)
473 // CHECK
: encoding
: [0xdc,0xc1]
474 // CHECK
: fadd %st(1)
475 // CHECK
: encoding
: [0xd8,0xc1]
481 // CHECK
: xorb
%al
, %al
482 // CHECK
: encoding
: [0x30,0xc0]
483 // CHECK
: xorw
%di
, %di
484 // CHECK
: encoding
: [0x66,0x31,0xff]
485 // CHECK
: xorl
%esi
, %esi
486 // CHECK
: encoding
: [0x31,0xf6]
487 // CHECK
: xorq
%rsi
, %rsi
488 // CHECK
: encoding
: [0x48,0x31,0xf6]
506 // rdar
://8456378 and PR7557
- fstsw
512 // CHECK
: fnstsw
(%rax
)
517 // CHECK
: fnstcw
(%rsp
)
522 // CHECK
: fnstcw
(%rsp
)
531 // CHECK
: fnsave
32493
534 // rdar
://8456382 - cvtsd2si support.
536 // CHECK
: cvtsd2si
%xmm1
, %rax
537 // CHECK
: encoding
: [0xf2,0x48,0x0f,0x2d,0xc1]
539 // CHECK
: cvtsd2si
%xmm1
, %eax
540 // CHECK
: encoding
: [0xf2,0x0f,0x2d,0xc1]
542 cvtsd2siq
%xmm0
, %rax
// CHECK
: cvtsd2si
%xmm0
, %rax
543 cvtsd2sil
%xmm0
, %eax
// CHECK
: cvtsd2si
%xmm0
, %eax
544 cvtsd2si
%xmm0
, %rax
// CHECK
: cvtsd2si
%xmm0
, %rax
547 cvttpd2dq
%xmm1
, %xmm0
// CHECK
: cvttpd2dq
%xmm1
, %xmm0
548 cvttpd2dq
(%rax
), %xmm0
// CHECK
: cvttpd2dq
(%rax
), %xmm0
550 cvttps2dq
%xmm1
, %xmm0
// CHECK
: cvttps2dq
%xmm1
, %xmm0
551 cvttps2dq
(%rax
), %xmm0
// CHECK
: cvttps2dq
(%rax
), %xmm0
553 // rdar
://8456376 - llvm-mc rejects
'roundss'
554 roundss $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
555 roundps $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
556 roundsd $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
557 roundpd $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
560 // rdar
://8482675 - 32-bit mem operand support in
64-bit mode
(0x67 prefix
)
562 // CHECK
: leal
8(%eax
), %esi
563 // CHECK
: encoding
: [0x67,0x8d,0x70,0x08]
565 // CHECK
: leaq
8(%eax
), %rsi
566 // CHECK
: encoding
: [0x67,0x48,0x8d,0x70,0x08]
568 // CHECK
: leaq
8(%rax
), %rsi
569 // CHECK
: encoding
: [0x48,0x8d,0x70,0x08]
572 cvttpd2dq
0xdeadbeef(%ebx
,%ecx
,8),%xmm5
573 // CHECK
: cvttpd2dq
3735928559(%ebx
,%ecx
,8), %xmm5
574 // CHECK
: encoding
: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
576 // rdar
://8490728 - llvm-mc rejects
'movmskpd'
578 // CHECK
: movmskpd
%xmm6
, %eax
579 // CHECK
: encoding
: [0x66,0x0f,0x50,0xc6]
581 // CHECK
: movmskpd
%xmm6
, %eax
582 // CHECK
: encoding
: [0x66,0x0f,0x50,0xc6]
584 // rdar
://8491845 - Gas supports commuted forms of non-commutable instructions.
585 fdivrp
%st, %st(1) // CHECK
: encoding
: [0xde,0xf9]
586 fdivrp
%st(1), %st // CHECK
: encoding
: [0xde,0xf9]
588 fsubrp
%st, %st(1) // CHECK
: encoding
: [0xde,0xe9]
589 fsubrp
%st(1), %st // CHECK
: encoding
: [0xde,0xe9]
592 fdivp
%st, %st(1) // CHECK
: encoding
: [0xde,0xf1]
593 fdivp
%st(1), %st // CHECK
: encoding
: [0xde,0xf1]
597 // CHECK
: movl foo
(%rip
), %eax
598 // CHECK
: encoding
: [0x8b,0x05,A,A,A,A]
599 // CHECK
: fixup
A - offset
: 2, value
: foo-
4, kind
: reloc_riprel_4byte
602 // CHECK
: movb $
12, foo
(%rip
)
603 // CHECK
: encoding
: [0xc6,0x05,A,A,A,A,0x0c]
604 // CHECK
: fixup
A - offset
: 2, value
: foo-
5, kind
: reloc_riprel_4byte
607 // CHECK
: movw $
12, foo
(%rip
)
608 // CHECK
: encoding
: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
609 // CHECK
: fixup
A - offset
: 3, value
: foo-
6, kind
: reloc_riprel_4byte
612 // CHECK
: movl $
12, foo
(%rip
)
613 // CHECK
: encoding
: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
614 // CHECK
: fixup
A - offset
: 2, value
: foo-
8, kind
: reloc_riprel_4byte
618 // CHECK
: movl $
12, 1024(%rip
)
619 // CHECK
: encoding
: [0xc7,0x05,0x00,0x04,0x00,0x00,0x0c,0x00,0x00,0x00]
622 // CHECK
: movq $
12, foo
(%rip
)
623 // CHECK
: encoding
: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
624 // CHECK
: fixup
A - offset
: 3, value
: foo-
8, kind
: reloc_riprel_4byte
627 // CHECK
: movl foo
(%eip
), %eax
628 // CHECK
: encoding
: [0x67,0x8b,0x05,A,A,A,A]
629 // CHECK
: fixup
A - offset
: 3, value
: foo-
4, kind
: reloc_riprel_4byte
632 // CHECK
: movb $
12, foo
(%eip
)
633 // CHECK
: encoding
: [0x67,0xc6,0x05,A,A,A,A,0x0c]
634 // CHECK
: fixup
A - offset
: 3, value
: foo-
5, kind
: reloc_riprel_4byte
637 // CHECK
: movw $
12, foo
(%eip
)
638 // CHECK
: encoding
: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
639 // CHECK
: fixup
A - offset
: 4, value
: foo-
6, kind
: reloc_riprel_4byte
642 // CHECK
: movl $
12, foo
(%eip
)
643 // CHECK
: encoding
: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
644 // CHECK
: fixup
A - offset
: 3, value
: foo-
8, kind
: reloc_riprel_4byte
647 // CHECK
: movq $
12, foo
(%eip
)
648 // CHECK
: encoding
: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
649 // CHECK
: fixup
A - offset
: 4, value
: foo-
8, kind
: reloc_riprel_4byte
651 // CHECK
: addq $
-424, %rax
652 // CHECK
: encoding
: [0x48,0x05,0x58,0xfe,0xff,0xff]
656 // CHECK
: movq _foo@GOTPCREL
(%rip
), %rax
657 // CHECK
: encoding
: [0x48,0x8b,0x05,A,A,A,A]
658 // CHECK
: fixup
A - offset
: 3, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
659 movq _foo@GOTPCREL
(%rip
), %rax
661 // CHECK
: movq _foo@GOTPCREL
(%rip
), %r14
662 // CHECK
: encoding
: [0x4c,0x8b,0x35,A,A,A,A]
663 // CHECK
: fixup
A - offset
: 3, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
664 movq _foo@GOTPCREL
(%rip
), %r14
666 // CHECK
: movq _foo@GOTPCREL
(%eip
), %rax
667 // CHECK
: encoding
: [0x67,0x48,0x8b,0x05,A,A,A,A]
668 // CHECK
: fixup
A - offset
: 4, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
669 movq _foo@GOTPCREL
(%eip
), %rax
671 // CHECK
: movq _foo@GOTPCREL
(%eip
), %r14
672 // CHECK
: encoding
: [0x67,0x4c,0x8b,0x35,A,A,A,A]
673 // CHECK
: fixup
A - offset
: 4, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
674 movq _foo@GOTPCREL
(%eip
), %r14
676 // CHECK
: movq
(%r13,%rax
,8), %r13
677 // CHECK
: encoding
: [0x4d,0x8b,0x6c,0xc5,0x00]
678 movq
0x00(%r13,%rax
,8),%r13
680 // CHECK
: testq
%rax
, %rbx
681 // CHECK
: encoding
: [0x48,0x85,0xc3]
684 // CHECK
: cmpq
%rbx
, %r14
685 // CHECK
: encoding
: [0x49,0x39,0xde]
692 // CHECK
: encoding
: [0x48,0xa5]
696 // CHECK
: encoding
: [0xa5]
700 // CHECK
: encoding
: [0x48,0xab]
703 // CHECK
: encoding
: [0xab]
706 // Not moffset forms of moves
, they are x86-
32 only
! rdar
://7947184
707 movb
0, %al
// CHECK
: movb
0, %al
# encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
708 movw
0, %ax
// CHECK
: movw
0, %ax
# encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
709 movl
0, %eax
// CHECK
: movl
0, %eax
# encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
711 // CHECK
: pushfq
# encoding: [0x9c]
713 // CHECK
: pushfq
# encoding: [0x9c]
715 // CHECK
: popfq
# encoding: [0x9d]
717 // CHECK
: popfq
# encoding: [0x9d]
720 // CHECK
: movabsq $
-281474976710654, %rax
721 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
722 movabsq $
0xFFFF000000000002, %rax
724 // CHECK
: movabsq $
-281474976710654, %rax
725 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
726 movq $
0xFFFF000000000002, %rax
728 // CHECK
: movabsq
81985529216486895, %rax
729 // CHECK
: encoding
: [0x48,0xa1,0xef,0xcd,0xab,0x89,0x67,0x45,0x23,0x01]
730 movabsq
0x123456789abcdef, %rax
732 // CHECK
: movq $
-65536, %rax
733 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
734 movq $
0xFFFFFFFFFFFF0000, %rax
736 // CHECK
: movq $
-256, %rax
737 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
738 movq $
0xFFFFFFFFFFFFFF00, %rax
740 // CHECK
: movq $
10, %rax
741 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
744 // CHECK
: movq
81985529216486895, %rax
745 // CHECK
: encoding
: [0x48,0x8b,0x04,0x25,0xef,0xcd,0xab,0x89]
746 movq
0x123456789abcdef, %rax
748 // CHECK
: movabsb
-6066930261531658096, %al
749 // CHECK
: encoding
: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
750 movabsb
0xabcdef1234567890,%al
752 // CHECK
: movabsw
-6066930261531658096, %ax
753 // CHECK
: encoding
: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
754 movabsw
0xabcdef1234567890,%ax
756 // CHECK
: movabsl
-6066930261531658096, %eax
757 // CHECK
: encoding
: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
758 movabsl
0xabcdef1234567890,%eax
760 // CHECK
: movabsq
-6066930261531658096, %rax
761 // CHECK
: encoding
: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
762 movabsq
0xabcdef1234567890, %rax
764 // CHECK
: movabsb
%al
, -6066930261531658096
765 // CHECK
: encoding
: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
766 movabsb
%al
,0xabcdef1234567890
768 // CHECK
: movabsw
%ax
, -6066930261531658096
769 // CHECK
: encoding
: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
770 movabsw
%ax
,0xabcdef1234567890
772 // CHECK
: movabsl
%eax
, -6066930261531658096
773 // CHECK
: encoding
: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
774 movabsl
%eax
,0xabcdef1234567890
776 // CHECK
: movabsq
%rax
, -6066930261531658096
777 // CHECK
: encoding
: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
778 movabsq
%rax
,0xabcdef1234567890
783 // CHECK
: encoding
: [0xc3]
787 // CHECK
: encoding
: [0x0f,0x94,0xc0]
791 // CHECK
: encoding
: [0x0f,0x95,0xc0]
795 // CHECK
: encoding
: [0x74,A]
799 // CHECK
: encoding
: [0x75,A]
803 btl $
1, 0 // CHECK
: btl $
1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
804 bt $
1, 0 // CHECK
: btl $
1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
808 // CHECK
: btq $
1, %rdx
809 // CHECK
: encoding
: [0x48,0x0f,0xba,0xe2,0x01]
812 // CHECK
: movzbl
%al
, %esi
813 // CHECK
: encoding
: [0x0f,0xb6,0xf0]
816 // CHECK
: movzbq
%al
, %rsi
817 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xf0]
820 // CHECK
: movsbw
%al
, %ax
821 // CHECK
: encoding
: [0x66,0x0f,0xbe,0xc0]
824 // CHECK
: movsbl
%al
, %eax
825 // CHECK
: encoding
: [0x0f,0xbe,0xc0]
828 // CHECK
: movswl
%ax
, %eax
829 // CHECK
: encoding
: [0x0f,0xbf,0xc0]
832 // CHECK
: movsbq
%bl, %rax
833 // CHECK
: encoding
: [0x48,0x0f,0xbe,0xc3]
836 // CHECK
: movswq
%cx
, %rax
837 // CHECK
: encoding
: [0x48,0x0f,0xbf,0xc1]
840 // CHECK
: movslq
%edi
, %rax
841 // CHECK
: encoding
: [0x48,0x63,0xc7]
844 // CHECK
: movzbw
%al
, %ax
845 // CHECK
: encoding
: [0x66,0x0f,0xb6,0xc0]
848 // CHECK
: movzbl
%al
, %eax
849 // CHECK
: encoding
: [0x0f,0xb6,0xc0]
852 // CHECK
: movzwl
%ax
, %eax
853 // CHECK
: encoding
: [0x0f,0xb7,0xc0]
856 // CHECK
: movzbq
%bl, %rax
857 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xc3]
860 // CHECK
: movzwq
%cx
, %rax
861 // CHECK
: encoding
: [0x48,0x0f,0xb7,0xc1]
864 // CHECK
: movsbw
(%rax
), %ax
865 // CHECK
: encoding
: [0x66,0x0f,0xbe,0x00]
868 // CHECK
: movzbw
(%rax
), %ax
869 // CHECK
: encoding
: [0x66,0x0f,0xb6,0x00]
874 // CHECK
: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
877 // CHECK
: jmpq
*8(%rax
)
878 // CHECK
: encoding
: [0xff,0x60,0x08]
881 // CHECK
: btq $
61, -216(%rbp
)
882 // CHECK
: encoding
: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
890 // CHECK
: encoding
: [0x67,0xe3,A]
893 // CHECK
: encoding
: [0xe3,A]
897 // CHECK
: xchgl
%ecx
, 368(%rax
)
898 xchgl
%ecx
, 368(%rax
)
899 // CHECK
: xchgl
%ecx
, 368(%rax
)
902 xchg
0xdeadbeef(%rbx
,%rcx
,8),%bl
903 // CHECK
: xchgb
%bl, 3735928559(%rbx
,%rcx
,8)
910 // CHECK
: incl
1(%rsp
)
915 // CHECK
: incl
1(%rsp
)
918 lock addq
%rsi
, (%rdi
)
920 // CHECK
: addq
%rsi
, (%rdi
)
921 // CHECK
: encoding
: [0xf0,0x48,0x01,0x37]
923 lock subq
%rsi
, (%rdi
)
925 // CHECK
: subq
%rsi
, (%rdi
)
926 // CHECK
: encoding
: [0xf0,0x48,0x29,0x37]
928 lock andq
%rsi
, (%rdi
)
930 // CHECK
: andq
%rsi
, (%rdi
)
931 // CHECK
: encoding
: [0xf0,0x48,0x21,0x37]
933 lock orq
%rsi
, (%rdi
)
935 // CHECK
: orq
%rsi
, (%rdi
)
936 // CHECK
: encoding
: [0xf0,0x48,0x09,0x37]
938 lock xorq
%rsi
, (%rdi
)
940 // CHECK
: xorq
%rsi
, (%rdi
)
941 // CHECK
: encoding
: [0xf0,0x48,0x31,0x37]
943 xacquire lock addq
%rax
, (%rax
)
945 // CHECK
: encoding
: [0xf2]
947 // CHECK
: addq
%rax
, (%rax
)
948 // CHECK
: encoding
: [0xf0,0x48,0x01,0x00]
950 xrelease lock addq
%rax
, (%rax
)
952 // CHECK
: encoding
: [0xf3]
954 // CHECK
: addq
%rax
, (%rax
)
955 // CHECK
: encoding
: [0xf0,0x48,0x01,0x00]
961 // CHECK
: encoding
: [0xf3,0xa5]
967 // CHECK
: encoding
: [0xcf]
970 // CHECK
: encoding
: [0x66,0xcf]
973 // CHECK
: encoding
: [0xcf]
976 // CHECK
: encoding
: [0x48,0xcf]
979 // CHECK
: retw $
31438
980 // CHECK
: encoding
: [0x66,0xc2,0xce,0x7a]
983 // CHECK
: lretw $
31438
984 // CHECK
: encoding
: [0x66,0xca,0xce,0x7a]
988 lretq
// CHECK
: lretq
# encoding: [0x48,0xcb]
989 lretl
// CHECK
: lretl
# encoding: [0xcb]
990 lret
// CHECK
: lretl
# encoding: [0xcb]
991 lretw
// CHECK
: lretw
# encoding: [0x66,0xcb]
996 // CHECK
: encoding
: [0x0f,0x07]
999 // CHECK
: encoding
: [0x0f,0x07]
1002 // CHECK
: encoding
: [0x48,0x0f,0x07]
1007 // CHECK
: encoding
: [0x0f,0xa0]
1010 // CHECK
: encoding
: [0x0f,0xa8]
1014 // CHECK
: encoding
: [0x66,0x0f,0xa0]
1017 // CHECK
: encoding
: [0x66,0x0f,0xa8]
1022 // CHECK
: encoding
: [0x0f,0xa1]
1025 // CHECK
: encoding
: [0x0f,0xa9]
1029 // CHECK
: encoding
: [0x66,0x0f,0xa1]
1032 // CHECK
: encoding
: [0x66,0x0f,0xa9]
1037 // CHECK
: fildll
-8(%rsp
)
1038 // CHECK
: encoding
: [0xdf,0x6c,0x24,0xf8]
1039 // CHECK
: fildll
-8(%rsp
)
1040 // CHECK
: encoding
: [0xdf,0x6c,0x24,0xf8]
1045 // CHECK
: leaq
-40(%rbp
), %r15
1046 leaq
-40(%rbp
), %r15
1050 // rdar
://8013734 - Alias dr6
=db6
1053 // CHECK
: movq
%dr6
, %rax
1054 // CHECK
: movq
%dr6
, %rax
1057 // INC
/DEC encodings.
1058 incb
%al
// CHECK
: incb
%al
# encoding: [0xfe,0xc0]
1059 incw
%ax
// CHECK
: incw
%ax
# encoding: [0x66,0xff,0xc0]
1060 incl
%eax
// CHECK
: incl
%eax
# encoding: [0xff,0xc0]
1061 decb
%al
// CHECK
: decb
%al
# encoding: [0xfe,0xc8]
1062 decw
%ax
// CHECK
: decw
%ax
# encoding: [0x66,0xff,0xc8]
1063 decl
%eax
// CHECK
: decl
%eax
# encoding: [0xff,0xc8]
1066 // CHECK
: lgdtq
4(%rax
)
1067 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
1070 // CHECK
: lgdtq
4(%rax
)
1071 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
1074 // CHECK
: lidtq
4(%rax
)
1075 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
1078 // CHECK
: lidtq
4(%rax
)
1079 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
1082 // CHECK
: sgdtq
4(%rax
)
1083 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
1086 // CHECK
: sgdtq
4(%rax
)
1087 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
1090 // CHECK
: sidtq
4(%rax
)
1091 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
1094 // CHECK
: sidtq
4(%rax
)
1095 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
1100 mov
(%rsi
), %gs
// CHECK
: movw
(%rsi
), %gs
# encoding: [0x8e,0x2e]
1101 mov
%gs
, (%rsi
) // CHECK
: movw
%gs
, (%rsi
) # encoding: [0x8c,0x2e]
1108 //CHECK
: divl
3735928559(%ebx
,%ecx
,8)
1111 //CHECK
: divl
3133065982
1112 //CHECK
: divl
305419896
1116 //CHECK
: idivl
3735928559(%ebx
,%ecx
,8)
1118 //CHECK
: idivl
32493
1119 //CHECK
: idivl
3133065982
1120 //CHECK
: idivl
305419896
1124 div 0xdeadbeef(%ebx
,%ecx
,8),%eax
1132 idiv
0xdeadbeef(%ebx
,%ecx
,8),%eax
1135 idiv
0xbabecafe,%eax
1136 idiv
0x12345678,%eax
1139 movd
%rax
, %mm5
// CHECK
: movq
%rax
, %mm5
# encoding: [0x48,0x0f,0x6e,0xe8]
1140 movd
%mm5
, %rbx
// CHECK
: movq
%mm5
, %rbx
# encoding: [0x48,0x0f,0x7e,0xeb]
1141 movq
%rax
, %mm5
// CHECK
: movq
%rax
, %mm5
# encoding: [0x48,0x0f,0x6e,0xe8]
1142 movq
%mm5
, %rbx
// CHECK
: movq
%mm5
, %rbx
# encoding: [0x48,0x0f,0x7e,0xeb]
1144 rex64
// CHECK
: rex64
# encoding: [0x48]
1145 data16
// CHECK
: data16
# encoding: [0x66]
1148 // CHECK
: encoding
: [0x66]
1149 // CHECK
: lgdtq
4(%rax
)
1150 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
1154 movq
18446744073709551615,%rbx
// CHECK
: movq
-1, %rbx
1157 movdqu
%xmm0
, %xmm1
// CHECK
: movdqu
%xmm0
, %xmm1
# encoding: [0xf3,0x0f,0x6f,0xc8]
1160 xgetbv
// CHECK
: xgetbv
# encoding: [0x0f,0x01,0xd0]
1161 xsetbv
// CHECK
: xsetbv
# encoding: [0x0f,0x01,0xd1]
1164 // CHECK
: encoding
: [0xe1,A]
1168 // CHECK
: encoding
: [0xe0,A]
1171 // CHECK
: outsb
(%rsi
), %dx
# encoding: [0x6e]
1175 outsb
%ds
:(%rsi
), %dx
1178 // CHECK
: outsw
(%rsi
), %dx
# encoding: [0x66,0x6f]
1182 outsw
%ds
:(%rsi
), %dx
1185 // CHECK
: outsl
(%rsi
), %dx
# encoding: [0x6f]
1188 outsl
%ds
:(%rsi
), %dx
1191 // CHECK
: insb
%dx
, %es
:(%rdi
) # encoding: [0x6c]
1194 insb
%dx
, %es
:(%rdi
)
1196 // CHECK
: insw
%dx
, %es
:(%rdi
) # encoding: [0x66,0x6d]
1199 insw
%dx
, %es
:(%rdi
)
1201 // CHECK
: insl
%dx
, %es
:(%rdi
) # encoding: [0x6d]
1204 insl
%dx
, %es
:(%rdi
)
1206 // CHECK
: movsb
(%rsi
), %es
:(%rdi
) # encoding: [0xa4]
1210 movsb
%ds
:(%rsi
), %es
:(%rdi
)
1211 movsb
(%rsi
), %es
:(%rdi
)
1213 // CHECK
: movsw
(%rsi
), %es
:(%rdi
) # encoding: [0x66,0xa5]
1217 movsw
%ds
:(%rsi
), %es
:(%rdi
)
1218 movsw
(%rsi
), %es
:(%rdi
)
1220 // CHECK
: movsl
(%rsi
), %es
:(%rdi
) # encoding: [0xa5]
1224 movsl
%ds
:(%rsi
), %es
:(%rdi
)
1225 movsl
(%rsi
), %es
:(%rdi
)
1228 movsl
(%rsi
), (%rdi
)
1230 // CHECK
: movsq
(%rsi
), %es
:(%rdi
) # encoding: [0x48,0xa5]
1234 movsq
%ds
:(%rsi
), %es
:(%rdi
)
1235 movsq
(%rsi
), %es
:(%rdi
)
1237 // CHECK
: lodsb
(%rsi
), %al
# encoding: [0xac]
1243 lodsb
%ds
:(%rsi
), %al
1245 lods
%ds
:(%rsi
), %al
1248 // CHECK
: lodsw
(%rsi
), %ax
# encoding: [0x66,0xad]
1254 lodsw
%ds
:(%rsi
), %ax
1256 lods
%ds
:(%rsi
), %ax
1259 // CHECK
: lodsl
(%rsi
), %eax
# encoding: [0xad]
1265 lodsl
%ds
:(%rsi
), %eax
1267 lods
%ds
:(%rsi
), %eax
1270 // CHECK
: lodsq
(%rsi
), %rax
# encoding: [0x48,0xad]
1276 lodsq
%ds
:(%rsi
), %rax
1278 lods
%ds
:(%rsi
), %rax
1281 // CHECK
: stosb
%al
, %es
:(%rdi
) # encoding: [0xaa]
1285 stosb
%al
, %es
:(%rdi
)
1286 stos
%al
, %es
:(%rdi
)
1288 // CHECK
: stosw
%ax
, %es
:(%rdi
) # encoding: [0x66,0xab]
1292 stosw
%ax
, %es
:(%rdi
)
1293 stos
%ax
, %es
:(%rdi
)
1295 // CHECK
: stosl
%eax
, %es
:(%rdi
) # encoding: [0xab]
1299 stosl
%eax
, %es
:(%rdi
)
1300 stos
%eax
, %es
:(%rdi
)
1302 // CHECK
: stosq
%rax
, %es
:(%rdi
) # encoding: [0x48,0xab]
1306 stosq
%rax
, %es
:(%rdi
)
1307 stos
%rax
, %es
:(%rdi
)
1310 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc8]
1314 // CHECK
: encoding
: [0x0f,0x00,0xc8]
1318 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc8]
1322 // CHECK
: encoding
: [0x48,0x0f,0x00,0xc8]
1325 // CHECK
: movq
%rdi
, %xmm0
1326 // CHECK
: encoding
: [0x66,0x48,0x0f,0x6e,0xc7]
1329 // CHECK
: movq
%xmm0
, %rax
1330 // CHECK
: encoding
: [0x66,0x48,0x0f,0x7e,0xc0]
1333 // CHECK
: movntil
%eax
, (%rdi
)
1334 // CHECK
: encoding
: [0x0f,0xc3,0x07]
1336 movntil
%eax
, (%rdi
)
1339 // CHECK
: movntiq
%rax
, (%rdi
)
1340 // CHECK
: encoding
: [0x48,0x0f,0xc3,0x07]
1342 movntiq
%rax
, (%rdi
)
1345 // CHECK
: pclmulqdq $
17, %xmm0
, %xmm1
1346 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1347 pclmulhqhqdq
%xmm0
, %xmm1
1349 // CHECK
: pclmulqdq $
1, %xmm0
, %xmm1
1350 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1351 pclmulqdq $
1, %xmm0
, %xmm1
1353 // CHECK
: pclmulqdq $
16, (%rdi
), %xmm1
1354 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1355 pclmullqhqdq
(%rdi
), %xmm1
1357 // CHECK
: pclmulqdq $
0, (%rdi
), %xmm1
1358 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1359 pclmulqdq $
0, (%rdi
), %xmm1
1363 // CHECK
: encoding
: [0x90]
1366 // CHECK
: xchgl
%eax
, %eax
1367 // CHECK
: encoding
: [0x87,0xc0]
1370 // CHECK
: xchgw
%ax
, %ax
1371 // CHECK
: encoding
: [0x66,0x90]
1374 // CHECK
: xchgl
%ecx
, %eax
1375 // CHECK
: encoding
: [0x91]
1378 // CHECK
: xchgl
%ecx
, %eax
1379 // CHECK
: encoding
: [0x91]
1383 // CHECK
: encoding
: [0x0f,0x35]
1387 // CHECK
: encoding
: [0x0f,0x35]
1391 // CHECK
: encoding
: [0x48,0x0f,0x35]
1395 // CHECK
: encoding
: [0x0f,0x01,0xca]
1399 // CHECK
: encoding
: [0x0f,0x01,0xcb]
1402 // CHECK
: faddp
%st, %st(1)
1403 // CHECK
: fmulp
%st, %st(1)
1404 // CHECK
: fsubp
%st, %st(1)
1405 // CHECK
: fsubrp
%st, %st(1)
1406 // CHECK
: fdivp
%st, %st(1)
1407 // CHECK
: fdivrp
%st, %st(1)
1415 // CHECK
: faddp
%st, %st(1)
1416 // CHECK
: fmulp
%st, %st(1)
1417 // CHECK
: fsubp
%st, %st(1)
1418 // CHECK
: fsubrp
%st, %st(1)
1419 // CHECK
: fdivp
%st, %st(1)
1420 // CHECK
: fdivrp
%st, %st(1)
1428 // CHECK
: faddp
%st, %st(1)
1429 // CHECK
: fmulp
%st, %st(1)
1430 // CHECK
: fsubp
%st, %st(1)
1431 // CHECK
: fsubrp
%st, %st(1)
1432 // CHECK
: fdivp
%st, %st(1)
1433 // CHECK
: fdivrp
%st, %st(1)
1441 // CHECK
: faddp
%st, %st(1)
1442 // CHECK
: fmulp
%st, %st(1)
1443 // CHECK
: fsubp
%st, %st(1)
1444 // CHECK
: fsubrp
%st, %st(1)
1445 // CHECK
: fdivp
%st, %st(1)
1446 // CHECK
: fdivrp
%st, %st(1)
1454 // CHECK
: fadd %st(1)
1455 // CHECK
: fmul %st(1)
1456 // CHECK
: fsub %st(1)
1457 // CHECK
: fsubr
%st(1)
1458 // CHECK
: fdiv %st(1)
1459 // CHECK
: fdivr
%st(1)
1467 // CHECK
: fadd %st, %st(1)
1468 // CHECK
: fmul %st, %st(1)
1469 // CHECK
: fsub %st, %st(1)
1470 // CHECK
: fsubr
%st, %st(1)
1471 // CHECK
: fdiv %st, %st(1)
1472 // CHECK
: fdivr
%st, %st(1)
1480 // CHECK
: fadd %st(1)
1481 // CHECK
: fmul %st(1)
1482 // CHECK
: fsub %st(1)
1483 // CHECK
: fsubr
%st(1)
1484 // CHECK
: fdiv %st(1)
1485 // CHECK
: fdivr
%st(1)
1493 // CHECK
: movd
%xmm0
, %eax
1494 // CHECK
: movq
%xmm0
, %rax
1495 // CHECK
: movq
%xmm0
, %rax
1496 // CHECK
: vmovd
%xmm0
, %eax
1497 // CHECK
: vmovq
%xmm0
, %rax
1498 // CHECK
: vmovq
%xmm0
, %rax
1506 // CHECK
: seto
3735928559(%r10,%r9,8)
1507 // CHECK
: encoding
: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
1508 seto
0xdeadbeef(%r10,%r9,8)
1511 // CHECK
: encoding
: [0x0f,0x01,0xfa]
1515 // CHECK
: encoding
: [0x0f,0x01,0xfa]
1516 monitorx
%rax
, %rcx
, %rdx
1519 // CHECK
: encoding
: [0x0f,0x01,0xfb]
1523 // CHECK
: encoding
: [0x0f,0x01,0xfb]
1524 mwaitx
%rax
, %rcx
, %rbx
1527 // CHECK
: encoding
: [0x0f,0x01,0xfc]
1531 // CHECK
: encoding
: [0x0f,0x01,0xfc]
1534 // CHECK
: movl
%r15d
, (%r15,%r15)
1535 // CHECK
: encoding
: [0x47,0x89,0x3c,0x3f]
1536 movl
%r15d
, (%r15,%r15)
1538 // CHECK
: nopq
3735928559(%rbx
,%rcx
,8)
1539 // CHECK
: encoding
: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
1540 nopq
0xdeadbeef(%rbx
,%rcx
,8)
1543 // CHECK
: encoding
: [0x48,0x0f,0x1f,0xc0]
1546 // CHECK
: rdpid
%rax
1547 // CHECK
: encoding
: [0xf3,0x0f,0xc7,0xf8]
1550 // CHECK
: ptwritel
3735928559(%rbx
,%rcx
,8)
1551 // CHECK
: encoding
: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1552 ptwritel
0xdeadbeef(%rbx
,%rcx
,8)
1554 // CHECK
: ptwritel
%eax
1555 // CHECK
: encoding
: [0xf3,0x0f,0xae,0xe0]
1558 // CHECK
: ptwriteq
3735928559(%rbx
,%rcx
,8)
1559 // CHECK
: encoding
: [0xf3,0x48,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1560 ptwriteq
0xdeadbeef(%rbx
,%rcx
,8)
1562 // CHECK
: ptwriteq
%rax
1563 // CHECK
: encoding
: [0xf3,0x48,0x0f,0xae,0xe0]
1567 // CHECK
: encoding
: [0xf3,0x0f,0x09]
1570 // CHECK
: cldemote
4(%rax
)
1571 // CHECK
: encoding
: [0x0f,0x1c,0x40,0x04]
1574 // CHECK
: cldemote
3735928559(%rbx
,%rcx
,8)
1575 // CHECK
: encoding
: [0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde]
1576 cldemote
0xdeadbeef(%rbx
,%rcx
,8)
1578 // CHECK
: umonitor
%r13
1579 // CHECK
: encoding
: [0xf3,0x41,0x0f,0xae,0xf5]
1582 // CHECK
: umonitor
%rax
1583 // CHECK
: encoding
: [0xf3,0x0f,0xae,0xf0]
1586 // CHECK
: umonitor
%eax
1587 // CHECK
: encoding
: [0x67,0xf3,0x0f,0xae,0xf0]
1590 // CHECK
: umwait
%r15
1591 // CHECK
: encoding
: [0xf2,0x41,0x0f,0xae,0xf7]
1594 // CHECK
: umwait
%ebx
1595 // CHECK
: encoding
: [0xf2,0x0f,0xae,0xf3]
1598 // CHECK
: tpause
%r15
1599 // CHECK
: encoding
: [0x66,0x41,0x0f,0xae,0xf7]
1602 // CHECK
: tpause
%ebx
1603 // CHECK
: encoding
: [0x66,0x0f,0xae,0xf3]
1606 // CHECK
: movdiri
%r15, 485498096
1607 // CHECK
: # encoding: [0x4c,0x0f,0x38,0xf9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
1608 movdiri
%r15, 485498096
1610 // CHECK
: movdiri
%r15, (%rdx
)
1611 // CHECK
: # encoding: [0x4c,0x0f,0x38,0xf9,0x3a]
1612 movdiri
%r15, (%rdx
)
1614 // CHECK
: movdiri
%r15, 64(%rdx
)
1615 // CHECK
: # encoding: [0x4c,0x0f,0x38,0xf9,0x7a,0x40]
1616 movdiri
%r15, 64(%rdx
)
1618 // CHECK
: movdir64b
485498096, %rax
1619 // CHECK
: # encoding: [0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1620 movdir64b
485498096, %rax
1622 // CHECK
: movdir64b
485498096, %eax
1623 // CHECK
: # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1624 movdir64b
485498096, %eax
1626 // CHECK
: movdir64b
(%rdx
), %r15
1627 // CHECK
: # encoding: [0x66,0x44,0x0f,0x38,0xf8,0x3a]
1628 movdir64b
(%rdx
), %r15
1631 // CHECK
: # encoding: [0x0f,0x01,0xc5]
1635 // CHECK
: encoding
: [0x0f,0x01,0xcf]
1639 // CHECK
: encoding
: [0x0f,0x01,0xd7]
1643 // CHECK
: encoding
: [0x0f,0x01,0xc0]
1646 // CHECK
: movq
%rax
, %rbx
1647 // CHECK
: encoding
: [0x48,0x8b,0xd8]
1650 // CHECK
: movq
%rax
, %rbx
1651 // CHECK
: encoding
: [0x48,0x8b,0xd8]
1654 // CHECK
: movl
%eax
, %ebx
1655 // CHECK
: encoding
: [0x8b,0xd8]
1658 // CHECK
: movl
%eax
, %ebx
1659 // CHECK
: encoding
: [0x8b,0xd8]
1662 // CHECK
: movw
%ax
, %bx
1663 // CHECK
: encoding
: [0x66,0x8b,0xd8]
1666 // CHECK
: movw
%ax
, %bx
1667 // CHECK
: encoding
: [0x66,0x8b,0xd8]
1670 // CHECK
: movb
%al
, %bl
1671 // CHECK
: encoding
: [0x8a,0xd8]
1674 // CHECK
: movb
%al
, %bl
1675 // CHECK
: encoding
: [0x8a,0xd8]
1678 // CHECK
: movq
%mm0
, %mm1
1679 // CHECK
: encoding
: [0x0f,0x7f,0xc1]
1682 // CHECK
: movq
%xmm0
, %xmm1
1683 // CHECK
: encoding
: [0x66,0x0f,0xd6,0xc1]
1686 // CHECK
: movdqa
%xmm0
, %xmm1
1687 // CHECK
: encoding
: [0x66,0x0f,0x7f,0xc1]
1688 movdqa.s
%xmm0
, %xmm1
1690 // CHECK
: movdqu
%xmm0
, %xmm1
1691 // CHECK
: encoding
: [0xf3,0x0f,0x7f,0xc1]
1692 movdqu.s
%xmm0
, %xmm1
1694 // CHECK
: movaps
%xmm0
, %xmm1
1695 // CHECK
: encoding
: [0x0f,0x29,0xc1]
1696 movaps.s
%xmm0
, %xmm1
1698 // CHECK
: movups
%xmm0
, %xmm1
1699 // CHECK
: encoding
: [0x0f,0x11,0xc1]
1700 movups.s
%xmm0
, %xmm1
1702 // CHECK
: movapd
%xmm0
, %xmm1
1703 // CHECK
: encoding
: [0x66,0x0f,0x29,0xc1]
1704 movapd.s
%xmm0
, %xmm1
1706 // CHECK
: movupd
%xmm0
, %xmm1
1707 // CHECK
: encoding
: [0x66,0x0f,0x11,0xc1]
1708 movupd.s
%xmm0
, %xmm1
1710 // CHECK
: vmovq
%xmm0
, %xmm8
1711 // CHECK
: encoding
: [0xc4,0xc1,0x79,0xd6,0xc0]
1712 vmovq.s
%xmm0
, %xmm8
1714 // CHECK
: vmovq
%xmm8
, %xmm0
1715 // CHECK
: encoding
: [0xc5,0x79,0xd6,0xc0]
1716 vmovq.s
%xmm8
, %xmm0
1718 // CHECK
: vmovdqa
%xmm0
, %xmm8
1719 // CHECK
: encoding
: [0xc4,0xc1,0x79,0x7f,0xc0]
1720 vmovdqa.s
%xmm0
, %xmm8
1722 // CHECK
: vmovdqa
%xmm8
, %xmm0
1723 // CHECK
: encoding
: [0xc5,0x79,0x7f,0xc0]
1724 vmovdqa.s
%xmm8
, %xmm0
1726 // CHECK
: vmovdqu
%xmm0
, %xmm8
1727 // CHECK
: encoding
: [0xc4,0xc1,0x7a,0x7f,0xc0]
1728 vmovdqu.s
%xmm0
, %xmm8
1730 // CHECK
: vmovdqu
%xmm8
, %xmm0
1731 // CHECK
: encoding
: [0xc5,0x7a,0x7f,0xc0]
1732 vmovdqu.s
%xmm8
, %xmm0
1734 // CHECK
: vmovaps
%xmm0
, %xmm8
1735 // CHECK
: encoding
: [0xc4,0xc1,0x78,0x29,0xc0]
1736 vmovaps.s
%xmm0
, %xmm8
1738 // CHECK
: vmovaps
%xmm8
, %xmm0
1739 // CHECK
: encoding
: [0xc5,0x78,0x29,0xc0]
1740 vmovaps.s
%xmm8
, %xmm0
1742 // CHECK
: vmovups
%xmm0
, %xmm8
1743 // CHECK
: encoding
: [0xc4,0xc1,0x78,0x11,0xc0]
1744 vmovups.s
%xmm0
, %xmm8
1746 // CHECK
: vmovups
%xmm8
, %xmm0
1747 // CHECK
: encoding
: [0xc5,0x78,0x11,0xc0]
1748 vmovups.s
%xmm8
, %xmm0
1750 // CHECK
: vmovapd
%xmm0
, %xmm8
1751 // CHECK
: encoding
: [0xc4,0xc1,0x79,0x29,0xc0]
1752 vmovapd.s
%xmm0
, %xmm8
1754 // CHECK
: vmovapd
%xmm8
, %xmm0
1755 // CHECK
: encoding
: [0xc5,0x79,0x29,0xc0]
1756 vmovapd.s
%xmm8
, %xmm0
1758 // CHECK
: vmovupd
%xmm0
, %xmm8
1759 // CHECK
: encoding
: [0xc4,0xc1,0x79,0x11,0xc0]
1760 vmovupd.s
%xmm0
, %xmm8
1762 // CHECK
: vmovupd
%xmm8
, %xmm0
1763 // CHECK
: encoding
: [0xc5,0x79,0x11,0xc0]
1764 vmovupd.s
%xmm8
, %xmm0
1766 // __asm __volatile
(
1770 // ".byte 0x0f, 0xa7, 0xd0"
1773 // CHECK-NEXT
: popfq
1775 // CHECK-NEXT
: .byte 15
1776 // CHECK-NEXT
: .byte 167
1777 // CHECK-NEXT
: .byte 208
1790 1: cmpxchgl
%ecx
,(%rdi
)
1798 // This line has to
be the last one in the file
1801 // CHECK
: enqcmd
268435456(%ebp
,%r14d
,8), %esi
1802 // CHECK
: encoding
: [0x67,0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1803 enqcmd
0x10000000(%ebp
, %r14d
, 8), %esi
1805 // CHECK
: enqcmd
(%r9d
), %edi
1806 // CHECK
: encoding
: [0x67,0xf2,0x41,0x0f,0x38,0xf8,0x39]
1809 // CHECK
: enqcmd
8128(%ecx
), %eax
1810 // CHECK
: encoding
: [0x67,0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1811 enqcmd
8128(%ecx
), %eax
1813 // CHECK
: enqcmd
-8192(%edx
), %ebx
1814 // CHECK
: encoding
: [0x67,0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1815 enqcmd
-8192(%edx
), %ebx
1817 // CHECK
: enqcmd
485498096, %eax
1818 // CHECK
: encoding
: [0x67,0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1819 enqcmd
485498096, %eax
1821 // CHECK
: enqcmds
268435456(%ebp
,%r14d
,8), %esi
1822 // CHECK
: encoding
: [0x67,0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1823 enqcmds
0x10000000(%ebp
, %r14d
, 8), %esi
1825 // CHECK
: enqcmds
(%r9d
), %edi
1826 // CHECK
: encoding
: [0x67,0xf3,0x41,0x0f,0x38,0xf8,0x39]
1827 enqcmds
(%r9d
), %edi
1829 // CHECK
: enqcmds
8128(%ecx
), %eax
1830 // CHECK
: encoding
: [0x67,0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1831 enqcmds
8128(%ecx
), %eax
1833 // CHECK
: enqcmds
-8192(%edx
), %ebx
1834 // CHECK
: encoding
: [0x67,0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1835 enqcmds
-8192(%edx
), %ebx
1837 // CHECK
: enqcmds
485498096, %eax
1838 // CHECK
: encoding
: [0x67,0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1839 enqcmds
485498096, %eax
1841 // CHECK
: enqcmd
268435456(%rbp
,%r14,8), %rsi
1842 // CHECK
: encoding
: [0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1843 enqcmd
0x10000000(%rbp
, %r14, 8), %rsi
1845 // CHECK
: enqcmd
(%r9), %rdi
1846 // CHECK
: encoding
: [0xf2,0x41,0x0f,0x38,0xf8,0x39]
1849 // CHECK
: enqcmd
8128(%rcx
), %rax
1850 // CHECK
: encoding
: [0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1851 enqcmd
8128(%rcx
), %rax
1853 // CHECK
: enqcmd
-8192(%rdx
), %rbx
1854 // CHECK
: encoding
: [0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1855 enqcmd
-8192(%rdx
), %rbx
1857 // CHECK
: enqcmd
485498096, %rax
1858 // CHECK
: encoding
: [0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1859 enqcmd
485498096, %rax
1861 // CHECK
: enqcmds
268435456(%rbp
,%r14,8), %rsi
1862 // CHECK
: encoding
: [0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1863 enqcmds
0x10000000(%rbp
, %r14, 8), %rsi
1865 // CHECK
: enqcmds
(%r9), %rdi
1866 // CHECK
: encoding
: [0xf3,0x41,0x0f,0x38,0xf8,0x39]
1869 // CHECK
: enqcmds
8128(%rcx
), %rax
1870 // CHECK
: encoding
: [0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1871 enqcmds
8128(%rcx
), %rax
1873 // CHECK
: enqcmds
-8192(%rdx
), %rbx
1874 // CHECK
: encoding
: [0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1875 enqcmds
-8192(%rdx
), %rbx
1877 // CHECK
: enqcmds
485498096, %rax
1878 // CHECK
: encoding
: [0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1879 enqcmds
485498096, %rax