1 // RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err 2 // RUN: FileCheck < %t %s 3 // RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s 4 5 monitor 6 // CHECK: monitor 7 // CHECK: encoding: [0x0f,0x01,0xc8] 8 monitor %rax, %rcx, %rdx 9 // CHECK: monitor 10 // CHECK: encoding: [0x0f,0x01,0xc8] 11 mwait 12 // CHECK: mwait 13 // CHECK: encoding: [0x0f,0x01,0xc9] 14 mwait %rax, %rcx 15 // CHECK: mwait 16 // CHECK: encoding: [0x0f,0x01,0xc9] 17 18 // Suffix inference: 19 20 // CHECK: addl $0, %eax 21 add $0, %eax 22 // CHECK: addb $255, %al 23 add $0xFF, %al 24 // CHECK: orq %rax, %rdx 25 or %rax, %rdx 26 // CHECK: shlq $3, %rax 27 shl $3, %rax 28 29 30 // CHECK: subb %al, %al 31 subb %al, %al 32 33 // CHECK: addl $24, %eax 34 addl $24, %eax 35 36 // CHECK: movl %eax, 10(%ebp) 37 movl %eax, 10(%ebp) 38 // CHECK: movl %eax, 10(%ebp,%ebx) 39 movl %eax, 10(%ebp, %ebx) 40 // CHECK: movl %eax, 10(%ebp,%ebx,4) 41 movl %eax, 10(%ebp, %ebx, 4) 42 // CHECK: movl %eax, 10(,%ebx,4) 43 movl %eax, 10(, %ebx, 4) 44 45 // CHECK: movl 0, %eax 46 movl 0, %eax 47 // CHECK: movl $0, %eax 48 movl $0, %eax 49 50 // CHECK: ret 51 ret 52 53 // CHECK: retw 54 retw 55 56 // FIXME: Check that this matches SUB32ri8 57 // CHECK: subl $1, %eax 58 subl $1, %eax 59 60 // FIXME: Check that this matches SUB32ri8 61 // CHECK: subl $-1, %eax 62 subl $-1, %eax 63 64 // FIXME: Check that this matches SUB32ri 65 // CHECK: subl $256, %eax 66 subl $256, %eax 67 68 // FIXME: Check that this matches XOR64ri8 69 // CHECK: xorq $1, %rax 70 xorq $1, %rax 71 72 // FIXME: Check that this matches XOR64ri32 73 // CHECK: xorq $256, %rax 74 xorq $256, %rax 75 76 // FIXME: Check that this matches SUB8rr 77 // CHECK: subb %al, %bl 78 subb %al, %bl 79 80 // FIXME: Check that this matches SUB16rr 81 // CHECK: subw %ax, %bx 82 subw %ax, %bx 83 84 // FIXME: Check that this matches SUB32rr 85 // CHECK: subl %eax, %ebx 86 subl %eax, %ebx 87 88 // FIXME: Check that this matches the correct instruction. 89 // CHECK: callq *%rax 90 call *%rax 91 92 // FIXME: Check that this matches the correct instruction. 93 // CHECK: shldl %cl, %eax, %ebx 94 shldl %cl, %eax, %ebx 95 96 // CHECK: shll $2, %eax 97 shll $2, %eax 98 99 // CHECK: shll $2, %eax 100 sall $2, %eax 101 102 // CHECK: rep 103 // CHECK: insb 104 rep;insb 105 106 // CHECK: rep 107 // CHECK: outsb 108 rep;outsb 109 110 // CHECK: rep 111 // CHECK: movsb 112 rep;movsb 113 114 115 // rdar://8470918 116 smovb // CHECK: movsb 117 smovw // CHECK: movsw 118 smovl // CHECK: movsl 119 smovq // CHECK: movsq 120 121 // rdar://8456361 122 // CHECK: rep 123 // CHECK: movsl 124 rep movsd 125 126 // CHECK: rep 127 // CHECK: lodsb 128 rep;lodsb 129 130 // CHECK: rep 131 // CHECK: stosb 132 rep;stosb 133 134 // NOTE: repz and repe have the same opcode as rep 135 // CHECK: rep 136 // CHECK: cmpsb 137 repz;cmpsb 138 139 // NOTE: repnz has the same opcode as repne 140 // CHECK: repne 141 // CHECK: cmpsb 142 repnz;cmpsb 143 144 // NOTE: repe and repz have the same opcode as rep 145 // CHECK: rep 146 // CHECK: scasb 147 repe;scasb 148 149 // CHECK: repne 150 // CHECK: scasb 151 repne;scasb 152 153 // CHECK: lock 154 // CHECK: cmpxchgb %al, (%ebx) 155 lock;cmpxchgb %al, 0(%ebx) 156 157 // CHECK: cs 158 // CHECK: movb (%eax), %al 159 cs;movb 0(%eax), %al 160 161 // CHECK: ss 162 // CHECK: movb (%eax), %al 163 ss;movb 0(%eax), %al 164 165 // CHECK: ds 166 // CHECK: movb (%eax), %al 167 ds;movb 0(%eax), %al 168 169 // CHECK: es 170 // CHECK: movb (%eax), %al 171 es;movb 0(%eax), %al 172 173 // CHECK: fs 174 // CHECK: movb (%eax), %al 175 fs;movb 0(%eax), %al 176 177 // CHECK: gs 178 // CHECK: movb (%eax), %al 179 gs;movb 0(%eax), %al 180 181 // CHECK: fadd %st(0) 182 // CHECK: fadd %st(1) 183 // CHECK: fadd %st(7) 184 185 fadd %st(0) 186 fadd %st(1) 187 fadd %st(7) 188 189 // CHECK: leal 0, %eax 190 leal 0, %eax 191 192 // rdar://7986634 - Insensitivity on opcodes. 193 // CHECK: int3 194 INT3 195 196 // rdar://8735979 - int $3 -> int3 197 // CHECK: int3 198 int $3 199 200 201 // Allow scale factor without index register. 202 // CHECK: movaps %xmm3, (%esi) 203 // CHECK-STDERR: warning: scale factor without index register is ignored 204 movaps %xmm3, (%esi, 2) 205 206 // CHECK: imull $12, %eax 207 imul $12, %eax 208 209 // CHECK: imull %ecx, %eax 210 imull %ecx, %eax 211 212 213 // rdar://8208481 214 // CHECK: outb %al, $161 215 outb %al, $161 216 // CHECK: outw %ax, $128 217 outw %ax, $128 218 // CHECK: inb $161, %al 219 inb $161, %al 220 221 // rdar://8017621 222 // CHECK: pushq $1 223 push $1 224 225 // rdar://9716860 226 pushq $1 227 // CHECK: encoding: [0x6a,0x01] 228 pushq $1111111 229 // CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00] 230 231 // rdar://8017530 232 // CHECK: sldtw 4 233 sldt 4 234 235 // rdar://8208499 236 // CHECK: cmovnew %bx, %ax 237 cmovnz %bx, %ax 238 // CHECK: cmovneq %rbx, %rax 239 cmovnzq %rbx, %rax 240 241 242 // rdar://8407928 243 // CHECK: inb $127, %al 244 // CHECK: inw %dx, %ax 245 // CHECK: outb %al, $127 246 // CHECK: outw %ax, %dx 247 // CHECK: inl %dx, %eax 248 inb $0x7f 249 inw %dx 250 outb $0x7f 251 outw %dx 252 inl %dx 253 254 255 // PR8114 256 // CHECK: outb %al, %dx 257 // CHECK: outb %al, %dx 258 // CHECK: outw %ax, %dx 259 // CHECK: outw %ax, %dx 260 // CHECK: outl %eax, %dx 261 // CHECK: outl %eax, %dx 262 263 out %al, (%dx) 264 outb %al, (%dx) 265 out %ax, (%dx) 266 outw %ax, (%dx) 267 out %eax, (%dx) 268 outl %eax, (%dx) 269 270 // CHECK: inb %dx, %al 271 // CHECK: inb %dx, %al 272 // CHECK: inw %dx, %ax 273 // CHECK: inw %dx, %ax 274 // CHECK: inl %dx, %eax 275 // CHECK: inl %dx, %eax 276 277 in (%dx), %al 278 inb (%dx), %al 279 in (%dx), %ax 280 inw (%dx), %ax 281 in (%dx), %eax 282 inl (%dx), %eax 283 284 // rdar://8431422 285 286 // CHECK: fxch %st(1) 287 // CHECK: fucom %st(1) 288 // CHECK: fucomp %st(1) 289 // CHECK: faddp %st(1) 290 // CHECK: faddp %st(0) 291 // CHECK: fsubp %st(1) 292 // CHECK: fsubrp %st(1) 293 // CHECK: fmulp %st(1) 294 // CHECK: fdivp %st(1) 295 // CHECK: fdivrp %st(1) 296 297 fxch 298 fucom 299 fucomp 300 faddp 301 faddp %st 302 fsubp 303 fsubrp 304 fmulp 305 fdivp 306 fdivrp 307 308 // CHECK: fcomi %st(1) 309 // CHECK: fcomi %st(2) 310 // CHECK: fucomi %st(1) 311 // CHECK: fucomi %st(2) 312 // CHECK: fucomi %st(2) 313 314 fcomi 315 fcomi %st(2) 316 fucomi 317 fucomi %st(2) 318 fucomi %st(2), %st 319 320 // CHECK: fnstsw %ax 321 // CHECK: fnstsw %ax 322 // CHECK: fnstsw %ax 323 // CHECK: fnstsw %ax 324 325 fnstsw 326 fnstsw %ax 327 fnstsw %eax 328 fnstsw %al 329 330 // rdar://8431880 331 // CHECK: rclb %bl 332 // CHECK: rcll 3735928559(%ebx,%ecx,8) 333 // CHECK: rcrl %ecx 334 // CHECK: rcrl 305419896 335 rcl %bl 336 rcll 0xdeadbeef(%ebx,%ecx,8) 337 rcr %ecx 338 rcrl 0x12345678 339 340 rclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 341 rclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 342 rclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02] 343 344 // rdar://8418316 345 // PR12173 346 // CHECK: shldw %cl, %bx, %dx 347 // CHECK: shldw %cl, %bx, %dx 348 // CHECK: shldw $1, %bx, %dx 349 // CHECK: shldw %cl, %bx, (%rax) 350 // CHECK: shldw %cl, %bx, (%rax) 351 // CHECK: shrdw %cl, %bx, %dx 352 // CHECK: shrdw %cl, %bx, %dx 353 // CHECK: shrdw $1, %bx, %dx 354 // CHECK: shrdw %cl, %bx, (%rax) 355 // CHECK: shrdw %cl, %bx, (%rax) 356 357 shld %bx, %dx 358 shld %cl, %bx, %dx 359 shld $1, %bx, %dx 360 shld %bx, (%rax) 361 shld %cl, %bx, (%rax) 362 shrd %bx, %dx 363 shrd %cl, %bx, %dx 364 shrd $1, %bx, %dx 365 shrd %bx, (%rax) 366 shrd %cl, %bx, (%rax) 367 368 // CHECK: sldtl %ecx 369 // CHECK: encoding: [0x0f,0x00,0xc1] 370 // CHECK: sldtw %cx 371 // CHECK: encoding: [0x66,0x0f,0x00,0xc1] 372 373 sldt %ecx 374 sldt %cx 375 376 // CHECK: lcalll *3135175374 377 // CHECK: ljmpl *3135175374 378 lcall *0xbadeface 379 ljmp *0xbadeface 380 381 382 // rdar://8444631 383 // CHECK: enter $31438, $0 384 // CHECK: encoding: [0xc8,0xce,0x7a,0x00] 385 // CHECK: enter $31438, $1 386 // CHECK: encoding: [0xc8,0xce,0x7a,0x01] 387 // CHECK: enter $31438, $127 388 // CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 389 enter $0x7ace,$0 390 enter $0x7ace,$1 391 enter $0x7ace,$0x7f 392 393 394 // rdar://8456364 395 // CHECK: movw %cs, %ax 396 mov %CS, %ax 397 398 // rdar://8456391 399 fcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 400 fcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) 401 fcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 402 fcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) 403 404 fcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 405 fcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) 406 fcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 407 fcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) 408 409 fcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 410 fcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 411 412 fcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 413 fcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 414 415 // rdar://8456417 416 .byte (88 + 1) & 15 // CHECK: .byte 9 417 418 // rdar://8456412 419 mov %rdx, %cr0 420 // CHECK: movq %rdx, %cr0 421 // CHECK: encoding: [0x0f,0x22,0xc2] 422 mov %rdx, %cr4 423 // CHECK: movq %rdx, %cr4 424 // CHECK: encoding: [0x0f,0x22,0xe2] 425 mov %rdx, %cr8 426 // CHECK: movq %rdx, %cr8 427 // CHECK: encoding: [0x44,0x0f,0x22,0xc2] 428 mov %rdx, %cr15 429 // CHECK: movq %rdx, %cr15 430 // CHECK: encoding: [0x44,0x0f,0x22,0xfa] 431 432 // rdar://8456371 - Handle commutable instructions written backward. 433 // CHECK: faddp %st(1) 434 // CHECK: fmulp %st(2) 435 faddp %st, %st(1) 436 fmulp %st, %st(2) 437 438 // rdar://8468087 - Encode these accurately, they are not synonyms. 439 // CHECK: fmul %st(0), %st(1) 440 // CHECK: encoding: [0xdc,0xc9] 441 // CHECK: fmul %st(1) 442 // CHECK: encoding: [0xd8,0xc9] 443 fmul %st, %st(1) 444 fmul %st(1), %st 445 446 // CHECK: fadd %st(0), %st(1) 447 // CHECK: encoding: [0xdc,0xc1] 448 // CHECK: fadd %st(1) 449 // CHECK: encoding: [0xd8,0xc1] 450 fadd %st, %st(1) 451 fadd %st(1), %st 452 453 454 // rdar://8416805 455 // CHECK: xorb %al, %al 456 // CHECK: encoding: [0x30,0xc0] 457 // CHECK: xorw %di, %di 458 // CHECK: encoding: [0x66,0x31,0xff] 459 // CHECK: xorl %esi, %esi 460 // CHECK: encoding: [0x31,0xf6] 461 // CHECK: xorq %rsi, %rsi 462 // CHECK: encoding: [0x48,0x31,0xf6] 463 clrb %al 464 clr %di 465 clr %esi 466 clr %rsi 467 468 // rdar://8456378 469 cltq // CHECK: cltq 470 cdqe // CHECK: cltq 471 cwde // CHECK: cwtl 472 cwtl // CHECK: cwtl 473 474 // rdar://8416805 475 cbw // CHECK: cbtw 476 cwd // CHECK: cwtd 477 cdq // CHECK: cltd 478 cqo // CHECK: cqto 479 480 // rdar://8456378 and PR7557 - fstsw 481 fstsw %ax 482 // CHECK: wait 483 // CHECK: fnstsw 484 fstsw (%rax) 485 // CHECK: wait 486 // CHECK: fnstsw (%rax) 487 488 // PR8259 489 fstcw (%rsp) 490 // CHECK: wait 491 // CHECK: fnstcw (%rsp) 492 493 // PR8259 494 fstcw (%rsp) 495 // CHECK: wait 496 // CHECK: fnstcw (%rsp) 497 498 // PR8258 499 finit 500 // CHECK: wait 501 // CHECK: fninit 502 503 fsave 32493 504 // CHECK: wait 505 // CHECK: fnsave 32493 506 507 508 // rdar://8456382 - cvtsd2si support. 509 cvtsd2si %xmm1, %rax 510 // CHECK: cvtsd2si %xmm1, %rax 511 // CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 512 cvtsd2si %xmm1, %eax 513 // CHECK: cvtsd2si %xmm1, %eax 514 // CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 515 516 cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 517 cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si %xmm0, %eax 518 cvtsd2si %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 519 520 521 cvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 522 cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 523 524 cvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 525 cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 526 527 // rdar://8456376 - llvm-mc rejects 'roundss' 528 roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 529 roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 530 roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 531 roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 532 533 534 // rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 535 leal 8(%eax), %esi 536 // CHECK: leal 8(%eax), %esi 537 // CHECK: encoding: [0x67,0x8d,0x70,0x08] 538 leaq 8(%eax), %rsi 539 // CHECK: leaq 8(%eax), %rsi 540 // CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 541 leaq 8(%rax), %rsi 542 // CHECK: leaq 8(%rax), %rsi 543 // CHECK: encoding: [0x48,0x8d,0x70,0x08] 544 545 546 cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 547 // CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 548 // CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 549 550 // rdar://8490728 - llvm-mc rejects 'movmskpd' 551 movmskpd %xmm6, %rax 552 // CHECK: movmskpd %xmm6, %eax 553 // CHECK: encoding: [0x66,0x0f,0x50,0xc6] 554 movmskpd %xmm6, %eax 555 // CHECK: movmskpd %xmm6, %eax 556 // CHECK: encoding: [0x66,0x0f,0x50,0xc6] 557 558 // rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 559 fdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] 560 fdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] 561 562 fsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9] 563 fsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9] 564 565 // also PR8861 566 fdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1] 567 fdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1] 568 569 570 movl foo(%rip), %eax 571 // CHECK: movl foo(%rip), %eax 572 // CHECK: encoding: [0x8b,0x05,A,A,A,A] 573 // CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 574 575 movb $12, foo(%rip) 576 // CHECK: movb $12, foo(%rip) 577 // CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 578 // CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 579 580 movw $12, foo(%rip) 581 // CHECK: movw $12, foo(%rip) 582 // CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 583 // CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 584 585 movl $12, foo(%rip) 586 // CHECK: movl $12, foo(%rip) 587 // CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 588 // CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 589 590 movq $12, foo(%rip) 591 // CHECK: movq $12, foo(%rip) 592 // CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 593 // CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 594 595 // CHECK: addq $-424, %rax 596 // CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 597 addq $-424, %rax 598 599 600 // CHECK: movq _foo@GOTPCREL(%rip), %rax 601 // CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 602 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 603 movq _foo@GOTPCREL(%rip), %rax 604 605 // CHECK: movq _foo@GOTPCREL(%rip), %r14 606 // CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 607 // CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 608 movq _foo@GOTPCREL(%rip), %r14 609 610 611 // CHECK: movq (%r13,%rax,8), %r13 612 // CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 613 movq 0x00(%r13,%rax,8),%r13 614 615 // CHECK: testq %rax, %rbx 616 // CHECK: encoding: [0x48,0x85,0xc3] 617 testq %rax, %rbx 618 619 // CHECK: cmpq %rbx, %r14 620 // CHECK: encoding: [0x49,0x39,0xde] 621 cmpq %rbx, %r14 622 623 // rdar://7947167 624 625 movsq 626 // CHECK: movsq 627 // CHECK: encoding: [0x48,0xa5] 628 629 movsl 630 // CHECK: movsl 631 // CHECK: encoding: [0xa5] 632 633 stosq 634 // CHECK: stosq 635 // CHECK: encoding: [0x48,0xab] 636 stosl 637 // CHECK: stosl 638 // CHECK: encoding: [0xab] 639 640 641 // Not moffset forms of moves, they are x86-32 only! rdar://7947184 642 movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 643 movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 644 movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 645 646 // CHECK: pushfq # encoding: [0x9c] 647 pushf 648 // CHECK: pushfq # encoding: [0x9c] 649 pushfq 650 // CHECK: popfq # encoding: [0x9d] 651 popf 652 // CHECK: popfq # encoding: [0x9d] 653 popfq 654 655 // CHECK: movabsq $-281474976710654, %rax 656 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 657 movabsq $0xFFFF000000000002, %rax 658 659 // CHECK: movabsq $-281474976710654, %rax 660 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 661 movq $0xFFFF000000000002, %rax 662 663 // CHECK: movq $-65536, %rax 664 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 665 movq $0xFFFFFFFFFFFF0000, %rax 666 667 // CHECK: movq $-256, %rax 668 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 669 movq $0xFFFFFFFFFFFFFF00, %rax 670 671 // CHECK: movq $10, %rax 672 // CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 673 movq $10, %rax 674 675 // CHECK: movabsb -6066930261531658096, %al 676 // CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 677 movabsb 0xabcdef1234567890,%al 678 679 // CHECK: movabsw -6066930261531658096, %ax 680 // CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 681 movabsw 0xabcdef1234567890,%ax 682 683 // CHECK: movabsl -6066930261531658096, %eax 684 // CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 685 movabsl 0xabcdef1234567890,%eax 686 687 // CHECK: movabsq -6066930261531658096, %rax 688 // CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 689 movabsq 0xabcdef1234567890, %rax 690 691 // CHECK: movabsb %al, -6066930261531658096 692 // CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 693 movabsb %al,0xabcdef1234567890 694 695 // CHECK: movabsw %ax, -6066930261531658096 696 // CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 697 movabsw %ax,0xabcdef1234567890 698 699 // CHECK: movabsl %eax, -6066930261531658096 700 // CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 701 movabsl %eax,0xabcdef1234567890 702 703 // CHECK: movabsq %rax, -6066930261531658096 704 // CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 705 movabsq %rax,0xabcdef1234567890 706 707 // rdar://8014869 708 // 709 // CHECK: ret 710 // CHECK: encoding: [0xc3] 711 retq 712 713 // CHECK: sete %al 714 // CHECK: encoding: [0x0f,0x94,0xc0] 715 setz %al 716 717 // CHECK: setne %al 718 // CHECK: encoding: [0x0f,0x95,0xc0] 719 setnz %al 720 721 // CHECK: je 0 722 // CHECK: encoding: [0x74,A] 723 jz 0 724 725 // CHECK: jne 726 // CHECK: encoding: [0x75,A] 727 jnz 0 728 729 // PR9264 730 btl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 731 bt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 732 733 // rdar://8017515 734 btq $0x01,%rdx 735 // CHECK: btq $1, %rdx 736 // CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 737 738 //rdar://8017633 739 // CHECK: movzbl %al, %esi 740 // CHECK: encoding: [0x0f,0xb6,0xf0] 741 movzx %al, %esi 742 743 // CHECK: movzbq %al, %rsi 744 // CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 745 movzx %al, %rsi 746 747 // CHECK: movsbw %al, %ax 748 // CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 749 movsx %al, %ax 750 751 // CHECK: movsbl %al, %eax 752 // CHECK: encoding: [0x0f,0xbe,0xc0] 753 movsx %al, %eax 754 755 // CHECK: movswl %ax, %eax 756 // CHECK: encoding: [0x0f,0xbf,0xc0] 757 movsx %ax, %eax 758 759 // CHECK: movsbq %bl, %rax 760 // CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 761 movsx %bl, %rax 762 763 // CHECK: movswq %cx, %rax 764 // CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 765 movsx %cx, %rax 766 767 // CHECK: movslq %edi, %rax 768 // CHECK: encoding: [0x48,0x63,0xc7] 769 movsx %edi, %rax 770 771 // CHECK: movzbw %al, %ax 772 // CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 773 movzx %al, %ax 774 775 // CHECK: movzbl %al, %eax 776 // CHECK: encoding: [0x0f,0xb6,0xc0] 777 movzx %al, %eax 778 779 // CHECK: movzwl %ax, %eax 780 // CHECK: encoding: [0x0f,0xb7,0xc0] 781 movzx %ax, %eax 782 783 // CHECK: movzbq %bl, %rax 784 // CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 785 movzx %bl, %rax 786 787 // CHECK: movzwq %cx, %rax 788 // CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 789 movzx %cx, %rax 790 791 // CHECK: movsbw (%rax), %ax 792 // CHECK: encoding: [0x66,0x0f,0xbe,0x00] 793 movsx (%rax), %ax 794 795 // CHECK: movzbw (%rax), %ax 796 // CHECK: encoding: [0x66,0x0f,0xb6,0x00] 797 movzx (%rax), %ax 798 799 800 // rdar://7873482 801 // CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 802 movl %gs:124, %eax 803 804 // CHECK: jmpq *8(%rax) 805 // CHECK: encoding: [0xff,0x60,0x08] 806 jmp *8(%rax) 807 808 // CHECK: btq $61, -216(%rbp) 809 // CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 810 btq $61, -216(%rbp) 811 812 813 // rdar://8061602 814 L1: 815 jecxz L1 816 // CHECK: jecxz L1 817 // CHECK: encoding: [0x67,0xe3,A] 818 jrcxz L1 819 // CHECK: jrcxz L1 820 // CHECK: encoding: [0xe3,A] 821 822 // PR8061 823 xchgl 368(%rax),%ecx 824 // CHECK: xchgl %ecx, 368(%rax) 825 xchgl %ecx, 368(%rax) 826 // CHECK: xchgl %ecx, 368(%rax) 827 828 // rdar://8407548 829 xchg 0xdeadbeef(%rbx,%rcx,8),%bl 830 // CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 831 832 833 834 // PR7254 835 lock incl 1(%rsp) 836 // CHECK: lock 837 // CHECK: incl 1(%rsp) 838 839 // rdar://8741045 840 lock/incl 1(%rsp) 841 // CHECK: lock 842 // CHECK: incl 1(%rsp) 843 844 // rdar://8033482 845 rep movsl 846 // CHECK: rep 847 // CHECK: encoding: [0xf3] 848 // CHECK: movsl 849 // CHECK: encoding: [0xa5] 850 851 852 // rdar://8403974 853 iret 854 // CHECK: iretl 855 // CHECK: encoding: [0xcf] 856 iretw 857 // CHECK: iretw 858 // CHECK: encoding: [0x66,0xcf] 859 iretl 860 // CHECK: iretl 861 // CHECK: encoding: [0xcf] 862 iretq 863 // CHECK: iretq 864 // CHECK: encoding: [0x48,0xcf] 865 866 // rdar://8416805 867 // CHECK: retw $31438 868 // CHECK: encoding: [0x66,0xc2,0xce,0x7a] 869 retw $0x7ace 870 871 // CHECK: lretw $31438 872 // CHECK: encoding: [0x66,0xca,0xce,0x7a] 873 lretw $0x7ace 874 875 // PR8592 876 lretq // CHECK: lretq # encoding: [0x48,0xcb] 877 lretl // CHECK: lretl # encoding: [0xcb] 878 lret // CHECK: lretl # encoding: [0xcb] 879 lretw // CHECK: lretw # encoding: [0x66,0xcb] 880 881 // rdar://8403907 882 sysret 883 // CHECK: sysretl 884 // CHECK: encoding: [0x0f,0x07] 885 sysretl 886 // CHECK: sysretl 887 // CHECK: encoding: [0x0f,0x07] 888 sysretq 889 // CHECK: sysretq 890 // CHECK: encoding: [0x48,0x0f,0x07] 891 892 // rdar://8407242 893 push %fs 894 // CHECK: pushq %fs 895 // CHECK: encoding: [0x0f,0xa0] 896 push %gs 897 // CHECK: pushq %gs 898 // CHECK: encoding: [0x0f,0xa8] 899 900 pushw %fs 901 // CHECK: pushw %fs 902 // CHECK: encoding: [0x66,0x0f,0xa0] 903 pushw %gs 904 // CHECK: pushw %gs 905 // CHECK: encoding: [0x66,0x0f,0xa8] 906 907 908 pop %fs 909 // CHECK: popq %fs 910 // CHECK: encoding: [0x0f,0xa1] 911 pop %gs 912 // CHECK: popq %gs 913 // CHECK: encoding: [0x0f,0xa9] 914 915 popw %fs 916 // CHECK: popw %fs 917 // CHECK: encoding: [0x66,0x0f,0xa1] 918 popw %gs 919 // CHECK: popw %gs 920 // CHECK: encoding: [0x66,0x0f,0xa9] 921 922 // rdar://8438816 923 fildq -8(%rsp) 924 fildll -8(%rsp) 925 // CHECK: fildll -8(%rsp) 926 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 927 // CHECK: fildll -8(%rsp) 928 // CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 929 930 // CHECK: callq a 931 callq a 932 933 // CHECK: leaq -40(%rbp), %r15 934 leaq -40(%rbp), %r15 935 936 937 938 // rdar://8013734 - Alias dr6=db6 939 mov %dr6, %rax 940 mov %db6, %rax 941 // CHECK: movq %dr6, %rax 942 // CHECK: movq %dr6, %rax 943 944 945 // INC/DEC encodings. 946 incb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 947 incw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 948 incl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 949 decb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 950 decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 951 decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 952 953 // rdar://8416805 954 // CHECK: lgdtq 4(%rax) 955 // CHECK: encoding: [0x0f,0x01,0x50,0x04] 956 lgdt 4(%rax) 957 958 // CHECK: lgdtq 4(%rax) 959 // CHECK: encoding: [0x0f,0x01,0x50,0x04] 960 lgdtq 4(%rax) 961 962 // CHECK: lidtq 4(%rax) 963 // CHECK: encoding: [0x0f,0x01,0x58,0x04] 964 lidt 4(%rax) 965 966 // CHECK: lidtq 4(%rax) 967 // CHECK: encoding: [0x0f,0x01,0x58,0x04] 968 lidtq 4(%rax) 969 970 // CHECK: sgdtq 4(%rax) 971 // CHECK: encoding: [0x0f,0x01,0x40,0x04] 972 sgdt 4(%rax) 973 974 // CHECK: sgdtq 4(%rax) 975 // CHECK: encoding: [0x0f,0x01,0x40,0x04] 976 sgdtq 4(%rax) 977 978 // CHECK: sidtq 4(%rax) 979 // CHECK: encoding: [0x0f,0x01,0x48,0x04] 980 sidt 4(%rax) 981 982 // CHECK: sidtq 4(%rax) 983 // CHECK: encoding: [0x0f,0x01,0x48,0x04] 984 sidtq 4(%rax) 985 986 987 // rdar://8208615 988 mov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e] 989 mov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e] 990 991 992 // rdar://8431864 993 //CHECK: divb %bl 994 //CHECK: divw %bx 995 //CHECK: divl %ecx 996 //CHECK: divl 3735928559(%ebx,%ecx,8) 997 //CHECK: divl 69 998 //CHECK: divl 32493 999 //CHECK: divl 3133065982 1000 //CHECK: divl 305419896 1001 //CHECK: idivb %bl 1002 //CHECK: idivw %bx 1003 //CHECK: idivl %ecx 1004 //CHECK: idivl 3735928559(%ebx,%ecx,8) 1005 //CHECK: idivl 69 1006 //CHECK: idivl 32493 1007 //CHECK: idivl 3133065982 1008 //CHECK: idivl 305419896 1009 div %bl,%al 1010 div %bx,%ax 1011 div %ecx,%eax 1012 div 0xdeadbeef(%ebx,%ecx,8),%eax 1013 div 0x45,%eax 1014 div 0x7eed,%eax 1015 div 0xbabecafe,%eax 1016 div 0x12345678,%eax 1017 idiv %bl,%al 1018 idiv %bx,%ax 1019 idiv %ecx,%eax 1020 idiv 0xdeadbeef(%ebx,%ecx,8),%eax 1021 idiv 0x45,%eax 1022 idiv 0x7eed,%eax 1023 idiv 0xbabecafe,%eax 1024 idiv 0x12345678,%eax 1025 1026 // PR8524 1027 movd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1028 movd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1029 movq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1030 movq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1031 1032 rex64 // CHECK: rex64 # encoding: [0x48] 1033 data16 // CHECK: data16 # encoding: [0x66] 1034 1035 // PR8855 1036 movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx 1037 1038 // PR8946 1039 movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8] 1040 1041 // PR8935 1042 xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0] 1043 xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] 1044 1045 // CHECK: loope 0 1046 // CHECK: encoding: [0xe1,A] 1047 loopz 0 1048 1049 // CHECK: loopne 0 1050 // CHECK: encoding: [0xe0,A] 1051 loopnz 0 1052 1053 // CHECK: outsb (%rsi), %dx # encoding: [0x6e] 1054 // CHECK: outsb 1055 // CHECK: outsb 1056 outsb 1057 outsb %ds:(%rsi), %dx 1058 outsb (%rsi), %dx 1059 1060 // CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f] 1061 // CHECK: outsw 1062 // CHECK: outsw 1063 outsw 1064 outsw %ds:(%rsi), %dx 1065 outsw (%rsi), %dx 1066 1067 // CHECK: outsl (%rsi), %dx # encoding: [0x6f] 1068 // CHECK: outsl 1069 outsl 1070 outsl %ds:(%rsi), %dx 1071 outsl (%rsi), %dx 1072 1073 // CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c] 1074 // CHECK: insb 1075 insb 1076 insb %dx, %es:(%rdi) 1077 1078 // CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d] 1079 // CHECK: insw 1080 insw 1081 insw %dx, %es:(%rdi) 1082 1083 // CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d] 1084 // CHECK: insl 1085 insl 1086 insl %dx, %es:(%rdi) 1087 1088 // CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4] 1089 // CHECK: movsb 1090 // CHECK: movsb 1091 movsb 1092 movsb %ds:(%rsi), %es:(%rdi) 1093 movsb (%rsi), %es:(%rdi) 1094 1095 // CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5] 1096 // CHECK: movsw 1097 // CHECK: movsw 1098 movsw 1099 movsw %ds:(%rsi), %es:(%rdi) 1100 movsw (%rsi), %es:(%rdi) 1101 1102 // CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5] 1103 // CHECK: movsl 1104 // CHECK: movsl 1105 movsl 1106 movsl %ds:(%rsi), %es:(%rdi) 1107 movsl (%rsi), %es:(%rdi) 1108 // rdar://10883092 1109 // CHECK: movsl 1110 movsl (%rsi), (%rdi) 1111 1112 // CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5] 1113 // CHECK: movsq 1114 // CHECK: movsq 1115 movsq 1116 movsq %ds:(%rsi), %es:(%rdi) 1117 movsq (%rsi), %es:(%rdi) 1118 1119 // CHECK: lodsb (%rsi), %al # encoding: [0xac] 1120 // CHECK: lodsb 1121 // CHECK: lodsb 1122 // CHECK: lodsb 1123 // CHECK: lodsb 1124 lodsb 1125 lodsb %ds:(%rsi), %al 1126 lodsb (%rsi), %al 1127 lods %ds:(%rsi), %al 1128 lods (%rsi), %al 1129 1130 // CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad] 1131 // CHECK: lodsw 1132 // CHECK: lodsw 1133 // CHECK: lodsw 1134 // CHECK: lodsw 1135 lodsw 1136 lodsw %ds:(%rsi), %ax 1137 lodsw (%rsi), %ax 1138 lods %ds:(%rsi), %ax 1139 lods (%rsi), %ax 1140 1141 // CHECK: lodsl (%rsi), %eax # encoding: [0xad] 1142 // CHECK: lodsl 1143 // CHECK: lodsl 1144 // CHECK: lodsl 1145 // CHECK: lodsl 1146 lodsl 1147 lodsl %ds:(%rsi), %eax 1148 lodsl (%rsi), %eax 1149 lods %ds:(%rsi), %eax 1150 lods (%rsi), %eax 1151 1152 // CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad] 1153 // CHECK: lodsq 1154 // CHECK: lodsq 1155 // CHECK: lodsq 1156 // CHECK: lodsq 1157 lodsq 1158 lodsq %ds:(%rsi), %rax 1159 lodsq (%rsi), %rax 1160 lods %ds:(%rsi), %rax 1161 lods (%rsi), %rax 1162 1163 // CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa] 1164 // CHECK: stosb 1165 // CHECK: stosb 1166 stosb 1167 stosb %al, %es:(%rdi) 1168 stos %al, %es:(%rdi) 1169 1170 // CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab] 1171 // CHECK: stosw 1172 // CHECK: stosw 1173 stosw 1174 stosw %ax, %es:(%rdi) 1175 stos %ax, %es:(%rdi) 1176 1177 // CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab] 1178 // CHECK: stosl 1179 // CHECK: stosl 1180 stosl 1181 stosl %eax, %es:(%rdi) 1182 stos %eax, %es:(%rdi) 1183 1184 // CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab] 1185 // CHECK: stosq 1186 // CHECK: stosq 1187 stosq 1188 stosq %rax, %es:(%rdi) 1189 stos %rax, %es:(%rdi) 1190 1191 // CHECK: strw 1192 // CHECK: encoding: [0x66,0x0f,0x00,0xc8] 1193 str %ax 1194 1195 // CHECK: strl 1196 // CHECK: encoding: [0x0f,0x00,0xc8] 1197 str %eax 1198 1199 // CHECK: strw 1200 // CHECK: encoding: [0x66,0x0f,0x00,0xc8] 1201 str %ax 1202 1203 // CHECK: strq 1204 // CHECK: encoding: [0x48,0x0f,0x00,0xc8] 1205 str %rax 1206 1207 // CHECK: movd %rdi, %xmm0 1208 // CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 1209 movq %rdi,%xmm0 1210 1211 // CHECK: movd %rdi, %xmm0 1212 // CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 1213 movd %rdi,%xmm0 1214 1215 // CHECK: movd %xmm0, %rax 1216 // CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0] 1217 movd %xmm0, %rax 1218 1219 // CHECK: movntil %eax, (%rdi) 1220 // CHECK: encoding: [0x0f,0xc3,0x07] 1221 // CHECK: movntil 1222 movntil %eax, (%rdi) 1223 movnti %eax, (%rdi) 1224 1225 // CHECK: movntiq %rax, (%rdi) 1226 // CHECK: encoding: [0x48,0x0f,0xc3,0x07] 1227 // CHECK: movntiq 1228 movntiq %rax, (%rdi) 1229 movnti %rax, (%rdi) 1230 1231 // CHECK: pclmulqdq $17, %xmm0, %xmm1 1232 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11] 1233 pclmulhqhqdq %xmm0, %xmm1 1234 1235 // CHECK: pclmulqdq $1, %xmm0, %xmm1 1236 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01] 1237 pclmulqdq $1, %xmm0, %xmm1 1238 1239 // CHECK: pclmulqdq $16, (%rdi), %xmm1 1240 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10] 1241 pclmullqhqdq (%rdi), %xmm1 1242 1243 // CHECK: pclmulqdq $0, (%rdi), %xmm1 1244 // CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00] 1245 pclmulqdq $0, (%rdi), %xmm1 1246 1247 // PR10345 1248 // CHECK: xchgq %rax, %rax 1249 // CHECK: encoding: [0x48,0x90] 1250 xchgq %rax, %rax 1251 1252 // CHECK: xchgl %eax, %eax 1253 // CHECK: encoding: [0x87,0xc0] 1254 xchgl %eax, %eax 1255 1256 // CHECK: xchgw %ax, %ax 1257 // CHECK: encoding: [0x66,0x90] 1258 xchgw %ax, %ax 1259 1260 // CHECK: xchgl %ecx, %eax 1261 // CHECK: encoding: [0x91] 1262 xchgl %ecx, %eax 1263 1264 // CHECK: xchgl %ecx, %eax 1265 // CHECK: encoding: [0x91] 1266 xchgl %eax, %ecx 1267 1268 // CHECK: sysexit 1269 // CHECK: encoding: [0x0f,0x35] 1270 sysexit 1271 1272 // CHECK: sysexitl 1273 // CHECK: encoding: [0x0f,0x35] 1274 sysexitl 1275 1276 // CHECK: sysexitq 1277 // CHECK: encoding: [0x48,0x0f,0x35] 1278 sysexitq 1279 1280 // CHECK: clac 1281 // CHECK: encoding: [0x0f,0x01,0xca] 1282 clac 1283 1284 // CHECK: stac 1285 // CHECK: encoding: [0x0f,0x01,0xcb] 1286 stac 1287 1288 // CHECK: faddp %st(1) 1289 // CHECK: fmulp %st(1) 1290 // CHECK: fsubp %st(1) 1291 // CHECK: fsubrp %st(1) 1292 // CHECK: fdivp %st(1) 1293 // CHECK: fdivrp %st(1) 1294 faddp %st(0), %st(1) 1295 fmulp %st(0), %st(1) 1296 fsubp %st(0), %st(1) 1297 fsubrp %st(0), %st(1) 1298 fdivp %st(0), %st(1) 1299 fdivrp %st(0), %st(1) 1300 1301 // CHECK: faddp %st(1) 1302 // CHECK: fmulp %st(1) 1303 // CHECK: fsubp %st(1) 1304 // CHECK: fsubrp %st(1) 1305 // CHECK: fdivp %st(1) 1306 // CHECK: fdivrp %st(1) 1307 faddp %st(1), %st(0) 1308 fmulp %st(1), %st(0) 1309 fsubp %st(1), %st(0) 1310 fsubrp %st(1), %st(0) 1311 fdivp %st(1), %st(0) 1312 fdivrp %st(1), %st(0) 1313 1314 // CHECK: faddp %st(1) 1315 // CHECK: fmulp %st(1) 1316 // CHECK: fsubp %st(1) 1317 // CHECK: fsubrp %st(1) 1318 // CHECK: fdivp %st(1) 1319 // CHECK: fdivrp %st(1) 1320 faddp %st(1) 1321 fmulp %st(1) 1322 fsubp %st(1) 1323 fsubrp %st(1) 1324 fdivp %st(1) 1325 fdivrp %st(1) 1326 1327 // CHECK: faddp %st(1) 1328 // CHECK: fmulp %st(1) 1329 // CHECK: fsubp %st(1) 1330 // CHECK: fsubrp %st(1) 1331 // CHECK: fdivp %st(1) 1332 // CHECK: fdivrp %st(1) 1333 faddp 1334 fmulp 1335 fsubp 1336 fsubrp 1337 fdivp 1338 fdivrp 1339 1340 // CHECK: fadd %st(1) 1341 // CHECK: fmul %st(1) 1342 // CHECK: fsub %st(1) 1343 // CHECK: fsubr %st(1) 1344 // CHECK: fdiv %st(1) 1345 // CHECK: fdivr %st(1) 1346 fadd %st(1), %st(0) 1347 fmul %st(1), %st(0) 1348 fsub %st(1), %st(0) 1349 fsubr %st(1), %st(0) 1350 fdiv %st(1), %st(0) 1351 fdivr %st(1), %st(0) 1352 1353 // CHECK: fadd %st(0), %st(1) 1354 // CHECK: fmul %st(0), %st(1) 1355 // CHECK: fsub %st(0), %st(1) 1356 // CHECK: fsubr %st(0), %st(1) 1357 // CHECK: fdiv %st(0), %st(1) 1358 // CHECK: fdivr %st(0), %st(1) 1359 fadd %st(0), %st(1) 1360 fmul %st(0), %st(1) 1361 fsub %st(0), %st(1) 1362 fsubr %st(0), %st(1) 1363 fdiv %st(0), %st(1) 1364 fdivr %st(0), %st(1) 1365 1366 // CHECK: fadd %st(1) 1367 // CHECK: fmul %st(1) 1368 // CHECK: fsub %st(1) 1369 // CHECK: fsubr %st(1) 1370 // CHECK: fdiv %st(1) 1371 // CHECK: fdivr %st(1) 1372 fadd %st(1) 1373 fmul %st(1) 1374 fsub %st(1) 1375 fsubr %st(1) 1376 fdiv %st(1) 1377 fdivr %st(1) 1378 1379 // CHECK: movd %xmm0, %eax 1380 // CHECK: movd %xmm0, %rax 1381 // CHECK: movd %xmm0, %rax 1382 // CHECK: vmovd %xmm0, %eax 1383 // CHECK: vmovq %xmm0, %rax 1384 // CHECK: vmovq %xmm0, %rax 1385 movd %xmm0, %eax 1386 movd %xmm0, %rax 1387 movq %xmm0, %rax 1388 vmovd %xmm0, %eax 1389 vmovd %xmm0, %rax 1390 vmovq %xmm0, %rax 1391 1392 // CHECK: seto 3735928559(%r10,%r9,8) 1393 // CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde] 1394 seto 0xdeadbeef(%r10,%r9,8) 1395 1396 // CHECK: monitorx 1397 // CHECK: encoding: [0x0f,0x01,0xfa] 1398 monitorx 1399 1400 // CHECK: monitorx 1401 // CHECK: encoding: [0x0f,0x01,0xfa] 1402 monitorx %rax, %rcx, %rdx 1403 1404 // CHECK: mwaitx 1405 // CHECK: encoding: [0x0f,0x01,0xfb] 1406 mwaitx 1407 1408 // CHECK: mwaitx 1409 // CHECK: encoding: [0x0f,0x01,0xfb] 1410 mwaitx %rax, %rcx, %rbx 1411