Home | History | Annotate | Download | only in X86
      1 # RUN: llvm-mc --disassemble %s -triple=x86_64-apple-darwin9 | FileCheck %s
      2 
      3 # CHECK: int	$33
      4 0xCD 0x21 
      5 
      6 # CHECK: int	$33
      7 0xCD 0x21
      8 
      9 
     10 # CHECK: addb	%al, (%rax)
     11 0 0
     12 
     13 # CHECK: callq	-1234
     14 0xe8 0x2e 0xfb 0xff 0xff
     15 
     16 # CHECK: lfence
     17 0x0f 0xae 0xe8
     18 
     19 # CHECK: mfence
     20 0x0f 0xae 0xf0
     21 
     22 # CHECK: monitor
     23 0x0f 0x01 0xc8
     24 
     25 # CHECK: mwait
     26 0x0f 0x01 0xc9
     27 
     28 # CHECK: vmcall
     29 0x0f 0x01 0xc1
     30 
     31 # CHECK: vmlaunch
     32 0x0f 0x01 0xc2
     33 
     34 # CHECK: vmresume
     35 0x0f 0x01 0xc3
     36 
     37 # CHECK: vmxoff
     38 0x0f 0x01 0xc4
     39 
     40 # CHECK: swapgs
     41 0x0f 0x01 0xf8
     42 
     43 # CHECK: rdtscp
     44 0x0f 0x01 0xf9
     45 
     46 # CHECK: vmxon
     47 0xf3 0x0f 0xc7 0x30
     48 
     49 # CHECK: vmptrld
     50 0x0f 0xc7 0x30
     51 
     52 # CHECK: vmptrst
     53 0x0f 0xc7 0x38
     54 
     55 # CHECK: movl $0, -4(%rbp)
     56 0xc7 0x45 0xfc 0x00 0x00 0x00 0x00
     57 
     58 # CHECK: movq	%cr0, %rcx
     59 0x0f 0x20 0xc1
     60 
     61 # CHECK: leal	4(%rsp), %ecx
     62 0x8d 0x4c 0x24 0x04 
     63 
     64 # CHECK: enter	$1, $2
     65 0xc8 0x01 0x00 0x02
     66 
     67 # CHECK: movw	$47416, -66(%rbp)
     68 0x66 0xc7 0x45 0xbe 0x38 0xb9
     69 
     70 # CHECK: vaddpd	%ymm13, %ymm1, %ymm0
     71 0xc4 0xc1 0x75 0x58 0xc5
     72 
     73 # CHECK: vaddps	%ymm3, %ymm1, %ymm0
     74 0xc5 0xf4 0x58 0xc3
     75 
     76 # CHECK: vandpd	%ymm13, %ymm1, %ymm0
     77 0xc4 0xc1 0x75 0x54 0xc5
     78 
     79 # CHECK: vandps	%ymm3, %ymm1, %ymm0
     80 0xc5 0xf4 0x54 0xc3
     81 
     82 # CHECK: vzeroall
     83 0xc5 0xfc 0x77
     84 
     85 # CHECK: vcvtps2pd %xmm0, %ymm0
     86 0xc5 0xfc 0x5a 0xc0
     87 
     88 # CHECK: vandps (%rdx), %xmm1, %xmm7
     89 0xc5 0xf0 0x54 0x3a
     90 
     91 # CHECK: vcvtss2sil %xmm0, %eax
     92 0xc5 0xfa 0x2d 0xc0
     93 
     94 # CHECK: vcvtsd2si %xmm0, %eax
     95 0xc5 0xfb 0x2d 0xc0
     96 
     97 # CHECK: vcvtsd2si %xmm0, %rax
     98 0xc4 0xe1 0xfb 0x2d 0xc0
     99 
    100 # CHECK: vmaskmovpd %xmm0, %xmm1, (%rax)
    101 0xc4 0xe2 0x71 0x2f 0x00
    102 
    103 # CHECK: vmovapd %xmm0, %xmm2
    104 0xc5 0xf9 0x28 0xd0
    105 
    106 # Check X86 immediates print as signed values by default.  radr://8795217
    107 # CHECK: andq $-16, %rsp
    108 0x48 0x83 0xe4 0xf0
    109 
    110 # Check these special case instructions that the immediate is not sign-extend.
    111 # CHECK: blendps $129, %xmm2, %xmm1
    112 0x66 0x0f 0x3a 0x0c 0xca 0x81
    113 
    114 # CHECK: blendpd $129, %xmm2, %xmm1
    115 0x66 0x0f 0x3a 0x0d 0xca 0x81
    116 
    117 # CHECK: pblendw $129, %xmm2, %xmm1
    118 0x66 0x0f 0x3a 0x0e 0xca 0x81
    119 
    120 # CHECK: mpsadbw $129, %xmm2, %xmm1
    121 0x66 0x0f 0x3a 0x42 0xca 0x81
    122 
    123 # CHECK: dpps $129, %xmm2, %xmm1
    124 0x66 0x0f 0x3a 0x40 0xca 0x81
    125 
    126 # CHECK: dppd $129, %xmm2, %xmm1
    127 0x66 0x0f 0x3a 0x41 0xca 0x81
    128 
    129 # CHECK: insertps $129, %xmm2, %xmm1
    130 0x66 0x0f 0x3a 0x21 0xca 0x81
    131 
    132 # CHECK: vblendps $129, %ymm2, %ymm5, %ymm1
    133 0xc4 0xe3 0x55 0x0c 0xca 0x81
    134 
    135 # CHECK: vblendps $129, (%rax), %ymm5, %ymm1
    136 0xc4 0xe3 0x55 0x0c 0x08 0x81
    137 
    138 # CHECK: vblendpd $129, %ymm2, %ymm5, %ymm1
    139 0xc4 0xe3 0x55 0x0d 0xca 0x81
    140 
    141 # CHECK: vblendpd $129, (%rax), %ymm5, %ymm1
    142 0xc4 0xe3 0x55 0x0d 0x08 0x81
    143 
    144 # CHECK: vpblendw $129, %xmm2, %xmm5, %xmm1
    145 0xc4 0xe3 0x51 0x0e 0xca 0x81
    146 
    147 # CHECK: vmpsadbw $129, %xmm2, %xmm5, %xmm1
    148 0xc4 0xe3 0x51 0x42 0xca 0x81
    149 
    150 # CHECK: vdpps $129, %ymm2, %ymm5, %ymm1
    151 0xc4 0xe3 0x55 0x40 0xca 0x81
    152 
    153 # CHECK: vdpps $129, (%rax), %ymm5, %ymm1
    154 0xc4 0xe3 0x55 0x40 0x08 0x81
    155 
    156 # CHECK: vdppd $129, %xmm2, %xmm5, %xmm1
    157 0xc4 0xe3 0x51 0x41 0xca 0x81
    158 
    159 # CHECK: vinsertps $129, %xmm3, %xmm2, %xmm1
    160 0xc4 0xe3 0x69 0x21 0xcb 0x81
    161 
    162 # CHECK: pause
    163 0xf3 0x90
    164 
    165 # CHECK: addl %eax, %edi
    166 0x01 0xc7
    167 
    168 # CHECK: addl %edi, %eax
    169 0x03 0xc7
    170 
    171 # CHECK: movl %eax, %edi
    172 0x89 0xc7
    173 
    174 # CHECK: movl %edi, %eax
    175 0x8b 0xc7
    176 
    177 # CHECK: movups %xmm1, %xmm0
    178 0x0f 0x10 0xc1
    179 
    180 # CHECK: movups %xmm0, %xmm1
    181 0x0f 0x11 0xc1
    182 
    183 # CHECK: movaps %xmm1, %xmm0
    184 0x0f 0x28 0xc1
    185 
    186 # CHECK: movaps %xmm0, %xmm1
    187 0x0f 0x29 0xc1
    188 
    189 # CHECK: movupd %xmm1, %xmm0
    190 0x66 0x0f 0x10 0xc1
    191 
    192 # CHECK: movupd %xmm0, %xmm1
    193 0x66 0x0f 0x11 0xc1
    194 
    195 # CHECK: movapd %xmm1, %xmm0
    196 0x66 0x0f 0x28 0xc1
    197 
    198 # CHECK: movapd %xmm0, %xmm1
    199 0x66 0x0f 0x29 0xc1
    200 
    201 # CHECK: vmovups %xmm1, %xmm0
    202 0xc5 0xf8 0x10 0xc1
    203 
    204 # CHECK: vmovups %xmm0, %xmm1
    205 0xc5 0xf8 0x11 0xc1
    206 
    207 # CHECK: vmovaps %xmm1, %xmm0
    208 0xc5 0xf8 0x28 0xc1
    209 
    210 # CHECK: vmovaps %xmm0, %xmm1
    211 0xc5 0xf8 0x29 0xc1
    212 
    213 # CHECK: vmovupd %xmm1, %xmm0
    214 0xc5 0xf9 0x10 0xc1
    215 
    216 # CHECK: vmovupd %xmm0, %xmm1
    217 0xc5 0xf9 0x11 0xc1
    218 
    219 # CHECK: vmovapd %xmm1, %xmm0
    220 0xc5 0xf9 0x28 0xc1
    221 
    222 # CHECK: vmovapd %xmm0, %xmm1
    223 0xc5 0xf9 0x29 0xc1
    224 
    225 # CHECK: vmovups %ymm1, %ymm0
    226 0xc5 0xfc 0x10 0xc1
    227 
    228 # CHECK: vmovups %ymm0, %ymm1
    229 0xc5 0xfc 0x11 0xc1
    230 
    231 # CHECK: vmovaps %ymm1, %ymm0
    232 0xc5 0xfc 0x28 0xc1
    233 
    234 # CHECK: vmovaps %ymm0, %ymm1
    235 0xc5 0xfc 0x29 0xc1
    236 
    237 # CHECK: movdqa %xmm1, %xmm0
    238 0x66 0x0f 0x6f 0xc1
    239 
    240 # CHECK: movdqa %xmm0, %xmm1
    241 0x66 0x0f 0x7f 0xc1
    242 
    243 # CHECK: movdqu %xmm1, %xmm0
    244 0xf3 0x0f 0x6f 0xc1
    245 
    246 # CHECK: movdqu %xmm0, %xmm1
    247 0xf3 0x0f 0x7f 0xc1
    248 
    249 # CHECK: vmovdqa %xmm1, %xmm0
    250 0xc5 0xf9 0x6f 0xc1
    251 
    252 # CHECK: vmovdqa %xmm0, %xmm1
    253 0xc5 0xf9 0x7f 0xc1
    254 
    255 # CHECK: vmovdqa %ymm1, %ymm0
    256 0xc5 0xfd 0x6f 0xc1
    257 
    258 # CHECK: vmovdqa %ymm0, %ymm1
    259 0xc5 0xfd 0x7f 0xc1
    260 
    261 # CHECK: vmovdqu %xmm1, %xmm0
    262 0xc5 0xfa 0x6f 0xc1
    263 
    264 # CHECK: vmovdqu %xmm0, %xmm1
    265 0xc5 0xfa 0x7f 0xc1
    266 
    267 # CHECK: vmovdqu %ymm1, %ymm0
    268 0xc5 0xfe 0x6f 0xc1
    269 
    270 # CHECK: vmovdqu %ymm0, %ymm1
    271 0xc5 0xfe 0x7f 0xc1
    272 
    273 # CHECK: vblendvps %xmm4, %xmm1, %xmm2, %xmm3
    274 0xc4 0xe3 0x69 0x4a 0xd9 0x41
    275 
    276 # CHECK: vroundpd $0, %xmm0, %xmm0
    277 0xc4 0xe3 0x79 0x09 0xc0 0x00
    278 
    279 # CHECK: vroundps $0, %xmm0, %xmm0
    280 0xc4 0xe3 0x79 0x08 0xc0 0x00
    281 
    282 # CHECK: vroundpd $0, %ymm0, %ymm0
    283 0xc4 0xe3 0x7d 0x09 0xc0 0x00
    284 
    285 # CHECK: vroundps $0, %ymm0, %ymm0
    286 0xc4 0xe3 0x7d 0x08 0xc0 0x00
    287 
    288 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
    289 0xc4 0xe3 0x79 0x0a 0xc0 0x00
    290 
    291 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
    292 0xc4 0xe3 0x79 0x0b 0xc0 0x00
    293 
    294 # CHECK: crc32b %al, %eax
    295 0xf2 0x0f 0x38 0xf0 0xc0
    296 
    297 # CHECK: crc32w %ax, %eax
    298 0x66 0xf2 0x0f 0x38 0xf1 0xc0
    299 
    300 # CHECK: crc32l %eax, %eax
    301 0xf2 0x0f 0x38 0xf1 0xc0
    302 
    303 # CHECK: crc32q %rax, %rax
    304 0xf2 0x48 0x0f 0x38 0xf1 0xc0
    305 
    306 # CHECK: invept (%rax), %rax
    307 0x66 0x0f 0x38 0x80 0x00
    308 
    309 # CHECK: invvpid (%rax), %rax
    310 0x66 0x0f 0x38 0x81 0x00
    311 
    312 # CHECK: nop
    313 0x90
    314 
    315 # CHECK: xchgl %r8d, %eax
    316 0x41 0x90
    317 
    318 # CHECK: xchgq %r8, %rax
    319 0x49 0x90
    320 
    321 # CHECK: addb $0, %al
    322 0x04 0x00
    323 
    324 # CHECK: addw $0, %ax
    325 0x66 0x05 0x00 0x00
    326 
    327 # CHECK: addl $0, %eax
    328 0x05 0x00 0x00 0x00 0x00
    329 
    330 # CHECK: addq $0, %rax
    331 0x48 0x05 0x00 0x00 0x00 0x00
    332 
    333 # CHECK: adcb $0, %al
    334 0x14 0x00
    335 
    336 # CHECK: adcw $0, %ax
    337 0x66 0x15 0x00 0x00
    338 
    339 # CHECK: adcl $0, %eax
    340 0x15 0x00 0x00 0x00 0x00
    341 
    342 # CHECK: adcq $0, %rax
    343 0x48 0x15 0x00 0x00 0x00 0x00
    344 
    345 # CHECK: cmpb $0, %al
    346 0x3c 0x00
    347 
    348 # CHECK: cmpw $0, %ax
    349 0x66 0x3d 0x00 0x00
    350 
    351 # CHECK: cmpl $0, %eax
    352 0x3d 0x00 0x00 0x00 0x00
    353 
    354 # CHECK: cmpq $0, %rax
    355 0x48 0x3d 0x00 0x00 0x00 0x00
    356 
    357 # CHECK: testb $0, %al
    358 0xa8 0x00
    359 
    360 # CHECK: testw $0, %ax
    361 0x66 0xa9 0x00 0x00
    362 
    363 # CHECK: testl $0, %eax
    364 0xa9 0x00 0x00 0x00 0x00
    365 
    366 # CHECK: testq $0, %rax
    367 0x48 0xa9 0x00 0x00 0x00 0x00
    368 
    369 # CHECK: vaddps	%xmm3, %xmm15, %xmm0
    370 0xc4 0xe1 0x00 0x58 0xc3
    371 
    372 # CHECK: movbel (%rax), %eax
    373 0x0f 0x38 0xf0 0x00
    374 
    375 # CHECK: movbel %eax, (%rax)
    376 0x0f 0x38 0xf1 0x00
    377 
    378 # CHECK: movbew (%rax), %ax
    379 0x66 0x0f 0x38 0xf0 0x00
    380 
    381 # CHECK: movbew %ax, (%rax)
    382 0x66 0x0f 0x38 0xf1 0x00
    383 
    384 # CHECK: movbeq (%rax), %rax
    385 0x48 0x0f 0x38 0xf0 0x00
    386 
    387 # CHECK: movbeq %rax, (%rax)
    388 0x48 0x0f 0x38 0xf1 0x00
    389 
    390 # CHECK: rdrandw %ax
    391 0x66 0x0f 0xc7 0xf0
    392 
    393 # CHECK: rdrandl %eax
    394 0x0f 0xc7 0xf0
    395 
    396 # CHECK: rdrandq %rax
    397 0x48 0x0f 0xc7 0xf0
    398 
    399 # CHECK: vroundss $0, %xmm0, %xmm0, %xmm0
    400 0xc4 0xe3 0x7d 0x0a 0xc0 0x00
    401 
    402 # CHECK: vroundsd $0, %xmm0, %xmm0, %xmm0
    403 0xc4 0xe3 0x7d 0x0b 0xc0 0x00
    404 
    405 # CHECK: vcvtsd2si %xmm0, %eax
    406 0xc4 0xe1 0x7f 0x2d 0xc0
    407 
    408 # CHECK: vcvtsd2si %xmm0, %rax
    409 0xc4 0xe1 0xff 0x2d 0xc0
    410 
    411 # CHECK: vucomisd %xmm1, %xmm0
    412 0xc5 0xfd 0x2e 0xc1
    413 
    414 # CHECK: vucomiss %xmm1, %xmm0
    415 0xc5 0xfc 0x2e 0xc1
    416 
    417 # CHECK: vcomisd %xmm1, %xmm0
    418 0xc5 0xfd 0x2f 0xc1
    419 
    420 # CHECK: vcomiss %xmm1, %xmm0
    421 0xc5 0xfc 0x2f 0xc1
    422 
    423 # CHECK: vaddss %xmm1, %xmm0, %xmm0
    424 0xc5 0xfe 0x58 0xc1
    425 
    426 # CHECK: xsave (%rax)
    427 0x0f 0xae 0x20
    428 
    429 # CHECK: xrstor (%rax)
    430 0x0f 0xae 0x28
    431 
    432 # CHECK: xsaveopt (%rax)
    433 0x0f 0xae 0x30
    434 
    435 # CHECK: rdfsbasel %eax
    436 0xf3 0x0f 0xae 0xc0
    437 
    438 # CHECK: rdgsbasel %eax
    439 0xf3 0x0f 0xae 0xc8
    440 
    441 # CHECK: wrfsbasel %eax
    442 0xf3 0x0f 0xae 0xd0
    443 
    444 # CHECK: wrgsbasel %eax
    445 0xf3 0x0f 0xae 0xd8
    446 
    447 # CHECK: rdfsbaseq %rax
    448 0xf3 0x48 0x0f 0xae 0xc0
    449 
    450 # CHECK: rdgsbaseq %rax
    451 0xf3 0x48 0x0f 0xae 0xc8
    452 
    453 # CHECK: wrfsbaseq %rax
    454 0xf3 0x48 0x0f 0xae 0xd0
    455 
    456 # CHECK: wrgsbaseq %rax
    457 0xf3 0x48 0x0f 0xae 0xd8
    458 
    459 # CHECK: vcvtph2ps %xmm0, %xmm0
    460 0xc4 0xe2 0x79 0x13 0xc0
    461 
    462 # CHECK: vcvtph2ps (%rax), %xmm0
    463 0xc4 0xe2 0x79 0x13 0x00
    464 
    465 # CHECK: vcvtph2ps %xmm0, %ymm0
    466 0xc4 0xe2 0x7d 0x13 0xc0
    467 
    468 # CHECK: vcvtph2ps (%rax), %ymm0
    469 0xc4 0xe2 0x7d 0x13 0x00
    470 
    471 # CHECK: vcvtps2ph $0, %xmm0, %xmm0
    472 0xc4 0xe3 0x79 0x1d 0xc0 0x00
    473 
    474 # CHECK: vcvtps2ph $0, %xmm0, (%rax)
    475 0xc4 0xe3 0x79 0x1d 0x00 0x00
    476 
    477 # CHECK: vcvtps2ph $0, %ymm0, %xmm0
    478 0xc4 0xe3 0x7d 0x1d 0xc0 0x00
    479 
    480 # CHECK: vcvtps2ph $0, %ymm0, (%rax)
    481 0xc4 0xe3 0x7d 0x1d 0x00 0x00
    482 
    483 # CHECK: popcntl %eax, %eax
    484 0xf3 0x0f 0xb8 0xc0
    485 
    486 # CHECK: popcntw %ax, %ax
    487 0x66 0xf3 0x0f 0xb8 0xc0
    488 
    489 # CHECK: popcntq %rax, %rax
    490 0xf3 0x48 0x0f 0xb8 0xc0
    491 
    492 # CHECK: lzcntl %eax, %eax
    493 0xf3 0x0f 0xbd 0xc0
    494 
    495 # CHECK: lzcntw %ax, %ax
    496 0x66 0xf3 0x0f 0xbd 0xc0
    497 
    498 # CHECK: lzcntq %rax, %rax
    499 0xf3 0x48 0x0f 0xbd 0xc0
    500 
    501 # CHECK: tzcntl %eax, %eax
    502 0xf3 0x0f 0xbc 0xc0
    503 
    504 # CHECK: tzcntw %ax, %ax
    505 0x66 0xf3 0x0f 0xbc 0xc0
    506 
    507 # CHECK: tzcntq %rax, %rax
    508 0xf3 0x48 0x0f 0xbc 0xc0
    509 
    510 # CHECK: andnl %ecx, %r15d, %eax
    511 0xc4 0xe2 0x00 0xf2 0xc1
    512 
    513 # CHECK: andnq %rax, %r15, %rax
    514 0xc4 0xe2 0x80 0xf2 0xc0
    515 
    516 # CHECK: andnl (%rax), %r15d, %eax
    517 0xc4 0xe2 0x00 0xf2 0x00
    518 
    519 # CHECK: andnq (%rax), %r15, %rax
    520 0xc4 0xe2 0x80 0xf2 0x00
    521