2012-04-06 15:09:59 +08:00
|
|
|
# RUN: llvm-mc --disassemble %s -triple=x86_64 | FileCheck %s
|
|
|
|
|
|
|
|
# Coverage
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmptrue_usps
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x04 0xc2 0xc7 0x1f
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmptrue_uspd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x05 0xc2 0xc7 0x1f
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmptrue_usss
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x06 0xc2 0xc7 0x1f
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmptrue_ussd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x07 0xc2 0xc7 0x1f
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeq_uqps
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x04 0xc2 0xc7 0x08
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeq_uqpd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x05 0xc2 0xc7 0x08
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeq_uqss
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x06 0xc2 0xc7 0x08
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeq_uqsd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x07 0xc2 0xc7 0x08
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeqps
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x04 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeqpd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x05 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeqss
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x06 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: vcmpeqsd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xc5 0x07 0xc2 0xc7 0x00
|
|
|
|
|
2018-04-23 12:50:01 +08:00
|
|
|
# CHECK: vcmptrue_usps %ymm7, %ymm15, %ymm0
|
|
|
|
0xc4 0xe1 0x84 0xc2 0xc7 0x1f
|
|
|
|
|
|
|
|
# CHECK: vcmptrue_uspd %ymm7, %ymm15, %ymm0
|
|
|
|
0xc4 0xe1 0x85 0xc2 0xc7 0x1f
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpeqps
|
2012-04-06 15:09:59 +08:00
|
|
|
0x0f 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpeqpd
|
2012-04-06 15:09:59 +08:00
|
|
|
0x66 0x0f 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpeqss
|
2012-04-06 15:09:59 +08:00
|
|
|
0xf3 0x0f 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpeqsd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xf2 0x0f 0xc2 0xc7 0x00
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpordps
|
2012-04-06 15:09:59 +08:00
|
|
|
0x0f 0xc2 0xc7 0x07
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpordpd
|
2012-04-06 15:09:59 +08:00
|
|
|
0x66 0x0f 0xc2 0xc7 0x07
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpordss
|
2012-04-06 15:09:59 +08:00
|
|
|
0xf3 0x0f 0xc2 0xc7 0x07
|
|
|
|
|
2013-02-15 03:15:14 +08:00
|
|
|
# CHECK: cmpordsd
|
2012-04-06 15:09:59 +08:00
|
|
|
0xf2 0x0f 0xc2 0xc7 0x07
|
2012-05-30 03:05:25 +08:00
|
|
|
|
|
|
|
# CHECK: extrq $2, $3, %xmm0
|
|
|
|
0x66 0x0f 0x78 0xc0 0x03 0x02
|
|
|
|
|
|
|
|
# CHECK: extrq %xmm1, %xmm0
|
|
|
|
0x66 0x0f 0x79 0xc1
|
|
|
|
|
|
|
|
# CHECK: insertq $6, $5, %xmm1, %xmm0
|
|
|
|
0xf2 0x0f 0x78 0xc1 0x05 0x06
|
|
|
|
|
|
|
|
# CHECK: insertq %xmm1, %xmm0
|
|
|
|
0xf2 0x0f 0x79 0xc1
|
|
|
|
|
|
|
|
# CHECK: movntsd %xmm0, (%rdi)
|
|
|
|
0xf2 0x0f 0x2b 0x07
|
|
|
|
|
|
|
|
# CHECK: movntss %xmm0, (%rdi)
|
|
|
|
0xf3 0x0f 0x2b 0x07
|
2013-02-15 03:08:21 +08:00
|
|
|
|
|
|
|
# CHECK: adcxl %eax, %eax
|
|
|
|
0x66 0x0f 0x38 0xf6 0xc0
|
|
|
|
|
|
|
|
# CHECK: adcxl (%rax), %eax
|
|
|
|
0x66 0x0f 0x38 0xf6 0x00
|
|
|
|
|
|
|
|
# CHECK: adcxq %rax, %rax
|
|
|
|
0x66 0x48 0x0f 0x38 0xf6 0xc0
|
|
|
|
|
|
|
|
# CHECK: adcxq (%rax), %rax
|
|
|
|
0x66 0x48 0x0f 0x38 0xf6 0x00
|
|
|
|
|
|
|
|
# CHECK: adoxl %eax, %eax
|
|
|
|
0xf3 0x0f 0x38 0xf6 0xc0
|
|
|
|
|
|
|
|
# CHECK: adoxl (%rax), %eax
|
|
|
|
0xf3 0x0f 0x38 0xf6 0x00
|
|
|
|
|
|
|
|
# CHECK: adoxq %rax, %rax
|
|
|
|
0xf3 0x48 0x0f 0x38 0xf6 0xc0
|
|
|
|
|
|
|
|
# CHECK: adoxq (%rax), %rax
|
|
|
|
0xf3 0x48 0x0f 0x38 0xf6 0x00
|
2013-03-12 05:17:13 +08:00
|
|
|
|
|
|
|
# CHECK: xbegin 53
|
|
|
|
0xc7 0xf8 0x35 0x00 0x00 0x00
|
|
|
|
|
2015-01-06 16:59:30 +08:00
|
|
|
# CHECK: xbegin 53
|
|
|
|
0x66 0xc7 0xf8 0x35 0x00
|
|
|
|
|
2013-03-12 05:17:13 +08:00
|
|
|
# CHECK: xend
|
|
|
|
0x0f 0x01 0xd5
|
|
|
|
|
|
|
|
# CHECK: xabort $13
|
|
|
|
0xc6 0xf8 0x0d
|
2013-04-11 05:52:25 +08:00
|
|
|
|
2015-02-03 19:03:57 +08:00
|
|
|
# CHECK: xsave64 (%rax)
|
2013-04-11 05:52:25 +08:00
|
|
|
0x48 0x0f 0xae 0x20
|
|
|
|
|
2015-02-03 19:03:57 +08:00
|
|
|
# CHECK: xrstor64 (%rax)
|
2013-04-11 05:52:25 +08:00
|
|
|
0x48 0x0f 0xae 0x28
|
|
|
|
|
2015-02-03 19:03:57 +08:00
|
|
|
# CHECK: xsaveopt64 (%rax)
|
2013-04-11 05:52:25 +08:00
|
|
|
0x48 0x0f 0xae 0x30
|
2013-04-11 12:52:28 +08:00
|
|
|
|
|
|
|
# CHECK: clac
|
|
|
|
0x0f 0x01 0xca
|
|
|
|
|
|
|
|
# CHECK: stac
|
|
|
|
0x0f 0x01 0xcb
|
2013-07-23 05:25:31 +08:00
|
|
|
|
|
|
|
# CHECK: movabsb -6066930261531658096, %al
|
|
|
|
0xa0 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsb -6066930261531658096, %al
|
|
|
|
0x48 0xa0 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsw -6066930261531658096, %ax
|
|
|
|
0x66 0xa1 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsl -6066930261531658096, %eax
|
|
|
|
0xa1 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsq -6066930261531658096, %rax
|
|
|
|
0x48 0xa1 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsb %al, -6066930261531658096
|
|
|
|
0xa2 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsb %al, -6066930261531658096
|
|
|
|
0x48 0xa2 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsw %ax, -6066930261531658096
|
|
|
|
0x66 0xa3 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsl %eax, -6066930261531658096
|
|
|
|
0xa3 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
|
|
|
|
|
|
|
# CHECK: movabsq %rax, -6066930261531658096
|
|
|
|
0x48 0xa3 0x90 0x78 0x56 0x34 0x12 0xef 0xcd 0xab
|
2013-09-12 23:51:31 +08:00
|
|
|
|
|
|
|
# CHECK: sha1rnds4 $1, %xmm1, %xmm2
|
|
|
|
0x0f 0x3a 0xcc 0xd1 0x01
|
|
|
|
|
|
|
|
# CHECK: sha1rnds4 $1, (%rax), %xmm2
|
2013-09-14 23:03:21 +08:00
|
|
|
0x0f 0x3a 0xcc 0x10 0x01
|
|
|
|
|
|
|
|
# CHECK: sha1nexte %xmm1, %xmm2
|
|
|
|
0x0f 0x38 0xc8 0xd1
|
|
|
|
|
|
|
|
# CHECK: sha1nexte (%rax), %xmm2
|
|
|
|
0x0f 0x38 0xc8 0x10
|
|
|
|
|
|
|
|
# CHECK: sha1msg1 %xmm1, %xmm2
|
|
|
|
0x0f 0x38 0xc9 0xd1
|
|
|
|
|
|
|
|
# CHECK: sha1msg1 (%rax), %xmm2
|
|
|
|
0x0f 0x38 0xc9 0x10
|
|
|
|
|
|
|
|
# CHECK: sha1msg2 %xmm1, %xmm2
|
|
|
|
0x0f 0x38 0xca 0xd1
|
|
|
|
|
|
|
|
# CHECK: sha1msg2 (%rax), %xmm2
|
|
|
|
0x0f 0x38 0xca 0x10
|
|
|
|
|
2017-02-06 02:33:31 +08:00
|
|
|
# CHECK: sha256rnds2 %xmm0, (%rax), %xmm2
|
2013-09-14 23:03:21 +08:00
|
|
|
0x0f 0x38 0xcb 0x10
|
|
|
|
|
2017-02-06 02:33:31 +08:00
|
|
|
# CHECK: sha256rnds2 %xmm0, %xmm1, %xmm2
|
2013-09-14 23:03:21 +08:00
|
|
|
0x0f 0x38 0xcb 0xd1
|
|
|
|
|
|
|
|
# CHECK: sha256msg1 %xmm1, %xmm2
|
|
|
|
0x0f 0x38 0xcc 0xd1
|
|
|
|
|
|
|
|
# CHECK: sha256msg1 (%rax), %xmm2
|
|
|
|
0x0f 0x38 0xcc 0x10
|
|
|
|
|
|
|
|
# CHECK: sha256msg2 %xmm1, %xmm2
|
|
|
|
0x0f 0x38 0xcd 0xd1
|
|
|
|
|
|
|
|
# CHECK: sha256msg2 (%rax), %xmm2
|
2013-10-07 12:28:06 +08:00
|
|
|
0x0f 0x38 0xcd 0x10
|
|
|
|
|
|
|
|
# CHECK: incl %ecx
|
|
|
|
0xff 0xc1
|
|
|
|
|
|
|
|
# CHECK: decl %ecx
|
|
|
|
0xff 0xc9
|
|
|
|
|
|
|
|
# CHECK: incw %cx
|
|
|
|
0x66 0xff 0xc1
|
|
|
|
|
|
|
|
# CHECK: decw %cx
|
|
|
|
0x66 0xff 0xc9
|
|
|
|
|
|
|
|
# CHECK: incb %cl
|
|
|
|
0xfe 0xc1
|
|
|
|
|
|
|
|
# CHECK: decb %cl
|
|
|
|
0xfe 0xc9
|
|
|
|
|
|
|
|
# CHECK: incq %rcx
|
|
|
|
0x48 0xff 0xc1
|
|
|
|
|
|
|
|
# CHECK: decq %rcx
|
|
|
|
0x48 0xff 0xc9
|
2013-10-07 15:19:47 +08:00
|
|
|
|
|
|
|
# CHECK: movq %xmm0, %xmm0
|
|
|
|
0xf3 0x0f 0x7e 0xc0
|
|
|
|
|
|
|
|
# CHECK: vmovq %xmm0, %xmm0
|
|
|
|
0xc5 0xfa 0x7e 0xc0
|
2013-10-08 13:53:50 +08:00
|
|
|
|
|
|
|
# CHECK: vmovq %xmm0, %rax
|
|
|
|
0xc4 0xe1 0xf9 0x7e 0xc0
|
|
|
|
|
2018-01-06 04:55:12 +08:00
|
|
|
# CHECK: movq (%rax), %mm0
|
2015-02-22 15:50:41 +08:00
|
|
|
0x48 0x0f 0x6e 0x00
|
|
|
|
|
2018-01-06 04:55:12 +08:00
|
|
|
# CHECK: movq %rax, %mm0
|
2015-02-22 15:50:41 +08:00
|
|
|
0x48 0x0f 0x6e 0xc0
|
|
|
|
|
2018-01-06 04:55:12 +08:00
|
|
|
# CHECK: movq %mm0, (%rax)
|
2015-02-22 15:50:41 +08:00
|
|
|
0x48 0x0f 0x7e 0x00
|
|
|
|
|
2018-01-06 04:55:12 +08:00
|
|
|
# CHECK: movq %mm0, %rax
|
2015-02-22 15:50:41 +08:00
|
|
|
0x48 0x0f 0x7e 0xc0
|
|
|
|
|
2017-04-26 15:08:44 +08:00
|
|
|
# CHECK: movq (%rax), %xmm0
|
2015-02-22 15:50:41 +08:00
|
|
|
0x66 0x48 0x0f 0x6e 0x00
|
|
|
|
|
2017-04-26 15:08:44 +08:00
|
|
|
# CHECK: movq %rax, %xmm0
|
2015-02-22 15:50:41 +08:00
|
|
|
0x66 0x48 0x0f 0x6e 0xc0
|
|
|
|
|
2017-04-26 15:08:44 +08:00
|
|
|
# CHECK: movq %xmm0, (%rax)
|
2015-02-22 15:50:41 +08:00
|
|
|
0x66 0x48 0x0f 0x7e 0x00
|
|
|
|
|
2017-04-26 15:08:44 +08:00
|
|
|
# CHECK: movq %xmm0, %rax
|
2013-10-08 13:53:50 +08:00
|
|
|
0x66 0x48 0x0f 0x7e 0xc0
|
2013-10-14 09:42:32 +08:00
|
|
|
|
|
|
|
# CHECK: pextrw $3, %xmm3, %ecx
|
|
|
|
0x66 0x0f 0x3a 0x15 0xd9 0x03
|
|
|
|
|
|
|
|
# CHECK: pextrw $3, %xmm3, (%rax)
|
|
|
|
0x66 0x0f 0x3a 0x15 0x18 0x03
|
2014-02-17 18:03:43 +08:00
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(,%r8)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x43 0x80 0x04 0x05 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(%r13,%r8)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x43 0x80 0x84 0x05 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(,%r8)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x42 0x80 0x04 0x05 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(%rbp,%r8)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x42 0x80 0x84 0x05 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(,%r12)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x42 0x80 0x04 0x25 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(%rbp,%r12)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x42 0x80 0x84 0x25 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896
|
2014-02-17 18:03:43 +08:00
|
|
|
0x80 0x04 0x25 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(%rbp)
|
|
|
|
0x80 0x85 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
|
|
|
# CHECK: addb $0, 305419896(%rbp,%riz)
|
2014-02-17 18:03:43 +08:00
|
|
|
0x80 0x84 0x25 0x78 0x56 0x34 0x12 0x00
|
2015-01-03 08:00:20 +08:00
|
|
|
|
2018-06-28 03:03:36 +08:00
|
|
|
# CHECK: addb $0, 305419896(%rbp,%riz,2)
|
|
|
|
0x80 0x84 0x65 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
|
|
|
# CHECK: addb $0, 305419896(%rsp,%riz,2)
|
|
|
|
0x80 0x84 0x64 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
|
|
|
# CHECK: addb $0, 305419896(%r12,%riz,2)
|
|
|
|
0x41 0x80 0x84 0x64 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
|
|
|
# CHECK: addb $0, 305419896(%esp,%eiz,2)
|
|
|
|
0x67 0x80 0x84 0x64 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
|
|
|
# CHECK: addb $0, 305419896(%r12d,%eiz,2)
|
|
|
|
0x67 0x41 0x80 0x84 0x64 0x78 0x56 0x34 0x12 0x00
|
|
|
|
|
2015-01-03 08:00:20 +08:00
|
|
|
# CHECK: movabsq 6510615555426900570, %rax
|
|
|
|
0x48 0xa1 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a
|
|
|
|
|
|
|
|
# CHECK: movq 1515870810, %rax
|
|
|
|
0x67, 0x48 0xa1 0x5a 0x5a 0x5a 0x5a
|
|
|
|
|
|
|
|
# CHECK: movabsq %rax, 6510615555426900570
|
|
|
|
0x48 0xa3 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a
|
|
|
|
|
|
|
|
# CHECK: movq %rax, 1515870810
|
|
|
|
0x67, 0x48 0xa3 0x5a 0x5a 0x5a 0x5a
|
2015-05-14 06:44:52 +08:00
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: callw 32767
|
|
|
|
0x66 0xe8 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: callw 32767
|
|
|
|
0x66 0x66 0x48 0xe8 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jmp -32769
|
|
|
|
0xe9 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jmp 32767
|
|
|
|
0x66 0xe9 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jmp 32767
|
|
|
|
0x66 0x66 0x48 0xe9 0xff 0x7f
|
|
|
|
|
|
|
|
# CHECK: jo -32769
|
|
|
|
0x0f 0x80 0xff 0x7f 0xff 0xff
|
|
|
|
|
|
|
|
# CHECK: jo 32767
|
|
|
|
0x66 0x0f 0x80 0xff 0x7f
|
|
|
|
|
|
|
|
# CHECK: jno -32769
|
|
|
|
0x0f 0x81 0xff 0x7f 0xff 0xff
|
|
|
|
|
|
|
|
# CHECK: jno 32767
|
|
|
|
0x66 0x0f 0x81 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jb -32769
|
|
|
|
0x0f 0x82 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jb 32767
|
|
|
|
0x66 0x0f 0x82 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jae -32769
|
|
|
|
0x0f 0x83 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jae 32767
|
|
|
|
0x66 0x0f 0x83 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: je -32769
|
|
|
|
0x0f 0x84 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: je 32767
|
|
|
|
0x66 0x0f 0x84 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jne -32769
|
|
|
|
0x0f 0x85 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jne 32767
|
|
|
|
0x66 0x0f 0x85 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jbe -32769
|
|
|
|
0x0f 0x86 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jbe 32767
|
|
|
|
0x66 0x0f 0x86 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: ja -32769
|
|
|
|
0x0f 0x87 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: ja 32767
|
|
|
|
0x66 0x0f 0x87 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: js -32769
|
|
|
|
0x0f 0x88 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: js 32767
|
|
|
|
0x66 0x0f 0x88 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jns -32769
|
|
|
|
0x0f 0x89 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jns 32767
|
|
|
|
0x66 0x0f 0x89 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jp -32769
|
|
|
|
0x0f 0x8a 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jp 32767
|
|
|
|
0x66 0x0f 0x8a 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jnp -32769
|
|
|
|
0x0f 0x8b 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jnp 32767
|
|
|
|
0x66 0x0f 0x8b 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jl -32769
|
|
|
|
0x0f 0x8c 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jl 32767
|
|
|
|
0x66 0x0f 0x8c 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jge -32769
|
|
|
|
0x0f 0x8d 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jge 32767
|
|
|
|
0x66 0x0f 0x8d 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jle -32769
|
|
|
|
0x0f 0x8e 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jle 32767
|
|
|
|
0x66 0x0f 0x8e 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: jg -32769
|
|
|
|
0x0f 0x8f 0xff 0x7f 0xff 0xff
|
|
|
|
|
2018-08-14 06:06:28 +08:00
|
|
|
# CHECK: jg 32767
|
|
|
|
0x66 0x0f 0x8f 0xff 0x7f
|
2015-08-27 00:20:29 +08:00
|
|
|
|
|
|
|
# CHECK: lcallw *-32769(%rip)
|
|
|
|
0x66 0xff 0x1d 0xff 0x7f 0xff 0xff
|
|
|
|
|
|
|
|
# CHECK: ljmpw *-32769(%rip)
|
|
|
|
0x66 0xff 0x2d 0xff 0x7f 0xff 0xff
|
|
|
|
|
|
|
|
# CHECK: psubsb (%rdx), %mm3
|
|
|
|
0x0f 0xe8 0x1a
|
|
|
|
|
|
|
|
# CHECK: psubsb (%rdx), %xmm3
|
|
|
|
0x66 0x0f 0xe8 0x1a
|
|
|
|
|
2015-05-14 06:44:52 +08:00
|
|
|
# CHECK: addq 255(%rip), %rbx
|
|
|
|
0x49, 0x03, 0x1d, 0xff, 0x00, 0x00, 0x00
|
|
|
|
|
|
|
|
# The following 4 encodings are equivalent, as confirmed by the 'xed64'
|
|
|
|
# decoder tool provided by Intel, which we assume to be canonical even
|
|
|
|
# if the real silicon does something different. If that should happen,
|
|
|
|
# then we'll all have disassembler bugs to repair.
|
|
|
|
|
|
|
|
# Try all combinations of EVEX.x and REX.b:
|
|
|
|
# CHECK: vaddps 287453952(%rip), %zmm20, %zmm15
|
|
|
|
0x62 0x11 0x5c 0x40 0x58 0x3d 0x00 0x33 0x22 0x11
|
|
|
|
# CHECK: vaddps 287453952(%rip), %zmm20, %zmm15
|
|
|
|
0x62 0x31 0x5c 0x40 0x58 0x3d 0x00 0x33 0x22 0x11
|
|
|
|
# CHECK: vaddps 287453952(%rip), %zmm20, %zmm15
|
|
|
|
0x62 0x51 0x5c 0x40 0x58 0x3d 0x00 0x33 0x22 0x11
|
|
|
|
# CHECK: vaddps 287453952(%rip), %zmm20, %zmm15
|
|
|
|
0x62 0x71 0x5c 0x40 0x58 0x3d 0x00 0x33 0x22 0x11
|
|
|
|
|
2017-10-22 04:03:20 +08:00
|
|
|
# CHECK: vaddps (%r10,%r9), %zmm20, %zmm15
|
2015-05-14 06:44:52 +08:00
|
|
|
0x62 0x11 0x5c 0x40 0x58 0x3c 0x0a
|
|
|
|
|
2017-10-22 04:03:20 +08:00
|
|
|
# CHECK: vaddps (%rdx,%r9), %zmm20, %zmm15
|
2015-05-14 06:44:52 +08:00
|
|
|
0x62 0x31 0x5c 0x40 0x58 0x3c 0x0a
|
|
|
|
|
2017-10-22 04:03:20 +08:00
|
|
|
# CHECK: vaddps (%r10,%rcx), %zmm20, %zmm15
|
2015-05-14 06:44:52 +08:00
|
|
|
0x62 0x51 0x5c 0x40 0x58 0x3c 0x0a
|
|
|
|
|
2017-10-22 04:03:20 +08:00
|
|
|
# CHECK: vaddps (%rdx,%rcx), %zmm20, %zmm15
|
2015-05-14 06:44:52 +08:00
|
|
|
0x62 0x71 0x5c 0x40 0x58 0x3c 0x0a
|
2015-06-27 00:58:59 +08:00
|
|
|
|
2017-11-19 07:06:42 +08:00
|
|
|
# CHECK: vpandd 32(%rsi,%r14,4){1to16}, %zmm26, %zmm21 {%k4} {z}
|
|
|
|
0x62 0xa1 0x2d 0xd4 0xdb 0x6c 0xb6 0x08
|
|
|
|
|
2015-06-27 00:58:59 +08:00
|
|
|
# CHECK: callq 32767
|
|
|
|
0xe8 0xff 0x7f 0x00 0x00
|
|
|
|
|
|
|
|
# CHECK: callq -32769
|
|
|
|
0xe8 0xff 0x7f 0xff 0xff
|
2017-05-03 23:51:39 +08:00
|
|
|
|
|
|
|
# CHECK: llwpcb %rax
|
|
|
|
0x8f 0xe9 0xf8 0x12 0xc0
|
|
|
|
|
|
|
|
# CHECK: slwpcb %rax
|
|
|
|
0x8f 0xe9 0xf8 0x12 0xc8
|
|
|
|
|
|
|
|
# CHECK: lwpins $305419896, %ebx, %rax
|
|
|
|
0x8f 0xea 0xf8 0x12 0xc3 0x78 0x56 0x34 0x12
|
|
|
|
|
|
|
|
# CHECK: lwpins $591751049, (%rsp), %rdx
|
|
|
|
0x8f 0xea 0xe8 0x12 0x04 0x24 0x89 0x67 0x45 0x23
|
|
|
|
|
|
|
|
# CHECK: lwpins $591751049, (%esp), %edx
|
|
|
|
0x67 0x8f 0xea 0x68 0x12 0x04 0x24 0x89 0x67 0x45 0x23
|
|
|
|
|
|
|
|
# CHECK: lwpval $1737075661, %ebx, %rax
|
|
|
|
0x8f 0xea 0xf8 0x12 0xcb 0xcd 0xab 0x89 0x67
|
|
|
|
|
|
|
|
# CHECK: lwpval $2309737967, (%rsp), %rdx
|
|
|
|
0x8f 0xea 0xe8 0x12 0x0c 0x24 0xef 0xcd 0xab 0x89
|
|
|
|
|
|
|
|
# CHECK: lwpval $2309737967, (%esp), %edx
|
|
|
|
0x67 0x8f 0xea 0x68 0x12 0x0c 0x24 0xef 0xcd 0xab 0x89
|
2017-07-22 09:30:53 +08:00
|
|
|
|
|
|
|
# CHECK: nopq -559038737(%rbx,%rcx,8)
|
|
|
|
0x48 0x0f 0x1f 0x84 0xcb 0xef 0xbe 0xad 0xde
|
|
|
|
|
|
|
|
# CHECK: nopq %rax
|
|
|
|
0x48 0x0f 0x1f 0xC0
|
2017-10-16 19:14:29 +08:00
|
|
|
|
2017-10-30 20:02:06 +08:00
|
|
|
# CHECK: popq %r14
|
2017-10-26 19:14:43 +08:00
|
|
|
0x67 0x49 0x5e
|
|
|
|
|
2017-10-30 20:02:06 +08:00
|
|
|
# CHECK: pushq %r14
|
2017-10-26 19:14:43 +08:00
|
|
|
0x67 0x49 0x56
|
|
|
|
|
2017-10-16 19:14:29 +08:00
|
|
|
# CHECK: xchgw %di, %ax
|
|
|
|
0x66 0x3e 0x97
|
|
|
|
|
2017-10-23 17:36:33 +08:00
|
|
|
# CHECK: movq %rdx, %cs
|
|
|
|
0x4c 0x8e 0xca
|
|
|
|
|
2017-10-16 19:14:29 +08:00
|
|
|
# CHECK: movw %bx, %cs:(%rsi,%rbp)
|
|
|
|
0x2e 0x66 0x89 0x1c 0x2e
|
|
|
|
# CHECK: movl %ebx, %cs:(%esi,%ebp)
|
|
|
|
0x2e 0x67 0x89 0x1c 0x2e
|
|
|
|
# CHECK: movl %ebx, %cs:(%rsi,%rbp)
|
|
|
|
0x2e 0x89 0x1c 0x2e
|
|
|
|
# CHECK: movw %bx, %cs:(%esi,%ebp)
|
|
|
|
0x2e 0x67 0x66 0x89 0x1c 0x2e
|
|
|
|
# CHECK: movw %bx, %cs:(%esi,%ebp)
|
|
|
|
0x2e 0x66 0x67 0x89 0x1c 0x2e
|
|
|
|
|
2017-10-23 23:53:21 +08:00
|
|
|
# CHECK: ptwritel -559038737(%rbx,%rcx,8)
|
|
|
|
0xf3 0x0f 0xae 0xa4 0xcb 0xef 0xbe 0xad 0xde
|
|
|
|
|
|
|
|
# CHECK: ptwritel %eax
|
|
|
|
0xf3 0x0f 0xae 0xe0
|
|
|
|
|
|
|
|
# CHECK: ptwriteq -559038737(%rbx,%rcx,8)
|
|
|
|
0xf3 0x48 0x0f 0xae 0xa4 0xcb 0xef 0xbe 0xad 0xde
|
|
|
|
|
|
|
|
# CHECK: ptwriteq %rax
|
|
|
|
0xf3 0x48 0x0f 0xae 0xe0
|
2018-04-12 04:01:57 +08:00
|
|
|
|
|
|
|
# CHECK: wbnoinvd
|
|
|
|
0xf3 0x0f 0x09
|
2018-04-13 15:35:08 +08:00
|
|
|
|
|
|
|
# CHECK: cldemote 4(%rax)
|
|
|
|
0x0f 0x1c 0x40 0x04
|
|
|
|
|
|
|
|
# CHECK: cldemote -559038737(%rbx,%rcx,8)
|
|
|
|
0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde
|
2018-04-21 02:42:47 +08:00
|
|
|
|
|
|
|
# CHECK: umonitor %rax
|
|
|
|
0xf3 0x0f 0xae 0xf0
|
|
|
|
|
|
|
|
# CHECK: umonitor %eax
|
|
|
|
0x67 0xf3 0x0f 0xae 0xf0
|
|
|
|
|
|
|
|
# CHECK: umonitor %r13
|
|
|
|
0xf3 0x41 0x0f 0xae 0xf5
|
|
|
|
|
|
|
|
# CHECK: umwait %r15
|
|
|
|
0xf2 0x41 0x0f 0xae 0xf7
|
|
|
|
|
|
|
|
# CHECK: tpause %r15
|
|
|
|
0x66 0x41 0x0f 0xae 0xf7
|
2018-04-24 01:47:33 +08:00
|
|
|
|
2018-04-24 12:28:02 +08:00
|
|
|
# CHECK: bswapw %bx
|
2018-04-24 01:47:33 +08:00
|
|
|
0x66 0x0f 0xcb
|
|
|
|
|
|
|
|
# CHECK: bswapl %ebx
|
|
|
|
0x0f 0xcb
|
|
|
|
|
|
|
|
# CHECK: bswapq %rbx
|
|
|
|
0x48 0x0f 0xcb
|
2018-05-01 18:01:16 +08:00
|
|
|
|
|
|
|
#CHECK: movdiri %r13d, 64(%rdx,%rax,4)
|
|
|
|
0x44 0x0f 0x38 0xf9 0x6c 0x82 0x40
|
|
|
|
|
|
|
|
#CHECK: movdir64b 485498096, %rax
|
|
|
|
0x66 0x0f 0x38 0xf8 0x04 0x25 0xf0 0x1c 0xf0 0x1c
|
|
|
|
|
|
|
|
#CHECK: movdir64b 485498096, %eax
|
|
|
|
0x67 0x66 0x0f 0x38 0xf8 0x04 0x25 0xf0 0x1c 0xf0 0x1c
|
2018-05-08 14:47:36 +08:00
|
|
|
|
|
|
|
#CHECK: pconfig
|
|
|
|
0x0f 0x01 0xc5
|
2018-05-08 15:11:05 +08:00
|
|
|
|
|
|
|
#CHECK: encls
|
|
|
|
0x0f 0x01 0xcf
|
|
|
|
|
|
|
|
#CHECK: enclu
|
|
|
|
0x0f 0x01 0xd7
|
|
|
|
|
|
|
|
#CHECK: enclv
|
|
|
|
0x0f 0x01 0xc0
|
2018-06-01 12:29:34 +08:00
|
|
|
|
|
|
|
# Make sure we ignore EVEX.X when the index register isn't being used.
|
|
|
|
#CHECK: vaddps (%rax), %xmm16, %xmm1
|
|
|
|
0x62 0xb1 0x7c 0x00 0x58 0x08
|
2018-06-01 13:12:43 +08:00
|
|
|
|
2018-06-01 13:36:08 +08:00
|
|
|
# Make sure we ignore EVEX.X when modrm.rm encodes a GPR.
|
2018-06-01 13:12:44 +08:00
|
|
|
#CHECK: vcvtusi2sdq %rax, %xmm1, %xmm1
|
2018-06-01 13:12:43 +08:00
|
|
|
0x62 0xb1 0xf7 0x08 0x7b 0xc8
|
2018-06-01 13:36:08 +08:00
|
|
|
|
|
|
|
# Make sure we ignore EVEX.X when modrm.rm encodes a k-register.
|
|
|
|
#CHECK: vpmovm2b %k0, %xmm0
|
|
|
|
0x62,0xb2,0x7e,0x08,0x28,0xc0
|
2018-06-23 14:03:48 +08:00
|
|
|
|
|
|
|
# 0x67 prefix prints %eip instead of %rip
|
|
|
|
#CHECK: addb %al, (%eip)
|
|
|
|
0x67,0x00,0x05,0x00,0x00,0x00,0x00
|
2018-10-03 02:16:19 +08:00
|
|
|
|
|
|
|
# CHECK: movslq %eax, %eax
|
|
|
|
0x63 0xc0
|
|
|
|
# CHECK: movslq %eax, %ax
|
|
|
|
0x66 0x63 0xc0
|
|
|
|
# CHECK: movslq (%rax), %ecx
|
|
|
|
0x63 0x08
|
|
|
|
# CHECK: movslq (%rax), %cx
|
|
|
|
0x66 0x63 0x08
|