1 # RUN: llvm-mc --disassemble %s -triple powerpc64-unknown-unknown -mcpu=pwr7 | FileCheck %s 2 3 # FIXME: test b target 4 5 # FIXME: test ba target 6 7 # FIXME: test bl target 8 9 # FIXME: test bla target 10 11 # FIXME: test bc 4, 10, target 12 13 # FIXME: test bca 4, 10, target 14 15 # FIXME: test bcl 4, 10, target 16 17 # FIXME: test bcla 4, 10, target 18 19 # CHECK: bclr 4, 10, 3 20 0x4c 0x8a 0x18 0x20 21 22 # CHECK: bclr 4, 10 23 0x4c 0x8a 0x00 0x20 24 25 # CHECK: bclrl 4, 10, 3 26 0x4c 0x8a 0x18 0x21 27 28 # CHECK: bclrl 4, 10 29 0x4c 0x8a 0x00 0x21 30 31 # CHECK: bcctr 4, 10, 3 32 0x4c 0x8a 0x1c 0x20 33 34 # CHECK: bcctr 4, 10 35 0x4c 0x8a 0x04 0x20 36 37 # CHECK: bcctrl 4, 10, 3 38 0x4c 0x8a 0x1c 0x21 39 40 # CHECK: bcctrl 4, 10 41 0x4c 0x8a 0x04 0x21 42 43 # CHECK: crand 2, 3, 4 44 0x4c 0x43 0x22 0x02 45 46 # CHECK: crnand 2, 3, 4 47 0x4c 0x43 0x21 0xc2 48 49 # CHECK: cror 2, 3, 4 50 0x4c 0x43 0x23 0x82 51 52 # CHECK: crxor 2, 3, 4 53 0x4c 0x43 0x21 0x82 54 55 # CHECK: crnor 2, 3, 4 56 0x4c 0x43 0x20 0x42 57 58 # CHECK: creqv 2, 3, 4 59 0x4c 0x43 0x22 0x42 60 61 # CHECK: crandc 2, 3, 4 62 0x4c 0x43 0x21 0x02 63 64 # CHECK: crorc 2, 3, 4 65 0x4c 0x43 0x23 0x42 66 67 # CHECK: mcrf 2, 3 68 0x4d 0x0c 0x00 0x00 69 70 # CHECK: sc 1 71 0x44 0x00 0x00 0x22 72 73 # CHECK: sc 74 0x44 0x00 0x00 0x02 75 76 # CHECK: clrbhrb 77 0x7c 0x00 0x03 0x5c 78 79 # CHECK: mfbhrbe 9, 983 80 0x7d 0x3e 0xba 0x5c 81 82 # CHECK: rfebb 1 83 0x4c 0x00 0x09 0x24 84 85 # CHECK: lbz 2, 128(4) 86 0x88 0x44 0x00 0x80 87 88 # CHECK: lbzx 2, 3, 4 89 0x7c 0x43 0x20 0xae 90 91 # CHECK: lbzu 2, 128(4) 92 0x8c 0x44 0x00 0x80 93 94 # CHECK: lbzux 2, 3, 4 95 0x7c 0x43 0x20 0xee 96 97 # CHECK: lhz 2, 128(4) 98 0xa0 0x44 0x00 0x80 99 100 # CHECK: lhzx 2, 3, 4 101 0x7c 0x43 0x22 0x2e 102 103 # CHECK: lhzu 2, 128(4) 104 0xa4 0x44 0x00 0x80 105 106 # CHECK: lhzux 2, 3, 4 107 0x7c 0x43 0x22 0x6e 108 109 # CHECK: lha 2, 128(4) 110 0xa8 0x44 0x00 0x80 111 112 # CHECK: lhax 2, 3, 4 113 0x7c 0x43 0x22 0xae 114 115 # CHECK: lhau 2, 128(4) 116 0xac 0x44 0x00 0x80 117 118 # CHECK: lhaux 2, 3, 4 119 0x7c 0x43 0x22 0xee 120 121 # CHECK: lwz 2, 128(4) 122 0x80 0x44 0x00 0x80 123 124 # CHECK: lwzx 2, 3, 4 125 0x7c 0x43 0x20 0x2e 126 127 # CHECK: lwzu 2, 128(4) 128 0x84 0x44 0x00 0x80 129 130 # CHECK: lwzux 2, 3, 4 131 0x7c 0x43 0x20 0x6e 132 133 # CHECK: lwa 2, 128(4) 134 0xe8 0x44 0x00 0x82 135 136 # CHECK: lwax 2, 3, 4 137 0x7c 0x43 0x22 0xaa 138 139 # CHECK: lwaux 2, 3, 4 140 0x7c 0x43 0x22 0xea 141 142 # CHECK: ld 2, 128(4) 143 0xe8 0x44 0x00 0x80 144 145 # CHECK: ldx 2, 3, 4 146 0x7c 0x43 0x20 0x2a 147 148 # CHECK: ldu 2, 128(4) 149 0xe8 0x44 0x00 0x81 150 151 # CHECK: ldux 2, 3, 4 152 0x7c 0x43 0x20 0x6a 153 154 # CHECK: ldmx 2, 3, 4 155 0x7c 0x43 0x22 0x6a 156 157 # CHECK: stb 2, 128(4) 158 0x98 0x44 0x00 0x80 159 160 # CHECK: stbx 2, 3, 4 161 0x7c 0x43 0x21 0xae 162 163 # CHECK: stbu 2, 128(4) 164 0x9c 0x44 0x00 0x80 165 166 # CHECK: stbux 2, 3, 4 167 0x7c 0x43 0x21 0xee 168 169 # CHECK: sth 2, 128(4) 170 0xb0 0x44 0x00 0x80 171 172 # CHECK: sthx 2, 3, 4 173 0x7c 0x43 0x23 0x2e 174 175 # CHECK: sthu 2, 128(4) 176 0xb4 0x44 0x00 0x80 177 178 # CHECK: sthux 2, 3, 4 179 0x7c 0x43 0x23 0x6e 180 181 # CHECK: stw 2, 128(4) 182 0x90 0x44 0x00 0x80 183 184 # CHECK: stwx 2, 3, 4 185 0x7c 0x43 0x21 0x2e 186 187 # CHECK: stwu 2, 128(4) 188 0x94 0x44 0x00 0x80 189 190 # CHECK: stwux 2, 3, 4 191 0x7c 0x43 0x21 0x6e 192 193 # CHECK: std 2, 128(4) 194 0xf8 0x44 0x00 0x80 195 196 # CHECK: stdx 2, 3, 4 197 0x7c 0x43 0x21 0x2a 198 199 # CHECK: stdu 2, 128(4) 200 0xf8 0x44 0x00 0x81 201 202 # CHECK: stdux 2, 3, 4 203 0x7c 0x43 0x21 0x6a 204 205 # CHECK: lhbrx 2, 3, 4 206 0x7c 0x43 0x26 0x2c 207 208 # CHECK: sthbrx 2, 3, 4 209 0x7c 0x43 0x27 0x2c 210 211 # CHECK: lwbrx 2, 3, 4 212 0x7c 0x43 0x24 0x2c 213 214 # CHECK: stwbrx 2, 3, 4 215 0x7c 0x43 0x25 0x2c 216 217 # CHECK: ldbrx 2, 3, 4 218 0x7c 0x43 0x24 0x28 219 220 # CHECK: stdbrx 2, 3, 4 221 0x7c 0x43 0x25 0x28 222 223 # CHECK: lmw 2, 128(1) 224 0xb8 0x41 0x00 0x80 225 226 # CHECK: stmw 2, 128(1) 227 0xbc 0x41 0x00 0x80 228 229 # CHECK: addi 2, 3, 128 230 0x38 0x43 0x00 0x80 231 232 # CHECK: addis 2, 3, 128 233 0x3c 0x43 0x00 0x80 234 235 # CHECK: add 2, 3, 4 236 0x7c 0x43 0x22 0x14 237 238 # CHECK: add. 2, 3, 4 239 0x7c 0x43 0x22 0x15 240 241 # CHECK: subf 2, 3, 4 242 0x7c 0x43 0x20 0x50 243 244 # CHECK: subf. 2, 3, 4 245 0x7c 0x43 0x20 0x51 246 247 # CHECK: addic 2, 3, 128 248 0x30 0x43 0x00 0x80 249 250 # CHECK: addic. 2, 3, 128 251 0x34 0x43 0x00 0x80 252 253 # CHECK: subfic 2, 3, 4 254 0x20 0x43 0x00 0x04 255 256 # CHECK: addc 2, 3, 4 257 0x7c 0x43 0x20 0x14 258 259 # CHECK: addc. 2, 3, 4 260 0x7c 0x43 0x20 0x15 261 262 # CHECK: subfc 2, 3, 4 263 0x7c 0x43 0x20 0x10 264 265 # CHECK: subfc 2, 3, 4 266 0x7c 0x43 0x20 0x10 267 268 # CHECK: adde 2, 3, 4 269 0x7c 0x43 0x21 0x14 270 271 # CHECK: adde. 2, 3, 4 272 0x7c 0x43 0x21 0x15 273 274 # CHECK: subfe 2, 3, 4 275 0x7c 0x43 0x21 0x10 276 277 # CHECK: subfe. 2, 3, 4 278 0x7c 0x43 0x21 0x11 279 280 # CHECK: addme 2, 3 281 0x7c 0x43 0x01 0xd4 282 283 # CHECK: addme. 2, 3 284 0x7c 0x43 0x01 0xd5 285 286 # CHECK: subfme 2, 3 287 0x7c 0x43 0x01 0xd0 288 289 # CHECK: subfme. 2, 3 290 0x7c 0x43 0x01 0xd1 291 292 # CHECK: addze 2, 3 293 0x7c 0x43 0x01 0x94 294 295 # CHECK: addze. 2, 3 296 0x7c 0x43 0x01 0x95 297 298 # CHECK: subfze 2, 3 299 0x7c 0x43 0x01 0x90 300 301 # CHECK: subfze. 2, 3 302 0x7c 0x43 0x01 0x91 303 304 # CHECK: neg 2, 3 305 0x7c 0x43 0x00 0xd0 306 307 # CHECK: neg. 2, 3 308 0x7c 0x43 0x00 0xd1 309 310 # CHECK: mulli 2, 3, 128 311 0x1c 0x43 0x00 0x80 312 313 # CHECK: mulhw 2, 3, 4 314 0x7c 0x43 0x20 0x96 315 316 # CHECK: mulhw. 2, 3, 4 317 0x7c 0x43 0x20 0x97 318 319 # CHECK: mullw 2, 3, 4 320 0x7c 0x43 0x21 0xd6 321 322 # CHECK: mullw. 2, 3, 4 323 0x7c 0x43 0x21 0xd7 324 325 # CHECK: mulhwu 2, 3, 4 326 0x7c 0x43 0x20 0x16 327 328 # CHECK: mulhwu. 2, 3, 4 329 0x7c 0x43 0x20 0x17 330 331 # CHECK: divw 2, 3, 4 332 0x7c 0x43 0x23 0xd6 333 334 # CHECK: divw. 2, 3, 4 335 0x7c 0x43 0x23 0xd7 336 337 # CHECK: divwu 2, 3, 4 338 0x7c 0x43 0x23 0x96 339 340 # CHECK: divwu. 2, 3, 4 341 0x7c 0x43 0x23 0x97 342 343 # CHECK: divwe 2, 3, 4 344 0x7c 0x43 0x23 0x56 345 346 # CHECK: divwe. 2, 3, 4 347 0x7c 0x43 0x23 0x57 348 349 # CHECK: divweu 2, 3, 4 350 0x7c 0x43 0x23 0x16 351 352 # CHECK: divweu. 2, 3, 4 353 0x7c 0x43 0x23 0x17 354 355 # CHECK: mulld 2, 3, 4 356 0x7c 0x43 0x21 0xd2 357 358 # CHECK: mulld. 2, 3, 4 359 0x7c 0x43 0x21 0xd3 360 361 # CHECK: mulhd 2, 3, 4 362 0x7c 0x43 0x20 0x92 363 364 # CHECK: mulhd. 2, 3, 4 365 0x7c 0x43 0x20 0x93 366 367 # CHECK: mulhdu 2, 3, 4 368 0x7c 0x43 0x20 0x12 369 370 # CHECK: mulhdu. 2, 3, 4 371 0x7c 0x43 0x20 0x13 372 373 # CHECK: divd 2, 3, 4 374 0x7c 0x43 0x23 0xd2 375 376 # CHECK: divd. 2, 3, 4 377 0x7c 0x43 0x23 0xd3 378 379 # CHECK: divdu 2, 3, 4 380 0x7c 0x43 0x23 0x92 381 382 # CHECK: divdu. 2, 3, 4 383 0x7c 0x43 0x23 0x93 384 385 # CHECK: divde 2, 3, 4 386 0x7c 0x43 0x23 0x52 387 388 # CHECK: divde. 2, 3, 4 389 0x7c 0x43 0x23 0x53 390 391 # CHECK: divdeu 2, 3, 4 392 0x7c 0x43 0x23 0x12 393 394 # CHECK: divdeu. 2, 3, 4 395 0x7c 0x43 0x23 0x13 396 397 # CHECK: cmpdi 2, 3, 128 398 0x2d 0x23 0x00 0x80 399 400 # CHECK: cmpd 2, 3, 4 401 0x7d 0x23 0x20 0x00 402 403 # CHECK: cmpldi 2, 3, 128 404 0x29 0x23 0x00 0x80 405 406 # CHECK: cmpld 2, 3, 4 407 0x7d 0x23 0x20 0x40 408 409 # CHECK: cmpwi 2, 3, 128 410 0x2d 0x03 0x00 0x80 411 412 # CHECK: cmpw 2, 3, 4 413 0x7d 0x03 0x20 0x00 414 415 # CHECK: cmplwi 2, 3, 128 416 0x29 0x03 0x00 0x80 417 418 # CHECK: cmplw 2, 3, 4 419 0x7d 0x03 0x20 0x40 420 421 # CHECK: cmprb 3, 1, 7, 17 422 0x7d 0xa7 0x89 0x80 423 424 # CHECK: cmpeqb 3, 7, 17 425 0x7d 0x87 0x89 0xc0 426 427 # CHECK: cnttzw 7, 17 428 0x7e 0x27 0x04 0x34 429 430 # CHECK: cnttzw. 7, 17 431 0x7e 0x27 0x04 0x35 432 433 # CHECK: cnttzd 7, 17 434 0x7e 0x27 0x04 0x74 435 436 # CHECK: cnttzd. 7, 17 437 0x7e 0x27 0x04 0x75 438 439 # CHECK: twllti 3, 4 440 0x0c 0x43 0x00 0x04 441 442 # CHECK: twllt 3, 4 443 0x7c 0x43 0x20 0x08 444 445 # CHECK: tdllti 3, 4 446 0x08 0x43 0x00 0x04 447 448 # CHECK: tdllt 3, 4 449 0x7c 0x43 0x20 0x88 450 451 # CHECK: isel 2, 3, 4, 5 452 0x7c 0x43 0x21 0x5e 453 454 # CHECK: andi. 2, 3, 128 455 0x70 0x62 0x00 0x80 456 457 # CHECK: andis. 2, 3, 128 458 0x74 0x62 0x00 0x80 459 460 # CHECK: ori 2, 3, 128 461 0x60 0x62 0x00 0x80 462 463 # CHECK: oris 2, 3, 128 464 0x64 0x62 0x00 0x80 465 466 # CHECK: xori 2, 3, 128 467 0x68 0x62 0x00 0x80 468 469 # CHECK: xoris 2, 3, 128 470 0x6c 0x62 0x00 0x80 471 472 # CHECK: and 2, 3, 4 473 0x7c 0x62 0x20 0x38 474 475 # CHECK: and. 2, 3, 4 476 0x7c 0x62 0x20 0x39 477 478 # CHECK: xor 2, 3, 4 479 0x7c 0x62 0x22 0x78 480 481 # CHECK: xor. 2, 3, 4 482 0x7c 0x62 0x22 0x79 483 484 # CHECK: nand 2, 3, 4 485 0x7c 0x62 0x23 0xb8 486 487 # CHECK: nand. 2, 3, 4 488 0x7c 0x62 0x23 0xb9 489 490 # CHECK: or 2, 3, 4 491 0x7c 0x62 0x23 0x78 492 493 # CHECK: or. 2, 3, 4 494 0x7c 0x62 0x23 0x79 495 496 # CHECK: nor 2, 3, 4 497 0x7c 0x62 0x20 0xf8 498 499 # CHECK: nor. 2, 3, 4 500 0x7c 0x62 0x20 0xf9 501 502 # CHECK: eqv 2, 3, 4 503 0x7c 0x62 0x22 0x38 504 505 # CHECK: eqv. 2, 3, 4 506 0x7c 0x62 0x22 0x39 507 508 # CHECK: andc 2, 3, 4 509 0x7c 0x62 0x20 0x78 510 511 # CHECK: andc. 2, 3, 4 512 0x7c 0x62 0x20 0x79 513 514 # CHECK: orc 2, 3, 4 515 0x7c 0x62 0x23 0x38 516 517 # CHECK: orc. 2, 3, 4 518 0x7c 0x62 0x23 0x39 519 520 # CHECK: extsb 2, 3 521 0x7c 0x62 0x07 0x74 522 523 # CHECK: extsb. 2, 3 524 0x7c 0x62 0x07 0x75 525 526 # CHECK: extsh 2, 3 527 0x7c 0x62 0x07 0x34 528 529 # CHECK: extsh. 2, 3 530 0x7c 0x62 0x07 0x35 531 532 # CHECK: cntlzw 2, 3 533 0x7c 0x62 0x00 0x34 534 535 # CHECK: cntlzw. 2, 3 536 0x7c 0x62 0x00 0x35 537 538 # CHECK: popcntw 2, 3 539 0x7c 0x62 0x02 0xf4 540 541 # CHECK: extsw 2, 3 542 0x7c 0x62 0x07 0xb4 543 544 # CHECK: extsw. 2, 3 545 0x7c 0x62 0x07 0xb5 546 547 # CHECK: cntlzd 2, 3 548 0x7c 0x62 0x00 0x74 549 550 # CHECK: cntlzd. 2, 3 551 0x7c 0x62 0x00 0x75 552 553 # CHECK: popcntd 2, 3 554 0x7c 0x62 0x03 0xf4 555 556 # CHECK: bpermd 2, 3, 4 557 0x7c 0x62 0x21 0xf8 558 559 # CHECK: cmpb 7, 21, 4 560 0x7e 0xa7 0x23 0xf8 561 562 # CHECK: rlwinm 2, 3, 4, 5, 6 563 0x54 0x62 0x21 0x4c 564 565 # CHECK: rlwinm. 2, 3, 4, 5, 6 566 0x54 0x62 0x21 0x4d 567 568 # CHECK: rlwnm 2, 3, 4, 5, 6 569 0x5c 0x62 0x21 0x4c 570 571 # CHECK: rlwnm. 2, 3, 4, 5, 6 572 0x5c 0x62 0x21 0x4d 573 574 # CHECK: rlwimi 2, 3, 4, 5, 6 575 0x50 0x62 0x21 0x4c 576 577 # CHECK: rlwimi. 2, 3, 4, 5, 6 578 0x50 0x62 0x21 0x4d 579 580 # CHECK: rldicl 2, 3, 4, 5 581 0x78 0x62 0x21 0x40 582 583 # CHECK: rldicl. 2, 3, 4, 5 584 0x78 0x62 0x21 0x41 585 586 # CHECK: rldicr 2, 3, 4, 5 587 0x78 0x62 0x21 0x44 588 589 # CHECK: rldicr. 2, 3, 4, 5 590 0x78 0x62 0x21 0x45 591 592 # CHECK: rldic 2, 3, 4, 5 593 0x78 0x62 0x21 0x48 594 595 # CHECK: rldic. 2, 3, 4, 5 596 0x78 0x62 0x21 0x49 597 598 # CHECK: rldcl 2, 3, 4, 5 599 0x78 0x62 0x21 0x50 600 601 # CHECK: rldcl. 2, 3, 4, 5 602 0x78 0x62 0x21 0x51 603 604 # CHECK: rldcr 2, 3, 4, 5 605 0x78 0x62 0x21 0x52 606 607 # CHECK: rldcr. 2, 3, 4, 5 608 0x78 0x62 0x21 0x53 609 610 # CHECK: rldimi 2, 3, 4, 5 611 0x78 0x62 0x21 0x4c 612 613 # CHECK: rldimi. 2, 3, 4, 5 614 0x78 0x62 0x21 0x4d 615 616 # CHECK: slw 2, 3, 4 617 0x7c 0x62 0x20 0x30 618 619 # CHECK: slw. 2, 3, 4 620 0x7c 0x62 0x20 0x31 621 622 # CHECK: srw 2, 3, 4 623 0x7c 0x62 0x24 0x30 624 625 # CHECK: srw. 2, 3, 4 626 0x7c 0x62 0x24 0x31 627 628 # CHECK: srawi 2, 3, 4 629 0x7c 0x62 0x26 0x70 630 631 # CHECK: srawi. 2, 3, 4 632 0x7c 0x62 0x26 0x71 633 634 # CHECK: sraw 2, 3, 4 635 0x7c 0x62 0x26 0x30 636 637 # CHECK: sraw. 2, 3, 4 638 0x7c 0x62 0x26 0x31 639 640 # CHECK: sld 2, 3, 4 641 0x7c 0x62 0x20 0x36 642 643 # CHECK: sld. 2, 3, 4 644 0x7c 0x62 0x20 0x37 645 646 # CHECK: srd 2, 3, 4 647 0x7c 0x62 0x24 0x36 648 649 # CHECK: srd. 2, 3, 4 650 0x7c 0x62 0x24 0x37 651 652 # CHECK: sradi 2, 3, 4 653 0x7c 0x62 0x26 0x74 654 655 # CHECK: sradi. 2, 3, 4 656 0x7c 0x62 0x26 0x75 657 658 # CHECK: srad 2, 3, 4 659 0x7c 0x62 0x26 0x34 660 661 # CHECK: srad. 2, 3, 4 662 0x7c 0x62 0x26 0x35 663 664 # CHECK: mtspr 600, 2 665 0x7c 0x58 0x93 0xa6 666 667 # CHECK: mfspr 2, 600 668 0x7c 0x58 0x92 0xa6 669 670 # CHECK: mtcrf 123, 2 671 0x7c 0x47 0xb1 0x20 672 673 # CHECK: mfcr 2 674 0x7c 0x40 0x00 0x26 675 676 # CHECK: mtocrf 16, 2 677 0x7c 0x51 0x01 0x20 678 679 # CHECK: mfocrf 16, 8 680 0x7e 0x10 0x80 0x26 681 682 # CHECK: mcrxrx 7 683 0x7f 0x80 0x04 0x80 684 685 # CHECK: mtsrin 10, 12 686 0x7d 0x40 0x61 0xe4 687 688 # CHECK: mfsrin 10, 12 689 0x7d 0x40 0x65 0x26 690 691 # CHECK: copy 2, 19, 1 692 0x7c 0x22 0x9e 0x0c 693 694 # CHECK: paste 17, 1, 1 695 0x7c 0x31 0x0f 0x0c 696 697 # CHECK: cp_abort 698 0x7c 0x00 0x06 0x8c 699 700 # CHECK: msgsync 701 0x7c 0x00 0x06 0xec 702 703 # CHECK: slbieg 6, 21 704 0x7c 0xc0 0xab 0xa4 705 706 # CHECK: slbsync 707 0x7c 0x00 0x02 0xa4 708 709 # CHECK: stop 710 0x4c 0x00 0x02 0xe4 711