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
)
402 // CHECK
: ljmpl
*%cs
:305419896
403 // CHECK
: encoding
: [0x2e,0xff,0x2c,0x25,0x78,0x56,0x34,0x12]
407 // CHECK
: enter $
31438, $
0
408 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x00]
409 // CHECK
: enter $
31438, $
1
410 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x01]
411 // CHECK
: enter $
31438, $
127
412 // CHECK
: encoding
: [0xc8,0xce,0x7a,0x7f]
419 // CHECK
: movw
%cs
, %ax
423 fcmovb
%st(1), %st // CHECK
: fcmovb
%st(1), %st
424 fcmove
%st(1), %st // CHECK
: fcmove
%st(1), %st
425 fcmovbe
%st(1), %st // CHECK
: fcmovbe
%st(1), %st
426 fcmovu
%st(1), %st // CHECK
: fcmovu
%st(1), %st
428 fcmovnb
%st(1), %st // CHECK
: fcmovnb
%st(1), %st
429 fcmovne
%st(1), %st // CHECK
: fcmovne
%st(1), %st
430 fcmovnbe
%st(1), %st // CHECK
: fcmovnbe
%st(1), %st
431 fcmovnu
%st(1), %st // CHECK
: fcmovnu
%st(1), %st
433 fcmovnae
%st(1), %st // CHECK
: fcmovb
%st(1), %st
434 fcmovna
%st(1), %st // CHECK
: fcmovbe
%st(1), %st
436 fcmovae
%st(1), %st // CHECK
: fcmovnb
%st(1), %st
437 fcmova
%st(1), %st // CHECK
: fcmovnbe
%st(1), %st
440 .byte (88 + 1) & 15 // CHECK: .byte 9
444 // CHECK
: movq
%rdx
, %cr0
445 // CHECK
: encoding
: [0x0f,0x22,0xc2]
447 // CHECK
: movq
%rdx
, %cr4
448 // CHECK
: encoding
: [0x0f,0x22,0xe2]
450 // CHECK
: movq
%rdx
, %cr8
451 // CHECK
: encoding
: [0x44,0x0f,0x22,0xc2]
453 // CHECK
: movq
%rdx
, %cr15
454 // CHECK
: encoding
: [0x44,0x0f,0x22,0xfa]
456 // CHECK
: movq
%rdx
, %dr15
457 // CHECK
: encoding
: [0x44,0x0f,0x23,0xfa]
459 // CHECK
: movq
%rdx
, %dr15
460 // CHECK
: encoding
: [0x44,0x0f,0x23,0xfa]
462 // rdar
://8456371 - Handle commutable instructions written backward.
463 // CHECK
: faddp
%st, %st(1)
464 // CHECK
: fmulp
%st, %st(2)
468 // rdar
://8468087 - Encode these accurately
, they are
not synonyms.
469 // CHECK
: fmul %st, %st(1)
470 // CHECK
: encoding
: [0xdc,0xc9]
471 // CHECK
: fmul %st(1)
472 // CHECK
: encoding
: [0xd8,0xc9]
476 // CHECK
: fadd %st, %st(1)
477 // CHECK
: encoding
: [0xdc,0xc1]
478 // CHECK
: fadd %st(1)
479 // CHECK
: encoding
: [0xd8,0xc1]
485 // CHECK
: xorb
%al
, %al
486 // CHECK
: encoding
: [0x30,0xc0]
487 // CHECK
: xorw
%di
, %di
488 // CHECK
: encoding
: [0x66,0x31,0xff]
489 // CHECK
: xorl
%esi
, %esi
490 // CHECK
: encoding
: [0x31,0xf6]
491 // CHECK
: xorq
%rsi
, %rsi
492 // CHECK
: encoding
: [0x48,0x31,0xf6]
510 // rdar
://8456378 and PR7557
- fstsw
516 // CHECK
: fnstsw
(%rax
)
521 // CHECK
: fnstcw
(%rsp
)
526 // CHECK
: fnstcw
(%rsp
)
535 // CHECK
: fnsave
32493
538 // rdar
://8456382 - cvtsd2si support.
540 // CHECK
: cvtsd2si
%xmm1
, %rax
541 // CHECK
: encoding
: [0xf2,0x48,0x0f,0x2d,0xc1]
543 // CHECK
: cvtsd2si
%xmm1
, %eax
544 // CHECK
: encoding
: [0xf2,0x0f,0x2d,0xc1]
546 cvtsd2siq
%xmm0
, %rax
// CHECK
: cvtsd2si
%xmm0
, %rax
547 cvtsd2sil
%xmm0
, %eax
// CHECK
: cvtsd2si
%xmm0
, %eax
548 cvtsd2si
%xmm0
, %rax
// CHECK
: cvtsd2si
%xmm0
, %rax
551 cvttpd2dq
%xmm1
, %xmm0
// CHECK
: cvttpd2dq
%xmm1
, %xmm0
552 cvttpd2dq
(%rax
), %xmm0
// CHECK
: cvttpd2dq
(%rax
), %xmm0
554 cvttps2dq
%xmm1
, %xmm0
// CHECK
: cvttps2dq
%xmm1
, %xmm0
555 cvttps2dq
(%rax
), %xmm0
// CHECK
: cvttps2dq
(%rax
), %xmm0
557 // rdar
://8456376 - llvm-mc rejects
'roundss'
558 roundss $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e]
559 roundps $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x08,0xc0,0x0e]
560 roundsd $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e]
561 roundpd $
0xE, %xmm0
, %xmm0
// CHECK
: encoding
: [0x66,0x0f,0x3a,0x09,0xc0,0x0e]
564 // rdar
://8482675 - 32-bit mem operand support in
64-bit mode
(0x67 prefix
)
566 // CHECK
: leal
8(%eax
), %esi
567 // CHECK
: encoding
: [0x67,0x8d,0x70,0x08]
569 // CHECK
: leaq
8(%eax
), %rsi
570 // CHECK
: encoding
: [0x67,0x48,0x8d,0x70,0x08]
572 // CHECK
: leaq
8(%rax
), %rsi
573 // CHECK
: encoding
: [0x48,0x8d,0x70,0x08]
576 cvttpd2dq
0xdeadbeef(%ebx
,%ecx
,8),%xmm5
577 // CHECK
: cvttpd2dq
3735928559(%ebx
,%ecx
,8), %xmm5
578 // CHECK
: encoding
: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde]
580 // rdar
://8490728 - llvm-mc rejects
'movmskpd'
582 // CHECK
: movmskpd
%xmm6
, %eax
583 // CHECK
: encoding
: [0x66,0x0f,0x50,0xc6]
585 // CHECK
: movmskpd
%xmm6
, %eax
586 // CHECK
: encoding
: [0x66,0x0f,0x50,0xc6]
588 // rdar
://8491845 - Gas supports commuted forms of non-commutable instructions.
589 fdivrp
%st, %st(1) // CHECK
: encoding
: [0xde,0xf9]
590 fdivrp
%st(1), %st // CHECK
: encoding
: [0xde,0xf9]
592 fsubrp
%st, %st(1) // CHECK
: encoding
: [0xde,0xe9]
593 fsubrp
%st(1), %st // CHECK
: encoding
: [0xde,0xe9]
596 fdivp
%st, %st(1) // CHECK
: encoding
: [0xde,0xf1]
597 fdivp
%st(1), %st // CHECK
: encoding
: [0xde,0xf1]
601 // CHECK
: movl foo
(%rip
), %eax
602 // CHECK
: encoding
: [0x8b,0x05,A,A,A,A]
603 // CHECK
: fixup
A - offset
: 2, value
: foo-
4, kind
: reloc_riprel_4byte
606 // CHECK
: movb $
12, foo
(%rip
)
607 // CHECK
: encoding
: [0xc6,0x05,A,A,A,A,0x0c]
608 // CHECK
: fixup
A - offset
: 2, value
: foo-
5, kind
: reloc_riprel_4byte
611 // CHECK
: movw $
12, foo
(%rip
)
612 // CHECK
: encoding
: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
613 // CHECK
: fixup
A - offset
: 3, value
: foo-
6, kind
: reloc_riprel_4byte
616 // CHECK
: movl $
12, foo
(%rip
)
617 // CHECK
: encoding
: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
618 // CHECK
: fixup
A - offset
: 2, value
: foo-
8, kind
: reloc_riprel_4byte
622 // CHECK
: movl $
12, 1024(%rip
)
623 // CHECK
: encoding
: [0xc7,0x05,0x00,0x04,0x00,0x00,0x0c,0x00,0x00,0x00]
626 // CHECK
: movq $
12, foo
(%rip
)
627 // CHECK
: encoding
: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
628 // CHECK
: fixup
A - offset
: 3, value
: foo-
8, kind
: reloc_riprel_4byte
631 // CHECK
: movl foo
(%eip
), %eax
632 // CHECK
: encoding
: [0x67,0x8b,0x05,A,A,A,A]
633 // CHECK
: fixup
A - offset
: 3, value
: foo-
4, kind
: reloc_riprel_4byte
636 // CHECK
: movb $
12, foo
(%eip
)
637 // CHECK
: encoding
: [0x67,0xc6,0x05,A,A,A,A,0x0c]
638 // CHECK
: fixup
A - offset
: 3, value
: foo-
5, kind
: reloc_riprel_4byte
641 // CHECK
: movw $
12, foo
(%eip
)
642 // CHECK
: encoding
: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
643 // CHECK
: fixup
A - offset
: 4, value
: foo-
6, kind
: reloc_riprel_4byte
646 // CHECK
: movl $
12, foo
(%eip
)
647 // CHECK
: encoding
: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
648 // CHECK
: fixup
A - offset
: 3, value
: foo-
8, kind
: reloc_riprel_4byte
651 // CHECK
: movq $
12, foo
(%eip
)
652 // CHECK
: encoding
: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
653 // CHECK
: fixup
A - offset
: 4, value
: foo-
8, kind
: reloc_riprel_4byte
655 // CHECK
: addq $
-424, %rax
656 // CHECK
: encoding
: [0x48,0x05,0x58,0xfe,0xff,0xff]
660 // CHECK
: movq _foo@GOTPCREL
(%rip
), %rax
661 // CHECK
: encoding
: [0x48,0x8b,0x05,A,A,A,A]
662 // CHECK
: fixup
A - offset
: 3, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
663 movq _foo@GOTPCREL
(%rip
), %rax
665 // CHECK
: movq _foo@GOTPCREL
(%rip
), %r14
666 // CHECK
: encoding
: [0x4c,0x8b,0x35,A,A,A,A]
667 // CHECK
: fixup
A - offset
: 3, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
668 movq _foo@GOTPCREL
(%rip
), %r14
670 // CHECK
: movq _foo@GOTPCREL
(%eip
), %rax
671 // CHECK
: encoding
: [0x67,0x48,0x8b,0x05,A,A,A,A]
672 // CHECK
: fixup
A - offset
: 4, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
673 movq _foo@GOTPCREL
(%eip
), %rax
675 // CHECK
: movq _foo@GOTPCREL
(%eip
), %r14
676 // CHECK
: encoding
: [0x67,0x4c,0x8b,0x35,A,A,A,A]
677 // CHECK
: fixup
A - offset
: 4, value
: _foo@GOTPCREL-
4, kind
: reloc_riprel_4byte_movq_load
678 movq _foo@GOTPCREL
(%eip
), %r14
680 // CHECK
: movq
(%r13,%rax
,8), %r13
681 // CHECK
: encoding
: [0x4d,0x8b,0x6c,0xc5,0x00]
682 movq
0x00(%r13,%rax
,8),%r13
684 // CHECK
: testq
%rax
, %rbx
685 // CHECK
: encoding
: [0x48,0x85,0xc3]
688 // CHECK
: cmpq
%rbx
, %r14
689 // CHECK
: encoding
: [0x49,0x39,0xde]
696 // CHECK
: encoding
: [0x48,0xa5]
700 // CHECK
: encoding
: [0xa5]
704 // CHECK
: encoding
: [0x48,0xab]
707 // CHECK
: encoding
: [0xab]
710 // Not moffset forms of moves
, they are x86-
32 only
! rdar
://7947184
711 movb
0, %al
// CHECK
: movb
0, %al
# encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
712 movw
0, %ax
// CHECK
: movw
0, %ax
# encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
713 movl
0, %eax
// CHECK
: movl
0, %eax
# encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
715 // CHECK
: pushfq
# encoding: [0x9c]
717 // CHECK
: pushfq
# encoding: [0x9c]
719 // CHECK
: popfq
# encoding: [0x9d]
721 // CHECK
: popfq
# encoding: [0x9d]
724 // CHECK
: movabsq $
-281474976710654, %rax
725 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
726 movabsq $
0xFFFF000000000002, %rax
728 // CHECK
: movabsq $
-281474976710654, %rax
729 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
730 movq $
0xFFFF000000000002, %rax
732 // CHECK
: movabsq
81985529216486895, %rax
733 // CHECK
: encoding
: [0x48,0xa1,0xef,0xcd,0xab,0x89,0x67,0x45,0x23,0x01]
734 movabsq
0x123456789abcdef, %rax
736 // CHECK
: movq $
-65536, %rax
737 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
738 movq $
0xFFFFFFFFFFFF0000, %rax
740 // CHECK
: movq $
-256, %rax
741 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
742 movq $
0xFFFFFFFFFFFFFF00, %rax
744 // CHECK
: movq $
10, %rax
745 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
748 // CHECK
: movq
81985529216486895, %rax
749 // CHECK
: encoding
: [0x48,0x8b,0x04,0x25,0xef,0xcd,0xab,0x89]
750 movq
0x123456789abcdef, %rax
752 // CHECK
: movabsb
-6066930261531658096, %al
753 // CHECK
: encoding
: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
754 movabsb
0xabcdef1234567890,%al
756 // CHECK
: movabsw
-6066930261531658096, %ax
757 // CHECK
: encoding
: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
758 movabsw
0xabcdef1234567890,%ax
760 // CHECK
: movabsl
-6066930261531658096, %eax
761 // CHECK
: encoding
: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
762 movabsl
0xabcdef1234567890,%eax
764 // CHECK
: movabsq
-6066930261531658096, %rax
765 // CHECK
: encoding
: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
766 movabsq
0xabcdef1234567890, %rax
768 // CHECK
: movabsb
%al
, -6066930261531658096
769 // CHECK
: encoding
: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
770 movabsb
%al
,0xabcdef1234567890
772 // CHECK
: movabsw
%ax
, -6066930261531658096
773 // CHECK
: encoding
: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
774 movabsw
%ax
,0xabcdef1234567890
776 // CHECK
: movabsl
%eax
, -6066930261531658096
777 // CHECK
: encoding
: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
778 movabsl
%eax
,0xabcdef1234567890
780 // CHECK
: movabsq
%rax
, -6066930261531658096
781 // CHECK
: encoding
: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab]
782 movabsq
%rax
,0xabcdef1234567890
787 // CHECK
: encoding
: [0xc3]
791 // CHECK
: encoding
: [0x0f,0x94,0xc0]
795 // CHECK
: encoding
: [0x0f,0x95,0xc0]
799 // CHECK
: encoding
: [0x74,A]
803 // CHECK
: encoding
: [0x75,A]
807 btl $
1, 0 // CHECK
: btl $
1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
808 bt $
1, 0 // CHECK
: btl $
1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01]
812 // CHECK
: btq $
1, %rdx
813 // CHECK
: encoding
: [0x48,0x0f,0xba,0xe2,0x01]
816 // CHECK
: movzbl
%al
, %esi
817 // CHECK
: encoding
: [0x0f,0xb6,0xf0]
820 // CHECK
: movzbq
%al
, %rsi
821 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xf0]
824 // CHECK
: movsbw
%al
, %ax
825 // CHECK
: encoding
: [0x66,0x0f,0xbe,0xc0]
828 // CHECK
: movsbl
%al
, %eax
829 // CHECK
: encoding
: [0x0f,0xbe,0xc0]
832 // CHECK
: movswl
%ax
, %eax
833 // CHECK
: encoding
: [0x0f,0xbf,0xc0]
836 // CHECK
: movsbq
%bl, %rax
837 // CHECK
: encoding
: [0x48,0x0f,0xbe,0xc3]
840 // CHECK
: movswq
%cx
, %rax
841 // CHECK
: encoding
: [0x48,0x0f,0xbf,0xc1]
844 // CHECK
: movslq
%edi
, %rax
845 // CHECK
: encoding
: [0x48,0x63,0xc7]
848 // CHECK
: movzbw
%al
, %ax
849 // CHECK
: encoding
: [0x66,0x0f,0xb6,0xc0]
852 // CHECK
: movzbl
%al
, %eax
853 // CHECK
: encoding
: [0x0f,0xb6,0xc0]
856 // CHECK
: movzwl
%ax
, %eax
857 // CHECK
: encoding
: [0x0f,0xb7,0xc0]
860 // CHECK
: movzbq
%bl, %rax
861 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xc3]
864 // CHECK
: movzwq
%cx
, %rax
865 // CHECK
: encoding
: [0x48,0x0f,0xb7,0xc1]
868 // CHECK
: movsbw
(%rax
), %ax
869 // CHECK
: encoding
: [0x66,0x0f,0xbe,0x00]
872 // CHECK
: movzbw
(%rax
), %ax
873 // CHECK
: encoding
: [0x66,0x0f,0xb6,0x00]
876 // CHECK
: movzbq
1280(%rbx
,%r11), %r12
877 // CHECK
: encoding
: [0x4e,0x0f,0xb6,0xa4,0x1b,0x00,0x05,0x00,0x00]
878 movzb
1280(%rbx
, %r11), %r12
881 // CHECK
: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
884 // CHECK
: jmpq
*8(%rax
)
885 // CHECK
: encoding
: [0xff,0x60,0x08]
888 // CHECK
: btq $
61, -216(%rbp
)
889 // CHECK
: encoding
: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d]
897 // CHECK
: encoding
: [0x67,0xe3,A]
900 // CHECK
: encoding
: [0xe3,A]
904 // CHECK
: xchgl
%ecx
, 368(%rax
)
905 xchgl
%ecx
, 368(%rax
)
906 // CHECK
: xchgl
%ecx
, 368(%rax
)
909 xchg
0xdeadbeef(%rbx
,%rcx
,8),%bl
910 // CHECK
: xchgb
%bl, 3735928559(%rbx
,%rcx
,8)
917 // CHECK
: incl
1(%rsp
)
922 // CHECK
: incl
1(%rsp
)
925 lock addq
%rsi
, (%rdi
)
927 // CHECK
: addq
%rsi
, (%rdi
)
928 // CHECK
: encoding
: [0xf0,0x48,0x01,0x37]
930 lock subq
%rsi
, (%rdi
)
932 // CHECK
: subq
%rsi
, (%rdi
)
933 // CHECK
: encoding
: [0xf0,0x48,0x29,0x37]
935 lock andq
%rsi
, (%rdi
)
937 // CHECK
: andq
%rsi
, (%rdi
)
938 // CHECK
: encoding
: [0xf0,0x48,0x21,0x37]
940 lock orq
%rsi
, (%rdi
)
942 // CHECK
: orq
%rsi
, (%rdi
)
943 // CHECK
: encoding
: [0xf0,0x48,0x09,0x37]
945 lock xorq
%rsi
, (%rdi
)
947 // CHECK
: xorq
%rsi
, (%rdi
)
948 // CHECK
: encoding
: [0xf0,0x48,0x31,0x37]
950 xacquire lock addq
%rax
, (%rax
)
952 // CHECK
: encoding
: [0xf2]
954 // CHECK
: addq
%rax
, (%rax
)
955 // CHECK
: encoding
: [0xf0,0x48,0x01,0x00]
957 xrelease lock addq
%rax
, (%rax
)
959 // CHECK
: encoding
: [0xf3]
961 // CHECK
: addq
%rax
, (%rax
)
962 // CHECK
: encoding
: [0xf0,0x48,0x01,0x00]
968 // CHECK
: encoding
: [0xf3,0xa5]
974 // CHECK
: encoding
: [0xcf]
977 // CHECK
: encoding
: [0x66,0xcf]
980 // CHECK
: encoding
: [0xcf]
983 // CHECK
: encoding
: [0x48,0xcf]
986 // CHECK
: retw $
31438
987 // CHECK
: encoding
: [0x66,0xc2,0xce,0x7a]
990 // CHECK
: lretw $
31438
991 // CHECK
: encoding
: [0x66,0xca,0xce,0x7a]
995 lretq
// CHECK
: lretq
# encoding: [0x48,0xcb]
996 lretl
// CHECK
: lretl
# encoding: [0xcb]
997 lret
// CHECK
: lretl
# encoding: [0xcb]
998 lretw
// CHECK
: lretw
# encoding: [0x66,0xcb]
1003 // CHECK
: encoding
: [0x0f,0x07]
1006 // CHECK
: encoding
: [0x0f,0x07]
1009 // CHECK
: encoding
: [0x48,0x0f,0x07]
1014 // CHECK
: encoding
: [0x0f,0xa0]
1017 // CHECK
: encoding
: [0x0f,0xa8]
1021 // CHECK
: encoding
: [0x66,0x0f,0xa0]
1024 // CHECK
: encoding
: [0x66,0x0f,0xa8]
1029 // CHECK
: encoding
: [0x0f,0xa1]
1032 // CHECK
: encoding
: [0x0f,0xa9]
1036 // CHECK
: encoding
: [0x66,0x0f,0xa1]
1039 // CHECK
: encoding
: [0x66,0x0f,0xa9]
1044 // CHECK
: fildll
-8(%rsp
)
1045 // CHECK
: encoding
: [0xdf,0x6c,0x24,0xf8]
1046 // CHECK
: fildll
-8(%rsp
)
1047 // CHECK
: encoding
: [0xdf,0x6c,0x24,0xf8]
1052 // CHECK
: leaq
-40(%rbp
), %r15
1053 leaq
-40(%rbp
), %r15
1057 // rdar
://8013734 - Alias dr6
=db6
1060 // CHECK
: movq
%dr6
, %rax
1061 // CHECK
: movq
%dr6
, %rax
1064 // INC
/DEC encodings.
1065 incb
%al
// CHECK
: incb
%al
# encoding: [0xfe,0xc0]
1066 incw
%ax
// CHECK
: incw
%ax
# encoding: [0x66,0xff,0xc0]
1067 incl
%eax
// CHECK
: incl
%eax
# encoding: [0xff,0xc0]
1068 decb
%al
// CHECK
: decb
%al
# encoding: [0xfe,0xc8]
1069 decw
%ax
// CHECK
: decw
%ax
# encoding: [0x66,0xff,0xc8]
1070 decl
%eax
// CHECK
: decl
%eax
# encoding: [0xff,0xc8]
1073 // CHECK
: lgdtq
4(%rax
)
1074 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
1077 // CHECK
: lgdtq
4(%rax
)
1078 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
1081 // CHECK
: lidtq
4(%rax
)
1082 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
1085 // CHECK
: lidtq
4(%rax
)
1086 // CHECK
: encoding
: [0x0f,0x01,0x58,0x04]
1089 // CHECK
: sgdtq
4(%rax
)
1090 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
1093 // CHECK
: sgdtq
4(%rax
)
1094 // CHECK
: encoding
: [0x0f,0x01,0x40,0x04]
1097 // CHECK
: sidtq
4(%rax
)
1098 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
1101 // CHECK
: sidtq
4(%rax
)
1102 // CHECK
: encoding
: [0x0f,0x01,0x48,0x04]
1107 mov
(%rsi
), %gs
// CHECK
: movw
(%rsi
), %gs
# encoding: [0x8e,0x2e]
1108 mov
%gs
, (%rsi
) // CHECK
: movw
%gs
, (%rsi
) # encoding: [0x8c,0x2e]
1115 //CHECK
: divl
3735928559(%ebx
,%ecx
,8)
1118 //CHECK
: divl
3133065982
1119 //CHECK
: divl
305419896
1123 //CHECK
: idivl
3735928559(%ebx
,%ecx
,8)
1125 //CHECK
: idivl
32493
1126 //CHECK
: idivl
3133065982
1127 //CHECK
: idivl
305419896
1131 div 0xdeadbeef(%ebx
,%ecx
,8),%eax
1139 idiv
0xdeadbeef(%ebx
,%ecx
,8),%eax
1142 idiv
0xbabecafe,%eax
1143 idiv
0x12345678,%eax
1146 movd
%rax
, %mm5
// CHECK
: movq
%rax
, %mm5
# encoding: [0x48,0x0f,0x6e,0xe8]
1147 movd
%mm5
, %rbx
// CHECK
: movq
%mm5
, %rbx
# encoding: [0x48,0x0f,0x7e,0xeb]
1148 movq
%rax
, %mm5
// CHECK
: movq
%rax
, %mm5
# encoding: [0x48,0x0f,0x6e,0xe8]
1149 movq
%mm5
, %rbx
// CHECK
: movq
%mm5
, %rbx
# encoding: [0x48,0x0f,0x7e,0xeb]
1151 rex64
// CHECK
: rex64
# encoding: [0x48]
1152 data16
// CHECK
: data16
# encoding: [0x66]
1155 // CHECK
: encoding
: [0x66]
1156 // CHECK
: lgdtq
4(%rax
)
1157 // CHECK
: encoding
: [0x0f,0x01,0x50,0x04]
1161 movq
18446744073709551615,%rbx
// CHECK
: movq
-1, %rbx
1164 movdqu
%xmm0
, %xmm1
// CHECK
: movdqu
%xmm0
, %xmm1
# encoding: [0xf3,0x0f,0x6f,0xc8]
1167 xgetbv
// CHECK
: xgetbv
# encoding: [0x0f,0x01,0xd0]
1168 xsetbv
// CHECK
: xsetbv
# encoding: [0x0f,0x01,0xd1]
1171 // CHECK
: encoding
: [0xe1,A]
1175 // CHECK
: encoding
: [0xe0,A]
1178 // CHECK
: outsb
(%rsi
), %dx
# encoding: [0x6e]
1182 outsb
%ds
:(%rsi
), %dx
1185 // CHECK
: outsw
(%rsi
), %dx
# encoding: [0x66,0x6f]
1189 outsw
%ds
:(%rsi
), %dx
1192 // CHECK
: outsl
(%rsi
), %dx
# encoding: [0x6f]
1195 outsl
%ds
:(%rsi
), %dx
1198 // CHECK
: insb
%dx
, %es
:(%rdi
) # encoding: [0x6c]
1201 insb
%dx
, %es
:(%rdi
)
1203 // CHECK
: insw
%dx
, %es
:(%rdi
) # encoding: [0x66,0x6d]
1206 insw
%dx
, %es
:(%rdi
)
1208 // CHECK
: insl
%dx
, %es
:(%rdi
) # encoding: [0x6d]
1211 insl
%dx
, %es
:(%rdi
)
1213 // CHECK
: movsb
(%rsi
), %es
:(%rdi
) # encoding: [0xa4]
1217 movsb
%ds
:(%rsi
), %es
:(%rdi
)
1218 movsb
(%rsi
), %es
:(%rdi
)
1220 // CHECK
: movsw
(%rsi
), %es
:(%rdi
) # encoding: [0x66,0xa5]
1224 movsw
%ds
:(%rsi
), %es
:(%rdi
)
1225 movsw
(%rsi
), %es
:(%rdi
)
1227 // CHECK
: movsl
(%rsi
), %es
:(%rdi
) # encoding: [0xa5]
1231 movsl
%ds
:(%rsi
), %es
:(%rdi
)
1232 movsl
(%rsi
), %es
:(%rdi
)
1235 movsl
(%rsi
), (%rdi
)
1237 // CHECK
: movsq
(%rsi
), %es
:(%rdi
) # encoding: [0x48,0xa5]
1241 movsq
%ds
:(%rsi
), %es
:(%rdi
)
1242 movsq
(%rsi
), %es
:(%rdi
)
1244 // CHECK
: lodsb
(%rsi
), %al
# encoding: [0xac]
1250 lodsb
%ds
:(%rsi
), %al
1252 lods
%ds
:(%rsi
), %al
1255 // CHECK
: lodsw
(%rsi
), %ax
# encoding: [0x66,0xad]
1261 lodsw
%ds
:(%rsi
), %ax
1263 lods
%ds
:(%rsi
), %ax
1266 // CHECK
: lodsl
(%rsi
), %eax
# encoding: [0xad]
1272 lodsl
%ds
:(%rsi
), %eax
1274 lods
%ds
:(%rsi
), %eax
1277 // CHECK
: lodsq
(%rsi
), %rax
# encoding: [0x48,0xad]
1283 lodsq
%ds
:(%rsi
), %rax
1285 lods
%ds
:(%rsi
), %rax
1288 // CHECK
: stosb
%al
, %es
:(%rdi
) # encoding: [0xaa]
1292 stosb
%al
, %es
:(%rdi
)
1293 stos
%al
, %es
:(%rdi
)
1295 // CHECK
: stosw
%ax
, %es
:(%rdi
) # encoding: [0x66,0xab]
1299 stosw
%ax
, %es
:(%rdi
)
1300 stos
%ax
, %es
:(%rdi
)
1302 // CHECK
: stosl
%eax
, %es
:(%rdi
) # encoding: [0xab]
1306 stosl
%eax
, %es
:(%rdi
)
1307 stos
%eax
, %es
:(%rdi
)
1309 // CHECK
: stosq
%rax
, %es
:(%rdi
) # encoding: [0x48,0xab]
1313 stosq
%rax
, %es
:(%rdi
)
1314 stos
%rax
, %es
:(%rdi
)
1317 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc8]
1321 // CHECK
: encoding
: [0x0f,0x00,0xc8]
1325 // CHECK
: encoding
: [0x66,0x0f,0x00,0xc8]
1329 // CHECK
: encoding
: [0x48,0x0f,0x00,0xc8]
1332 // CHECK
: movq
%rdi
, %xmm0
1333 // CHECK
: encoding
: [0x66,0x48,0x0f,0x6e,0xc7]
1336 // CHECK
: movq
%xmm0
, %rax
1337 // CHECK
: encoding
: [0x66,0x48,0x0f,0x7e,0xc0]
1340 // CHECK
: movntil
%eax
, (%rdi
)
1341 // CHECK
: encoding
: [0x0f,0xc3,0x07]
1343 movntil
%eax
, (%rdi
)
1346 // CHECK
: movntiq
%rax
, (%rdi
)
1347 // CHECK
: encoding
: [0x48,0x0f,0xc3,0x07]
1349 movntiq
%rax
, (%rdi
)
1352 // CHECK
: pclmulqdq $
17, %xmm0
, %xmm1
1353 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0xc8,0x11]
1354 pclmulhqhqdq
%xmm0
, %xmm1
1356 // CHECK
: pclmulqdq $
1, %xmm0
, %xmm1
1357 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0xc8,0x01]
1358 pclmulqdq $
1, %xmm0
, %xmm1
1360 // CHECK
: pclmulqdq $
16, (%rdi
), %xmm1
1361 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0x0f,0x10]
1362 pclmullqhqdq
(%rdi
), %xmm1
1364 // CHECK
: pclmulqdq $
0, (%rdi
), %xmm1
1365 // CHECK
: encoding
: [0x66,0x0f,0x3a,0x44,0x0f,0x00]
1366 pclmulqdq $
0, (%rdi
), %xmm1
1370 // CHECK
: encoding
: [0x90]
1373 // CHECK
: xchgl
%eax
, %eax
1374 // CHECK
: encoding
: [0x87,0xc0]
1377 // CHECK
: xchgw
%ax
, %ax
1378 // CHECK
: encoding
: [0x66,0x90]
1381 // CHECK
: xchgl
%ecx
, %eax
1382 // CHECK
: encoding
: [0x91]
1385 // CHECK
: xchgl
%ecx
, %eax
1386 // CHECK
: encoding
: [0x91]
1390 // CHECK
: encoding
: [0x0f,0x35]
1394 // CHECK
: encoding
: [0x0f,0x35]
1398 // CHECK
: encoding
: [0x48,0x0f,0x35]
1402 // CHECK
: encoding
: [0x0f,0x01,0xca]
1406 // CHECK
: encoding
: [0x0f,0x01,0xcb]
1409 // CHECK
: faddp
%st, %st(1)
1410 // CHECK
: fmulp
%st, %st(1)
1411 // CHECK
: fsubp
%st, %st(1)
1412 // CHECK
: fsubrp
%st, %st(1)
1413 // CHECK
: fdivp
%st, %st(1)
1414 // CHECK
: fdivrp
%st, %st(1)
1422 // CHECK
: faddp
%st, %st(1)
1423 // CHECK
: fmulp
%st, %st(1)
1424 // CHECK
: fsubp
%st, %st(1)
1425 // CHECK
: fsubrp
%st, %st(1)
1426 // CHECK
: fdivp
%st, %st(1)
1427 // CHECK
: fdivrp
%st, %st(1)
1435 // CHECK
: faddp
%st, %st(1)
1436 // CHECK
: fmulp
%st, %st(1)
1437 // CHECK
: fsubp
%st, %st(1)
1438 // CHECK
: fsubrp
%st, %st(1)
1439 // CHECK
: fdivp
%st, %st(1)
1440 // CHECK
: fdivrp
%st, %st(1)
1448 // CHECK
: faddp
%st, %st(1)
1449 // CHECK
: fmulp
%st, %st(1)
1450 // CHECK
: fsubp
%st, %st(1)
1451 // CHECK
: fsubrp
%st, %st(1)
1452 // CHECK
: fdivp
%st, %st(1)
1453 // CHECK
: fdivrp
%st, %st(1)
1461 // CHECK
: fadd %st(1)
1462 // CHECK
: fmul %st(1)
1463 // CHECK
: fsub %st(1)
1464 // CHECK
: fsubr
%st(1)
1465 // CHECK
: fdiv %st(1)
1466 // CHECK
: fdivr
%st(1)
1474 // CHECK
: fadd %st, %st(1)
1475 // CHECK
: fmul %st, %st(1)
1476 // CHECK
: fsub %st, %st(1)
1477 // CHECK
: fsubr
%st, %st(1)
1478 // CHECK
: fdiv %st, %st(1)
1479 // CHECK
: fdivr
%st, %st(1)
1487 // CHECK
: fadd %st(1)
1488 // CHECK
: fmul %st(1)
1489 // CHECK
: fsub %st(1)
1490 // CHECK
: fsubr
%st(1)
1491 // CHECK
: fdiv %st(1)
1492 // CHECK
: fdivr
%st(1)
1500 // CHECK
: movd
%xmm0
, %eax
1501 // CHECK
: movq
%xmm0
, %rax
1502 // CHECK
: movq
%xmm0
, %rax
1503 // CHECK
: vmovd
%xmm0
, %eax
1504 // CHECK
: vmovq
%xmm0
, %rax
1505 // CHECK
: vmovq
%xmm0
, %rax
1513 // CHECK
: seto
3735928559(%r10,%r9,8)
1514 // CHECK
: encoding
: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde]
1515 seto
0xdeadbeef(%r10,%r9,8)
1518 // CHECK
: encoding
: [0x0f,0x01,0xfa]
1522 // CHECK
: encoding
: [0x0f,0x01,0xfa]
1523 monitorx
%rax
, %rcx
, %rdx
1526 // CHECK
: encoding
: [0x0f,0x01,0xfb]
1530 // CHECK
: encoding
: [0x0f,0x01,0xfb]
1531 mwaitx
%rax
, %rcx
, %rbx
1534 // CHECK
: encoding
: [0x0f,0x01,0xfc]
1538 // CHECK
: encoding
: [0x0f,0x01,0xfc]
1542 // CHECK
: encoding
: [0x0f,0x01,0xff]
1546 // CHECK
: encoding
: [0x0f,0x01,0xfe]
1549 // CHECK
: movl
%r15d
, (%r15,%r15)
1550 // CHECK
: encoding
: [0x47,0x89,0x3c,0x3f]
1551 movl
%r15d
, (%r15,%r15)
1553 // CHECK
: nopq
3735928559(%rbx
,%rcx
,8)
1554 // CHECK
: encoding
: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde]
1555 nopq
0xdeadbeef(%rbx
,%rcx
,8)
1558 // CHECK
: encoding
: [0x48,0x0f,0x1f,0xc0]
1561 // CHECK
: rdpid
%rax
1562 // CHECK
: encoding
: [0xf3,0x0f,0xc7,0xf8]
1565 // CHECK
: ptwritel
3735928559(%rbx
,%rcx
,8)
1566 // CHECK
: encoding
: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1567 ptwritel
0xdeadbeef(%rbx
,%rcx
,8)
1569 // CHECK
: ptwritel
%eax
1570 // CHECK
: encoding
: [0xf3,0x0f,0xae,0xe0]
1573 // CHECK
: ptwriteq
3735928559(%rbx
,%rcx
,8)
1574 // CHECK
: encoding
: [0xf3,0x48,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde]
1575 ptwriteq
0xdeadbeef(%rbx
,%rcx
,8)
1577 // CHECK
: ptwriteq
%rax
1578 // CHECK
: encoding
: [0xf3,0x48,0x0f,0xae,0xe0]
1582 // CHECK
: encoding
: [0xf3,0x0f,0x09]
1585 // CHECK
: cldemote
4(%rax
)
1586 // CHECK
: encoding
: [0x0f,0x1c,0x40,0x04]
1589 // CHECK
: cldemote
3735928559(%rbx
,%rcx
,8)
1590 // CHECK
: encoding
: [0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde]
1591 cldemote
0xdeadbeef(%rbx
,%rcx
,8)
1593 // CHECK
: umonitor
%r13
1594 // CHECK
: encoding
: [0xf3,0x41,0x0f,0xae,0xf5]
1597 // CHECK
: umonitor
%rax
1598 // CHECK
: encoding
: [0xf3,0x0f,0xae,0xf0]
1601 // CHECK
: umonitor
%eax
1602 // CHECK
: encoding
: [0x67,0xf3,0x0f,0xae,0xf0]
1605 // CHECK
: umwait
%r15
1606 // CHECK
: encoding
: [0xf2,0x41,0x0f,0xae,0xf7]
1609 // CHECK
: umwait
%ebx
1610 // CHECK
: encoding
: [0xf2,0x0f,0xae,0xf3]
1613 // CHECK
: tpause
%r15
1614 // CHECK
: encoding
: [0x66,0x41,0x0f,0xae,0xf7]
1617 // CHECK
: tpause
%ebx
1618 // CHECK
: encoding
: [0x66,0x0f,0xae,0xf3]
1621 // CHECK
: movdiri
%r15, 485498096
1622 // CHECK
: # encoding: [0x4c,0x0f,0x38,0xf9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c]
1623 movdiri
%r15, 485498096
1625 // CHECK
: movdiri
%r15, (%rdx
)
1626 // CHECK
: # encoding: [0x4c,0x0f,0x38,0xf9,0x3a]
1627 movdiri
%r15, (%rdx
)
1629 // CHECK
: movdiri
%r15, 64(%rdx
)
1630 // CHECK
: # encoding: [0x4c,0x0f,0x38,0xf9,0x7a,0x40]
1631 movdiri
%r15, 64(%rdx
)
1633 // CHECK
: movdir64b
485498096, %rax
1634 // CHECK
: # encoding: [0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1635 movdir64b
485498096, %rax
1637 // CHECK
: movdir64b
485498096, %eax
1638 // CHECK
: # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1639 movdir64b
485498096, %eax
1641 // CHECK
: movdir64b
(%rdx
), %r15
1642 // CHECK
: # encoding: [0x66,0x44,0x0f,0x38,0xf8,0x3a]
1643 movdir64b
(%rdx
), %r15
1646 // CHECK
: # encoding: [0x0f,0x01,0xc5]
1650 // CHECK
: encoding
: [0x0f,0x01,0xcf]
1654 // CHECK
: encoding
: [0x0f,0x01,0xd7]
1658 // CHECK
: encoding
: [0x0f,0x01,0xc0]
1661 // CHECK
: movq
%rax
, %rbx
1662 // CHECK
: encoding
: [0x48,0x8b,0xd8]
1665 // CHECK
: movq
%rax
, %rbx
1666 // CHECK
: encoding
: [0x48,0x8b,0xd8]
1669 // CHECK
: movl
%eax
, %ebx
1670 // CHECK
: encoding
: [0x8b,0xd8]
1673 // CHECK
: movl
%eax
, %ebx
1674 // CHECK
: encoding
: [0x8b,0xd8]
1677 // CHECK
: movw
%ax
, %bx
1678 // CHECK
: encoding
: [0x66,0x8b,0xd8]
1681 // CHECK
: movw
%ax
, %bx
1682 // CHECK
: encoding
: [0x66,0x8b,0xd8]
1685 // CHECK
: movb
%al
, %bl
1686 // CHECK
: encoding
: [0x8a,0xd8]
1689 // CHECK
: movb
%al
, %bl
1690 // CHECK
: encoding
: [0x8a,0xd8]
1693 // CHECK
: movq
%mm0
, %mm1
1694 // CHECK
: encoding
: [0x0f,0x7f,0xc1]
1697 // CHECK
: movq
%xmm0
, %xmm1
1698 // CHECK
: encoding
: [0x66,0x0f,0xd6,0xc1]
1701 // CHECK
: movdqa
%xmm0
, %xmm1
1702 // CHECK
: encoding
: [0x66,0x0f,0x7f,0xc1]
1703 movdqa.s
%xmm0
, %xmm1
1705 // CHECK
: movdqu
%xmm0
, %xmm1
1706 // CHECK
: encoding
: [0xf3,0x0f,0x7f,0xc1]
1707 movdqu.s
%xmm0
, %xmm1
1709 // CHECK
: movaps
%xmm0
, %xmm1
1710 // CHECK
: encoding
: [0x0f,0x29,0xc1]
1711 movaps.s
%xmm0
, %xmm1
1713 // CHECK
: movups
%xmm0
, %xmm1
1714 // CHECK
: encoding
: [0x0f,0x11,0xc1]
1715 movups.s
%xmm0
, %xmm1
1717 // CHECK
: movapd
%xmm0
, %xmm1
1718 // CHECK
: encoding
: [0x66,0x0f,0x29,0xc1]
1719 movapd.s
%xmm0
, %xmm1
1721 // CHECK
: movupd
%xmm0
, %xmm1
1722 // CHECK
: encoding
: [0x66,0x0f,0x11,0xc1]
1723 movupd.s
%xmm0
, %xmm1
1725 // CHECK
: vmovq
%xmm0
, %xmm8
1726 // CHECK
: encoding
: [0xc4,0xc1,0x79,0xd6,0xc0]
1727 vmovq.s
%xmm0
, %xmm8
1729 // CHECK
: vmovq
%xmm8
, %xmm0
1730 // CHECK
: encoding
: [0xc5,0x79,0xd6,0xc0]
1731 vmovq.s
%xmm8
, %xmm0
1733 // CHECK
: vmovdqa
%xmm0
, %xmm8
1734 // CHECK
: encoding
: [0xc4,0xc1,0x79,0x7f,0xc0]
1735 vmovdqa.s
%xmm0
, %xmm8
1737 // CHECK
: vmovdqa
%xmm8
, %xmm0
1738 // CHECK
: encoding
: [0xc5,0x79,0x7f,0xc0]
1739 vmovdqa.s
%xmm8
, %xmm0
1741 // CHECK
: vmovdqu
%xmm0
, %xmm8
1742 // CHECK
: encoding
: [0xc4,0xc1,0x7a,0x7f,0xc0]
1743 vmovdqu.s
%xmm0
, %xmm8
1745 // CHECK
: vmovdqu
%xmm8
, %xmm0
1746 // CHECK
: encoding
: [0xc5,0x7a,0x7f,0xc0]
1747 vmovdqu.s
%xmm8
, %xmm0
1749 // CHECK
: vmovaps
%xmm0
, %xmm8
1750 // CHECK
: encoding
: [0xc4,0xc1,0x78,0x29,0xc0]
1751 vmovaps.s
%xmm0
, %xmm8
1753 // CHECK
: vmovaps
%xmm8
, %xmm0
1754 // CHECK
: encoding
: [0xc5,0x78,0x29,0xc0]
1755 vmovaps.s
%xmm8
, %xmm0
1757 // CHECK
: vmovups
%xmm0
, %xmm8
1758 // CHECK
: encoding
: [0xc4,0xc1,0x78,0x11,0xc0]
1759 vmovups.s
%xmm0
, %xmm8
1761 // CHECK
: vmovups
%xmm8
, %xmm0
1762 // CHECK
: encoding
: [0xc5,0x78,0x11,0xc0]
1763 vmovups.s
%xmm8
, %xmm0
1765 // CHECK
: vmovapd
%xmm0
, %xmm8
1766 // CHECK
: encoding
: [0xc4,0xc1,0x79,0x29,0xc0]
1767 vmovapd.s
%xmm0
, %xmm8
1769 // CHECK
: vmovapd
%xmm8
, %xmm0
1770 // CHECK
: encoding
: [0xc5,0x79,0x29,0xc0]
1771 vmovapd.s
%xmm8
, %xmm0
1773 // CHECK
: vmovupd
%xmm0
, %xmm8
1774 // CHECK
: encoding
: [0xc4,0xc1,0x79,0x11,0xc0]
1775 vmovupd.s
%xmm0
, %xmm8
1777 // CHECK
: vmovupd
%xmm8
, %xmm0
1778 // CHECK
: encoding
: [0xc5,0x79,0x11,0xc0]
1779 vmovupd.s
%xmm8
, %xmm0
1781 // __asm __volatile
(
1785 // ".byte 0x0f, 0xa7, 0xd0"
1788 // CHECK-NEXT
: popfq
1790 // CHECK-NEXT
: .byte 15
1791 // CHECK-NEXT
: .byte 167
1792 // CHECK-NEXT
: .byte 208
1805 1: cmpxchgl
%ecx
,(%rdi
)
1813 // This line has to
be the last one in the file
1816 // CHECK
: enqcmd
268435456(%ebp
,%r14d
,8), %esi
1817 // CHECK
: encoding
: [0x67,0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1818 enqcmd
0x10000000(%ebp
, %r14d
, 8), %esi
1820 // CHECK
: enqcmd
(%r9d
), %edi
1821 // CHECK
: encoding
: [0x67,0xf2,0x41,0x0f,0x38,0xf8,0x39]
1824 // CHECK
: enqcmd
8128(%ecx
), %eax
1825 // CHECK
: encoding
: [0x67,0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1826 enqcmd
8128(%ecx
), %eax
1828 // CHECK
: enqcmd
-8192(%edx
), %ebx
1829 // CHECK
: encoding
: [0x67,0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1830 enqcmd
-8192(%edx
), %ebx
1832 // CHECK
: enqcmd
485498096, %eax
1833 // CHECK
: encoding
: [0x67,0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1834 enqcmd
485498096, %eax
1836 // CHECK
: enqcmds
268435456(%ebp
,%r14d
,8), %esi
1837 // CHECK
: encoding
: [0x67,0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1838 enqcmds
0x10000000(%ebp
, %r14d
, 8), %esi
1840 // CHECK
: enqcmds
(%r9d
), %edi
1841 // CHECK
: encoding
: [0x67,0xf3,0x41,0x0f,0x38,0xf8,0x39]
1842 enqcmds
(%r9d
), %edi
1844 // CHECK
: enqcmds
8128(%ecx
), %eax
1845 // CHECK
: encoding
: [0x67,0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1846 enqcmds
8128(%ecx
), %eax
1848 // CHECK
: enqcmds
-8192(%edx
), %ebx
1849 // CHECK
: encoding
: [0x67,0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1850 enqcmds
-8192(%edx
), %ebx
1852 // CHECK
: enqcmds
485498096, %eax
1853 // CHECK
: encoding
: [0x67,0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1854 enqcmds
485498096, %eax
1856 // CHECK
: enqcmd
268435456(%rbp
,%r14,8), %rsi
1857 // CHECK
: encoding
: [0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1858 enqcmd
0x10000000(%rbp
, %r14, 8), %rsi
1860 // CHECK
: enqcmd
(%r9), %rdi
1861 // CHECK
: encoding
: [0xf2,0x41,0x0f,0x38,0xf8,0x39]
1864 // CHECK
: enqcmd
8128(%rcx
), %rax
1865 // CHECK
: encoding
: [0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1866 enqcmd
8128(%rcx
), %rax
1868 // CHECK
: enqcmd
-8192(%rdx
), %rbx
1869 // CHECK
: encoding
: [0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1870 enqcmd
-8192(%rdx
), %rbx
1872 // CHECK
: enqcmd
485498096, %rax
1873 // CHECK
: encoding
: [0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1874 enqcmd
485498096, %rax
1876 // CHECK
: enqcmds
268435456(%rbp
,%r14,8), %rsi
1877 // CHECK
: encoding
: [0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10]
1878 enqcmds
0x10000000(%rbp
, %r14, 8), %rsi
1880 // CHECK
: enqcmds
(%r9), %rdi
1881 // CHECK
: encoding
: [0xf3,0x41,0x0f,0x38,0xf8,0x39]
1884 // CHECK
: enqcmds
8128(%rcx
), %rax
1885 // CHECK
: encoding
: [0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00]
1886 enqcmds
8128(%rcx
), %rax
1888 // CHECK
: enqcmds
-8192(%rdx
), %rbx
1889 // CHECK
: encoding
: [0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff]
1890 enqcmds
-8192(%rdx
), %rbx
1892 // CHECK
: enqcmds
485498096, %rax
1893 // CHECK
: encoding
: [0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c]
1894 enqcmds
485498096, %rax
1897 // CHECK
: encoding
: [0x0f,0x01,0xe8]
1901 // CHECK
: encoding
: [0xf2,0x0f,0x01,0xe8]
1905 // CHECK
: encoding
: [0xf2,0x0f,0x01,0xe9]
1908 // CHECK
: ud1q
%rdx
, %rdi
1909 // CHECK
: encoding
: [0x48,0x0f,0xb9,0xfa]
1912 // CHECK
: ud1q
(%rbx
), %rcx
1913 // CHECK
: encoding
: [0x48,0x0f,0xb9,0x0b]
1916 // Requires no displacement by default
1917 // CHECK
: movl $
1, (%rax
)
1918 // CHECK
: encoding
: [0xc7,0x00,0x01,0x00,0x00,0x00]
1919 // CHECK
: movl $
1, (%rax
)
1920 // CHECK
: encoding
: [0xc7,0x40,0x00,0x01,0x00,0x00,0x00]
1921 // CHECK
: movl $
1, (%rax
)
1922 // CHECK
: encoding
: [0xc7,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1923 // CHECK
: movl $
1, (%rax
)
1924 // CHECK
: encoding
: [0xc7,0x40,0x00,0x01,0x00,0x00,0x00]
1925 // CHECK
: movl $
1, (%rax
)
1926 // CHECK
: encoding
: [0xc7,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1928 {disp8
} movl $
1, (%rax
)
1929 {disp32
} movl $
1, (%rax
)
1933 // Requires disp8 by default
1934 // CHECK
: movl $
1, (%rbp
)
1935 // CHECK
: encoding
: [0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1936 // CHECK
: movl $
1, (%rbp
)
1937 // CHECK
: encoding
: [0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1938 // CHECK
: movl $
1, (%rbp
)
1939 // CHECK
: encoding
: [0xc7,0x85,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1941 {disp8
} movl $
1, (%rbp
)
1942 {disp32
} movl $
1, (%rbp
)
1944 // Requires disp8 by default
1945 // CHECK
: movl $
1, (%r13)
1946 // CHECK
: encoding
: [0x41,0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1947 // CHECK
: movl $
1, (%r13)
1948 // CHECK
: encoding
: [0x41,0xc7,0x45,0x00,0x01,0x00,0x00,0x00]
1949 // CHECK
: movl $
1, (%r13)
1950 // CHECK
: encoding
: [0x41,0xc7,0x85,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1952 {disp8
} movl $
1, (%r13)
1953 {disp32
} movl $
1, (%r13)
1955 // Requires disp8 by default
1956 // CHECK
: movl $
1, 8(%rax
)
1957 // CHECK
: encoding
: [0xc7,0x40,0x08,0x01,0x00,0x00,0x00]
1958 // CHECK
: movl $
1, 8(%rax
)
1959 // CHECK
: encoding
: [0xc7,0x40,0x08,0x01,0x00,0x00,0x00]
1960 // CHECK
: movl $
1, 8(%rax
)
1961 // CHECK
: encoding
: [0xc7,0x80,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1963 {disp8
} movl $
1, 8(%rax
)
1964 {disp32
} movl $
1, 8(%rax
)
1966 // Requires no displacement by default
1967 // CHECK
: movl $
1, (%rax
,%rbx
,4)
1968 // CHECK
: encoding
: [0xc7,0x04,0x98,0x01,0x00,0x00,0x00]
1969 // CHECK
: movl $
1, (%rax
,%rbx
,4)
1970 // CHECK
: encoding
: [0xc7,0x44,0x98,0x00,0x01,0x00,0x00,0x00]
1971 // CHECK
: movl $
1, (%rax
,%rbx
,4)
1972 // CHECK
: encoding
: [0xc7,0x84,0x98,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1973 movl $
1, (%rax
,%rbx
,4)
1974 {disp8
} movl $
1, (%rax
,%rbx
,4)
1975 {disp32
} movl $
1, (%rax
,%rbx
,4)
1977 // Requires disp8 by default.
1978 // CHECK
: movl $
1, 8(%rax
,%rbx
,4)
1979 // CHECK
: encoding
: [0xc7,0x44,0x98,0x08,0x01,0x00,0x00,0x00]
1980 // CHECK
: movl $
1, 8(%rax
,%rbx
,4)
1981 // CHECK
: encoding
: [0xc7,0x44,0x98,0x08,0x01,0x00,0x00,0x00]
1982 // CHECK
: movl $
1, 8(%rax
,%rbx
,4)
1983 // CHECK
: encoding
: [0xc7,0x84,0x98,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1984 movl $
1, 8(%rax
,%rbx
,4)
1985 {disp8
} movl $
1, 8(%rax
,%rbx
,4)
1986 {disp32
} movl $
1, 8(%rax
,%rbx
,4)
1988 // Requires disp8 by default.
1989 // CHECK
: movl $
1, (%rbp
,%rbx
,4)
1990 // CHECK
: encoding
: [0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
1991 // CHECK
: movl $
1, (%rbp
,%rbx
,4)
1992 // CHECK
: encoding
: [0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
1993 // CHECK
: movl $
1, (%rbp
,%rbx
,4)
1994 // CHECK
: encoding
: [0xc7,0x84,0x9d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
1995 movl $
1, (%rbp
,%rbx
,4)
1996 {disp8
} movl $
1, (%rbp
,%rbx
,4)
1997 {disp32
} movl $
1, (%rbp
,%rbx
,4)
1999 // Requires disp8 by default.
2000 // CHECK
: movl $
1, (%r13,%rbx
,4)
2001 // CHECK
: encoding
: [0x41,0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
2002 // CHECK
: movl $
1, (%r13,%rbx
,4)
2003 // CHECK
: encoding
: [0x41,0xc7,0x44,0x9d,0x00,0x01,0x00,0x00,0x00]
2004 // CHECK
: movl $
1, (%r13,%rbx
,4)
2005 // CHECK
: encoding
: [0x41,0xc7,0x84,0x9d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00]
2006 movl $
1, (%r13,%rbx
,4)
2007 {disp8
} movl $
1, (%r13,%rbx
,4)
2008 {disp32
} movl $
1, (%r13,%rbx
,4)
2011 // CHECK
: encoding
: [0x66,0x0f,0x01,0xcf]
2015 // CHECK
: encoding
: [0x66,0x0f,0x01,0xcd]
2019 // CHECK
: encoding
: [0x66,0x0f,0x01,0xce]
2023 // CHECK
: encoding
: [0x66,0x0f,0x01,0xcc]
2027 // CHECK
: encoding
: [0xf3,0x0f,0x3a,0xf0,0xc0,0x01]
2031 // CHECK
: encoding
: [0xf3,0x0f,0x01,0xec]
2035 // CHECK
: encoding
: [0xf3,0x0f,0x01,0xee]
2039 // CHECK
: encoding
: [0xf3,0x0f,0x01,0xef]
2043 // CHECK
: encoding
: [0xf3,0x0f,0x01,0xed]
2046 // CHECK
: senduipi
%rax
2047 // CHECK
: encoding
: [0xf3,0x0f,0xc7,0xf0]
2050 // CHECK
: senduipi
%rdx
2051 // CHECK
: encoding
: [0xf3,0x0f,0xc7,0xf2]
2054 // CHECK
: senduipi
%r8
2055 // CHECK
: encoding
: [0xf3,0x41,0x0f,0xc7,0xf0]
2058 // CHECK
: senduipi
%r13
2059 // CHECK
: encoding
: [0xf3,0x41,0x0f,0xc7,0xf5]