x86-64.s revision 0c7f116bb6950ef819323d855415b2f2b0aad987
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 530d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davis// CHECK: retw 540d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davis retw 550d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davis 565fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8 57c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $1, %eax 585fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $1, %eax 595fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 605fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8 61c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $-1, %eax 625fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $-1, %eax 635fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 645fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri 65c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $256, %eax 665fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $256, %eax 675fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 6844f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri8 69c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $1, %rax 70ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar xorq $1, %rax 715fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 7244f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri32 73c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $256, %rax 74ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar xorq $256, %rax 75ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 76ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB8rr 77c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %bl 78ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subb %al, %bl 79ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 80ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB16rr 81c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subw %ax, %bx 82ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subw %ax, %bx 83ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 84ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB32rr 85c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl %eax, %ebx 86ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subl %eax, %ebx 87ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 880db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar// FIXME: Check that this matches the correct instruction. 89926f2bb3d8dd6f8b0198aa478828ee02914050f9Daniel Dunbar// CHECK: callq *%rax 900db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar call *%rax 911095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar 921095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar// FIXME: Check that this matches the correct instruction. 93c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: shldl %cl, %eax, %ebx 941095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar shldl %cl, %eax, %ebx 95e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar 96e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax 97e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar shll $2, %eax 98e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar 99e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax 100e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar sall $2, %eax 10112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 10212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 10312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: insb 10412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;insb 10512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 10612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 10712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: outsb 10812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;outsb 10912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 11012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 11112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: movsb 11212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;movsb 11312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 114df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner 115df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner// rdar://8470918 116df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovb // CHECK: movsb 117df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovw // CHECK: movsw 1189b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Toppersmovl // CHECK: movsl 119df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovq // CHECK: movsq 120df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner 12161129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// rdar://8456361 12261129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: rep 1239b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 12461129252e44067ae112dc856c64c814344b7e7c9Chris Lattner rep movsd 12561129252e44067ae112dc856c64c814344b7e7c9Chris Lattner 12612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 12712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lodsb 12812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;lodsb 12912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 13112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: stosb 13212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;stosb 13312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repz and repe have the same opcode as rep 13512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 13612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb 13712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repz;cmpsb 13812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repnz has the same opcode as repne 14012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne 14112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb 14212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repnz;cmpsb 14312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 14412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repe and repz have the same opcode as rep 14512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 14612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb 14712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repe;scasb 14812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 14912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne 15012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb 15112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repne;scasb 15212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lock 1549c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: cmpxchgb %al, (%ebx) 15512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby lock;cmpxchgb %al, 0(%ebx) 15612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cs 1589c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 15912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby cs;movb 0(%eax), %al 16012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 16112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ss 1629c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby ss;movb 0(%eax), %al 16412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 16512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ds 1669c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby ds;movb 0(%eax), %al 16812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 16912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: es 1709c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 17112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby es;movb 0(%eax), %al 17212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 17312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: fs 1749c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 17512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby fs;movb 0(%eax), %al 17612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 17712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: gs 1789c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 17912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby gs;movb 0(%eax), %al 18012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 181e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(0) 182e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(1) 183e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(7) 184e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner 185e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(0) 186e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(1) 187e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(7) 188c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar 189c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar// CHECK: leal 0, %eax 190c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar leal 0, %eax 191a7f1354eb5289b340220c9138befff89822119b2Chris Lattner 192a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// rdar://7986634 - Insensitivity on opcodes. 193a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// CHECK: int3 194a7f1354eb5289b340220c9138befff89822119b2Chris LattnerINT3 195a7f1354eb5289b340220c9138befff89822119b2Chris Lattner 19615f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner// rdar://8735979 - int $3 -> int3 19715f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner// CHECK: int3 19815f895179953b258e4ca20860d0d58f25f3a3edbChris Lattnerint $3 19915f895179953b258e4ca20860d0d58f25f3a3edbChris Lattner 200ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar 201ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// Allow scale factor without index register. 202ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK: movaps %xmm3, (%esi) 203ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK-STDERR: warning: scale factor without index register is ignored 204ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbarmovaps %xmm3, (%esi, 2) 205ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar 206dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// CHECK: imull $12, %eax 207ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbarimul $12, %eax 208fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar 209fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar// CHECK: imull %ecx, %eax 210fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbarimull %ecx, %eax 2119389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner 2129389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner 2139389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// rdar://8208481 2149389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outb %al, $161 2159389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutb %al, $161 2169389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outw %ax, $128 2179389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutw %ax, $128 2189389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: inb $161, %al 2199389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattnerinb $161, %al 220d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner 221d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// rdar://8017621 222d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// CHECK: pushq $1 223d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattnerpush $1 224d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner 225d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// rdar://9716860 226d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderbypushq $1 227d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// CHECK: encoding: [0x6a,0x01] 228d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderbypushq $1111111 229d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00] 230d521f2d2f1a866ba9f9e73ca566e2b486c15dc74Kevin Enderby 231c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// rdar://8017530 232c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// CHECK: sldtw 4 233c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattnersldt 4 234e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner 235e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// rdar://8208499 236e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovnew %bx, %ax 237e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnz %bx, %ax 238e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovneq %rbx, %rax 239e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnzq %rbx, %rax 240e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner 241ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner 242ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// rdar://8407928 243ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inb $127, %al 2444e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inw %dx, %ax 245ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outb %al, $127 2464e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outw %ax, %dx 2474e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inl %dx, %eax 248ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinb $0x7f 249ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinw %dx 250ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutb $0x7f 251ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutw %dx 252ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinl %dx 253ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 254ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 255ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// PR8114 2564e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outb %al, %dx 2574e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outb %al, %dx 2584e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outw %ax, %dx 2594e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outw %ax, %dx 2604e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outl %eax, %dx 2614e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: outl %eax, %dx 26200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenberger 26300743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout %al, (%dx) 26400743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutb %al, (%dx) 26500743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout %ax, (%dx) 26600743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutw %ax, (%dx) 26700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerout %eax, (%dx) 26800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergeroutl %eax, (%dx) 269ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 2704e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inb %dx, %al 2714e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inb %dx, %al 2724e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inw %dx, %ax 2734e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inw %dx, %ax 2744e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inl %dx, %eax 2754e3170b63a31c515644846ce7a77631429d93050Craig Topper// CHECK: inl %dx, %eax 2762d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 27700743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin (%dx), %al 27800743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinb (%dx), %al 27900743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin (%dx), %ax 28000743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinw (%dx), %ax 28100743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerin (%dx), %eax 28200743c2218ff3f0f4edce972e2d88893a19e6ef8Joerg Sonnenbergerinl (%dx), %eax 2832d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2842d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422 2852d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2866ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fxch %st(1) 2876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucom %st(1) 2886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucomp %st(1) 2896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 2902d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp %st(0) 2916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 2926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 2936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 2946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 2956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 2962d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2972d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch 2982d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom 2992d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp 3002d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp 3012d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st 3022d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp 3032d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp 3042d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp 3052d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp 3062d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp 3078f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fcomi %st(1) 309235705b9ca08b66532528930adf9d9c23fd7b42bChris Lattner// CHECK: fcomi %st(2) 3106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fucomi %st(1) 311c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2) 312c6df9883da99915d1cfa491b381ffa703c61ed90Bill Wendling// CHECK: fucomi %st(2) 3138f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3148f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi 3158f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi %st(2) 3168f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi 3178f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2) 3188f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2), %st 3198f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 3206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 3216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 3226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 3236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fnstsw %ax 32484f362d8912657bb21250a65331f797d5381e9a3Chris Lattner 32584f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw 32684f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax 32784f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax 32884f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al 329e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner 330e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880 3318c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rclb %bl 3328c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcll 3735928559(%ebx,%ecx,8) 3338c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl %ecx 3348c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner// CHECK: rcrl 305419896 335e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl %bl 336e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll 0xdeadbeef(%ebx,%ecx,8) 337e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr %ecx 338e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl 0x12345678 339cfad564043021c7276ce19725f43bcde233fa549Chris Lattner 3408c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 3418c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 3428c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattnerrclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02] 3438c24b0c6996a8f03ff32766f0695dcf19577af59Chris Lattner 344cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316 345ec93b6decad4b95fd8a9531dc024b2b1881019bfEli Friedman// PR12173 34654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, %dx 34754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, %dx 34854427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw $1, %bx, %dx 34954427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, (%rax) 35054427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shldw %cl, %bx, (%rax) 35154427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, %dx 35254427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, %dx 35354427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw $1, %bx, %dx 35454427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, (%rax) 35554427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman// CHECK: shrdw %cl, %bx, (%rax) 35654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedman 35754427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %bx, %dx 35854427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %cl, %bx, %dx 35954427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld $1, %bx, %dx 36054427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %bx, (%rax) 36154427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshld %cl, %bx, (%rax) 36254427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %bx, %dx 36354427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %cl, %bx, %dx 36454427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd $1, %bx, %dx 36554427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %bx, (%rax) 36654427e52197ecd8c748736d7bbb431f2bf65c90eEli Friedmanshrd %cl, %bx, (%rax) 3676c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3686c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl %ecx 3696c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1] 3706c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw %cx 3716c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1] 3726c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3736c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %ecx 3746c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %cx 3756c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 376250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll *3135175374 377250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl *3135175374 378250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall *0xbadeface 379250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp *0xbadeface 380250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner 38140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 38240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631 38340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $0 38440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00] 38540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $1 38640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01] 38740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $127 38840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 38940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0 39040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1 39140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f 39240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 3930c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner 39433d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364 39533d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw %cs, %ax 39633d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax 397c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 398c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391 399c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 400c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) 401c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 402c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) 403c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 404c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 405c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) 406c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 407c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) 408c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 409c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 410c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 411c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 412c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 413c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 414f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 415f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417 416f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner.byte 88 + 1 & 15 // CHECK: .byte 9 417f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 418bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412 419bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0 420bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr0 421bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2] 422bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4 423bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr4 424bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2] 425bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8 426bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr8 427bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2] 428bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15 429bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr15 430bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa] 4312c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 4322c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward. 4332c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: faddp %st(1) 4342c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: fmulp %st(2) 4352c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1) 4362c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2) 4372c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 438cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms. 439cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(0), %st(1) 440cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9] 441cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(1) 442cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9] 443cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1) 444cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st 445cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 446cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(0), %st(1) 447cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1] 448cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(1) 449cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1] 450cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1) 451cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st 452cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 453cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 454fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805 455fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb %al, %al 456fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0] 457fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw %di, %di 458fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff] 459fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl %esi, %esi 460fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6] 461fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq %rsi, %rsi 462fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6] 463fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb %al 464fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %di 465fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %esi 466fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %rsi 467fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner 468b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378 469b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq // CHECK: cltq 470b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe // CHECK: cltq 471b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde // CHECK: cwtl 472b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl // CHECK: cwtl 4732c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 474295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805 475295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw // CHECK: cbtw 476295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd // CHECK: cwtd 477295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq // CHECK: cltd 4789d399b1fc2f7dfad72f5ff3328983acb805eaf10Benjamin Kramercqo // CHECK: cqto 4797c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner 4807c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw 4817c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax 4827c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 483740e5b3586a474f1cea371cf6f652850e5420b90Bill Wendling// CHECK: fnstsw 4847c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax) 4857c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 4860966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax) 4870c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 4880bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259 4890bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp) 4900bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait 4910966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 4920bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 4939ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259 4949ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp) 4959ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 4960966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 4979ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 4989ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258 4999ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit 5009ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 5019ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit 5029ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 503905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave 32493 504905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait 505905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493 506905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner 5070c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 5080c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support. 5090c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %rax 510f564a9389da68266f44314fe38ab399fd2211134Craig Topper// CHECK: cvtsd2si %xmm1, %rax 5110c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 5120c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %eax 513f564a9389da68266f44314fe38ab399fd2211134Craig Topper// CHECK: cvtsd2si %xmm1, %eax 5140c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 5150c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 516f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2siq %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 517f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2sil %xmm0, %eax // CHECK: cvtsd2si %xmm0, %eax 518f564a9389da68266f44314fe38ab399fd2211134Craig Toppercvtsd2si %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 519f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 520f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 521bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 522bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 523bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner 524bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 525bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 526b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner 527b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss' 528b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 529b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 530b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 531b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 5328a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 5338a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 5348a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 5358a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal 8(%eax), %esi 5368a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal 8(%eax), %esi 5378a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08] 5388a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%eax), %rsi 5398a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%eax), %rsi 5408a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 5418a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%rax), %rsi 5428a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%rax), %rsi 5438a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08] 5448a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 54578a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 54678a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 54778a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 54878a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 54978a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 5506f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd' 5516f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %rax 552c6f7c99809cece8c85e180c1b95e6159d8ea9613Craig Topper// CHECK: movmskpd %xmm6, %eax 553c6f7c99809cece8c85e180c1b95e6159d8ea9613Craig Topper// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 5546f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %eax 5556f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd %xmm6, %eax 5566f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 557a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 558a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 559a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] 560a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] 561a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 562a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9] 563a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9] 564a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 565c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky// also PR8861 566c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1] 567c00210cef28b48b17408eb79e94691779da9d474Nick Lewyckyfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1] 568c00210cef28b48b17408eb79e94691779da9d474Nick Lewycky 5690bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 570ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl foo(%rip), %eax 571ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl foo(%rip), %eax 572ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A] 573ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 574ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 575ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb $12, foo(%rip) 576ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb $12, foo(%rip) 577ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 578ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 579ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 580ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw $12, foo(%rip) 581ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw $12, foo(%rip) 582ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 583ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 584ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 585ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl $12, foo(%rip) 586ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl $12, foo(%rip) 587ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 588ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 589ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 590ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq $12, foo(%rip) 591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $12, foo(%rip) 592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq $-424, %rax 596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 597ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax 598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 599ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %rax 601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax 604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %r14 606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14 609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq (%r13,%rax,8), %r13 612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 613ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13 614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq %rax, %rbx 6160c7f116bb6950ef819323d855415b2f2b0aad987Pirama Arumuga Nainar// CHECK: encoding: [0x48,0x85,0xc3] 617ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx 618ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 619ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq %rbx, %r14 620ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x49,0x39,0xde] 621ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner cmpq %rbx, %r14 622ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 623ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167 624ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 625ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq 626ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq 627ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xa5] 628ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 629ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl 6309b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 631ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 632ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 633ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq 634ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq 635ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xab] 636ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl 637ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl 638ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xab] 639ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 640ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184 642ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushf 648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 649ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushfq 650ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 651ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popf 652ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 653ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popfq 654ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 655ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax 656ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 657ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movabsq $0xFFFF000000000002, %rax 658ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 659508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax 660ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 661ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFF000000000002, %rax 662ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 663ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax 664ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 665ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFF0000, %rax 666ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 667ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax 668ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 669ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFFFF00, %rax 670ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 671ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax 672ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 673ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $10, %rax 674ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 675877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsb -6066930261531658096, %al 676877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 677877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsb 0xabcdef1234567890,%al 678877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 679877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsw -6066930261531658096, %ax 680877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 681877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsw 0xabcdef1234567890,%ax 682877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 683877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsl -6066930261531658096, %eax 684877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 685877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsl 0xabcdef1234567890,%eax 686877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 687877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsq -6066930261531658096, %rax 688877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 689877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsq 0xabcdef1234567890, %rax 690877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 691877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsb %al, -6066930261531658096 692877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 693877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsb %al,0xabcdef1234567890 694877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 695877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsw %ax, -6066930261531658096 696877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 697877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsw %ax,0xabcdef1234567890 698877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 699877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsl %eax, -6066930261531658096 700877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 701877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsl %eax,0xabcdef1234567890 702877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 703877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: movabsq %rax, -6066930261531658096 704877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 705877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby movabsq %rax,0xabcdef1234567890 706877d123bdb0198705884e4ca7980d2ab845d9888Kevin Enderby 707ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869 708ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// 709ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret 710ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc3] 711ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner retq 712ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 713ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al 714ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0] 715ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setz %al 716ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 717ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al 718ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0] 719ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setnz %al 720ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 721ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0 722ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A] 723ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jz 0 724ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 725ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne 726ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A] 727ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jnz 0 728ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 729824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner// PR9264 730824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbtl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 731824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattnerbt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 732824a9076eaf8d109bc79f53e51b7d7a045f42552Chris Lattner 733ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515 734ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx 735ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $1, %rdx 736ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 737ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 738ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633 739d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl %al, %esi 740ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xf0] 741ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %esi 742ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 743d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq %al, %rsi 744ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 745ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %rsi 746ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 747d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbw %al, %ax 748b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 749d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %ax 750b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 751d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbl %al, %eax 752b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0] 753d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %al, %eax 754b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 755d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswl %ax, %eax 756b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0] 757d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %ax, %eax 758b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 759d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movsbq %bl, %rax 760b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 761d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %bl, %rax 762b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 763d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movswq %cx, %rax 764b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 765d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %cx, %rax 766b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 767d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movslq %edi, %rax 768b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7] 769d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx %edi, %rax 770b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 771d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbw %al, %ax 772b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 773d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %ax 774b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 775d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbl %al, %eax 776b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0] 777d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %al, %eax 778b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 779d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwl %ax, %eax 780b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0] 781d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %ax, %eax 782b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 783d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzbq %bl, %rax 784b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 785d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %bl, %rax 786b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 787d336de318eafd7643f65a901315920ec10ce05cdBill Wendling// CHECK: movzwq %cx, %rax 788b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 789d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx %cx, %rax 790b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 791acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw (%rax), %ax 792acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00] 793d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovsx (%rax), %ax 794b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 795acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw (%rax), %ax 796acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00] 797d336de318eafd7643f65a901315920ec10ce05cdBill Wendlingmovzx (%rax), %ax 798ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 799ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482 801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 802ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movl %gs:124, %eax 803ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 804ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax) 805ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xff,0x60,0x08] 806ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jmp *8(%rax) 807ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 808ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp) 809ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 810ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner btq $61, -216(%rbp) 811ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 812ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 813ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602 814ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1: 815ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jecxz L1 816ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1 817ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x67,0xe3,A] 818ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jrcxz L1 819ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1 820ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xe3,A] 821ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 822ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061 823ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl 368(%rax),%ecx 824ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 825ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl %ecx, 368(%rax) 826ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 827ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 828ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548 829ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg 0xdeadbeef(%rbx,%rcx,8),%bl 830ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 831ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 832ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 833ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 834ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254 835ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock incl 1(%rsp) 836ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock 837ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp) 838ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 83976331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// rdar://8741045 84076331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderbylock/incl 1(%rsp) 84176331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: lock 84276331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby// CHECK: incl 1(%rsp) 84376331754d4a06e2394c15ae8f4870f4aeaf5ca1fKevin Enderby 844ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482 845ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl 846ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep 847ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3] 8489b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 849ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 850ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 851ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 852ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974 853ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret 854ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 855ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 856ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw 857ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw 858ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf] 859ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl 860ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 861ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 862ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq 863ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq 864ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf] 865ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 8667aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805 8677aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw $31438 8687aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 8697aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby retw $0x7ace 8707aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 8717aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw $31438 8727aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xca,0xce,0x7a] 8737aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby lretw $0x7ace 8747aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 8756b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner// PR8592 8766b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattnerlretq // CHECK: lretq # encoding: [0x48,0xcb] 877269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlretl // CHECK: lretl # encoding: [0xcb] 878269f10b316b41fde5c9bf3f6e5c471f371862834Chris Lattnerlret // CHECK: lretl # encoding: [0xcb] 8790d82fe77f2b6f48b5fab131c1671169d154f8c69Charles Davislretw // CHECK: lretw # encoding: [0x66,0xcb] 8806b5e3978e3f720f6d2828068157b9d9687aee711Chris Lattner 881ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907 882ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret 883ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 884ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 885ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl 886ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 887ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 888ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq 889ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq 890ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07] 891ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 892ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242 893ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs 894ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %fs 895ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0] 896ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs 897ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %gs 898ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8] 899ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 900ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs 901ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %fs 902ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0] 903ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs 904ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %gs 905ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8] 906ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 907ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 908ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs 909ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %fs 910ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1] 911ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs 912ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %gs 913ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9] 914ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 915ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs 916ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %fs 917ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1] 918ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs 919ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %gs 920ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9] 921ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 922ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816 923ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp) 924ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp) 925ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 926ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 927ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 928ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 929ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 93027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a 93127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner callq a 93227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 93327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq -40(%rbp), %r15 93427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner leaq -40(%rbp), %r15 93527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 93627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 93727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 93827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6 93927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax 94027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax 94127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 94227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 94327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 94427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 94527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings. 94627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 94727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 94827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 94927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 95027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 95127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 95227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 95387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805 95436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lgdtq 4(%rax) 95587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 95687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdt 4(%rax) 95787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 95836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lgdtq 4(%rax) 95987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 96087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdtq 4(%rax) 96187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 96236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lidtq 4(%rax) 96387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 96487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidt 4(%rax) 96587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 96636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lidtq 4(%rax) 96787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 96887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidtq 4(%rax) 96987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 97036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sgdtq 4(%rax) 97187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 97287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdt 4(%rax) 97387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 97436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sgdtq 4(%rax) 97587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 97687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdtq 4(%rax) 97787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 97836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sidtq 4(%rax) 97987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 98087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidt 4(%rax) 98187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 98236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: sidtq 4(%rax) 98387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 98487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidtq 4(%rax) 98504a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 98604a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 98704a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner// rdar://8208615 98804a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e] 98904a75abe234f1093f69a065d799b3271ccd09f99Chris Lattnermov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e] 99004a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 99104a75abe234f1093f69a065d799b3271ccd09f99Chris Lattner 992689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner// rdar://8431864 9936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divb %bl 9946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divw %bx 9956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl %ecx 9966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 3735928559(%ebx,%ecx,8) 9976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 69 9986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 32493 9996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 3133065982 10006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: divl 305419896 10016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivb %bl 10026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivw %bx 10036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl %ecx 10046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 3735928559(%ebx,%ecx,8) 10056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 69 10066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 32493 10076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 3133065982 10086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper//CHECK: idivl 305419896 1009689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %bl,%al 1010689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %bx,%ax 1011689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div %ecx,%eax 1012689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0xdeadbeef(%ebx,%ecx,8),%eax 1013689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x45,%eax 1014689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x7eed,%eax 1015689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0xbabecafe,%eax 1016689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner div 0x12345678,%eax 1017689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %bl,%al 1018689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %bx,%ax 1019689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv %ecx,%eax 1020689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0xdeadbeef(%ebx,%ecx,8),%eax 1021689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x45,%eax 1022689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x7eed,%eax 1023689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0xbabecafe,%eax 1024689cf3cb6222652b92fdbd52e96c1d2f421ac44eChris Lattner idiv 0x12345678,%eax 1025cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner 1026cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner// PR8524 1027cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1028cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1029cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1030cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattnermovq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1031cbf5d74e6a99b6e38c9c05e08b6319ed0ce49650Chris Lattner 10325c7106b2e375edca4b63ab48b218654f978698a4Rafael Espindolarex64 // CHECK: rex64 # encoding: [0x48] 1033bfd2d26159c87262fcf462ea442f99478a2093c9Rafael Espindoladata16 // CHECK: data16 # encoding: [0x66] 10347ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner 10357ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner// PR8855 10367ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattnermovq 18446744073709551615,%rbx // CHECK: movq -1, %rbx 10377ab3cc32d6bd3c3166184e27713c91f5317c7f85Chris Lattner 10383a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattner// PR8946 10393a5004dc3ee789bcbafd5b9733d3302e73e1187dChris Lattnermovdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8] 104087ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola 104187ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindola// PR8935 104287ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0] 104387ca0e077d91b96a765b3b24cadfa8891026a33aRafael Espindolaxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] 1044d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger 1045d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loope 0 1046d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe1,A] 1047d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger loopz 0 1048d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger 1049d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: loopne 0 1050d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger// CHECK: encoding: [0xe0,A] 1051d86f482e4a9d71596e4f81afb0f7912ab3e40a7fJoerg Sonnenberger loopnz 0 105286d822df6d9a484b3672b2a909641262663a45dcEli Friedman 105336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: outsb (%rsi), %dx # encoding: [0x6e] 105496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb 105596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsb 105696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb 105796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb %ds:(%rsi), %dx 105896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsb (%rsi), %dx 105996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 106036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f] 106196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw 106296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsw 106396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw 106496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw %ds:(%rsi), %dx 106596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsw (%rsi), %dx 106696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 106736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: outsl (%rsi), %dx # encoding: [0x6f] 106896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: outsl 106996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl 107096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl %ds:(%rsi), %dx 107196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger outsl (%rsi), %dx 107296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 107336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c] 107496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insb 107596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insb 107696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insb %dx, %es:(%rdi) 107796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 107836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d] 107996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insw 108096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insw 108196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insw %dx, %es:(%rdi) 108296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 108336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d] 108496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: insl 108596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insl 108696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger insl %dx, %es:(%rdi) 108796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 108836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4] 108996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb 109096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsb 109196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb 109296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb %ds:(%rsi), %es:(%rdi) 109396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsb (%rsi), %es:(%rdi) 109496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 109536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5] 109696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw 109796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsw 109896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw 109996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw %ds:(%rsi), %es:(%rdi) 110096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsw (%rsi), %es:(%rdi) 110196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 110236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5] 11039b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 11049b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 110596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl 110696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl %ds:(%rsi), %es:(%rdi) 110796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsl (%rsi), %es:(%rdi) 11080f5ab7c5f392d8207a4b0c5bf1f8b274a9f410dfKevin Enderby// rdar://10883092 11099b8b830f3fa6dca2275dcd86bdaf0d78ab1651a1Craig Topper// CHECK: movsl 11100f5ab7c5f392d8207a4b0c5bf1f8b274a9f410dfKevin Enderby movsl (%rsi), (%rdi) 111196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 111236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5] 111396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq 111496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: movsq 111596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq 111696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq %ds:(%rsi), %es:(%rdi) 111796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger movsq (%rsi), %es:(%rdi) 111896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 111936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsb (%rsi), %al # encoding: [0xac] 112096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 112196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 112296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 112396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsb 112496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb 112596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb %ds:(%rsi), %al 112696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsb (%rsi), %al 112796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %al 112896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %al 112996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 113036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad] 113196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 113296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 113396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 113496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsw 113596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw 113696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw %ds:(%rsi), %ax 113796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsw (%rsi), %ax 113896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %ax 113996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %ax 114096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 114136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsl (%rsi), %eax # encoding: [0xad] 114296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 114396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 114496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 114596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsl 114696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl 114796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl %ds:(%rsi), %eax 114896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsl (%rsi), %eax 114996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %eax 115096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %eax 115196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 115236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad] 115396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 115496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 115596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 115696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: lodsq 115796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq 115896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq %ds:(%rsi), %rax 115996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lodsq (%rsi), %rax 116096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods %ds:(%rsi), %rax 116196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger lods (%rsi), %rax 116296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 116336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa] 116496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb 116596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosb 116696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosb 116796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosb %al, %es:(%rdi) 116896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %al, %es:(%rdi) 116996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 117036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab] 117196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw 117296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosw 117396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosw 117496622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosw %ax, %es:(%rdi) 117596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %ax, %es:(%rdi) 117696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 117736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab] 117896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl 117996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosl 118096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosl 118196622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosl %eax, %es:(%rdi) 118296622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %eax, %es:(%rdi) 118396622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 118436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab] 118596622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq 118696622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger// CHECK: stosq 118796622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosq 118896622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stosq %rax, %es:(%rdi) 118996622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger stos %rax, %es:(%rdi) 119096622aa063435b1de085489f0e3e49b5912c22daJoerg Sonnenberger 119186d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw 119286d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 119386d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %ax 119486d822df6d9a484b3672b2a909641262663a45dcEli Friedman 119586d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strl 119686d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x0f,0x00,0xc8] 119786d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %eax 119886d822df6d9a484b3672b2a909641262663a45dcEli Friedman 119986d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strw 120086d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 120186d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %ax 120286d822df6d9a484b3672b2a909641262663a45dcEli Friedman 120386d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: strq 120486d822df6d9a484b3672b2a909641262663a45dcEli Friedman// CHECK: encoding: [0x48,0x0f,0x00,0xc8] 120586d822df6d9a484b3672b2a909641262663a45dcEli Friedman str %rax 120694d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky 120794d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0 120894d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 120994d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky movq %rdi,%xmm0 121094d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky 121194d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: movd %rdi, %xmm0 121294d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 121394d4c91bc5b2a84e6b93250599b6742777dbd35eNick Lewycky movd %rdi,%xmm0 1214a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman 12159765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach// CHECK: movd %xmm0, %rax 12169765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0] 12179765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach movd %xmm0, %rax 12189765c6ecde9ca96c37fe3e27d360aadc387b6942Jim Grosbach 1219a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil %eax, (%rdi) 1220a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x0f,0xc3,0x07] 1221a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntil 1222a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntil %eax, (%rdi) 1223a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %eax, (%rdi) 1224a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman 1225a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq %rax, (%rdi) 1226a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: encoding: [0x48,0x0f,0xc3,0x07] 1227a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedman// CHECK: movntiq 1228a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovntiq %rax, (%rdi) 1229a390a1aa48d8fa5085aa51b950f00d79dbb0c646Eli Friedmanmovnti %rax, (%rdi) 1230af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1231af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $17, %xmm0, %xmm1 1232af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11] 1233af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulhqhqdq %xmm0, %xmm1 1234af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1235af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $1, %xmm0, %xmm1 1236af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01] 1237af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $1, %xmm0, %xmm1 1238af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1239af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $16, (%rdi), %xmm1 1240af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10] 1241af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmullqhqdq (%rdi), %xmm1 1242af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman 1243af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: pclmulqdq $0, (%rdi), %xmm1 1244af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00] 1245af45b3d8cb1b88d3cf775542996d78d8ce009274Eli Friedmanpclmulqdq $0, (%rdi), %xmm1 12467ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 12477ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// PR10345 12487ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgq %rax, %rax 124925f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x48,0x90] 12507ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgq %rax, %rax 12517ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 12527ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %eax, %eax 12537ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x87,0xc0] 12547ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %eax 12557ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 12567ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgw %ax, %ax 125725f6dfd108801d1dc5877c420ef0dd47131aeda7Craig Topper// CHECK: encoding: [0x66,0x90] 12587ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgw %ax, %ax 12597ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 12607ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax 12617ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91] 12627ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %ecx, %eax 12637ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper 12647ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: xchgl %ecx, %eax 12657ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topper// CHECK: encoding: [0x91] 12667ea16b01fad5236cc132cb5fc3e443fcbf70d3b8Craig Topperxchgl %eax, %ecx 126755c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby 126855c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexit 126955c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x0f,0x35] 127055c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexit 127155c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby 127255c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexitl 127355c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x0f,0x35] 127455c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitl 127555c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby 127655c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: sysexitq 127755c4127134d127ccd52cc2f4115af00084b28807Kevin Enderby// CHECK: encoding: [0x48,0x0f,0x35] 127855c4127134d127ccd52cc2f4115af00084b28807Kevin Enderbysysexitq 127902d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao 128002d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: clac 128102d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: encoding: [0x0f,0x01,0xca] 128202d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liaoclac 128302d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao 128402d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: stac 128502d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liao// CHECK: encoding: [0x0f,0x01,0xcb] 128602d2e612521954b5ff7c1ba6fd53e36bc51e1c48Michael Liaostac 12876ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 12886ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 12896ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 12906ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 12916ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 12926ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 12936ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 12946ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(0), %st(1) 12956ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(0), %st(1) 12966ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(0), %st(1) 12976ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(0), %st(1) 12986ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(0), %st(1) 12996ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(0), %st(1) 13006ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13016ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 13026ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 13036ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 13046ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 13056ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 13066ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 13076ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(1), %st(0) 13086ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(1), %st(0) 13096ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(1), %st(0) 13106ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(1), %st(0) 13116ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(1), %st(0) 13126ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(1), %st(0) 13136ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13146ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 13156ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 13166ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 13176ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 13186ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 13196ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 13206ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp %st(1) 13216ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp %st(1) 13226ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp %st(1) 13236ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp %st(1) 13246ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp %st(1) 13256ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp %st(1) 13266ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13276ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: faddp %st(1) 13286ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmulp %st(1) 13296ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubp %st(1) 13306ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubrp %st(1) 13316ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivp %st(1) 13326ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivrp %st(1) 13336ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfaddp 13346ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmulp 13356ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubp 13366ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubrp 13376ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivp 13386ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivrp 13396ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13406ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1) 13416ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1) 13426ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1) 13436ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1) 13446ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1) 13456ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1) 13466ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(1), %st(0) 13476ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(1), %st(0) 13486ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(1), %st(0) 13496ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(1), %st(0) 13506ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(1), %st(0) 13516ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(1), %st(0) 13526ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13536ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(0), %st(1) 13546ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(0), %st(1) 13556ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(0), %st(1) 13566ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(0), %st(1) 13576ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(0), %st(1) 13586ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(0), %st(1) 13596ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(0), %st(1) 13606ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(0), %st(1) 13616ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(0), %st(1) 13626ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(0), %st(1) 13636ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(0), %st(1) 13646ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(0), %st(1) 13656ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper 13666ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fadd %st(1) 13676ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fmul %st(1) 13686ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsub %st(1) 13696ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fsubr %st(1) 13706ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdiv %st(1) 13716ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topper// CHECK: fdivr %st(1) 13726ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfadd %st(1) 13736ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfmul %st(1) 13746ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsub %st(1) 13756ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfsubr %st(1) 13766ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdiv %st(1) 13776ee1464ba599f1afbed502fa1b3ac18c8577fd97Craig Topperfdivr %st(1) 1378b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper 1379b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: movd %xmm0, %eax 1380b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: movd %xmm0, %rax 1381b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: movd %xmm0, %rax 1382b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: vmovd %xmm0, %eax 1383b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: vmovq %xmm0, %rax 1384b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Topper// CHECK: vmovq %xmm0, %rax 1385b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppermovd %xmm0, %eax 1386b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppermovd %xmm0, %rax 1387b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppermovq %xmm0, %rax 1388b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppervmovd %xmm0, %eax 1389b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppervmovd %xmm0, %rax 1390b9bc43852ceb74c845d28b96594e1ef4ae41329fCraig Toppervmovq %xmm0, %rax 139136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 139236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: seto 3735928559(%r10,%r9,8) 139336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines// CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde] 139436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines seto 0xdeadbeef(%r10,%r9,8) 1395