351 lines · plain
1# RUN: llvm-mc -triple x86_64 -disassemble %s | FileCheck %s --check-prefix=ATT2# RUN: llvm-mc -triple x86_64 -disassemble -output-asm-variant=1 %s | FileCheck %s --check-prefix=INTEL3 4## AddRegFrm5 6# ATT: movl $1, %r16d7# INTEL: mov r16d, 180xd5,0x10,0xb8,0x01,0x00,0x00,0x009 10## MRMSrcReg11 12# ATT: movslq %r16d, %rax13# INTEL: movsxd rax, r16d140xd5,0x18,0x63,0xc015 16# ATT: movslq %eax, %r1617# INTEL: movsxd r16, eax180xd5,0x48,0x63,0xc019 20# ATT: movslq %r16d, %r1721# INTEL: movsxd r17, r16d220xd5,0x58,0x63,0xc823 24# ATT-NOT: rep25# ATT: popcntl %r16d, %r17d26# INTEL-NOT: rep27# INTEL: popcnt r17d, r16d280xf3,0xd5,0xd0,0xb8,0xc829 30## MRMSrcRegCC31 32# ATT: cmovll %r16d, %eax33# INTEL: cmovl eax, r16d340xd5,0x90,0x4c,0xc035 36# ATT: cmovll %eax, %r16d37# INTEL: cmovl r16d, eax380xd5,0xc0,0x4c,0xc039 40# ATT: cmovll %r16d, %r17d41# INTEL: cmovl r17d, r16d420xd5,0xd0,0x4c,0xc843 44## MRMSrcMem45 46# ATT: imull (%r16,%rax), %ebx47# INTEL: imul ebx, dword ptr [r16 + rax]480xd5,0x90,0xaf,0x1c,0x0049 50# ATT: imull (%rax,%r16), %ebx51# INTEL: imul ebx, dword ptr [rax + r16]520xd5,0xa0,0xaf,0x1c,0x0053 54# ATT: imull (%rax,%rbx), %r16d55# INTEL: imul r16d, dword ptr [rax + rbx]560xd5,0xc0,0xaf,0x04,0x1857 58# ATT: imull (%r16,%r17), %eax59# INTEL: imul eax, dword ptr [r16 + r17]600xd5,0xb0,0xaf,0x04,0x0861 62# ATT: imull (%rax,%r16), %r17d63# INTEL: imul r17d, dword ptr [rax + r16]640xd5,0xe0,0xaf,0x0c,0x0065 66# ATT: imull (%r16,%rax), %r17d67# INTEL: imul r17d, dword ptr [r16 + rax]680xd5,0xd0,0xaf,0x0c,0x0069 70# ATT: imull (%r16,%r17), %r18d71# INTEL: imul r18d, dword ptr [r16 + r17]720xd5,0xf0,0xaf,0x14,0x0873 74## MRMSrcMemCC75 76# ATT: cmovll (%r16,%rax), %ebx77# INTEL: cmovl ebx, dword ptr [r16 + rax]780xd5,0x90,0x4c,0x1c,0x0079 80# ATT: cmovll (%rax,%r16), %ebx81# INTEL: cmovl ebx, dword ptr [rax + r16]820xd5,0xa0,0x4c,0x1c,0x0083 84# ATT: cmovll (%rax,%rbx), %r16d85# INTEL: cmovl r16d, dword ptr [rax + rbx]860xd5,0xc0,0x4c,0x04,0x1887 88# ATT: cmovll (%r16,%r17), %eax89# INTEL: cmovl eax, dword ptr [r16 + r17]900xd5,0xb0,0x4c,0x04,0x0891 92# ATT: cmovll (%rax,%r16), %r17d93# INTEL: cmovl r17d, dword ptr [rax + r16]940xd5,0xe0,0x4c,0x0c,0x0095 96# ATT: cmovll (%r16,%rax), %r17d97# INTEL: cmovl r17d, dword ptr [r16 + rax]980xd5,0xd0,0x4c,0x0c,0x0099 100# ATT: cmovll (%r16,%r17), %r18d101# INTEL: cmovl r18d, dword ptr [r16 + r17]1020xd5,0xf0,0x4c,0x14,0x08103 104## MRMDestReg105 106# ATT: movl %eax, %r16d107# INTEL: mov r16d, eax1080xd5,0x10,0x89,0xc0109 110# ATT: movl %r16d, %eax111# INTEL: mov eax, r16d1120xd5,0x40,0x89,0xc0113 114# ATT: movl %r16d, %r17d115# INTEL: mov r17d, r16d1160xd5,0x50,0x89,0xc1117 118## MRMDestMem119 120# ATT: movl %ebx, (%r16,%rax)121# INTEL: mov dword ptr [r16 + rax], ebx1220xd5,0x10,0x89,0x1c,0x00123 124# ATT: movl %ebx, (%rax,%r16)125# INTEL: mov dword ptr [rax + r16], ebx1260xd5,0x20,0x89,0x1c,0x00127 128# ATT: movl %r16d, (%rax,%rbx)129# INTEL: mov dword ptr [rax + rbx], r16d1300xd5,0x40,0x89,0x04,0x18131 132# ATT: movl %eax, (%r16,%r17)133# INTEL: mov dword ptr [r16 + r17], eax1340xd5,0x30,0x89,0x04,0x08135 136# ATT: movl %r17d, (%rax,%r16)137# INTEL: mov dword ptr [rax + r16], r17d1380xd5,0x60,0x89,0x0c,0x00139 140# ATT: movl %r17d, (%r16,%rax)141# INTEL: mov dword ptr [r16 + rax], r17d1420xd5,0x50,0x89,0x0c,0x00143 144# ATT: movl %r18d, (%r16,%r17)145# INTEL: mov dword ptr [r16 + r17], r18d1460xd5,0x70,0x89,0x14,0x08147 148# ATT: movb %bpl, (%r16,%r14)149# INTEL: mov byte ptr [r16 + r14], bpl1500xd5,0x12,0x88,0x2c,0x30151 152## MRMXmCC153 154# ATT: sete (%rax,%r16)155# INTEL: sete byte ptr [rax + r16]1560xd5,0xa0,0x94,0x04,0x00157 158# ATT: sete (%r16,%rax)159# INTEL: sete byte ptr [r16 + rax]1600xd5,0x90,0x94,0x04,0x00161 162# ATT: sete (%r16,%r17)163# INTEL: sete byte ptr [r16 + r17]1640xd5,0xb0,0x94,0x04,0x08165 166## MRMXm167 168# ATT: nopl (%rax,%r16)169# INTEL: nop dword ptr [rax + r16]1700xd5,0xa0,0x1f,0x04,0x00171 172# ATT: nopl (%r16,%rax)173# INTEL: nop dword ptr [r16 + rax]1740xd5,0x90,0x1f,0x04,0x00175 176# ATT: nopl (%r16,%r17)177# INTEL: nop dword ptr [r16 + r17]1780xd5,0xb0,0x1f,0x04,0x08179 180## MRM0m181 182# ATT: incl (%rax,%r16)183# INTEL: inc dword ptr [rax + r16]1840xd5,0x20,0xff,0x04,0x00185 186# ATT: incl (%r16,%rax)187# INTEL: inc dword ptr [r16 + rax]1880xd5,0x10,0xff,0x04,0x00189 190# ATT: incl (%r16,%r17)191# INTEL: inc dword ptr [r16 + r17]1920xd5,0x30,0xff,0x04,0x08193 194## MRM1m195 196# ATT: decl (%rax,%r16)197# INTEL: dec dword ptr [rax + r16]1980xd5,0x20,0xff,0x0c,0x00199 200# ATT: decl (%r16,%rax)201# INTEL: dec dword ptr [r16 + rax]2020xd5,0x10,0xff,0x0c,0x00203 204# ATT: decl (%r16,%r17)205# INTEL: dec dword ptr [r16 + r17]2060xd5,0x30,0xff,0x0c,0x08207 208## MRM2m209 210# ATT: notl (%rax,%r16)211# INTEL: not dword ptr [rax + r16]2120xd5,0x20,0xf7,0x14,0x00213 214# ATT: notl (%r16,%rax)215# INTEL: not dword ptr [r16 + rax]2160xd5,0x10,0xf7,0x14,0x00217 218# ATT: notl (%r16,%r17)219# INTEL: not dword ptr [r16 + r17]2200xd5,0x30,0xf7,0x14,0x08221 222## MRM3m223 224# ATT: negl (%rax,%r16)225# INTEL: neg dword ptr [rax + r16]2260xd5,0x20,0xf7,0x1c,0x00227 228# ATT: negl (%r16,%rax)229# INTEL: neg dword ptr [r16 + rax]2300xd5,0x10,0xf7,0x1c,0x00231 232# ATT: negl (%r16,%r17)233# INTEL: neg dword ptr [r16 + r17]2340xd5,0x30,0xf7,0x1c,0x08235 236## MRM4m237 238# ATT: mull (%rax,%r16)239# INTEL: mul dword ptr [rax + r16]2400xd5,0x20,0xf7,0x24,0x00241 242# ATT: mull (%r16,%rax)243# INTEL: mul dword ptr [r16 + rax]2440xd5,0x10,0xf7,0x24,0x00245 246# ATT: mull (%r16,%r17)247# INTEL: mul dword ptr [r16 + r17]2480xd5,0x30,0xf7,0x24,0x08249 250## MRM5m251 252# ATT: imull (%rax,%r16)253# INTEL: imul dword ptr [rax + r16]2540xd5,0x20,0xf7,0x2c,0x00255 256# ATT: imull (%r16,%rax)257# INTEL: imul dword ptr [r16 + rax]2580xd5,0x10,0xf7,0x2c,0x00259 260# ATT: imull (%r16,%r17)261# INTEL: imul dword ptr [r16 + r17]2620xd5,0x30,0xf7,0x2c,0x08263 264## MRM6m265 266# ATT: divl (%rax,%r16)267# INTEL: div dword ptr [rax + r16]2680xd5,0x20,0xf7,0x34,0x00269 270# ATT: divl (%r16,%rax)271# INTEL: div dword ptr [r16 + rax]2720xd5,0x10,0xf7,0x34,0x00273 274# ATT: divl (%r16,%r17)275# INTEL: div dword ptr [r16 + r17]2760xd5,0x30,0xf7,0x34,0x08277 278## MRM7m279 280# ATT: idivl (%rax,%r16)281# INTEL: idiv dword ptr [rax + r16]2820xd5,0x20,0xf7,0x3c,0x00283 284# ATT: idivl (%r16,%rax)285# INTEL: idiv dword ptr [r16 + rax]2860xd5,0x10,0xf7,0x3c,0x00287 288# ATT: idivl (%r16,%r17)289# INTEL: idiv dword ptr [r16 + r17]2900xd5,0x30,0xf7,0x3c,0x08291 292## MRMXrCC293 294# ATT: sete %r16b295# INTEL: sete r16b2960xd5,0x90,0x94,0xc0297 298## MRMXr299 300# ATT: nopl %r16d301# INTEL: nop r16d3020xd5,0x90,0x1f,0xc0303 304## MRM0r305 306# ATT: incl %r16d307# INTEL: inc r16d3080xd5,0x10,0xff,0xc0309 310## MRM1r311 312# ATT: decl %r16d313# INTEL: dec r16d3140xd5,0x10,0xff,0xc8315 316## MRM2r317 318# ATT: notl %r16d319# INTEL: not r16d3200xd5,0x10,0xf7,0xd0321 322## MRM3r323 324# ATT: negl %r16d325# INTEL: neg r16d3260xd5,0x10,0xf7,0xd8327 328## MRM4r329 330# ATT: mull %r16d331# INTEL: mul r16d3320xd5,0x10,0xf7,0xe0333 334## MRM5r335 336# ATT: imull %r16d337# INTEL: imul r16d3380xd5,0x10,0xf7,0xe8339 340## MRM6r341 342# ATT: divl %r16d343# INTEL: div r16d3440xd5,0x10,0xf7,0xf0345 346## MRM7r347 348# ATT: idivl %r16d349# INTEL: idiv r16d3500xd5,0x10,0xf7,0xf8351