x86-64.s revision acc473fcf9860567d4da60625944d48b075d28f8
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 527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// Suffix inference: 727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addl $0, %eax 927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner add $0, %eax 1027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: addb $255, %al 1127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner add $0xFF, %al 1227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: orq %rax, %rdx 1327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner or %rax, %rdx 1427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: shlq $3, %rax 1527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner shl $3, %rax 1627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 1727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 18c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %al 19022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar subb %al, %al 20022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar 21c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: addl $24, %eax 22022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar addl $24, %eax 23022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar 24c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp) 25022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(%ebp) 26c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx) 27022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(%ebp, %ebx) 28c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(%ebp,%ebx,4) 29022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(%ebp, %ebx, 4) 30c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: movl %eax, 10(,%ebx,4) 31022e2a84a867ba73fd0e6b89f61e56396f22620dDaniel Dunbar movl %eax, 10(, %ebx, 4) 32b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar 33b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl 0, %eax 34b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar movl 0, %eax 35b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar// CHECK: movl $0, %eax 36b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar movl $0, %eax 37b834f5d13d824dc4da2ce0df2aa8dffb697b8974Daniel Dunbar 388a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar// CHECK: ret 398a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar ret 408a3ee718cdaa153e29c079548e6755184d5426e4Daniel Dunbar 415fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8 42c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $1, %eax 435fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $1, %eax 445fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 455fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri8 46c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $-1, %eax 475fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $-1, %eax 485fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 495fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar// FIXME: Check that this matches SUB32ri 50c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl $256, %eax 515fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar subl $256, %eax 525fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 5344f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri8 54c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $1, %rax 55ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar xorq $1, %rax 565fe6338ac859707f797bf6db6d043bb5f4d944a1Daniel Dunbar 5744f63f9335bfb487a2e94cbe20d2950bbdef840eDaniel Dunbar// FIXME: Check that this matches XOR64ri32 58c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: xorq $256, %rax 59ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar xorq $256, %rax 60ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 61ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB8rr 62c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subb %al, %bl 63ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subb %al, %bl 64ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 65ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB16rr 66c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subw %ax, %bx 67ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subw %ax, %bx 68ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 69ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar// FIXME: Check that this matches SUB32rr 70c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: subl %eax, %ebx 71ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar subl %eax, %ebx 72ea6408f8cd17b065e414611e01a7133d118429e9Daniel Dunbar 730db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar// FIXME: Check that this matches the correct instruction. 74926f2bb3d8dd6f8b0198aa478828ee02914050f9Daniel Dunbar// CHECK: callq *%rax 750db68f4e3a8be1641dbba72a41baa6ff1b5dd6afDaniel Dunbar call *%rax 761095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar 771095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar// FIXME: Check that this matches the correct instruction. 78c22e0b2443afdedb6d9b225b938ad404d63cdbe6Daniel Dunbar// CHECK: shldl %cl, %eax, %ebx 791095f2ae261d231a63d329b0ebbf6eaf566ff429Daniel Dunbar shldl %cl, %eax, %ebx 80e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar 81e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax 82e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar shll $2, %eax 83e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar 84e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar// CHECK: shll $2, %eax 85e7070e90066acc3460af1d6cac4036a80b0250b8Daniel Dunbar sall $2, %eax 8612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 8712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 8812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: insb 8912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;insb 9012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 9112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 9212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: outsb 9312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;outsb 9412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 9512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 9612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: movsb 9712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;movsb 9812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 99df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner 100df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner// rdar://8470918 101df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovb // CHECK: movsb 102df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovw // CHECK: movsw 103df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovl // CHECK: movsl 104df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattnersmovq // CHECK: movsq 105df967d613704d4e4f01ecce85c1846dfab4d9a1bChris Lattner 10661129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// rdar://8456361 10761129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: rep 10861129252e44067ae112dc856c64c814344b7e7c9Chris Lattner// CHECK: movsl 10961129252e44067ae112dc856c64c814344b7e7c9Chris Lattner rep movsd 11061129252e44067ae112dc856c64c814344b7e7c9Chris Lattner 11112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 11212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lodsb 11312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;lodsb 11412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 11512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 11612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: stosb 11712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby rep;stosb 11812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 11912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repz and repe have the same opcode as rep 12012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 12112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb 12212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repz;cmpsb 12312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 12412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repnz has the same opcode as repne 12512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne 12612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cmpsb 12712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repnz;cmpsb 12812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 12912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// NOTE: repe and repz have the same opcode as rep 13012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: rep 13112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb 13212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repe;scasb 13312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: repne 13512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: scasb 13612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby repne;scasb 13712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 13812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: lock 1399c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: cmpxchgb %al, (%ebx) 14012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby lock;cmpxchgb %al, 0(%ebx) 14112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 14212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: cs 1439c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 14412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby cs;movb 0(%eax), %al 14512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 14612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ss 1479c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 14812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby ss;movb 0(%eax), %al 14912ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: ds 1519c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 15212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby ds;movb 0(%eax), %al 15312ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: es 1559c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 15612ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby es;movb 0(%eax), %al 15712ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 15812ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: fs 1599c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16012ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby fs;movb 0(%eax), %al 16112ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 16212ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby// CHECK: gs 1639c60f534cbdec2ba58b269c4d624ae4d301ef73aDaniel Dunbar// CHECK: movb (%eax), %al 16412ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby gs;movb 0(%eax), %al 16512ce0de4622df7bcc15ba6c8818b98c0b936876aKevin Enderby 166e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(0) 167e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(1) 168e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner// CHECK: fadd %st(7) 169e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattner 170e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(0) 171e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(1) 172e16b0fc3cb607bd0b8240733e2fe829d78df3833Chris Lattnerfadd %st(7) 173c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar 174c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar// CHECK: leal 0, %eax 175c26ae5ab7e2d65b67c97524e66f50ce86445dec7Daniel Dunbar leal 0, %eax 176a7f1354eb5289b340220c9138befff89822119b2Chris Lattner 177a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// rdar://7986634 - Insensitivity on opcodes. 178a7f1354eb5289b340220c9138befff89822119b2Chris Lattner// CHECK: int3 179a7f1354eb5289b340220c9138befff89822119b2Chris LattnerINT3 180a7f1354eb5289b340220c9138befff89822119b2Chris Lattner 181ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar 182ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// Allow scale factor without index register. 183ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK: movaps %xmm3, (%esi) 184ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbar// CHECK-STDERR: warning: scale factor without index register is ignored 185ee9102587e7f6fc95de9fc5731b341eeb9bfc3caDaniel Dunbarmovaps %xmm3, (%esi, 2) 186ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar 187ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbar// CHECK: imull $12, %eax, %eax 188ae528f65ba731e2e080822496ef36db950ffe1c1Daniel Dunbarimul $12, %eax 189fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar 190fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbar// CHECK: imull %ecx, %eax 191fba88d49e3fbb68bb84c295a9639fe94f9a8c6aaDaniel Dunbarimull %ecx, %eax 1929389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner 1939389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner 1949389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// rdar://8208481 1959389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outb %al, $161 1969389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutb %al, $161 1979389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: outw %ax, $128 1989389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattneroutw %ax, $128 1999389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattner// CHECK: inb $161, %al 2009389b60a03890b70872e5ee2f078c4a4a00d123bChris Lattnerinb $161, %al 201d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner 202d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// rdar://8017621 203d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner// CHECK: pushq $1 204d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattnerpush $1 205d68c474ec55a3dd43f9fa8ea4c89e5fae62909abChris Lattner 206c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// rdar://8017530 207c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattner// CHECK: sldtw 4 208c5cebeb3cb44a3fd0aaee956431159757ee47914Chris Lattnersldt 4 209e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner 210e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// rdar://8208499 211e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovnew %bx, %ax 212e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnz %bx, %ax 213e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner// CHECK: cmovneq %rbx, %rax 214e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattnercmovnzq %rbx, %rax 215e9e0fc5eed9e177c3ee7299a34e640973102ac39Chris Lattner 216ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner 217ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// rdar://8407928 218ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inb $127, %al 219ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inw %dx, %ax 220ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outb %al, $127 221ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: outw %ax, %dx 222ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattner// CHECK: inl %dx, %eax 223ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinb $0x7f 224ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinw %dx 225ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutb $0x7f 226ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattneroutw %dx 227ee211d0ed632d6329922ad4c5f7a25d3d66cf551Chris Lattnerinl %dx 228ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 229ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 230ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// PR8114 231ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outb %al, %dx 232ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outw %ax, %dx 233ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner// CHECK: outl %eax, %dx 234ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattner 235ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattnerout %al, (%dx) 236ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattnerout %ax, (%dx) 237ef63c9a9b6f79fef91dc144db9d5f217d2b83a95Chris Lattneroutl %eax, (%dx) 2382d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2392d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2402d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// rdar://8431422 2412d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2422d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fxch %st(1) 2432d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fucom %st(1) 2442d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fucomp %st(1) 2452d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp %st(1) 2462d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: faddp %st(0) 2472d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fsubp %st(1) 2482d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fsubrp %st(1) 2492d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fmulp %st(1) 2502d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fdivp %st(1) 2512d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner// CHECK: fdivrp %st(1) 2522d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattner 2532d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfxch 2542d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucom 2552d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfucomp 2562d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp 2572d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfaddp %st 2582d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubp 2592d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfsubrp 2602d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfmulp 2612d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivp 2622d592d10a57887ebe7c43a5e610f4278dd6c5d20Chris Lattnerfdivrp 2638f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 2648f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner// CHECK: fcomi %st(1), %st(0) 2658f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner// CHECK: fcomi %st(2), %st(0) 2668f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner// CHECK: fucomi %st(1), %st(0) 2678f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner// CHECK: fucomi %st(2), %st(0) 2688f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner// CHECK: fucomi %st(2), %st(0) 2698f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 2708f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi 2718f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfcomi %st(2) 2728f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi 2738f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2) 2748f777a205e4523b773ba3af3bad007d93da56a9aChris Lattnerfucomi %st(2), %st 2758f777a205e4523b773ba3af3bad007d93da56a9aChris Lattner 27684f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax 27784f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax 27884f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax 27984f362d8912657bb21250a65331f797d5381e9a3Chris Lattner// CHECK: fnstsw %ax 28084f362d8912657bb21250a65331f797d5381e9a3Chris Lattner 28184f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw 28284f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %ax 28384f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %eax 28484f362d8912657bb21250a65331f797d5381e9a3Chris Lattnerfnstsw %al 285e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner 286e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// rdar://8431880 287e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// CHECK: rclb $1, %bl 288e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// CHECK: rcll $1, 3735928559(%ebx,%ecx,8) 289e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// CHECK: rcrl $1, %ecx 290e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner// CHECK: rcrl $1, 305419896 291e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattner 292e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcl %bl 293e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcll 0xdeadbeef(%ebx,%ecx,8) 294e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcr %ecx 295e9e16a36d9ff355dab60e4b95673bf7a0cd27e86Chris Lattnerrcrl 0x12345678 296cfad564043021c7276ce19725f43bcde233fa549Chris Lattner 297cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// rdar://8418316 298cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw $1, %bx, %bx 299cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shldw $1, %bx, %bx 300cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw $1, %bx, %bx 301cfad564043021c7276ce19725f43bcde233fa549Chris Lattner// CHECK: shrdw $1, %bx, %bx 302cfad564043021c7276ce19725f43bcde233fa549Chris Lattner 303cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld %bx,%bx 304cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershld $1, %bx,%bx 305cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd %bx,%bx 306cfad564043021c7276ce19725f43bcde233fa549Chris Lattnershrd $1, %bx,%bx 3076c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3086c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtl %ecx 3096c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x0f,0x00,0xc1] 3106c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: sldtw %cx 3116c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner// CHECK: encoding: [0x66,0x0f,0x00,0xc1] 3126c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 3136c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %ecx 3146c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattnersldt %cx 3156c1b3b1e32f960f44e47d8484510f5c5f8e5343fChris Lattner 316250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: lcalll *3135175374 317250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner// CHECK: ljmpl *3135175374 318250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerlcall *0xbadeface 319250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattnerljmp *0xbadeface 320250b948f21b2910c5bc61fb364c6817727a3a972Chris Lattner 32140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 32240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// rdar://8444631 32340cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $0 32440cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x00] 32540cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $1 32640cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x01] 32740cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: enter $31438, $127 32840cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner// CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 32940cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0 33040cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$1 33140cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattnerenter $0x7ace,$0x7f 33240cc3f8783a4e426a0d439bb2b070b5c072b5947Chris Lattner 3330c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner 3340c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner// rdar://8456389 3350c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner// CHECK: fstps (%eax) 3368a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0xd9,0x18] 3370c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattnerfstp (%eax) 3380c289c140ee7a68e3d06b9d8ae6060758345ad4eChris Lattner 33933d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// rdar://8456364 34033d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattner// CHECK: movw %cs, %ax 34133d60d5e56bbf3e9ed02bc916735419091736ca3Chris Lattnermov %CS, %ax 342c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 343c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner// rdar://8456391 344c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 345c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) 346c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 347c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) 348c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 349c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 350c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) 351c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 352c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) 353c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 354c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 355c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 356c2b942acf6008ac822c21722ac7ec84264d10befChris Lattner 357c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 358c2b942acf6008ac822c21722ac7ec84264d10befChris Lattnerfcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 359f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 360f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner// rdar://8456417 361f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner.byte 88 + 1 & 15 // CHECK: .byte 9 362f7d4da0c1dcdac3941fe440982bce19706541629Chris Lattner 363bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// rdar://8456412 364bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr0 365bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr0 366bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xc2] 367bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr4 368bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr4 369bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x0f,0x22,0xe2] 370bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr8 371bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr8 372bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xc2] 373bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattnermov %rdx, %cr15 374bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: movq %rdx, %cr15 375bc57c6db4a3a1f5df4450d8dbb100e1eb6944c28Chris Lattner// CHECK: encoding: [0x44,0x0f,0x22,0xfa] 3762c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 3772c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// rdar://8456371 - Handle commutable instructions written backward. 3782c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: faddp %st(1) 3792c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner// CHECK: fmulp %st(2) 3802c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfaddp %st, %st(1) 3812c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattnerfmulp %st, %st(2) 3822c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 383cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// rdar://8468087 - Encode these accurately, they are not synonyms. 384cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(0), %st(1) 385cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc9] 386cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fmul %st(1) 387cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc9] 388cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st, %st(1) 389cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfmul %st(1), %st 390cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 391cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(0), %st(1) 392cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xdc,0xc1] 393cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: fadd %st(1) 394cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner// CHECK: encoding: [0xd8,0xc1] 395cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st, %st(1) 396cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattnerfadd %st(1), %st 397cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 398cb296ec0b689ccbcb08cedc5d3e090c0471eb393Chris Lattner 399fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// rdar://8416805 400fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorb %al, %al 401fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x30,0xc0] 402fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorw %di, %di 403fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x66,0x31,0xff] 404fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorl %esi, %esi 405fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x31,0xf6] 406fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: xorq %rsi, %rsi 407fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner// CHECK: encoding: [0x48,0x31,0xf6] 408fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclrb %al 409fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %di 410fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %esi 411fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattnerclr %rsi 412fd8fddd830ad8322d04161f2f6bad6269a451ab2Chris Lattner 413b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattner// rdar://8456378 414b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercltq // CHECK: cltq 415b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercdqe // CHECK: cltq 416b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwde // CHECK: cwtl 417b1162fc05e09c7247be1896fd4aa4ca7e76c938cChris Lattnercwtl // CHECK: cwtl 4182c5291b56358bf239bdfc675ed681c2da3eb4901Chris Lattner 419295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattner// rdar://8416805 420295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercbw // CHECK: cbtw 421295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercwd // CHECK: cwtd 422295646274276c6814d970bed86d3b4ff76ba3ee3Chris Lattnercdq // CHECK: cltd 4237c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner 4247c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// rdar://8456378 and PR7557 - fstsw 4257c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw %ax 4267c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 4277c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: fnstsw %ax 4287c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattnerfstsw (%rax) 4297c51a3172cf5104ebeaef22f1366fa634ca00d85Chris Lattner// CHECK: wait 4300966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstsw (%rax) 4310c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 4320bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// PR8259 4330bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattnerfstcw (%rsp) 4340bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner// CHECK: wait 4350966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 4360bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 4379ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8259 4389ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfstcw (%rsp) 4399ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 4400966ec08610c02c8556105f2fff88a7e7247a549Andrew Trick// CHECK: fnstcw (%rsp) 4419ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 4429ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// PR8258 4439ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattnerfinit 4449ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: wait 4459ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner// CHECK: fninit 4469ee4aed3b652ea4a4327af2cb1c614dd10cd8b47Chris Lattner 447905f2e06691672c236ae864faf0ad7220afc2844Chris Lattnerfsave 32493 448905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: wait 449905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner// CHECK: fnsave 32493 450905f2e06691672c236ae864faf0ad7220afc2844Chris Lattner 4510c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 4520c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// rdar://8456382 - cvtsd2si support. 4530c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %rax 454f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2siq %xmm1, %rax 4550c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 4560c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattnercvtsd2si %xmm1, %eax 457f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner// CHECK: cvtsd2sil %xmm1, %eax 4580c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 4590c04e4f58f8d1ad4604de17324170fa1f4e43418Chris Lattner 460f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax 461f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil %xmm0, %eax 462f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattnercvtsd2si %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax 463f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 464f3654db4588884edbf52f139a2f713e45a8ed9b4Chris Lattner 465bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 466bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 467bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattner 468bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 469bf6018ac5a4ce8db0f0719aa666cd81f0904431aChris Lattnercvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 470b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner 471b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattner// rdar://8456376 - llvm-mc rejects 'roundss' 472b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 473b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 474b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 475b2ef4c1235c846c2503d0796541f4255ef1e13f5Chris Lattnerroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 4768a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 4778a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 4788a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 4798a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleal 8(%eax), %esi 4808a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leal 8(%eax), %esi 4818a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x8d,0x70,0x08] 4828a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%eax), %rsi 4838a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%eax), %rsi 4848a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 4858a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattnerleaq 8(%rax), %rsi 4868a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: leaq 8(%rax), %rsi 4878a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner// CHECK: encoding: [0x48,0x8d,0x70,0x08] 4888a5072903e2037da1cfdaffa5a26be00f3d76a22Chris Lattner 48978a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 49078a194693bb9bbfa1080454cded0166265b803e5Chris Lattnercvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 49178a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 49278a194693bb9bbfa1080454cded0166265b803e5Chris Lattner// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 49378a194693bb9bbfa1080454cded0166265b803e5Chris Lattner 4946f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// rdar://8490728 - llvm-mc rejects 'movmskpd' 4956f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %rax 4966f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd %xmm6, %rax 4976f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6] 4986f4202726339815c7167ef2f00858c766c9ffea9Chris Lattnermovmskpd %xmm6, %eax 4996f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: movmskpd %xmm6, %eax 5006f4202726339815c7167ef2f00858c766c9ffea9Chris Lattner// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 501a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 502a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner// rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 503a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] 504a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] 505a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 506a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9] 507a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattnerfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9] 508a25f933396b8408ad89218bc60b0a93f130a3ea9Chris Lattner 5090bb83a84d4319030c0c9260dbfea461c40eea1b2Chris Lattner 510ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl foo(%rip), %eax 511ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl foo(%rip), %eax 512ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x8b,0x05,A,A,A,A] 513ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 514ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 515ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb $12, foo(%rip) 516ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movb $12, foo(%rip) 517ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 518ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 519ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 520ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw $12, foo(%rip) 521ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movw $12, foo(%rip) 522ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 523ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 524ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 525ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl $12, foo(%rip) 526ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movl $12, foo(%rip) 527ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 528ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 529ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 530ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq $12, foo(%rip) 531ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $12, foo(%rip) 532ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 533ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 534ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 535ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: addq $-424, %rax 536ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 537ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneraddq $-424, %rax 538ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 539ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 540ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %rax 541ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 542ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 543ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %rax 544ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 545ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq _foo@GOTPCREL(%rip), %r14 546ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 547ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 548ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq _foo@GOTPCREL(%rip), %r14 549ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 550ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 551ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq (%r13,%rax,8), %r13 552ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 553ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovq 0x00(%r13,%rax,8),%r13 554ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 555ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: testq %rax, %rbx 556ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x85,0xd8] 557ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnertestq %rax, %rbx 558ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 559ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: cmpq %rbx, %r14 560ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x49,0x39,0xde] 561ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner cmpq %rbx, %r14 562ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 563ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7947167 564ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 565ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsq 566ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsq 567ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xa5] 568ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 569ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovsl 570ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsl 571ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 572ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 573ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosq 574ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosq 575ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xab] 576ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerstosl 577ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: stosl 578ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xab] 579ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 580ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 581ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// Not moffset forms of moves, they are x86-32 only! rdar://7947184 582ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 583ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 584ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnermovl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 585ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 586ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 587ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushf 588ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushfq # encoding: [0x9c] 589ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner pushfq 590ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 591ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popf 592ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popfq # encoding: [0x9d] 593ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner popfq 594ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 595ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movabsq $-281474976710654, %rax 596ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 597ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movabsq $0xFFFF000000000002, %rax 598ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 599508fc4708bb859391af8969614e67c84ab56c38cChris Lattner// CHECK: movabsq $-281474976710654, %rax 600ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 601ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFF000000000002, %rax 602ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 603ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-65536, %rax 604ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 605ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFF0000, %rax 606ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 607ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $-256, %rax 608ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 609ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $0xFFFFFFFFFFFFFF00, %rax 610ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 611ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movq $10, %rax 612ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 613ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movq $10, %rax 614ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 615ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8014869 616ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// 617ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: ret 618ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xc3] 619ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner retq 620ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 621ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sete %al 622ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x94,0xc0] 623ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setz %al 624ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 625ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: setne %al 626ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x95,0xc0] 627ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner setnz %al 628ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 629ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: je 0 630ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x74,A] 631ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jz 0 632ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 633ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jne 634ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x75,A] 635ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jnz 0 636ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 637ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8017515 638ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerbtq $0x01,%rdx 639ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $1, %rdx 640ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 641ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 642ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner//rdar://8017633 643ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movzbl %al, %esi 644ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xf0] 645ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %esi 646ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 647ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movzbq %al, %rsi 648ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 649ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movzx %al, %rsi 650ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 651b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbw %al, %ax 652b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 653b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %al, %ax 654b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 655b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbl %al, %eax 656b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbe,0xc0] 657b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %al, %eax 658b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 659b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movswl %ax, %eax 660b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xbf,0xc0] 661b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %ax, %eax 662b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 663b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movsbq %bl, %rax 664b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 665b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %bl, %rax 666b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 667b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movswq %cx, %rax 668b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 669b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %cx, %rax 670b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 671b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movslq %edi, %rax 672b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x63,0xc7] 673b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovsx %edi, %rax 674b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 675b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbw %al, %ax 676b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 677b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %al, %ax 678b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 679b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbl %al, %eax 680b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb6,0xc0] 681b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %al, %eax 682b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 683b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzwl %ax, %eax 684b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x0f,0xb7,0xc0] 685b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %ax, %eax 686b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 687b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzbq %bl, %rax 688b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 689b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %bl, %rax 690b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 691b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: movzwq %cx, %rax 692b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner// CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 693b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattnermovzx %cx, %rax 694b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 695acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movsbw (%rax), %ax 696acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xbe,0x00] 697acc473fcf9860567d4da60625944d48b075d28f8Chris Lattnermovsx (%rax), %ax 698b501d4f673c0db267a76800339f9943f2ce6fe33Chris Lattner 699acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: movzbw (%rax), %ax 700acc473fcf9860567d4da60625944d48b075d28f8Chris Lattner// CHECK: encoding: [0x66,0x0f,0xb6,0x00] 701acc473fcf9860567d4da60625944d48b075d28f8Chris Lattnermovzx (%rax), %ax 702ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 703ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 704ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://7873482 705ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 706ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner movl %gs:124, %eax 707ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 708ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jmpq *8(%rax) 709ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xff,0x60,0x08] 710ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jmp *8(%rax) 711ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 712ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: btq $61, -216(%rbp) 713ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 714ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner btq $61, -216(%rbp) 715ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 716ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 717ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8061602 718ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris LattnerL1: 719ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jecxz L1 720ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jecxz L1 721ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x67,0xe3,A] 722ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner jrcxz L1 723ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: jrcxz L1 724ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xe3,A] 725ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 726ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR8061 727ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl 368(%rax),%ecx 728ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 729ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchgl %ecx, 368(%rax) 730ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgl %ecx, 368(%rax) 731ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 732ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407548 733ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerxchg 0xdeadbeef(%rbx,%rcx,8),%bl 734ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 735ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 736ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 737ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 738ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// PR7254 739ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerlock incl 1(%rsp) 740ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: lock 741ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: incl 1(%rsp) 742ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 743ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8033482 744ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerrep movsl 745ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: rep 746ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xf3] 747ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: movsl 748ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xa5] 749ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 750ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 751ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403974 752ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriret 753ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 754ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 755ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretw 756ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretw 757ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0xcf] 758ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretl 759ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretl 760ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xcf] 761ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattneriretq 762ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: iretq 763ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0xcf] 764ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 7657aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// rdar://8416805 7667aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: retw $31438 7677aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 7687aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby retw $0x7ace 7697aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 7707aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: lretw $31438 7717aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby// CHECK: encoding: [0x66,0xca,0xce,0x7a] 7727aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby lretw $0x7ace 7737aef62ff8c72506cc9b77333d25f4aa8aa9cf9feKevin Enderby 774ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8403907 775ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysret 776ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 777ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 778ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretl 779ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretl 780ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0x07] 781ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnersysretq 782ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: sysretq 783ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x48,0x0f,0x07] 784ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 785ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8407242 786ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %fs 787ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %fs 788ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa0] 789ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpush %gs 790ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushq %gs 791ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa8] 792ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 793ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %fs 794ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %fs 795ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa0] 796ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpushw %gs 797ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: pushw %gs 798ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa8] 799ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 800ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 801ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %fs 802ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %fs 803ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa1] 804ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpop %gs 805ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popq %gs 806ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x0f,0xa9] 807ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 808ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %fs 809ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %fs 810ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa1] 811ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerpopw %gs 812ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: popw %gs 813ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0x66,0x0f,0xa9] 814ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 815ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// rdar://8438816 816ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildq -8(%rsp) 817ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattnerfildll -8(%rsp) 818ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 819ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 820ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: fildll -8(%rsp) 821ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 822ebfa86b4349bb38732f0b927ed2589b176e69cb5Chris Lattner 82327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: callq a 82427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner callq a 82527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 82627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: leaq -40(%rbp), %r15 82727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner leaq -40(%rbp), %r15 82827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 82927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 83027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 83127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// rdar://8013734 - Alias dr6=db6 83227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %dr6, %rax 83327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnermov %db6, %rax 83427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 83527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// CHECK: movq %dr6, %rax 83627c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 83727c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 83827c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner// INC/DEC encodings. 83927c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 84027c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 84127c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerincl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 84227c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 84327c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 84427c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattnerdecl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 84527c5215fbd59c2e8262dd14d63ada96ce3cfd351Chris Lattner 84687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// rdar://8416805 84787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt 4(%rax) 84887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 84987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdt 4(%rax) 85087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 85187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lgdt 4(%rax) 85287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x50,0x04] 85387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lgdtq 4(%rax) 85487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 85587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt 4(%rax) 85687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 85787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidt 4(%rax) 85887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 85987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: lidt 4(%rax) 86087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x58,0x04] 86187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby lidtq 4(%rax) 86287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 86387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt 4(%rax) 86487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 86587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdt 4(%rax) 86687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 86787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sgdt 4(%rax) 86887f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x40,0x04] 86987f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sgdtq 4(%rax) 87087f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 87187f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt 4(%rax) 87287f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 87387f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidt 4(%rax) 87487f4a1a4331e40cbba28e829561759d146273840Kevin Enderby 87587f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: sidt 4(%rax) 87687f4a1a4331e40cbba28e829561759d146273840Kevin Enderby// CHECK: encoding: [0x0f,0x01,0x48,0x04] 87787f4a1a4331e40cbba28e829561759d146273840Kevin Enderby sidtq 4(%rax) 878