x86-64.s revision 25f6dfd108801d1dc5877c420ef0dd47131aeda7
16c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err 2ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// RUN: FileCheck < %t %s 3ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s 4b6804e91267381427866dfc1ae3d88abd02ddf14Daniel Dunbar 55ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger monitor 65ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: monitor 75ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc8] 85ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger monitor %rax, %rcx, %rdx 95ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: monitor 105ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc8] 115ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger mwait 125ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: mwait 135ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc9] 145ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger mwait %rax, %rcx 155ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: mwait 165ad596f9d27a67767118857471e63b55bfb152d6Joerg Sonnenberger// CHECK: encoding: [0x0f,0x01,0xc9] 1727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 1827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// Suffix inference: 1927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 2027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addl $0, %eax 2127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner add $0, %eax 2227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addb $255, %al 2327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner add $0xFF, %al 2427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: orq %rax, %rdx 2527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner or %rax, %rdx 2627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: shlq $3, %rax 2727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner shl $3, %rax 2827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 2927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 30c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %al 31022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar subb %al, %al 32022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar 33c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: addl $24, %eax 34022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar addl $24, %eax 35022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar 36c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp) 37022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(%ebp) 38c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx) 39022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(%ebp, %ebx) 40c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx,4) 41022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(%ebp, %ebx, 4) 42c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(,%ebx,4) 43022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(, %ebx, 4) 44b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar 45b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl 0, %eax 46b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar movl 0, %eax 47b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl $0, %eax 48b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar movl $0, %eax 49b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar 508a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar// CHECK: ret 518a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar ret 528a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar 535fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8 54c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $1, %eax 555fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $1, %eax 565fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 575fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8 58c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $-1, %eax 595fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $-1, %eax 605fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 615fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri 62c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $256, %eax 635fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $256, %eax 645fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 6544f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri8 66c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $1, %rax 67ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar xorq $1, %rax 685fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 6944f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri32 70c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $256, %rax 71ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar xorq $256, %rax 72ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 73ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB8rr 74c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %bl 75ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subb %al, %bl 76ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 77ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB16rr 78c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subw %ax, %bx 79ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subw %ax, %bx 80ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 81ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB32rr 82c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl %eax, %ebx 83ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subl %eax, %ebx 84ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 850db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar// FIXME: Check that this matches the correct instruction. 86926f2bb3d8dd6f8b0198aa478828ee02914050f9Daniel Dunbar// CHECK: callq *%rax 870db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar call *%rax 881095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar 891095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar// FIXME: Check that this matches the correct instruction. 90c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: shldl %cl, %eax, %ebx 911095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar shldl %cl, %eax, %ebx 92e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar 93e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax 94e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar shll $2, %eax 95e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar 96e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax 97e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar sall $2, %eax 9812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 9912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 10012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: insb 10112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;insb 10212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 10312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 10412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: outsb 10512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;outsb 10612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 10712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 10812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: movsb 10912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;movsb 11012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 111df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner 112df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner// rdar://8470918 113df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovb // CHECK: movsb 114df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovw // CHECK: movsw 115c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendlingsmovl // CHECK: movsd 116df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovq // CHECK: movsq 117df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner 11861129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// rdar://8456361 11961129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: rep 120c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: movsd 12161129252e44067ae112dc856c64c814344b7e7c9Chris Lattner rep movsd 12261129252e44067ae112dc856c64c814344b7e7c9Chris Lattner 12312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 12412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lodsb 12512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;lodsb 12612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 12712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 12812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: stosb 12912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;stosb 13012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repz and repe have the same opcode as rep 13212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 13312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb 13412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repz;cmpsb 13512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repnz has the same opcode as repne 13712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne 13812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb 13912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repnz;cmpsb 14012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 14112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repe and repz have the same opcode as rep 14212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 14312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb 14412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repe;scasb 14512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 14612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne 14712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb 14812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repne;scasb 14912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lock 1519c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: cmpxchgb %al, (%ebx) 15212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby lock;cmpxchgb %al, 0(%ebx) 15312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cs 1559c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 15612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby cs;movb 0(%eax), %al 15712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ss 1599c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby ss;movb 0(%eax), %al 16112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 16212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ds 1639c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby ds;movb 0(%eax), %al 16512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 16612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: es 1679c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby es;movb 0(%eax), %al 16912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 17012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: fs 1719c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 17212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby fs;movb 0(%eax), %al 17312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 17412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: gs 1759c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 17612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby gs;movb 0(%eax), %al 17712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 178e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(0) 179e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(1) 180e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(7) 181e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner 182e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(0) 183e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(1) 184e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(7) 185c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar 186c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar// CHECK: leal 0, %eax 187c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar leal 0, %eax 188a7f1354eb5289b340220c9138befff89822119b2Chris Lattner 189a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// rdar://7986634 - Insensitivity on opcodes. 190a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// CHECK: int3 191a7f1354eb5289b340220c9138befff89822119b2Chris LattnerINT3 192a7f1354eb5289b340220c9138befff89822119b2Chris Lattner 19315f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner// rdar://8735979 - int $3 -> int3 19415f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner// CHECK: int3 19515f895179953b258e4ca20860d0d58f25f3a3edbChris Lattnerint $3 19615f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner 197ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar 198ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// Allow scale factor without index register. 199ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK: movaps %xmm3, (%esi) 200ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK-STDERR: warning: scale factor without index register is ignored 201ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbarmovaps %xmm3, (%esi, 2) 202ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar 203ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar// CHECK: imull $12, %eax, %eax 204ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbarimul $12, %eax 205fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar 206fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar// CHECK: imull %ecx, %eax 207fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbarimull %ecx, %eax 2089389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner 2099389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner 2109389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// rdar://8208481 2119389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outb %al, $161 2129389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutb %al, $161 2139389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outw %ax, $128 2149389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutw %ax, $128 2159389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: inb $161, %al 2169389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattnerinb $161, %al 217d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner 218d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// rdar://8017621 219d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// CHECK: pushq $1 220d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattnerpush $1 221d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner 222d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// rdar://9716860 223d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderbypushq $1 224d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// CHECK: encoding: [0x6a,0x01] 225d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderbypushq $1111111 226d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00] 227d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby 228c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// rdar://8017530 229c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// CHECK: sldtw 4 230c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattnersldt 4 231e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner 232e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// rdar://8208499 233e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovnew %bx, %ax 234e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnz %bx, %ax 235e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovneq %rbx, %rax 236e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnzq %rbx, %rax 237e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner 238ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner 239ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// rdar://8407928 240ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inb $127, %al 241393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inw %dx 242ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outb %al, $127 243393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outw %dx 244393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inl %dx 245ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinb $0x7f 246ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinw %dx 247ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutb $0x7f 248ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutw %dx 249ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinl %dx 250ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 251ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 252ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// PR8114 253393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outb %dx 254393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outb %dx 255393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outw %dx 256393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outw %dx 257393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outl %dx 258393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: outl %dx 25900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger 26000743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout %al, (%dx) 26100743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutb %al, (%dx) 26200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout %ax, (%dx) 26300743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutw %ax, (%dx) 26400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout %eax, (%dx) 26500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutl %eax, (%dx) 266ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 267393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inb %dx 268393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inb %dx 269393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inw %dx 270393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inw %dx 271393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inl %dx 272393c4047c05b6d7b5851d339e51bb2cc35f630c2Bill Wendling// CHECK: inl %dx 2732d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 27400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin (%dx), %al 27500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinb (%dx), %al 27600743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin (%dx), %ax 27700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinw (%dx), %ax 27800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin (%dx), %eax 27900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinl (%dx), %eax 2802d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2812d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422 2822d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 283c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fxch 284c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucom 285c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomp 286c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: faddp 2872d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp %st(0) 288c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fsubp 289c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fsubrp 290c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fmulp 291c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fdivp 292c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fdivrp 2932d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2942d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch 2952d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom 2962d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp 2972d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp 2982d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st 2992d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp 3002d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp 3012d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp 3022d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp 3032d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp 3048f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 305c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fcomi 306235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi %st(2) 307c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi 308c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2) 309c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2) 3108f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3118f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi 3128f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi %st(2) 3138f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi 3148f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2) 3158f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2), %st 3168f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 317740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 318740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 319740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 320740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 32184f362d8912657bb21250a65331f797d5381e9a3Chris Lattner 32284f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw 32384f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax 32484f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax 32584f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al 326e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner 327e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880 3288c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rclb %bl 3298c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcll 3735928559(%ebx,%ecx,8) 3308c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl %ecx 3318c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl 305419896 332e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl %bl 333e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll 0xdeadbeef(%ebx,%ecx,8) 334e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr %ecx 335e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl 0x12345678 336cfad564043021c7276ce19725f43bcde233fa549Chris Lattner 3378c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 3388c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 3398c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02] 3408c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner 341cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316 342cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw $1, %bx, %bx 343cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw $1, %bx, %bx 344cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw $1, %bx, %bx 345cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw $1, %bx, %bx 346cfad564043021c7276ce19725f43bcde233fa549Chris Lattner 347cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld %bx,%bx 348cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld $1, %bx,%bx 349cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd %bx,%bx 350cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd $1, %bx,%bx 3516c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3526c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl %ecx 3536c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1] 3546c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw %cx 3556c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1] 3566c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3576c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %ecx 3586c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %cx 3596c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 360250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll *3135175374 361250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl *3135175374 362250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall *0xbadeface 363250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp *0xbadeface 364250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner 36540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 36640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631 36740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $0 36840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00] 36940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $1 37040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01] 37140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $127 37240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 37340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0 37440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1 37540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f 37640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 3770c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner 37833d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364 37933d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw %cs, %ax 38033d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax 381c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 382c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391 383c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 384c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) 385c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 386c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) 387c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 388c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 389c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) 390c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 391c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) 392c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 393c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 394c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 395c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 396c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 397c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 398f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 399f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417 400f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner.byte 88 + 1 & 15 // CHECK: .byte 9 401f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 402bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412 403bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0 404bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr0 405bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2] 406bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4 407bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr4 408bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2] 409bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8 410bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr8 411bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2] 412bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15 413bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr15 414bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa] 4152c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 4162c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward. 4172c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: faddp %st(1) 4182c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: fmulp %st(2) 4192c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1) 4202c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2) 4212c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 422cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms. 423cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(0), %st(1) 424cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9] 425cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(1) 426cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9] 427cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1) 428cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st 429cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 430cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(0), %st(1) 431cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1] 432cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(1) 433cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1] 434cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1) 435cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st 436cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 437cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 438fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805 439fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb %al, %al 440fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0] 441fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw %di, %di 442fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff] 443fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl %esi, %esi 444fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6] 445fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq %rsi, %rsi 446fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6] 447fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb %al 448fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %di 449fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %esi 450fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %rsi 451fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner 452b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378 453b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq // CHECK: cltq 454b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe // CHECK: cltq 455b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde // CHECK: cwtl 456b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl // CHECK: cwtl 4572c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 458295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805 459295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw // CHECK: cbtw 460295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd // CHECK: cwtd 461295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq // CHECK: cltd 4627c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner 4637c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw 4647c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax 4657c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 466740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 4677c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax) 4687c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 4690966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax) 4700c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 4710bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259 4720bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp) 4730bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait 4740966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 4750bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 4769ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259 4779ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp) 4789ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 4790966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 4809ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 4819ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258 4829ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit 4839ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 4849ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit 4859ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 486905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave 32493 487905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait 488905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493 489905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner 4900c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 4910c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support. 4920c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %rax 493f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2siq %xmm1, %rax 4940c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 4950c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %eax 496f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2sil %xmm1, %eax 4970c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 4980c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 499f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax 500f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil %xmm0, %eax 501f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2si %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax 502f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 503f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 504bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 505bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 506bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner 507bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 508bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 509b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner 510b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss' 511b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 512b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 513b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 514b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 5158a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 5168a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 5178a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 5188a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal 8(%eax), %esi 5198a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal 8(%eax), %esi 5208a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08] 5218a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%eax), %rsi 5228a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%eax), %rsi 5238a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 5248a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%rax), %rsi 5258a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%rax), %rsi 5268a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08] 5278a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 52878a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 52978a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 53078a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 53178a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 53278a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 5336f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd' 5346f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %rax 5356f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd %xmm6, %rax 5366f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6] 5376f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %eax 5386f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd %xmm6, %eax 5396f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 540a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 541a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 542a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] 543a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] 544a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 545a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9] 546a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9] 547a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 548c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky// also PR8861 549c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1] 550c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1] 551c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky 5520bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 553ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl foo(%rip), %eax 554ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl foo(%rip), %eax 555ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A] 556ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 557ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 558ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb $12, foo(%rip) 559ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb $12, foo(%rip) 560ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 561ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 562ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 563ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw $12, foo(%rip) 564ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw $12, foo(%rip) 565ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 566ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 567ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 568ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl $12, foo(%rip) 569ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl $12, foo(%rip) 570ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 571ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 572ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 573ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq $12, foo(%rip) 574ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $12, foo(%rip) 575ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 576ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 577ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 578ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq $-424, %rax 579ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 580ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax 581ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 582ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 583ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %rax 584ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 585ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 586ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax 587ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 588ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %r14 589ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 590ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14 592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq (%r13,%rax,8), %r13 595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13 597ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq %rax, %rbx 599ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x85,0xd8] 600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx 601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq %rbx, %r14 603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x49,0x39,0xde] 604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner cmpq %rbx, %r14 605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167 607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq 609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq 610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xa5] 611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl 613c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: movsd 614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 616ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq 617ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq 618ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xab] 619ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl 620ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl 621ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xab] 622ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 623ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 624ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184 625ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 626ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 627ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 628ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 629ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 630ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushf 631ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 632ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushfq 633ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 634ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popf 635ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 636ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popfq 637ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 638ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax 639ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 640ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movabsq $0xFFFF000000000002, %rax 641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 642508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax 643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFF000000000002, %rax 645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax 647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFF0000, %rax 649ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 650ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax 651ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 652ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFFFF00, %rax 653ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 654ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax 655ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 656ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $10, %rax 657ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 658ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869 659ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// 660ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret 661ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc3] 662ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner retq 663ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 664ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al 665ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0] 666ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setz %al 667ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 668ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al 669ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0] 670ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setnz %al 671ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 672ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0 673ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A] 674ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jz 0 675ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 676ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne 677ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A] 678ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jnz 0 679ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 680824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner// PR9264 681824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbtl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 682824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 683824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner 684ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515 685ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx 686ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $1, %rdx 687ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 688ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 689ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633 690d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl %al, %esi 691ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xf0] 692ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %esi 693ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 694d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq %al, %rsi 695ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 696ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %rsi 697ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 698d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbw %al, %ax 699b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 700d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %ax 701b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 702d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbl %al, %eax 703b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0] 704d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %eax 705b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 706d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswl %ax, %eax 707b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0] 708d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %ax, %eax 709b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 710d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbq %bl, %rax 711b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 712d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %bl, %rax 713b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 714d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswq %cx, %rax 715b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 716d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %cx, %rax 717b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 718d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movslq %edi, %rax 719b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7] 720d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %edi, %rax 721b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 722d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbw %al, %ax 723b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 724d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %ax 725b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 726d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl %al, %eax 727b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0] 728d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %eax 729b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 730d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwl %ax, %eax 731b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0] 732d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %ax, %eax 733b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 734d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq %bl, %rax 735b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 736d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %bl, %rax 737b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 738d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwq %cx, %rax 739b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 740d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %cx, %rax 741b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 742acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw (%rax), %ax 743acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00] 744d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx (%rax), %ax 745b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 746acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw (%rax), %ax 747acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00] 748d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx (%rax), %ax 749ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 750ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 751ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482 752ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 753ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movl %gs:124, %eax 754ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 755ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax) 756ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xff,0x60,0x08] 757ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jmp *8(%rax) 758ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 759ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp) 760ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 761ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner btq $61, -216(%rbp) 762ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 763ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 764ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602 765ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1: 766ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jecxz L1 767ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1 768ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x67,0xe3,A] 769ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jrcxz L1 770ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1 771ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xe3,A] 772ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 773ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061 774ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl 368(%rax),%ecx 775ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 776ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl %ecx, 368(%rax) 777ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 778ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 779ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548 780ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg 0xdeadbeef(%rbx,%rcx,8),%bl 781ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 782ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 783ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 784ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 785ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254 786ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock incl 1(%rsp) 787ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock 788ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp) 789ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 79076331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// rdar://8741045 79176331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderbylock/incl 1(%rsp) 79276331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: lock 79376331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: incl 1(%rsp) 79476331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby 795ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482 796ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl 797ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep 798ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3] 799c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: movsd 800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 802ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 803ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974 804ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret 805ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 806ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 807ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw 808ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw 809ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf] 810ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl 811ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 812ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 813ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq 814ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq 815ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf] 816ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 8177aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805 8187aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw $31438 8197aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 8207aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby retw $0x7ace 8217aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 8227aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw $31438 8237aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xca,0xce,0x7a] 8247aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby lretw $0x7ace 8257aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 8266b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner// PR8592 8276b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattnerlretq // CHECK: lretq # encoding: [0x48,0xcb] 828269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlretl // CHECK: lretl # encoding: [0xcb] 829269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlret // CHECK: lretl # encoding: [0xcb] 8306b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner 831ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907 832ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret 833ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 834ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 835ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl 836ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 837ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 838ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq 839ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq 840ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07] 841ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 842ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242 843ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs 844ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %fs 845ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0] 846ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs 847ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %gs 848ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8] 849ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 850ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs 851ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %fs 852ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0] 853ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs 854ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %gs 855ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8] 856ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 857ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 858ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs 859ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %fs 860ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1] 861ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs 862ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %gs 863ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9] 864ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 865ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs 866ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %fs 867ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1] 868ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs 869ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %gs 870ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9] 871ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 872ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816 873ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp) 874ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp) 875ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 876ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 877ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 878ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 879ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 88027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a 88127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner callq a 88227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 88327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq -40(%rbp), %r15 88427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner leaq -40(%rbp), %r15 88527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 88627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 88727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 88827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6 88927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax 89027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax 89127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 89227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 89327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 89427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 89527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings. 89627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 89727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 89827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 89927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 90027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 90127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 90227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 90387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805 90487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt 4(%rax) 90587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 90687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdt 4(%rax) 90787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 90887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt 4(%rax) 90987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 91087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdtq 4(%rax) 91187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 91287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt 4(%rax) 91387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 91487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidt 4(%rax) 91587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 91687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt 4(%rax) 91787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 91887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidtq 4(%rax) 91987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 92087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt 4(%rax) 92187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 92287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdt 4(%rax) 92387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 92487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt 4(%rax) 92587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 92687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdtq 4(%rax) 92787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 92887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt 4(%rax) 92987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 93087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidt 4(%rax) 93187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 93287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt 4(%rax) 93387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 93487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidtq 4(%rax) 93504a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 93604a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 93704a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner// rdar://8208615 93804a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e] 93904a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e] 94004a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 94104a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 942689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner// rdar://8431864 943689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %bl,%al 944689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %bx,%ax 945689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %ecx,%eax 946689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0xdeadbeef(%ebx,%ecx,8),%eax 947689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x45,%eax 948689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x7eed,%eax 949689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0xbabecafe,%eax 950689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x12345678,%eax 951689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %bl,%al 952689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %bx,%ax 953689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %ecx,%eax 954689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0xdeadbeef(%ebx,%ecx,8),%eax 955689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x45,%eax 956689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x7eed,%eax 957689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0xbabecafe,%eax 958689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x12345678,%eax 959cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner 960cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner// PR8524 961cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 962cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 963cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 964cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 965cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner 9665c7106b2e375edca4b63ab48b218654f978698a4Rafael Espindolarex64 // CHECK: rex64 # encoding: [0x48] 967bfd2d26159c87262fcf462ea442f99478a2093c9Rafael Espindoladata16 // CHECK: data16 # encoding: [0x66] 9687ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner 9697ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner// PR8855 9707ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattnermovq 18446744073709551615,%rbx // CHECK: movq -1, %rbx 9717ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner 9723a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattner// PR8946 9733a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattnermovdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8] 97487ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola 97587ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola// PR8935 97687ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0] 97787ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] 978d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger 979d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loope 0 980d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe1,A] 981d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger loopz 0 982d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger 983d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loopne 0 984d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe0,A] 985d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger loopnz 0 98686d822df6d9a484b3672b2a909641262663a45dcEli Friedman 98796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb # encoding: [0x6e] 98896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb 98996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb 99096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb 99196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb %ds:(%rsi), %dx 99296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb (%rsi), %dx 99396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 99496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw # encoding: [0x66,0x6f] 99596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw 99696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw 99796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw 99896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw %ds:(%rsi), %dx 99996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw (%rsi), %dx 100096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 100196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl # encoding: [0x6f] 100296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl 100396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl 100496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl %ds:(%rsi), %dx 100596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl (%rsi), %dx 100696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 100796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb # encoding: [0x6c] 100896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb 100996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insb 101096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insb %dx, %es:(%rdi) 101196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 101296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw # encoding: [0x66,0x6d] 101396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw 101496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insw 101596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insw %dx, %es:(%rdi) 101696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 101796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl # encoding: [0x6d] 101896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl 101996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insl 102096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insl %dx, %es:(%rdi) 102196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 102296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb # encoding: [0xa4] 102396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb 102496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb 102596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb 102696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb %ds:(%rsi), %es:(%rdi) 102796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb (%rsi), %es:(%rdi) 102896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 102996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw # encoding: [0x66,0xa5] 103096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw 103196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw 103296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw 103396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw %ds:(%rsi), %es:(%rdi) 103496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw (%rsi), %es:(%rdi) 103596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 1036c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: movsd # encoding: [0xa5] 1037c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: movsd 1038c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: movsd 103996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl 104096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl %ds:(%rsi), %es:(%rdi) 104196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl (%rsi), %es:(%rdi) 104296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 104396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq # encoding: [0x48,0xa5] 104496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq 104596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq 104696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq 104796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq %ds:(%rsi), %es:(%rdi) 104896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq (%rsi), %es:(%rdi) 104996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 105096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb # encoding: [0xac] 105196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 105296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 105396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 105496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 105596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb 105696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb %ds:(%rsi), %al 105796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb (%rsi), %al 105896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %al 105996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %al 106096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 106196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw # encoding: [0x66,0xad] 106296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 106396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 106496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 106596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 106696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw 106796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw %ds:(%rsi), %ax 106896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw (%rsi), %ax 106996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %ax 107096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %ax 107196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 107296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl # encoding: [0xad] 107396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 107496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 107596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 107696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 107796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl 107896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl %ds:(%rsi), %eax 107996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl (%rsi), %eax 108096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %eax 108196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %eax 108296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 108396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq # encoding: [0x48,0xad] 108496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 108596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 108696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 108796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 108896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq 108996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq %ds:(%rsi), %rax 109096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq (%rsi), %rax 109196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %rax 109296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %rax 109396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 109496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb # encoding: [0xaa] 109596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb 109696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb 109796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosb 109896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosb %al, %es:(%rdi) 109996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %al, %es:(%rdi) 110096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 110196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw # encoding: [0x66,0xab] 110296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw 110396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw 110496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosw 110596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosw %ax, %es:(%rdi) 110696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %ax, %es:(%rdi) 110796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 110896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl # encoding: [0xab] 110996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl 111096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl 111196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosl 111296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosl %eax, %es:(%rdi) 111396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %eax, %es:(%rdi) 111496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 111596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq # encoding: [0x48,0xab] 111696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq 111796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq 111896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosq 111996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosq %rax, %es:(%rdi) 112096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %rax, %es:(%rdi) 112196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 112286d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw 112386d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 112486d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %ax 112586d822df6d9a484b3672b2a909641262663a45dcEli Friedman 112686d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strl 112786d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x0f,0x00,0xc8] 112886d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %eax 112986d822df6d9a484b3672b2a909641262663a45dcEli Friedman 113086d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw 113186d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 113286d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %ax 113386d822df6d9a484b3672b2a909641262663a45dcEli Friedman 113486d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strq 113586d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x48,0x0f,0x00,0xc8] 113686d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %rax 113794d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky 113894d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0 113994d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 114094d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky movq %rdi,%xmm0 114194d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky 114294d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0 114394d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 114494d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky movd %rdi,%xmm0 1145a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman 1146a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil %eax, (%rdi) 1147a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x0f,0xc3,0x07] 1148a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil 1149a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntil %eax, (%rdi) 1150a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %eax, (%rdi) 1151a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman 1152a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq %rax, (%rdi) 1153a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x48,0x0f,0xc3,0x07] 1154a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq 1155a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntiq %rax, (%rdi) 1156a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %rax, (%rdi) 1157af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1158af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $17, %xmm0, %xmm1 1159af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11] 1160af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulhqhqdq %xmm0, %xmm1 1161af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1162af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $1, %xmm0, %xmm1 1163af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01] 1164af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $1, %xmm0, %xmm1 1165af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1166af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $16, (%rdi), %xmm1 1167af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10] 1168af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmullqhqdq (%rdi), %xmm1 1169af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1170af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $0, (%rdi), %xmm1 1171af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00] 1172af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $0, (%rdi), %xmm1 11737ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 11747ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// PR10345 11757ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgq %rax, %rax 117625f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x48,0x90] 11777ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgq %rax, %rax 11787ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 11797ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %eax, %eax 11807ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x87,0xc0] 11817ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %eax 11827ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 11837ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgw %ax, %ax 118425f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x66,0x90] 11857ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgw %ax, %ax 11867ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 11877ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax 11887ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91] 11897ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %ecx, %eax 11907ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 11917ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax 11927ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91] 11937ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %ecx 1194