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
53 // FIXME
: Check that this matches SUB32ri8
54 // CHECK
: subl $
1, %eax
57 // FIXME
: Check that this matches SUB32ri8
58 // CHECK
: subl $
-1, %eax
61 // FIXME
: Check that this matches SUB32ri
62 // CHECK
: subl $
256, %eax
65 // FIXME
: Check that this matches XOR64ri8
66 // CHECK
: xorq $
1, %rax
69 // FIXME
: Check that this matches XOR64ri32
70 // CHECK
: xorq $
256, %rax
73 // FIXME
: Check that this matches SUB8rr
74 // CHECK
: subb
%al
, %bl
77 // FIXME
: Check that this matches SUB16rr
78 // CHECK
: subw
%ax
, %bx
81 // FIXME
: Check that this matches SUB32rr
82 // CHECK
: subl
%eax
, %ebx
85 // FIXME
: Check that this matches the correct instruction.
89 // FIXME
: Check that this matches the correct instruction.
90 // CHECK
: shldl
%cl
, %eax
, %ebx
93 // CHECK
: shll $
2, %eax
96 // CHECK
: shll $
2, %eax
113 smovb
// CHECK
: movsb
114 smovw
// CHECK
: movsw
115 smovl
// CHECK
: movsd
116 smovq
// CHECK
: movsq
131 // NOTE
: repz
and repe have the same opcode as rep
136 // NOTE
: repnz has the same opcode as repne
141 // NOTE
: repe
and repz have the same opcode as rep
151 // CHECK
: cmpxchgb
%al
, (%ebx
)
152 lock;cmpxchgb
%al
, 0(%ebx
)
155 // CHECK
: movb
(%eax
), %al
159 // CHECK
: movb
(%eax
), %al
163 // CHECK
: movb
(%eax
), %al
167 // CHECK
: movb
(%eax
), %al
171 // CHECK
: movb
(%eax
), %al
175 // CHECK
: movb
(%eax
), %al
178 // CHECK
: fadd %st(0)
179 // CHECK
: fadd %st(1)
180 // CHECK
: fadd %st(7)
186 // CHECK
: leal
0, %eax
189 // rdar
://7986634 - Insensitivity on opcodes.
193 // rdar
://8735979 - int $
3 -> int3
198 // Allow scale factor without index register.
199 // CHECK
: movaps
%xmm3
, (%esi
)
200 // CHECK-STDERR
: warning
: scale factor without index register is ignored
201 movaps
%xmm3
, (%esi
, 2)
203 // CHECK
: imull $
12, %eax
, %eax
206 // CHECK
: imull
%ecx
, %eax
211 // CHECK
: outb
%al
, $
161
213 // CHECK
: outw
%ax
, $
128
215 // CHECK
: inb $
161, %al
224 // CHECK
: encoding
: [0x6a,0x01]
226 // CHECK
: encoding
: [0x68,0x47,0xf4,0x10,0x00]
233 // CHECK
: cmovnew
%bx
, %ax
235 // CHECK
: cmovneq
%rbx
, %rax
240 // CHECK
: inb $
127, %al
242 // CHECK
: outb
%al
, $
127
287 // CHECK
: faddp
%st(0)
306 // CHECK
: fcomi
%st(2)
308 // CHECK
: fucomi
%st(2)
309 // CHECK
: fucomi
%st(2)
329 // CHECK
: rcll
3735928559(%ebx
,%ecx
,8)
331 // CHECK
: rcrl
305419896
333 rcll
0xdeadbeef(%ebx
,%ecx
,8)
337 rclb
%bl // CHECK
: rclb
%bl # encoding: [0xd0,0xd3]
338 rclb $
1, %bl // CHECK
: rclb
%bl # encoding: [0xd0,0xd3]
339 rclb $
2, %bl // CHECK
: rclb $
2, %bl # encoding: [0xc0,0xd3,0x02]
342 // CHECK
: shldw $
1, %bx
, %bx
343 // CHECK
: shldw $
1, %bx
, %bx
344 // CHECK
: shrdw $
1, %bx
, %bx
345 // CHECK
: shrdw $
1, %bx
, %bx
353 // CHECK
: encoding
: [0x0f,0x00,0xc1]
355 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc1]
360 // CHECK
: lcalll
*3135175374
361 // CHECK
: ljmpl
*3135175374
367 // CHECK
: enter $
31438, $
0
368 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x00]
369 // CHECK
: enter $
31438, $
1
370 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x01]
371 // CHECK
: enter $
31438, $
127
372 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x7f]
379 // CHECK
: movw
%cs
, %ax
383 fcmovb
%st(1), %st(0) // CHECK
: fcmovb
%st(1), %st(0)
384 fcmove
%st(1), %st(0) // CHECK
: fcmove
%st(1), %st(0)
385 fcmovbe
%st(1), %st(0) // CHECK
: fcmovbe
%st(1), %st(0)
386 fcmovu
%st(1), %st(0) // CHECK
: fcmovu
%st(1), %st(0)
388 fcmovnb
%st(1), %st(0) // CHECK
: fcmovnb
%st(1), %st(0)
389 fcmovne
%st(1), %st(0) // CHECK
: fcmovne
%st(1), %st(0)
390 fcmovnbe
%st(1), %st(0) // CHECK
: fcmovnbe
%st(1), %st(0)
391 fcmovnu
%st(1), %st(0) // CHECK
: fcmovnu
%st(1), %st(0)
393 fcmovnae
%st(1), %st(0) // CHECK
: fcmovb
%st(1), %st(0)
394 fcmovna
%st(1), %st(0) // CHECK
: fcmovbe
%st(1), %st(0)
396 fcmovae
%st(1), %st(0) // CHECK
: fcmovnb
%st(1), %st(0)
397 fcmova
%st(1), %st(0) // CHECK
: fcmovnbe
%st(1), %st(0)
400 .byte 88 + 1 & 15 // CHECK: .byte 9
404 // CHECK
: movq
%rdx
, %cr0
405 // CHECK
: encoding
: [0x0f,0x22,0xc2]
407 // CHECK
: movq
%rdx
, %cr4
408 // CHECK
: encoding
: [0x0f,0x22,0xe2]
410 // CHECK
: movq
%rdx
, %cr8
411 // CHECK
: encoding
: [0x44,0x0f,0x22,0xc2]
413 // CHECK
: movq
%rdx
, %cr15
414 // CHECK
: encoding
: [0x44,0x0f,0x22,0xfa]
416 // rdar
://8456371 - Handle commutable instructions written backward.
417 // CHECK
: faddp
%st(1)
418 // CHECK
: fmulp
%st(2)
422 // rdar
://8468087 - Encode these accurately
, they are
not synonyms.
423 // CHECK
: fmul %st(0), %st(1)
424 // CHECK
: encoding
: [0xdc,0xc9]
425 // CHECK
: fmul %st(1)
426 // CHECK
: encoding
: [0xd8,0xc9]
430 // CHECK
: fadd %st(0), %st(1)
431 // CHECK
: encoding
: [0xdc,0xc1]
432 // CHECK
: fadd %st(1)
433 // CHECK
: encoding
: [0xd8,0xc1]
439 // CHECK
: xorb
%al
, %al
440 // CHECK
: encoding
: [0x30,0xc0]
441 // CHECK
: xorw
%di
, %di
442 // CHECK
: encoding
: [0x66,0x31,0xff]
443 // CHECK
: xorl
%esi
, %esi
444 // CHECK
: encoding
: [0x31,0xf6]
445 // CHECK
: xorq
%rsi
, %rsi
446 // CHECK
: encoding
: [0x48,0x31,0xf6]
463 // rdar
://8456378 and PR7557
- fstsw
469 // CHECK
: fnstsw
(%rax
)
474 // CHECK
: fnstcw
(%rsp
)
479 // CHECK
: fnstcw
(%rsp
)
488 // CHECK
: fnsave
32493
491 // rdar
://8456382 - cvtsd2si support.
493 // CHECK
: cvtsd2siq
%xmm1
, %rax
494 // CHECK
: encoding
: [0xf2,0x48,0x0f,0x2d,0xc1]
496 // CHECK
: cvtsd2sil
%xmm1
, %eax
497 // CHECK
: encoding
: [0xf2,0x0f,0x2d,0xc1]
499 cvtsd2siq
%xmm0
, %rax
// CHECK
: cvtsd2siq
%xmm0
, %rax
500 cvtsd2sil
%xmm0
, %eax
// CHECK
: cvtsd2sil
%xmm0
, %eax
501 cvtsd2si
%xmm0
, %rax
// CHECK
: cvtsd2siq
%xmm0
, %rax
504 cvttpd2dq
%xmm1
, %xmm0
// CHECK
: cvttpd2dq
%xmm1
, %xmm0
505 cvttpd2dq
(%rax
), %xmm0
// CHECK
: cvttpd2dq
(%rax
), %xmm0
507 cvttps2dq
%xmm1
, %xmm0
// CHECK
: cvttps2dq
%xmm1
, %xmm0
508 cvttps2dq
(%rax
), %xmm0
// CHECK
: cvttps2dq
(%rax
), %xmm0
510 // rdar
://8456376 - llvm-mc rejects
'roundss'
511 roundss $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
512 roundps $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
513 roundsd $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
514 roundpd $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
517 // rdar
://8482675 - 32-bit mem operand support in
64-bit mode
(0x67 prefix
)
519 // CHECK
: leal
8(%eax
), %esi
520 // CHECK
: encoding
: [0x67,0x8d,0x70,0x08]
522 // CHECK
: leaq
8(%eax
), %rsi
523 // CHECK
: encoding
: [0x67,0x48,0x8d,0x70,0x08]
525 // CHECK
: leaq
8(%rax
), %rsi
526 // CHECK
: encoding
: [0x48,0x8d,0x70,0x08]
529 cvttpd2dq
0xdeadbeef(%ebx
,%ecx
,8),%xmm5
530 // CHECK
: cvttpd2dq
3735928559(%ebx
,%ecx
,8), %xmm5
531 // CHECK
: encoding
: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
533 // rdar
://8490728 - llvm-mc rejects
'movmskpd'
535 // CHECK
: movmskpd
%xmm6
, %rax
536 // CHECK
: encoding
: [0x66,0x48,0x0f,0x50,0xc6]
538 // CHECK
: movmskpd
%xmm6
, %eax
539 // CHECK
: encoding
: [0x66,0x0f,0x50,0xc6]
541 // rdar
://8491845 - Gas supports commuted forms of non-commutable instructions.
542 fdivrp
%st(0), %st(1) // CHECK
: encoding
: [0xde,0xf9]
543 fdivrp
%st(1), %st(0) // CHECK
: encoding
: [0xde,0xf9]
545 fsubrp
%ST(0), %ST(1) // CHECK
: encoding
: [0xde,0xe9]
546 fsubrp
%ST(1), %ST(0) // CHECK
: encoding
: [0xde,0xe9]
549 fdivp
%st(0), %st(1) // CHECK
: encoding
: [0xde,0xf1]
550 fdivp
%st(1), %st(0) // CHECK
: encoding
: [0xde,0xf1]
554 // CHECK
: movl foo
(%rip
), %eax
555 // CHECK
: encoding
: [0x8b,0x05,A,A,A,A]
556 // CHECK
: fixup
A - offset
: 2, value
: foo-
4, kind
: reloc_riprel_4byte
559 // CHECK
: movb $
12, foo
(%rip
)
560 // CHECK
: encoding
: [0xc6,0x05,A,A,A,A,0x0c]
561 // CHECK
: fixup
A - offset
: 2, value
: foo-
5, kind
: reloc_riprel_4byte
564 // CHECK
: movw $
12, foo
(%rip
)
565 // CHECK
: encoding
: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
566 // CHECK
: fixup
A - offset
: 3, value
: foo-
6, kind
: reloc_riprel_4byte
569 // CHECK
: movl $
12, foo
(%rip
)
570 // CHECK
: encoding
: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
571 // CHECK
: fixup
A - offset
: 2, value
: foo-
8, kind
: reloc_riprel_4byte
574 // CHECK
: movq $
12, foo
(%rip
)
575 // CHECK
: encoding
: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
576 // CHECK
: fixup
A - offset
: 3, value
: foo-
8, kind
: reloc_riprel_4byte
578 // CHECK
: addq $
-424, %rax
579 // CHECK
: encoding
: [0x48,0x05,0x58,0xfe,0xff,0xff]
583 // CHECK
: movq _foo@GOTPCREL
(%rip
), %rax
584 // CHECK
: encoding
: [0x48,0x8b,0x05,A,A,A,A]
585 // CHECK
: fixup
A - offset
: 3, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
586 movq _foo@GOTPCREL
(%rip
), %rax
588 // CHECK
: movq _foo@GOTPCREL
(%rip
), %r14
589 // CHECK
: encoding
: [0x4c,0x8b,0x35,A,A,A,A]
590 // CHECK
: fixup
A - offset
: 3, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
591 movq _foo@GOTPCREL
(%rip
), %r14
594 // CHECK
: movq
(%r13,%rax
,8), %r13
595 // CHECK
: encoding
: [0x4d,0x8b,0x6c,0xc5,0x00]
596 movq
0x00(%r13,%rax
,8),%r13
598 // CHECK
: testq
%rax
, %rbx
599 // CHECK
: encoding
: [0x48,0x85,0xd8]
602 // CHECK
: cmpq
%rbx
, %r14
603 // CHECK
: encoding
: [0x49,0x39,0xde]
610 // CHECK
: encoding
: [0x48,0xa5]
614 // CHECK
: encoding
: [0xa5]
618 // CHECK
: encoding
: [0x48,0xab]
621 // CHECK
: encoding
: [0xab]
624 // Not moffset forms of moves
, they are x86-
32 only
! rdar
://7947184
625 movb
0, %al
// CHECK
: movb
0, %al
# encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
626 movw
0, %ax
// CHECK
: movw
0, %ax
# encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
627 movl
0, %eax
// CHECK
: movl
0, %eax
# encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
629 // CHECK
: pushfq
# encoding: [0x9c]
631 // CHECK
: pushfq
# encoding: [0x9c]
633 // CHECK
: popfq
# encoding: [0x9d]
635 // CHECK
: popfq
# encoding: [0x9d]
638 // CHECK
: movabsq $
-281474976710654, %rax
639 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
640 movabsq $
0xFFFF000000000002, %rax
642 // CHECK
: movabsq $
-281474976710654, %rax
643 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
644 movq $
0xFFFF000000000002, %rax
646 // CHECK
: movq $
-65536, %rax
647 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
648 movq $
0xFFFFFFFFFFFF0000, %rax
650 // CHECK
: movq $
-256, %rax
651 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
652 movq $
0xFFFFFFFFFFFFFF00, %rax
654 // CHECK
: movq $
10, %rax
655 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
661 // CHECK
: encoding
: [0xc3]
665 // CHECK
: encoding
: [0x0f,0x94,0xc0]
669 // CHECK
: encoding
: [0x0f,0x95,0xc0]
673 // CHECK
: encoding
: [0x74,A]
677 // CHECK
: encoding
: [0x75,A]
681 btl $
1, 0 // CHECK
: btl $
1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
682 bt $
1, 0 // CHECK
: btl $
1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
686 // CHECK
: btq $
1, %rdx
687 // CHECK
: encoding
: [0x48,0x0f,0xba,0xe2,0x01]
690 // CHECK
: movzbl
%al
, %esi
691 // CHECK
: encoding
: [0x0f,0xb6,0xf0]
694 // CHECK
: movzbq
%al
, %rsi
695 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xf0]
698 // CHECK
: movsbw
%al
, %ax
699 // CHECK
: encoding
: [0x66,0x0f,0xbe,0xc0]
702 // CHECK
: movsbl
%al
, %eax
703 // CHECK
: encoding
: [0x0f,0xbe,0xc0]
706 // CHECK
: movswl
%ax
, %eax
707 // CHECK
: encoding
: [0x0f,0xbf,0xc0]
710 // CHECK
: movsbq
%bl, %rax
711 // CHECK
: encoding
: [0x48,0x0f,0xbe,0xc3]
714 // CHECK
: movswq
%cx
, %rax
715 // CHECK
: encoding
: [0x48,0x0f,0xbf,0xc1]
718 // CHECK
: movslq
%edi
, %rax
719 // CHECK
: encoding
: [0x48,0x63,0xc7]
722 // CHECK
: movzbw
%al
, %ax
723 // CHECK
: encoding
: [0x66,0x0f,0xb6,0xc0]
726 // CHECK
: movzbl
%al
, %eax
727 // CHECK
: encoding
: [0x0f,0xb6,0xc0]
730 // CHECK
: movzwl
%ax
, %eax
731 // CHECK
: encoding
: [0x0f,0xb7,0xc0]
734 // CHECK
: movzbq
%bl, %rax
735 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xc3]
738 // CHECK
: movzwq
%cx
, %rax
739 // CHECK
: encoding
: [0x48,0x0f,0xb7,0xc1]
742 // CHECK
: movsbw
(%rax
), %ax
743 // CHECK
: encoding
: [0x66,0x0f,0xbe,0x00]
746 // CHECK
: movzbw
(%rax
), %ax
747 // CHECK
: encoding
: [0x66,0x0f,0xb6,0x00]
752 // CHECK
: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
755 // CHECK
: jmpq
*8(%rax
)
756 // CHECK
: encoding
: [0xff,0x60,0x08]
759 // CHECK
: btq $
61, -216(%rbp
)
760 // CHECK
: encoding
: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
768 // CHECK
: encoding
: [0x67,0xe3,A]
771 // CHECK
: encoding
: [0xe3,A]
775 // CHECK
: xchgl
%ecx
, 368(%rax
)
776 xchgl
%ecx
, 368(%rax
)
777 // CHECK
: xchgl
%ecx
, 368(%rax
)
780 xchg
0xdeadbeef(%rbx
,%rcx
,8),%bl
781 // CHECK
: xchgb
%bl, 3735928559(%rbx
,%rcx
,8)
788 // CHECK
: incl
1(%rsp
)
793 // CHECK
: incl
1(%rsp
)
798 // CHECK
: encoding
: [0xf3]
800 // CHECK
: encoding
: [0xa5]
806 // CHECK
: encoding
: [0xcf]
809 // CHECK
: encoding
: [0x66,0xcf]
812 // CHECK
: encoding
: [0xcf]
815 // CHECK
: encoding
: [0x48,0xcf]
818 // CHECK
: retw $
31438
819 // CHECK
: encoding
: [0x66,0xc2,0xce,0x7a]
822 // CHECK
: lretw $
31438
823 // CHECK
: encoding
: [0x66,0xca,0xce,0x7a]
827 lretq
// CHECK
: lretq
# encoding: [0x48,0xcb]
828 lretl
// CHECK
: lretl
# encoding: [0xcb]
829 lret
// CHECK
: lretl
# encoding: [0xcb]
834 // CHECK
: encoding
: [0x0f,0x07]
837 // CHECK
: encoding
: [0x0f,0x07]
840 // CHECK
: encoding
: [0x48,0x0f,0x07]
845 // CHECK
: encoding
: [0x0f,0xa0]
848 // CHECK
: encoding
: [0x0f,0xa8]
852 // CHECK
: encoding
: [0x66,0x0f,0xa0]
855 // CHECK
: encoding
: [0x66,0x0f,0xa8]
860 // CHECK
: encoding
: [0x0f,0xa1]
863 // CHECK
: encoding
: [0x0f,0xa9]
867 // CHECK
: encoding
: [0x66,0x0f,0xa1]
870 // CHECK
: encoding
: [0x66,0x0f,0xa9]
875 // CHECK
: fildll
-8(%rsp
)
876 // CHECK
: encoding
: [0xdf,0x6c,0x24,0xf8]
877 // CHECK
: fildll
-8(%rsp
)
878 // CHECK
: encoding
: [0xdf,0x6c,0x24,0xf8]
883 // CHECK
: leaq
-40(%rbp
), %r15
888 // rdar
://8013734 - Alias dr6
=db6
891 // CHECK
: movq
%dr6
, %rax
892 // CHECK
: movq
%dr6
, %rax
895 // INC
/DEC encodings.
896 incb
%al
// CHECK
: incb
%al
# encoding: [0xfe,0xc0]
897 incw
%ax
// CHECK
: incw
%ax
# encoding: [0x66,0xff,0xc0]
898 incl
%eax
// CHECK
: incl
%eax
# encoding: [0xff,0xc0]
899 decb
%al
// CHECK
: decb
%al
# encoding: [0xfe,0xc8]
900 decw
%ax
// CHECK
: decw
%ax
# encoding: [0x66,0xff,0xc8]
901 decl
%eax
// CHECK
: decl
%eax
# encoding: [0xff,0xc8]
904 // CHECK
: lgdt
4(%rax
)
905 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
908 // CHECK
: lgdt
4(%rax
)
909 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
912 // CHECK
: lidt
4(%rax
)
913 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
916 // CHECK
: lidt
4(%rax
)
917 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
920 // CHECK
: sgdt
4(%rax
)
921 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
924 // CHECK
: sgdt
4(%rax
)
925 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
928 // CHECK
: sidt
4(%rax
)
929 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
932 // CHECK
: sidt
4(%rax
)
933 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
938 mov
(%rsi
), %gs
// CHECK
: movl
(%rsi
), %gs
# encoding: [0x8e,0x2e]
939 mov
%gs
, (%rsi
) // CHECK
: movl
%gs
, (%rsi
) # encoding: [0x8c,0x2e]
946 div 0xdeadbeef(%ebx
,%ecx
,8),%eax
954 idiv
0xdeadbeef(%ebx
,%ecx
,8),%eax
961 movd
%rax
, %mm5
// CHECK
: movd
%rax
, %mm5
# encoding: [0x48,0x0f,0x6e,0xe8]
962 movd
%mm5
, %rbx
// CHECK
: movd
%mm5
, %rbx
# encoding: [0x48,0x0f,0x7e,0xeb]
963 movq
%rax
, %mm5
// CHECK
: movd
%rax
, %mm5
# encoding: [0x48,0x0f,0x6e,0xe8]
964 movq
%mm5
, %rbx
// CHECK
: movd
%mm5
, %rbx
# encoding: [0x48,0x0f,0x7e,0xeb]
966 rex64
// CHECK
: rex64
# encoding: [0x48]
967 data16
// CHECK
: data16
# encoding: [0x66]
970 movq
18446744073709551615,%rbx
// CHECK
: movq
-1, %rbx
973 movdqu
%xmm0
, %xmm1
// CHECK
: movdqu
%xmm0
, %xmm1
# encoding: [0xf3,0x0f,0x6f,0xc8]
976 xgetbv
// CHECK
: xgetbv
# encoding: [0x0f,0x01,0xd0]
977 xsetbv
// CHECK
: xsetbv
# encoding: [0x0f,0x01,0xd1]
980 // CHECK
: encoding
: [0xe1,A]
984 // CHECK
: encoding
: [0xe0,A]
987 // CHECK
: outsb
# encoding: [0x6e]
991 outsb
%ds
:(%rsi
), %dx
994 // CHECK
: outsw
# encoding: [0x66,0x6f]
998 outsw
%ds
:(%rsi
), %dx
1001 // CHECK
: outsl
# encoding: [0x6f]
1004 outsl
%ds
:(%rsi
), %dx
1007 // CHECK
: insb
# encoding: [0x6c]
1010 insb
%dx
, %es
:(%rdi
)
1012 // CHECK
: insw
# encoding: [0x66,0x6d]
1015 insw
%dx
, %es
:(%rdi
)
1017 // CHECK
: insl
# encoding: [0x6d]
1020 insl
%dx
, %es
:(%rdi
)
1022 // CHECK
: movsb
# encoding: [0xa4]
1026 movsb
%ds
:(%rsi
), %es
:(%rdi
)
1027 movsb
(%rsi
), %es
:(%rdi
)
1029 // CHECK
: movsw
# encoding: [0x66,0xa5]
1033 movsw
%ds
:(%rsi
), %es
:(%rdi
)
1034 movsw
(%rsi
), %es
:(%rdi
)
1036 // CHECK
: movsd
# encoding: [0xa5]
1040 movsl
%ds
:(%rsi
), %es
:(%rdi
)
1041 movsl
(%rsi
), %es
:(%rdi
)
1043 // CHECK
: movsq
# encoding: [0x48,0xa5]
1047 movsq
%ds
:(%rsi
), %es
:(%rdi
)
1048 movsq
(%rsi
), %es
:(%rdi
)
1050 // CHECK
: lodsb
# encoding: [0xac]
1056 lodsb
%ds
:(%rsi
), %al
1058 lods
%ds
:(%rsi
), %al
1061 // CHECK
: lodsw
# encoding: [0x66,0xad]
1067 lodsw
%ds
:(%rsi
), %ax
1069 lods
%ds
:(%rsi
), %ax
1072 // CHECK
: lodsl
# encoding: [0xad]
1078 lodsl
%ds
:(%rsi
), %eax
1080 lods
%ds
:(%rsi
), %eax
1083 // CHECK
: lodsq
# encoding: [0x48,0xad]
1089 lodsq
%ds
:(%rsi
), %rax
1091 lods
%ds
:(%rsi
), %rax
1094 // CHECK
: stosb
# encoding: [0xaa]
1098 stosb
%al
, %es
:(%rdi
)
1099 stos
%al
, %es
:(%rdi
)
1101 // CHECK
: stosw
# encoding: [0x66,0xab]
1105 stosw
%ax
, %es
:(%rdi
)
1106 stos
%ax
, %es
:(%rdi
)
1108 // CHECK
: stosl
# encoding: [0xab]
1112 stosl
%eax
, %es
:(%rdi
)
1113 stos
%eax
, %es
:(%rdi
)
1115 // CHECK
: stosq
# encoding: [0x48,0xab]
1119 stosq
%rax
, %es
:(%rdi
)
1120 stos
%rax
, %es
:(%rdi
)
1123 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc8]
1127 // CHECK
: encoding
: [0x0f,0x00,0xc8]
1131 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc8]
1135 // CHECK
: encoding
: [0x48,0x0f,0x00,0xc8]
1138 // CHECK
: movd
%rdi
, %xmm0
1139 // CHECK
: encoding
: [0x66,0x48,0x0f,0x6e,0xc7]
1142 // CHECK
: movd
%rdi
, %xmm0
1143 // CHECK
: encoding
: [0x66,0x48,0x0f,0x6e,0xc7]
1146 // CHECK
: movntil
%eax
, (%rdi
)
1147 // CHECK
: encoding
: [0x0f,0xc3,0x07]
1149 movntil
%eax
, (%rdi
)
1152 // CHECK
: movntiq
%rax
, (%rdi
)
1153 // CHECK
: encoding
: [0x48,0x0f,0xc3,0x07]
1155 movntiq
%rax
, (%rdi
)
1158 // CHECK
: pclmulqdq $
17, %xmm0
, %xmm1
1159 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1160 pclmulhqhqdq
%xmm0
, %xmm1
1162 // CHECK
: pclmulqdq $
1, %xmm0
, %xmm1
1163 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1164 pclmulqdq $
1, %xmm0
, %xmm1
1166 // CHECK
: pclmulqdq $
16, (%rdi
), %xmm1
1167 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1168 pclmullqhqdq
(%rdi
), %xmm1
1170 // CHECK
: pclmulqdq $
0, (%rdi
), %xmm1
1171 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1172 pclmulqdq $
0, (%rdi
), %xmm1