1 /* ppc-opc.c -- PowerPC opcode list 2 Copyright (C) 1994-2019 Free Software Foundation, Inc. 3 Written by Ian Lance Taylor, Cygnus Support 4 5 This file is part of the GNU opcodes library. 6 7 This library is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3, or (at your option) 10 any later version. 11 12 It is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this file; see the file COPYING. If not, write to the 19 Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, 20 MA 02110-1301, USA. */ 21 22 #include "sysdep.h" 23 #include <stdio.h> 24 #include "opcode/ppc.h" 25 #include "opintl.h" 26 27 /* This file holds the PowerPC opcode table. The opcode table 28 includes almost all of the extended instruction mnemonics. This 29 permits the disassembler to use them, and simplifies the assembler 30 logic, at the cost of increasing the table size. The table is 31 strictly constant data, so the compiler should be able to put it in 32 the text segment. 33 34 This file also holds the operand table. All knowledge about 35 inserting operands into instructions and vice-versa is kept in this 36 file. */ 37 38 /* The functions used to insert and extract complicated operands. */ 39 40 /* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */ 41 42 static uint64_t 43 insert_arx (uint64_t insn, 44 int64_t value, 45 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 46 const char **errmsg ATTRIBUTE_UNUSED) 47 { 48 value -= 8; 49 if (value < 0 || value >= 16) 50 { 51 *errmsg = _("invalid register"); 52 value = 0xf; 53 } 54 return insn | value; 55 } 56 57 static int64_t 58 extract_arx (uint64_t insn, 59 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 60 int *invalid ATTRIBUTE_UNUSED) 61 { 62 return (insn & 0xf) + 8; 63 } 64 65 static uint64_t 66 insert_ary (uint64_t insn, 67 int64_t value, 68 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 69 const char **errmsg ATTRIBUTE_UNUSED) 70 { 71 value -= 8; 72 if (value < 0 || value >= 16) 73 { 74 *errmsg = _("invalid register"); 75 value = 0xf; 76 } 77 return insn | (value << 4); 78 } 79 80 static int64_t 81 extract_ary (uint64_t insn, 82 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 83 int *invalid ATTRIBUTE_UNUSED) 84 { 85 return ((insn >> 4) & 0xf) + 8; 86 } 87 88 static uint64_t 89 insert_rx (uint64_t insn, 90 int64_t value, 91 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 92 const char **errmsg) 93 { 94 if (value >= 0 && value < 8) 95 ; 96 else if (value >= 24 && value <= 31) 97 value -= 16; 98 else 99 { 100 *errmsg = _("invalid register"); 101 value = 0xf; 102 } 103 return insn | value; 104 } 105 106 static int64_t 107 extract_rx (uint64_t insn, 108 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 109 int *invalid ATTRIBUTE_UNUSED) 110 { 111 int64_t value = insn & 0xf; 112 if (value >= 0 && value < 8) 113 return value; 114 else 115 return value + 16; 116 } 117 118 static uint64_t 119 insert_ry (uint64_t insn, 120 int64_t value, 121 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 122 const char **errmsg) 123 { 124 if (value >= 0 && value < 8) 125 ; 126 else if (value >= 24 && value <= 31) 127 value -= 16; 128 else 129 { 130 *errmsg = _("invalid register"); 131 value = 0xf; 132 } 133 return insn | (value << 4); 134 } 135 136 static int64_t 137 extract_ry (uint64_t insn, 138 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 139 int *invalid ATTRIBUTE_UNUSED) 140 { 141 int64_t value = (insn >> 4) & 0xf; 142 if (value >= 0 && value < 8) 143 return value; 144 else 145 return value + 16; 146 } 147 148 /* The BA and BB fields in an XL form instruction or the RA and RB fields or 149 VRA and VRB fields in a VX form instruction when they must be the same. 150 This is used for extended mnemonics like crclr. The extraction function 151 enforces that the fields are the same. */ 152 153 static uint64_t 154 insert_bab (uint64_t insn, 155 int64_t value, 156 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 157 const char **errmsg ATTRIBUTE_UNUSED) 158 { 159 value &= 0x1f; 160 return insn | (value << 16) | (value << 11); 161 } 162 163 static int64_t 164 extract_bab (uint64_t insn, 165 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 166 int *invalid) 167 { 168 int64_t ba = (insn >> 16) & 0x1f; 169 int64_t bb = (insn >> 11) & 0x1f; 170 171 if (ba != bb) 172 *invalid = 1; 173 return ba; 174 } 175 176 /* The BT, BA and BB fields in an XL form instruction when they must all be 177 the same. This is used for extended mnemonics like crclr. The extraction 178 function enforces that the fields are the same. */ 179 180 static uint64_t 181 insert_btab (uint64_t insn, 182 int64_t value, 183 ppc_cpu_t dialect, 184 const char **errmsg) 185 { 186 value &= 0x1f; 187 return (value << 21) | insert_bab (insn, value, dialect, errmsg); 188 } 189 190 static int64_t 191 extract_btab (uint64_t insn, 192 ppc_cpu_t dialect, 193 int *invalid) 194 { 195 int64_t bt = (insn >> 21) & 0x1f; 196 int64_t bab = extract_bab (insn, dialect, invalid); 197 198 if (bt != bab) 199 *invalid = 1; 200 return bt; 201 } 202 203 /* The BD field in a B form instruction when the - modifier is used. 204 This modifier means that the branch is not expected to be taken. 205 For chips built to versions of the architecture prior to version 2 206 (ie. not Power4 compatible), we set the y bit of the BO field to 1 207 if the offset is negative. When extracting, we require that the y 208 bit be 1 and that the offset be positive, since if the y bit is 0 209 we just want to print the normal form of the instruction. 210 Power4 compatible targets use two bits, "a", and "t", instead of 211 the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable, 212 "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001 213 in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000 214 for branch on CTR. We only handle the taken/not-taken hint here. 215 Note that we don't relax the conditions tested here when 216 disassembling with -Many because insns using extract_bdm and 217 extract_bdp always occur in pairs. One or the other will always 218 be valid. */ 219 220 #define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN) 221 222 static uint64_t 223 insert_bdm (uint64_t insn, 224 int64_t value, 225 ppc_cpu_t dialect, 226 const char **errmsg ATTRIBUTE_UNUSED) 227 { 228 if ((dialect & ISA_V2) == 0) 229 { 230 if ((value & 0x8000) != 0) 231 insn |= 1 << 21; 232 } 233 else 234 { 235 if ((insn & (0x14 << 21)) == (0x04 << 21)) 236 insn |= 0x02 << 21; 237 else if ((insn & (0x14 << 21)) == (0x10 << 21)) 238 insn |= 0x08 << 21; 239 } 240 return insn | (value & 0xfffc); 241 } 242 243 static int64_t 244 extract_bdm (uint64_t insn, 245 ppc_cpu_t dialect, 246 int *invalid) 247 { 248 if ((dialect & ISA_V2) == 0) 249 { 250 if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0)) 251 *invalid = 1; 252 } 253 else 254 { 255 if ((insn & (0x17 << 21)) != (0x06 << 21) 256 && (insn & (0x1d << 21)) != (0x18 << 21)) 257 *invalid = 1; 258 } 259 260 return ((insn & 0xfffc) ^ 0x8000) - 0x8000; 261 } 262 263 /* The BD field in a B form instruction when the + modifier is used. 264 This is like BDM, above, except that the branch is expected to be 265 taken. */ 266 267 static uint64_t 268 insert_bdp (uint64_t insn, 269 int64_t value, 270 ppc_cpu_t dialect, 271 const char **errmsg ATTRIBUTE_UNUSED) 272 { 273 if ((dialect & ISA_V2) == 0) 274 { 275 if ((value & 0x8000) == 0) 276 insn |= 1 << 21; 277 } 278 else 279 { 280 if ((insn & (0x14 << 21)) == (0x04 << 21)) 281 insn |= 0x03 << 21; 282 else if ((insn & (0x14 << 21)) == (0x10 << 21)) 283 insn |= 0x09 << 21; 284 } 285 return insn | (value & 0xfffc); 286 } 287 288 static int64_t 289 extract_bdp (uint64_t insn, 290 ppc_cpu_t dialect, 291 int *invalid) 292 { 293 if ((dialect & ISA_V2) == 0) 294 { 295 if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0)) 296 *invalid = 1; 297 } 298 else 299 { 300 if ((insn & (0x17 << 21)) != (0x07 << 21) 301 && (insn & (0x1d << 21)) != (0x19 << 21)) 302 *invalid = 1; 303 } 304 305 return ((insn & 0xfffc) ^ 0x8000) - 0x8000; 306 } 307 308 static inline int 309 valid_bo_pre_v2 (int64_t value) 310 { 311 /* Certain encodings have bits that are required to be zero. 312 These are (z must be zero, y may be anything): 313 0000y 314 0001y 315 001zy 316 0100y 317 0101y 318 011zy 319 1z00y 320 1z01y 321 1z1zz 322 */ 323 if ((value & 0x14) == 0) 324 return 1; 325 else if ((value & 0x14) == 0x4) 326 return (value & 0x2) == 0; 327 else if ((value & 0x14) == 0x10) 328 return (value & 0x8) == 0; 329 else 330 return value == 0x14; 331 } 332 333 static inline int 334 valid_bo_post_v2 (int64_t value) 335 { 336 /* Certain encodings have bits that are required to be zero. 337 These are (z must be zero, a & t may be anything): 338 0000z 339 0001z 340 001at 341 0100z 342 0101z 343 011at 344 1a00t 345 1a01t 346 1z1zz 347 */ 348 if ((value & 0x14) == 0) 349 return (value & 0x1) == 0; 350 else if ((value & 0x14) == 0x14) 351 return value == 0x14; 352 else 353 return 1; 354 } 355 356 /* Check for legal values of a BO field. */ 357 358 static int 359 valid_bo (int64_t value, ppc_cpu_t dialect, int extract) 360 { 361 int valid_y = valid_bo_pre_v2 (value); 362 int valid_at = valid_bo_post_v2 (value); 363 364 /* When disassembling with -Many, accept either encoding on the 365 second pass through opcodes. */ 366 if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY) 367 return valid_y || valid_at; 368 if ((dialect & ISA_V2) == 0) 369 return valid_y; 370 else 371 return valid_at; 372 } 373 374 /* The BO field in a B form instruction. Warn about attempts to set 375 the field to an illegal value. */ 376 377 static uint64_t 378 insert_bo (uint64_t insn, 379 int64_t value, 380 ppc_cpu_t dialect, 381 const char **errmsg) 382 { 383 if (!valid_bo (value, dialect, 0)) 384 *errmsg = _("invalid conditional option"); 385 else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4)) 386 *errmsg = _("invalid counter access"); 387 return insn | ((value & 0x1f) << 21); 388 } 389 390 static int64_t 391 extract_bo (uint64_t insn, 392 ppc_cpu_t dialect, 393 int *invalid) 394 { 395 int64_t value = (insn >> 21) & 0x1f; 396 if (!valid_bo (value, dialect, 1)) 397 *invalid = 1; 398 return value; 399 } 400 401 /* The BO field in a B form instruction when the + or - modifier is 402 used. This is like the BO field, but it must be even. When 403 extracting it, we force it to be even. */ 404 405 static uint64_t 406 insert_boe (uint64_t insn, 407 int64_t value, 408 ppc_cpu_t dialect, 409 const char **errmsg) 410 { 411 if (!valid_bo (value, dialect, 0)) 412 *errmsg = _("invalid conditional option"); 413 else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4)) 414 *errmsg = _("invalid counter access"); 415 else if ((value & 1) != 0) 416 *errmsg = _("attempt to set y bit when using + or - modifier"); 417 418 return insn | ((value & 0x1f) << 21); 419 } 420 421 static int64_t 422 extract_boe (uint64_t insn, 423 ppc_cpu_t dialect, 424 int *invalid) 425 { 426 int64_t value = (insn >> 21) & 0x1f; 427 if (!valid_bo (value, dialect, 1)) 428 *invalid = 1; 429 return value & 0x1e; 430 } 431 432 /* The DCMX field in a X form instruction when the field is split 433 into separate DC, DM and DX fields. */ 434 435 static uint64_t 436 insert_dcmxs (uint64_t insn, 437 int64_t value, 438 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 439 const char **errmsg ATTRIBUTE_UNUSED) 440 { 441 return (insn 442 | ((value & 0x1f) << 16) 443 | ((value & 0x20) >> 3) 444 | (value & 0x40)); 445 } 446 447 static int64_t 448 extract_dcmxs (uint64_t insn, 449 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 450 int *invalid ATTRIBUTE_UNUSED) 451 { 452 return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f); 453 } 454 455 /* The D field in a DX form instruction when the field is split 456 into separate D0, D1 and D2 fields. */ 457 458 static uint64_t 459 insert_dxd (uint64_t insn, 460 int64_t value, 461 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 462 const char **errmsg ATTRIBUTE_UNUSED) 463 { 464 return insn | (value & 0xffc1) | ((value & 0x3e) << 15); 465 } 466 467 static int64_t 468 extract_dxd (uint64_t insn, 469 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 470 int *invalid ATTRIBUTE_UNUSED) 471 { 472 uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e); 473 return (dxd ^ 0x8000) - 0x8000; 474 } 475 476 static uint64_t 477 insert_dxdn (uint64_t insn, 478 int64_t value, 479 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 480 const char **errmsg ATTRIBUTE_UNUSED) 481 { 482 return insert_dxd (insn, -value, dialect, errmsg); 483 } 484 485 static int64_t 486 extract_dxdn (uint64_t insn, 487 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 488 int *invalid) 489 { 490 return -extract_dxd (insn, dialect, invalid); 491 } 492 493 /* FXM mask in mfcr and mtcrf instructions. */ 494 495 static uint64_t 496 insert_fxm (uint64_t insn, 497 int64_t value, 498 ppc_cpu_t dialect, 499 const char **errmsg) 500 { 501 /* If we're handling the mfocrf and mtocrf insns ensure that exactly 502 one bit of the mask field is set. */ 503 if ((insn & (1 << 20)) != 0) 504 { 505 if (value == 0 || (value & -value) != value) 506 { 507 *errmsg = _("invalid mask field"); 508 value = 0; 509 } 510 } 511 512 /* If only one bit of the FXM field is set, we can use the new form 513 of the instruction, which is faster. Unlike the Power4 branch hint 514 encoding, this is not backward compatible. Do not generate the 515 new form unless -mpower4 has been given, or -many and the two 516 operand form of mfcr was used. */ 517 else if (value > 0 518 && (value & -value) == value 519 && ((dialect & PPC_OPCODE_POWER4) != 0 520 || ((dialect & PPC_OPCODE_ANY) != 0 521 && (insn & (0x3ff << 1)) == 19 << 1))) 522 insn |= 1 << 20; 523 524 /* Any other value on mfcr is an error. */ 525 else if ((insn & (0x3ff << 1)) == 19 << 1) 526 { 527 /* A value of -1 means we used the one operand form of 528 mfcr which is valid. */ 529 if (value != -1) 530 *errmsg = _("invalid mfcr mask"); 531 value = 0; 532 } 533 534 return insn | ((value & 0xff) << 12); 535 } 536 537 static int64_t 538 extract_fxm (uint64_t insn, 539 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 540 int *invalid) 541 { 542 /* Return a value of -1 for a missing optional operand, which is 543 used as a flag by insert_fxm. */ 544 if (*invalid < 0) 545 return -1; 546 547 int64_t mask = (insn >> 12) & 0xff; 548 /* Is this a Power4 insn? */ 549 if ((insn & (1 << 20)) != 0) 550 { 551 /* Exactly one bit of MASK should be set. */ 552 if (mask == 0 || (mask & -mask) != mask) 553 *invalid = 1; 554 } 555 556 /* Check that non-power4 form of mfcr has a zero MASK. */ 557 else if ((insn & (0x3ff << 1)) == 19 << 1) 558 { 559 if (mask != 0) 560 *invalid = 1; 561 else 562 mask = -1; 563 } 564 565 return mask; 566 } 567 568 static uint64_t 569 insert_li20 (uint64_t insn, 570 int64_t value, 571 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 572 const char **errmsg ATTRIBUTE_UNUSED) 573 { 574 return (insn 575 | ((value & 0xf0000) >> 5) 576 | ((value & 0x0f800) << 5) 577 | (value & 0x7ff)); 578 } 579 580 static int64_t 581 extract_li20 (uint64_t insn, 582 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 583 int *invalid ATTRIBUTE_UNUSED) 584 { 585 return ((((insn << 5) & 0xf0000) 586 | ((insn >> 5) & 0xf800) 587 | (insn & 0x7ff)) ^ 0x80000) - 0x80000; 588 } 589 590 /* The 2-bit L field in a SYNC or WC field in a WAIT instruction. 591 For SYNC, some L values are reserved: 592 * Value 3 is reserved on newer server cpus. 593 * Values 2 and 3 are reserved on all other cpus. */ 594 595 static uint64_t 596 insert_ls (uint64_t insn, 597 int64_t value, 598 ppc_cpu_t dialect, 599 const char **errmsg) 600 { 601 /* For SYNC, some L values are illegal. */ 602 if (((insn >> 1) & 0x3ff) == 598) 603 { 604 int64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1; 605 if (value > max_lvalue) 606 *errmsg = _("illegal L operand value"); 607 } 608 609 return insn | ((value & 0x3) << 21); 610 } 611 612 static int64_t 613 extract_ls (uint64_t insn, 614 ppc_cpu_t dialect, 615 int *invalid) 616 { 617 /* Missing optional operands have a value of zero. */ 618 if (*invalid < 0) 619 return 0; 620 621 uint64_t lvalue = (insn >> 21) & 3; 622 if (((insn >> 1) & 0x3ff) == 598) 623 { 624 uint64_t max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1; 625 if (lvalue > max_lvalue) 626 *invalid = 1; 627 } 628 return lvalue; 629 } 630 631 /* The 4-bit E field in a sync instruction that accepts 2 operands. 632 If ESYNC is non-zero, then the L field must be either 0 or 1 and 633 the complement of ESYNC-bit2. */ 634 635 static uint64_t 636 insert_esync (uint64_t insn, 637 int64_t value, 638 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 639 const char **errmsg) 640 { 641 uint64_t ls = (insn >> 21) & 0x03; 642 643 if (value != 0 644 && ((~value >> 1) & 0x1) != ls) 645 *errmsg = _("incompatible L operand value"); 646 647 return insn | ((value & 0xf) << 16); 648 } 649 650 static int64_t 651 extract_esync (uint64_t insn, 652 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 653 int *invalid) 654 { 655 if (*invalid < 0) 656 return 0; 657 658 uint64_t ls = (insn >> 21) & 0x3; 659 uint64_t value = (insn >> 16) & 0xf; 660 if (value != 0 661 && ((~value >> 1) & 0x1) != ls) 662 *invalid = 1; 663 return value; 664 } 665 666 /* The MB and ME fields in an M form instruction expressed as a single 667 operand which is itself a bitmask. The extraction function always 668 marks it as invalid, since we never want to recognize an 669 instruction which uses a field of this type. */ 670 671 static uint64_t 672 insert_mbe (uint64_t insn, 673 int64_t value, 674 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 675 const char **errmsg) 676 { 677 uint64_t uval, mask; 678 long mb, me, mx, count, last; 679 680 uval = value; 681 682 if (uval == 0) 683 { 684 *errmsg = _("illegal bitmask"); 685 return insn; 686 } 687 688 mb = 0; 689 me = 32; 690 if ((uval & 1) != 0) 691 last = 1; 692 else 693 last = 0; 694 count = 0; 695 696 /* mb: location of last 0->1 transition */ 697 /* me: location of last 1->0 transition */ 698 /* count: # transitions */ 699 700 for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1) 701 { 702 if ((uval & mask) && !last) 703 { 704 ++count; 705 mb = mx; 706 last = 1; 707 } 708 else if (!(uval & mask) && last) 709 { 710 ++count; 711 me = mx; 712 last = 0; 713 } 714 } 715 if (me == 0) 716 me = 32; 717 718 if (count != 2 && (count != 0 || ! last)) 719 *errmsg = _("illegal bitmask"); 720 721 return insn | (mb << 6) | ((me - 1) << 1); 722 } 723 724 static int64_t 725 extract_mbe (uint64_t insn, 726 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 727 int *invalid) 728 { 729 int64_t ret; 730 long mb, me; 731 long i; 732 733 *invalid = 1; 734 735 mb = (insn >> 6) & 0x1f; 736 me = (insn >> 1) & 0x1f; 737 if (mb < me + 1) 738 { 739 ret = 0; 740 for (i = mb; i <= me; i++) 741 ret |= (uint64_t) 1 << (31 - i); 742 } 743 else if (mb == me + 1) 744 ret = ~0; 745 else /* (mb > me + 1) */ 746 { 747 ret = ~0; 748 for (i = me + 1; i < mb; i++) 749 ret &= ~((uint64_t) 1 << (31 - i)); 750 } 751 return ret; 752 } 753 754 /* The MB or ME field in an MD or MDS form instruction. The high bit 755 is wrapped to the low end. */ 756 757 static uint64_t 758 insert_mb6 (uint64_t insn, 759 int64_t value, 760 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 761 const char **errmsg ATTRIBUTE_UNUSED) 762 { 763 return insn | ((value & 0x1f) << 6) | (value & 0x20); 764 } 765 766 static int64_t 767 extract_mb6 (uint64_t insn, 768 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 769 int *invalid ATTRIBUTE_UNUSED) 770 { 771 return ((insn >> 6) & 0x1f) | (insn & 0x20); 772 } 773 774 /* The NB field in an X form instruction. The value 32 is stored as 775 0. */ 776 777 static int64_t 778 extract_nb (uint64_t insn, 779 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 780 int *invalid ATTRIBUTE_UNUSED) 781 { 782 int64_t ret; 783 784 ret = (insn >> 11) & 0x1f; 785 if (ret == 0) 786 ret = 32; 787 return ret; 788 } 789 790 /* The NB field in an lswi instruction, which has special value 791 restrictions. The value 32 is stored as 0. */ 792 793 static uint64_t 794 insert_nbi (uint64_t insn, 795 int64_t value, 796 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 797 const char **errmsg ATTRIBUTE_UNUSED) 798 { 799 int64_t rtvalue = (insn >> 21) & 0x1f; 800 int64_t ravalue = (insn >> 16) & 0x1f; 801 802 if (value == 0) 803 value = 32; 804 if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32 805 : ravalue)) 806 *errmsg = _("address register in load range"); 807 return insn | ((value & 0x1f) << 11); 808 } 809 810 /* The NSI field in a D form instruction. This is the same as the SI 811 field, only negated. The extraction function always marks it as 812 invalid, since we never want to recognize an instruction which uses 813 a field of this type. */ 814 815 static uint64_t 816 insert_nsi (uint64_t insn, 817 int64_t value, 818 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 819 const char **errmsg ATTRIBUTE_UNUSED) 820 { 821 return insn | (-value & 0xffff); 822 } 823 824 static int64_t 825 extract_nsi (uint64_t insn, 826 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 827 int *invalid) 828 { 829 *invalid = 1; 830 return -(((insn & 0xffff) ^ 0x8000) - 0x8000); 831 } 832 833 /* The RA field in a D or X form instruction which is an updating 834 load, which means that the RA field may not be zero and may not 835 equal the RT field. */ 836 837 static uint64_t 838 insert_ral (uint64_t insn, 839 int64_t value, 840 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 841 const char **errmsg) 842 { 843 if (value == 0 844 || (uint64_t) value == ((insn >> 21) & 0x1f)) 845 *errmsg = "invalid register operand when updating"; 846 return insn | ((value & 0x1f) << 16); 847 } 848 849 static int64_t 850 extract_ral (uint64_t insn, 851 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 852 int *invalid) 853 { 854 int64_t rtvalue = (insn >> 21) & 0x1f; 855 int64_t ravalue = (insn >> 16) & 0x1f; 856 857 if (rtvalue == ravalue || ravalue == 0) 858 *invalid = 1; 859 return ravalue; 860 } 861 862 /* The RA field in an lmw instruction, which has special value 863 restrictions. */ 864 865 static uint64_t 866 insert_ram (uint64_t insn, 867 int64_t value, 868 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 869 const char **errmsg) 870 { 871 if ((uint64_t) value >= ((insn >> 21) & 0x1f)) 872 *errmsg = _("index register in load range"); 873 return insn | ((value & 0x1f) << 16); 874 } 875 876 static int64_t 877 extract_ram (uint64_t insn, 878 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 879 int *invalid) 880 { 881 uint64_t rtvalue = (insn >> 21) & 0x1f; 882 uint64_t ravalue = (insn >> 16) & 0x1f; 883 884 if (ravalue >= rtvalue) 885 *invalid = 1; 886 return ravalue; 887 } 888 889 /* The RA field in the DQ form lq or an lswx instruction, which have special 890 value restrictions. */ 891 892 static uint64_t 893 insert_raq (uint64_t insn, 894 int64_t value, 895 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 896 const char **errmsg) 897 { 898 int64_t rtvalue = (insn >> 21) & 0x1f; 899 900 if (value == rtvalue) 901 *errmsg = _("source and target register operands must be different"); 902 return insn | ((value & 0x1f) << 16); 903 } 904 905 static int64_t 906 extract_raq (uint64_t insn, 907 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 908 int *invalid) 909 { 910 if (*invalid < 0) 911 return 0; 912 913 uint64_t rtvalue = (insn >> 21) & 0x1f; 914 uint64_t ravalue = (insn >> 16) & 0x1f; 915 if (ravalue == rtvalue) 916 *invalid = 1; 917 return ravalue; 918 } 919 920 /* The RA field in a D or X form instruction which is an updating 921 store or an updating floating point load, which means that the RA 922 field may not be zero. */ 923 924 static uint64_t 925 insert_ras (uint64_t insn, 926 int64_t value, 927 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 928 const char **errmsg) 929 { 930 if (value == 0) 931 *errmsg = _("invalid register operand when updating"); 932 return insn | ((value & 0x1f) << 16); 933 } 934 935 static int64_t 936 extract_ras (uint64_t insn, 937 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 938 int *invalid) 939 { 940 uint64_t ravalue = (insn >> 16) & 0x1f; 941 942 if (ravalue == 0) 943 *invalid = 1; 944 return ravalue; 945 } 946 947 /* The RS and RB fields in an X form instruction when they must be the same. 948 This is used for extended mnemonics like mr. The extraction function 949 enforces that the fields are the same. */ 950 951 static uint64_t 952 insert_rsb (uint64_t insn, 953 int64_t value, 954 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 955 const char **errmsg ATTRIBUTE_UNUSED) 956 { 957 value &= 0x1f; 958 return insn | (value << 21) | (value << 11); 959 } 960 961 static int64_t 962 extract_rsb (uint64_t insn, 963 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 964 int *invalid) 965 { 966 int64_t rs = (insn >> 21) & 0x1f; 967 int64_t rb = (insn >> 11) & 0x1f; 968 969 if (rs != rb) 970 *invalid = 1; 971 return rs; 972 } 973 974 /* The RB field in an lswx instruction, which has special value 975 restrictions. */ 976 977 static uint64_t 978 insert_rbx (uint64_t insn, 979 int64_t value, 980 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 981 const char **errmsg) 982 { 983 int64_t rtvalue = (insn >> 21) & 0x1f; 984 985 if (value == rtvalue) 986 *errmsg = _("source and target register operands must be different"); 987 return insn | ((value & 0x1f) << 11); 988 } 989 990 static int64_t 991 extract_rbx (uint64_t insn, 992 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 993 int *invalid) 994 { 995 uint64_t rtvalue = (insn >> 21) & 0x1f; 996 uint64_t rbvalue = (insn >> 11) & 0x1f; 997 998 if (rbvalue == rtvalue) 999 *invalid = 1; 1000 return rbvalue; 1001 } 1002 1003 /* The SCI8 field is made up of SCL and {U,N}I8 fields. */ 1004 static uint64_t 1005 insert_sci8 (uint64_t insn, 1006 int64_t value, 1007 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1008 const char **errmsg) 1009 { 1010 uint64_t fill_scale = 0; 1011 uint64_t ui8 = value; 1012 1013 if ((ui8 & 0xffffff00) == 0) 1014 ; 1015 else if ((ui8 & 0xffffff00) == 0xffffff00) 1016 fill_scale = 0x400; 1017 else if ((ui8 & 0xffff00ff) == 0) 1018 { 1019 fill_scale = 1 << 8; 1020 ui8 >>= 8; 1021 } 1022 else if ((ui8 & 0xffff00ff) == 0xffff00ff) 1023 { 1024 fill_scale = 0x400 | (1 << 8); 1025 ui8 >>= 8; 1026 } 1027 else if ((ui8 & 0xff00ffff) == 0) 1028 { 1029 fill_scale = 2 << 8; 1030 ui8 >>= 16; 1031 } 1032 else if ((ui8 & 0xff00ffff) == 0xff00ffff) 1033 { 1034 fill_scale = 0x400 | (2 << 8); 1035 ui8 >>= 16; 1036 } 1037 else if ((ui8 & 0x00ffffff) == 0) 1038 { 1039 fill_scale = 3 << 8; 1040 ui8 >>= 24; 1041 } 1042 else if ((ui8 & 0x00ffffff) == 0x00ffffff) 1043 { 1044 fill_scale = 0x400 | (3 << 8); 1045 ui8 >>= 24; 1046 } 1047 else 1048 { 1049 *errmsg = _("illegal immediate value"); 1050 ui8 = 0; 1051 } 1052 1053 return insn | fill_scale | (ui8 & 0xff); 1054 } 1055 1056 static int64_t 1057 extract_sci8 (uint64_t insn, 1058 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1059 int *invalid ATTRIBUTE_UNUSED) 1060 { 1061 int64_t fill = insn & 0x400; 1062 int64_t scale_factor = (insn & 0x300) >> 5; 1063 int64_t value = (insn & 0xff) << scale_factor; 1064 1065 if (fill != 0) 1066 value |= ~((int64_t) 0xff << scale_factor); 1067 return value; 1068 } 1069 1070 static uint64_t 1071 insert_sci8n (uint64_t insn, 1072 int64_t value, 1073 ppc_cpu_t dialect, 1074 const char **errmsg) 1075 { 1076 return insert_sci8 (insn, -value, dialect, errmsg); 1077 } 1078 1079 static int64_t 1080 extract_sci8n (uint64_t insn, 1081 ppc_cpu_t dialect, 1082 int *invalid) 1083 { 1084 return -extract_sci8 (insn, dialect, invalid); 1085 } 1086 1087 static uint64_t 1088 insert_oimm (uint64_t insn, 1089 int64_t value, 1090 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1091 const char **errmsg ATTRIBUTE_UNUSED) 1092 { 1093 return insn | (((value - 1) & 0x1f) << 4); 1094 } 1095 1096 static int64_t 1097 extract_oimm (uint64_t insn, 1098 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1099 int *invalid ATTRIBUTE_UNUSED) 1100 { 1101 return ((insn >> 4) & 0x1f) + 1; 1102 } 1103 1104 /* The SH field in an MD form instruction. This is split. */ 1105 1106 static uint64_t 1107 insert_sh6 (uint64_t insn, 1108 int64_t value, 1109 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1110 const char **errmsg ATTRIBUTE_UNUSED) 1111 { 1112 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4); 1113 } 1114 1115 static int64_t 1116 extract_sh6 (uint64_t insn, 1117 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1118 int *invalid ATTRIBUTE_UNUSED) 1119 { 1120 return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20); 1121 } 1122 1123 /* The SPR field in an XFX form instruction. This is flipped--the 1124 lower 5 bits are stored in the upper 5 and vice- versa. */ 1125 1126 static uint64_t 1127 insert_spr (uint64_t insn, 1128 int64_t value, 1129 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1130 const char **errmsg ATTRIBUTE_UNUSED) 1131 { 1132 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); 1133 } 1134 1135 static int64_t 1136 extract_spr (uint64_t insn, 1137 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1138 int *invalid ATTRIBUTE_UNUSED) 1139 { 1140 return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); 1141 } 1142 1143 /* Some dialects have 8 [DI]BAT registers instead of the standard 4. */ 1144 #define ALLOW8_BAT (PPC_OPCODE_750) 1145 1146 static uint64_t 1147 insert_sprbat (uint64_t insn, 1148 int64_t value, 1149 ppc_cpu_t dialect, 1150 const char **errmsg) 1151 { 1152 if ((uint64_t) value > 7 1153 || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0)) 1154 *errmsg = _("invalid bat number"); 1155 1156 /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543. */ 1157 if ((uint64_t) value > 3) 1158 value = ((value & 3) << 6) | 1; 1159 else 1160 value = value << 6; 1161 1162 return insn | (value << 11); 1163 } 1164 1165 static int64_t 1166 extract_sprbat (uint64_t insn, 1167 ppc_cpu_t dialect, 1168 int *invalid) 1169 { 1170 uint64_t val = (insn >> 17) & 0x3; 1171 1172 val = val + ((insn >> 9) & 0x4); 1173 if (val > 3 && (dialect & ALLOW8_BAT) == 0) 1174 *invalid = 1; 1175 return val; 1176 } 1177 1178 /* Some dialects have 8 SPRG registers instead of the standard 4. */ 1179 #define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405) 1180 1181 static uint64_t 1182 insert_sprg (uint64_t insn, 1183 int64_t value, 1184 ppc_cpu_t dialect, 1185 const char **errmsg) 1186 { 1187 if ((uint64_t) value > 7 1188 || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0)) 1189 *errmsg = _("invalid sprg number"); 1190 1191 /* If this is mfsprg4..7 then use spr 260..263 which can be read in 1192 user mode. Anything else must use spr 272..279. */ 1193 if ((uint64_t) value <= 3 || (insn & 0x100) != 0) 1194 value |= 0x10; 1195 1196 return insn | ((value & 0x17) << 16); 1197 } 1198 1199 static int64_t 1200 extract_sprg (uint64_t insn, 1201 ppc_cpu_t dialect, 1202 int *invalid) 1203 { 1204 uint64_t val = (insn >> 16) & 0x1f; 1205 1206 /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279 1207 If not BOOKE, 405 or VLE, then both use only 272..275. */ 1208 if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0) 1209 || (val - 0x10 > 7 && (insn & 0x100) != 0) 1210 || val <= 3 1211 || (val & 8) != 0) 1212 *invalid = 1; 1213 return val & 7; 1214 } 1215 1216 /* The TBR field in an XFX instruction. This is just like SPR, but it 1217 is optional. */ 1218 1219 static uint64_t 1220 insert_tbr (uint64_t insn, 1221 int64_t value, 1222 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1223 const char **errmsg) 1224 { 1225 if (value != 268 && value != 269) 1226 *errmsg = _("invalid tbr number"); 1227 return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); 1228 } 1229 1230 static int64_t 1231 extract_tbr (uint64_t insn, 1232 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1233 int *invalid) 1234 { 1235 if (*invalid < 0) 1236 return 268; 1237 1238 int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); 1239 if (ret != 268 && ret != 269) 1240 *invalid = 1; 1241 return ret; 1242 } 1243 1244 /* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */ 1245 1246 static uint64_t 1247 insert_xt6 (uint64_t insn, 1248 int64_t value, 1249 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1250 const char **errmsg ATTRIBUTE_UNUSED) 1251 { 1252 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5); 1253 } 1254 1255 static int64_t 1256 extract_xt6 (uint64_t insn, 1257 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1258 int *invalid ATTRIBUTE_UNUSED) 1259 { 1260 return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f); 1261 } 1262 1263 /* The XT and XS fields in an DQ form VSX instruction. This is split. */ 1264 static uint64_t 1265 insert_xtq6 (uint64_t insn, 1266 int64_t value, 1267 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1268 const char **errmsg ATTRIBUTE_UNUSED) 1269 { 1270 return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2); 1271 } 1272 1273 static int64_t 1274 extract_xtq6 (uint64_t insn, 1275 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1276 int *invalid ATTRIBUTE_UNUSED) 1277 { 1278 return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f); 1279 } 1280 1281 /* The XA field in an XX3 form instruction. This is split. */ 1282 1283 static uint64_t 1284 insert_xa6 (uint64_t insn, 1285 int64_t value, 1286 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1287 const char **errmsg ATTRIBUTE_UNUSED) 1288 { 1289 return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3); 1290 } 1291 1292 static int64_t 1293 extract_xa6 (uint64_t insn, 1294 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1295 int *invalid ATTRIBUTE_UNUSED) 1296 { 1297 return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f); 1298 } 1299 1300 /* The XB field in an XX3 form instruction. This is split. */ 1301 1302 static uint64_t 1303 insert_xb6 (uint64_t insn, 1304 int64_t value, 1305 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1306 const char **errmsg ATTRIBUTE_UNUSED) 1307 { 1308 return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4); 1309 } 1310 1311 static int64_t 1312 extract_xb6 (uint64_t insn, 1313 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1314 int *invalid ATTRIBUTE_UNUSED) 1315 { 1316 return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f); 1317 } 1318 1319 /* The XA and XB fields in an XX3 form instruction when they must be the same. 1320 This is used for extended mnemonics like xvmovdp. The extraction function 1321 enforces that the fields are the same. */ 1322 1323 static uint64_t 1324 insert_xab6 (uint64_t insn, 1325 int64_t value, 1326 ppc_cpu_t dialect, 1327 const char **errmsg) 1328 { 1329 return insert_xa6 (insn, value, dialect, errmsg) 1330 | insert_xb6 (insn, value, dialect, errmsg); 1331 } 1332 1333 static int64_t 1334 extract_xab6 (uint64_t insn, 1335 ppc_cpu_t dialect, 1336 int *invalid) 1337 { 1338 int64_t xa6 = extract_xa6 (insn, dialect, invalid); 1339 int64_t xb6 = extract_xb6 (insn, dialect, invalid); 1340 1341 if (xa6 != xb6) 1342 *invalid = 1; 1343 return xa6; 1344 } 1345 1346 /* The XC field in an XX4 form instruction. This is split. */ 1347 1348 static uint64_t 1349 insert_xc6 (uint64_t insn, 1350 int64_t value, 1351 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1352 const char **errmsg ATTRIBUTE_UNUSED) 1353 { 1354 return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2); 1355 } 1356 1357 static int64_t 1358 extract_xc6 (uint64_t insn, 1359 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1360 int *invalid ATTRIBUTE_UNUSED) 1361 { 1362 return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f); 1363 } 1364 1365 static uint64_t 1366 insert_dm (uint64_t insn, 1367 int64_t value, 1368 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1369 const char **errmsg) 1370 { 1371 if (value != 0 && value != 1) 1372 *errmsg = _("invalid constant"); 1373 return insn | (((value) ? 3 : 0) << 8); 1374 } 1375 1376 static int64_t 1377 extract_dm (uint64_t insn, 1378 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1379 int *invalid) 1380 { 1381 int64_t value = (insn >> 8) & 3; 1382 if (value != 0 && value != 3) 1383 *invalid = 1; 1384 return (value) ? 1 : 0; 1385 } 1386 1387 /* The VLESIMM field in an I16A form instruction. This is split. */ 1388 1389 static uint64_t 1390 insert_vlesi (uint64_t insn, 1391 int64_t value, 1392 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1393 const char **errmsg ATTRIBUTE_UNUSED) 1394 { 1395 return insn | ((value & 0xf800) << 10) | (value & 0x7ff); 1396 } 1397 1398 static int64_t 1399 extract_vlesi (uint64_t insn, 1400 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1401 int *invalid ATTRIBUTE_UNUSED) 1402 { 1403 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff); 1404 value = (value ^ 0x8000) - 0x8000; 1405 return value; 1406 } 1407 1408 static uint64_t 1409 insert_vlensi (uint64_t insn, 1410 int64_t value, 1411 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1412 const char **errmsg ATTRIBUTE_UNUSED) 1413 { 1414 value = -value; 1415 return insn | ((value & 0xf800) << 10) | (value & 0x7ff); 1416 } 1417 static int64_t 1418 extract_vlensi (uint64_t insn, 1419 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1420 int *invalid) 1421 { 1422 int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff); 1423 value = (value ^ 0x8000) - 0x8000; 1424 /* Don't use for disassembly. */ 1425 *invalid = 1; 1426 return -value; 1427 } 1428 1429 /* The VLEUIMM field in an I16A form instruction. This is split. */ 1430 1431 static uint64_t 1432 insert_vleui (uint64_t insn, 1433 int64_t value, 1434 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1435 const char **errmsg ATTRIBUTE_UNUSED) 1436 { 1437 return insn | ((value & 0xf800) << 10) | (value & 0x7ff); 1438 } 1439 1440 static int64_t 1441 extract_vleui (uint64_t insn, 1442 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1443 int *invalid ATTRIBUTE_UNUSED) 1444 { 1445 return ((insn >> 10) & 0xf800) | (insn & 0x7ff); 1446 } 1447 1448 /* The VLEUIMML field in an I16L form instruction. This is split. */ 1449 1450 static uint64_t 1451 insert_vleil (uint64_t insn, 1452 int64_t value, 1453 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1454 const char **errmsg ATTRIBUTE_UNUSED) 1455 { 1456 return insn | ((value & 0xf800) << 5) | (value & 0x7ff); 1457 } 1458 1459 static int64_t 1460 extract_vleil (uint64_t insn, 1461 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1462 int *invalid ATTRIBUTE_UNUSED) 1463 { 1464 return ((insn >> 5) & 0xf800) | (insn & 0x7ff); 1465 } 1466 1467 static uint64_t 1468 insert_evuimm1_ex0 (uint64_t insn, 1469 int64_t value, 1470 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1471 const char **errmsg) 1472 { 1473 if (value <= 0 || value > 0x1f) 1474 *errmsg = _("UIMM = 00000 is illegal"); 1475 return insn | ((value & 0x1f) << 11); 1476 } 1477 1478 static int64_t 1479 extract_evuimm1_ex0 (uint64_t insn, 1480 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1481 int *invalid) 1482 { 1483 int64_t value = ((insn >> 11) & 0x1f); 1484 if (value == 0) 1485 *invalid = 1; 1486 1487 return value; 1488 } 1489 1490 static uint64_t 1491 insert_evuimm2_ex0 (uint64_t insn, 1492 int64_t value, 1493 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1494 const char **errmsg) 1495 { 1496 if (value <= 0 || value > 0x3e) 1497 *errmsg = _("UIMM = 00000 is illegal"); 1498 return insn | ((value & 0x3e) << 10); 1499 } 1500 1501 static int64_t 1502 extract_evuimm2_ex0 (uint64_t insn, 1503 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1504 int *invalid) 1505 { 1506 int64_t value = ((insn >> 10) & 0x3e); 1507 if (value == 0) 1508 *invalid = 1; 1509 1510 return value; 1511 } 1512 1513 static uint64_t 1514 insert_evuimm4_ex0 (uint64_t insn, 1515 int64_t value, 1516 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1517 const char **errmsg) 1518 { 1519 if (value <= 0 || value > 0x7c) 1520 *errmsg = _("UIMM = 00000 is illegal"); 1521 return insn | ((value & 0x7c) << 9); 1522 } 1523 1524 static int64_t 1525 extract_evuimm4_ex0 (uint64_t insn, 1526 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1527 int *invalid) 1528 { 1529 int64_t value = ((insn >> 9) & 0x7c); 1530 if (value == 0) 1531 *invalid = 1; 1532 1533 return value; 1534 } 1535 1536 static uint64_t 1537 insert_evuimm8_ex0 (uint64_t insn, 1538 int64_t value, 1539 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1540 const char **errmsg) 1541 { 1542 if (value <= 0 || value > 0xf8) 1543 *errmsg = _("UIMM = 00000 is illegal"); 1544 return insn | ((value & 0xf8) << 8); 1545 } 1546 1547 static int64_t 1548 extract_evuimm8_ex0 (uint64_t insn, 1549 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1550 int *invalid) 1551 { 1552 int64_t value = ((insn >> 8) & 0xf8); 1553 if (value == 0) 1554 *invalid = 1; 1555 1556 return value; 1557 } 1558 1559 static uint64_t 1560 insert_evuimm_lt8 (uint64_t insn, 1561 int64_t value, 1562 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1563 const char **errmsg) 1564 { 1565 if (value < 0 || value > 7) 1566 *errmsg = _("UIMM values >7 are illegal"); 1567 return insn | ((value & 0x7) << 11); 1568 } 1569 1570 static int64_t 1571 extract_evuimm_lt8 (uint64_t insn, 1572 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1573 int *invalid) 1574 { 1575 int64_t value = ((insn >> 11) & 0x1f); 1576 if (value > 7) 1577 *invalid = 1; 1578 1579 return value; 1580 } 1581 1582 static uint64_t 1583 insert_evuimm_lt16 (uint64_t insn, 1584 int64_t value, 1585 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1586 const char **errmsg) 1587 { 1588 if (value < 0 || value > 15) 1589 *errmsg = _("UIMM values >15 are illegal"); 1590 return insn | ((value & 0xf) << 11); 1591 } 1592 1593 static int64_t 1594 extract_evuimm_lt16 (uint64_t insn, 1595 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1596 int *invalid) 1597 { 1598 int64_t value = ((insn >> 11) & 0x1f); 1599 if (value > 15) 1600 *invalid = 1; 1601 1602 return value; 1603 } 1604 1605 static uint64_t 1606 insert_rD_rS_even (uint64_t insn, 1607 int64_t value, 1608 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1609 const char **errmsg) 1610 { 1611 if ((value & 0x1) != 0) 1612 *errmsg = _("GPR odd is illegal"); 1613 return insn | ((value & 0x1e) << 21); 1614 } 1615 1616 static int64_t 1617 extract_rD_rS_even (uint64_t insn, 1618 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1619 int *invalid) 1620 { 1621 int64_t value = ((insn >> 21) & 0x1f); 1622 if ((value & 0x1) != 0) 1623 *invalid = 1; 1624 1625 return value; 1626 } 1627 1628 static uint64_t 1629 insert_off_lsp (uint64_t insn, 1630 int64_t value, 1631 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1632 const char **errmsg) 1633 { 1634 if (value <= 0 || value > 0x3) 1635 *errmsg = _("invalid offset"); 1636 return insn | (value & 0x3); 1637 } 1638 1639 static int64_t 1640 extract_off_lsp (uint64_t insn, 1641 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1642 int *invalid) 1643 { 1644 int64_t value = (insn & 0x3); 1645 if (value == 0) 1646 *invalid = 1; 1647 1648 return value; 1649 } 1650 1651 static uint64_t 1652 insert_off_spe2 (uint64_t insn, 1653 int64_t value, 1654 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1655 const char **errmsg) 1656 { 1657 if (value <= 0 || value > 0x7) 1658 *errmsg = _("invalid offset"); 1659 return insn | (value & 0x7); 1660 } 1661 1662 static int64_t 1663 extract_off_spe2 (uint64_t insn, 1664 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1665 int *invalid) 1666 { 1667 int64_t value = (insn & 0x7); 1668 if (value == 0) 1669 *invalid = 1; 1670 1671 return value; 1672 } 1673 1674 static uint64_t 1675 insert_Ddd (uint64_t insn, 1676 int64_t value, 1677 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1678 const char **errmsg) 1679 { 1680 if (value < 0 || value > 0x7) 1681 *errmsg = _("invalid Ddd value"); 1682 return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2); 1683 } 1684 1685 static int64_t 1686 extract_Ddd (uint64_t insn, 1687 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1688 int *invalid ATTRIBUTE_UNUSED) 1689 { 1690 return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4); 1691 } 1692 1693 static uint64_t 1694 insert_sxl (uint64_t insn, 1695 int64_t value, 1696 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1697 const char **errmsg ATTRIBUTE_UNUSED) 1698 { 1699 return insn | ((value & 0x1) << 11); 1700 } 1701 1702 static int64_t 1703 extract_sxl (uint64_t insn, 1704 ppc_cpu_t dialect ATTRIBUTE_UNUSED, 1705 int *invalid) 1706 { 1707 if (*invalid < 0) 1708 return 1; 1709 return (insn >> 11) & 0x1; 1710 } 1711 1712 /* The operands table. 1713 1714 The fields are bitm, shift, insert, extract, flags. 1715 1716 We used to put parens around the various additions, like the one 1717 for BA just below. However, that caused trouble with feeble 1718 compilers with a limit on depth of a parenthesized expression, like 1719 (reportedly) the compiler in Microsoft Developer Studio 5. So we 1720 omit the parens, since the macros are never used in a context where 1721 the addition will be ambiguous. */ 1722 1723 const struct powerpc_operand powerpc_operands[] = 1724 { 1725 /* The zero index is used to indicate the end of the list of 1726 operands. */ 1727 #define UNUSED 0 1728 { 0, 0, NULL, NULL, 0 }, 1729 1730 /* The BA field in an XL form instruction. */ 1731 #define BA UNUSED + 1 1732 /* The BI field in a B form or XL form instruction. */ 1733 #define BI BA 1734 #define BI_MASK (0x1f << 16) 1735 { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT }, 1736 1737 /* The BT, BA and BB fields in a XL form instruction when they must all 1738 be the same. */ 1739 #define BTAB BA + 1 1740 { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT }, 1741 1742 /* The BB field in an XL form instruction. */ 1743 #define BB BTAB + 1 1744 #define BB_MASK (0x1f << 11) 1745 { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT }, 1746 1747 /* The BA and BB fields in a XL form instruction when they must be 1748 the same. */ 1749 #define BAB BB + 1 1750 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT }, 1751 1752 /* The VRA and VRB fields in a VX form instruction when they must be the same. 1753 This is used for extended mnemonics like vmr. */ 1754 #define VAB BAB + 1 1755 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR }, 1756 1757 /* The RA and RB fields in a VX form instruction when they must be the same. 1758 This is used for extended mnemonics like evmr. */ 1759 #define RAB VAB + 1 1760 { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR }, 1761 1762 /* The BD field in a B form instruction. The lower two bits are 1763 forced to zero. */ 1764 #define BD RAB + 1 1765 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1766 1767 /* The BD field in a B form instruction when absolute addressing is 1768 used. */ 1769 #define BDA BD + 1 1770 { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 1771 1772 /* The BD field in a B form instruction when the - modifier is used. 1773 This sets the y bit of the BO field appropriately. */ 1774 #define BDM BDA + 1 1775 { 0xfffc, 0, insert_bdm, extract_bdm, 1776 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1777 1778 /* The BD field in a B form instruction when the - modifier is used 1779 and absolute address is used. */ 1780 #define BDMA BDM + 1 1781 { 0xfffc, 0, insert_bdm, extract_bdm, 1782 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 1783 1784 /* The BD field in a B form instruction when the + modifier is used. 1785 This sets the y bit of the BO field appropriately. */ 1786 #define BDP BDMA + 1 1787 { 0xfffc, 0, insert_bdp, extract_bdp, 1788 PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1789 1790 /* The BD field in a B form instruction when the + modifier is used 1791 and absolute addressing is used. */ 1792 #define BDPA BDP + 1 1793 { 0xfffc, 0, insert_bdp, extract_bdp, 1794 PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 1795 1796 /* The BF field in an X or XL form instruction. */ 1797 #define BF BDPA + 1 1798 /* The CRFD field in an X form instruction. */ 1799 #define CRFD BF 1800 /* The CRD field in an XL form instruction. */ 1801 #define CRD BF 1802 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG }, 1803 1804 /* The BF field in an X or XL form instruction. */ 1805 #define BFF BF + 1 1806 { 0x7, 23, NULL, NULL, 0 }, 1807 1808 /* An optional BF field. This is used for comparison instructions, 1809 in which an omitted BF field is taken as zero. */ 1810 #define OBF BFF + 1 1811 { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL }, 1812 1813 /* The BFA field in an X or XL form instruction. */ 1814 #define BFA OBF + 1 1815 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG }, 1816 1817 /* The BO field in a B form instruction. Certain values are 1818 illegal. */ 1819 #define BO BFA + 1 1820 #define BO_MASK (0x1f << 21) 1821 { 0x1f, 21, insert_bo, extract_bo, 0 }, 1822 1823 /* The BO field in a B form instruction when the + or - modifier is 1824 used. This is like the BO field, but it must be even. */ 1825 #define BOE BO + 1 1826 { 0x1e, 21, insert_boe, extract_boe, 0 }, 1827 1828 /* The RM field in an X form instruction. */ 1829 #define RM BOE + 1 1830 #define DD RM 1831 { 0x3, 11, NULL, NULL, 0 }, 1832 1833 #define BH RM + 1 1834 { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL }, 1835 1836 /* The BT field in an X or XL form instruction. */ 1837 #define BT BH + 1 1838 { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT }, 1839 1840 /* The BI16 field in a BD8 form instruction. */ 1841 #define BI16 BT + 1 1842 { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT }, 1843 1844 /* The BI32 field in a BD15 form instruction. */ 1845 #define BI32 BI16 + 1 1846 { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT }, 1847 1848 /* The BO32 field in a BD15 form instruction. */ 1849 #define BO32 BI32 + 1 1850 { 0x3, 20, NULL, NULL, 0 }, 1851 1852 /* The B8 field in a BD8 form instruction. */ 1853 #define B8 BO32 + 1 1854 { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1855 1856 /* The B15 field in a BD15 form instruction. The lowest bit is 1857 forced to zero. */ 1858 #define B15 B8 + 1 1859 { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1860 1861 /* The B24 field in a BD24 form instruction. The lowest bit is 1862 forced to zero. */ 1863 #define B24 B15 + 1 1864 { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1865 1866 /* The condition register number portion of the BI field in a B form 1867 or XL form instruction. This is used for the extended 1868 conditional branch mnemonics, which set the lower two bits of the 1869 BI field. This field is optional. */ 1870 #define CR B24 + 1 1871 { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL }, 1872 1873 /* The CRB field in an X form instruction. */ 1874 #define CRB CR + 1 1875 /* The MB field in an M form instruction. */ 1876 #define MB CRB 1877 #define MB_MASK (0x1f << 6) 1878 { 0x1f, 6, NULL, NULL, 0 }, 1879 1880 /* The CRD32 field in an XL form instruction. */ 1881 #define CRD32 CRB + 1 1882 { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG }, 1883 1884 /* The CRFS field in an X form instruction. */ 1885 #define CRFS CRD32 + 1 1886 { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG }, 1887 1888 #define CRS CRFS + 1 1889 { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL }, 1890 1891 /* The CT field in an X form instruction. */ 1892 #define CT CRS + 1 1893 /* The MO field in an mbar instruction. */ 1894 #define MO CT 1895 { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 1896 1897 /* The D field in a D form instruction. This is a displacement off 1898 a register, and implies that the next operand is a register in 1899 parentheses. */ 1900 #define D CT + 1 1901 { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 1902 1903 /* The D8 field in a D form instruction. This is a displacement off 1904 a register, and implies that the next operand is a register in 1905 parentheses. */ 1906 #define D8 D + 1 1907 { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 1908 1909 /* The DCMX field in an X form instruction. */ 1910 #define DCMX D8 + 1 1911 { 0x7f, 16, NULL, NULL, 0 }, 1912 1913 /* The split DCMX field in an X form instruction. */ 1914 #define DCMXS DCMX + 1 1915 { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 }, 1916 1917 /* The DQ field in a DQ form instruction. This is like D, but the 1918 lower four bits are forced to zero. */ 1919 #define DQ DCMXS + 1 1920 { 0xfff0, 0, NULL, NULL, 1921 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ }, 1922 1923 /* The DS field in a DS form instruction. This is like D, but the 1924 lower two bits are forced to zero. */ 1925 #define DS DQ + 1 1926 { 0xfffc, 0, NULL, NULL, 1927 PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS }, 1928 1929 /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits 1930 unsigned imediate */ 1931 #define DUIS DS + 1 1932 #define BHRBE DUIS 1933 { 0x3ff, 11, NULL, NULL, 0 }, 1934 1935 /* The split D field in a DX form instruction. */ 1936 #define DXD DUIS + 1 1937 { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd, 1938 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT}, 1939 1940 /* The split ND field in a DX form instruction. 1941 This is the same as the DX field, only negated. */ 1942 #define NDXD DXD + 1 1943 { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn, 1944 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT}, 1945 1946 /* The E field in a wrteei instruction. */ 1947 /* And the W bit in the pair singles instructions. */ 1948 /* And the ST field in a VX form instruction. */ 1949 #define E NDXD + 1 1950 #define PSW E 1951 #define ST E 1952 { 0x1, 15, NULL, NULL, 0 }, 1953 1954 /* The FL1 field in a POWER SC form instruction. */ 1955 #define FL1 E + 1 1956 /* The U field in an X form instruction. */ 1957 #define U FL1 1958 { 0xf, 12, NULL, NULL, 0 }, 1959 1960 /* The FL2 field in a POWER SC form instruction. */ 1961 #define FL2 FL1 + 1 1962 { 0x7, 2, NULL, NULL, 0 }, 1963 1964 /* The FLM field in an XFL form instruction. */ 1965 #define FLM FL2 + 1 1966 { 0xff, 17, NULL, NULL, 0 }, 1967 1968 /* The FRA field in an X or A form instruction. */ 1969 #define FRA FLM + 1 1970 #define FRA_MASK (0x1f << 16) 1971 { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR }, 1972 1973 /* The FRAp field of DFP instructions. */ 1974 #define FRAp FRA + 1 1975 { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR }, 1976 1977 /* The FRB field in an X or A form instruction. */ 1978 #define FRB FRAp + 1 1979 #define FRB_MASK (0x1f << 11) 1980 { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR }, 1981 1982 /* The FRBp field of DFP instructions. */ 1983 #define FRBp FRB + 1 1984 { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR }, 1985 1986 /* The FRC field in an A form instruction. */ 1987 #define FRC FRBp + 1 1988 #define FRC_MASK (0x1f << 6) 1989 { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR }, 1990 1991 /* The FRS field in an X form instruction or the FRT field in a D, X 1992 or A form instruction. */ 1993 #define FRS FRC + 1 1994 #define FRT FRS 1995 { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR }, 1996 1997 /* The FRSp field of stfdp or the FRTp field of lfdp and DFP 1998 instructions. */ 1999 #define FRSp FRS + 1 2000 #define FRTp FRSp 2001 { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR }, 2002 2003 /* The FXM field in an XFX instruction. */ 2004 #define FXM FRSp + 1 2005 { 0xff, 12, insert_fxm, extract_fxm, 0 }, 2006 2007 /* Power4 version for mfcr. */ 2008 #define FXM4 FXM + 1 2009 { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL }, 2010 2011 /* The IMM20 field in an LI instruction. */ 2012 #define IMM20 FXM4 + 1 2013 { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED}, 2014 2015 /* The L field in a D or X form instruction. */ 2016 #define L IMM20 + 1 2017 { 0x1, 21, NULL, NULL, 0 }, 2018 2019 /* The optional L field in tlbie and tlbiel instructions. */ 2020 #define LOPT L + 1 2021 /* The R field in a HTM X form instruction. */ 2022 #define HTM_R LOPT 2023 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2024 2025 /* The optional (for 32-bit) L field in cmp[l][i] instructions. */ 2026 #define L32OPT LOPT + 1 2027 { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 }, 2028 2029 /* The L field in dcbf instruction. */ 2030 #define L2OPT L32OPT + 1 2031 { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2032 2033 /* The LEV field in a POWER SVC / POWER9 SCV form instruction. */ 2034 #define SVC_LEV L2OPT + 1 2035 { 0x7f, 5, NULL, NULL, 0 }, 2036 2037 /* The LEV field in an SC form instruction. */ 2038 #define LEV SVC_LEV + 1 2039 { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2040 2041 /* The LI field in an I form instruction. The lower two bits are 2042 forced to zero. */ 2043 #define LI LEV + 1 2044 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 2045 2046 /* The LI field in an I form instruction when used as an absolute 2047 address. */ 2048 #define LIA LI + 1 2049 { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 2050 2051 /* The LS or WC field in an X (sync or wait) form instruction. */ 2052 #define LS LIA + 1 2053 #define WC LS 2054 { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL }, 2055 2056 /* The ME field in an M form instruction. */ 2057 #define ME LS + 1 2058 #define ME_MASK (0x1f << 1) 2059 { 0x1f, 1, NULL, NULL, 0 }, 2060 2061 /* The MB and ME fields in an M form instruction expressed a single 2062 operand which is a bitmask indicating which bits to select. This 2063 is a two operand form using PPC_OPERAND_NEXT. See the 2064 description in opcode/ppc.h for what this means. */ 2065 #define MBE ME + 1 2066 { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT }, 2067 { -1, 0, insert_mbe, extract_mbe, 0 }, 2068 2069 /* The MB or ME field in an MD or MDS form instruction. The high 2070 bit is wrapped to the low end. */ 2071 #define MB6 MBE + 2 2072 #define ME6 MB6 2073 #define MB6_MASK (0x3f << 5) 2074 { 0x3f, 5, insert_mb6, extract_mb6, 0 }, 2075 2076 /* The NB field in an X form instruction. The value 32 is stored as 2077 0. */ 2078 #define NB MB6 + 1 2079 { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 }, 2080 2081 /* The NBI field in an lswi instruction, which has special value 2082 restrictions. The value 32 is stored as 0. */ 2083 #define NBI NB + 1 2084 { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 }, 2085 2086 /* The NSI field in a D form instruction. This is the same as the 2087 SI field, only negated. */ 2088 #define NSI NBI + 1 2089 { 0xffff, 0, insert_nsi, extract_nsi, 2090 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, 2091 2092 /* The NSI field in a D form instruction when we accept a wide range 2093 of positive values. */ 2094 #define NSISIGNOPT NSI + 1 2095 { 0xffff, 0, insert_nsi, extract_nsi, 2096 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 2097 2098 /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */ 2099 #define RA NSISIGNOPT + 1 2100 #define RA_MASK (0x1f << 16) 2101 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR }, 2102 2103 /* As above, but 0 in the RA field means zero, not r0. */ 2104 #define RA0 RA + 1 2105 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 }, 2106 2107 /* The RA field in the DQ form lq or an lswx instruction, which have 2108 special value restrictions. */ 2109 #define RAQ RA0 + 1 2110 #define RAX RAQ 2111 { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 }, 2112 2113 /* The RA field in a D or X form instruction which is an updating 2114 load, which means that the RA field may not be zero and may not 2115 equal the RT field. */ 2116 #define RAL RAQ + 1 2117 { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 }, 2118 2119 /* The RA field in an lmw instruction, which has special value 2120 restrictions. */ 2121 #define RAM RAL + 1 2122 { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 }, 2123 2124 /* The RA field in a D or X form instruction which is an updating 2125 store or an updating floating point load, which means that the RA 2126 field may not be zero. */ 2127 #define RAS RAM + 1 2128 { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 }, 2129 2130 /* The RA field of the tlbwe, dccci and iccci instructions, 2131 which are optional. */ 2132 #define RAOPT RAS + 1 2133 { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 2134 2135 /* The RB field in an X, XO, M, or MDS form instruction. */ 2136 #define RB RAOPT + 1 2137 #define RB_MASK (0x1f << 11) 2138 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR }, 2139 2140 /* The RS and RB fields in an X form instruction when they must be the same. 2141 This is used for extended mnemonics like mr. */ 2142 #define RSB RB + 1 2143 { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR }, 2144 2145 /* The RB field in an lswx instruction, which has special value 2146 restrictions. */ 2147 #define RBX RSB + 1 2148 { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR }, 2149 2150 /* The RB field of the dccci and iccci instructions, which are optional. */ 2151 #define RBOPT RBX + 1 2152 { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 2153 2154 /* The RC register field in an maddld, maddhd or maddhdu instruction. */ 2155 #define RC RBOPT + 1 2156 { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR }, 2157 2158 /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form 2159 instruction or the RT field in a D, DS, X, XFX or XO form 2160 instruction. */ 2161 #define RS RC + 1 2162 #define RT RS 2163 #define RT_MASK (0x1f << 21) 2164 #define RD RS 2165 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR }, 2166 2167 #define RD_EVEN RS + 1 2168 #define RS_EVEN RD_EVEN 2169 { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR }, 2170 2171 /* The RS and RT fields of the DS form stq and DQ form lq instructions, 2172 which have special value restrictions. */ 2173 #define RSQ RS_EVEN + 1 2174 #define RTQ RSQ 2175 #define Q_MASK (1 << 21) 2176 { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR }, 2177 2178 /* The RS field of the tlbwe instruction, which is optional. */ 2179 #define RSO RSQ + 1 2180 #define RTO RSO 2181 { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 2182 2183 /* The RX field of the SE_RR form instruction. */ 2184 #define RX RSO + 1 2185 { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR }, 2186 2187 /* The ARX field of the SE_RR form instruction. */ 2188 #define ARX RX + 1 2189 { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR }, 2190 2191 /* The RY field of the SE_RR form instruction. */ 2192 #define RY ARX + 1 2193 #define RZ RY 2194 { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR }, 2195 2196 /* The ARY field of the SE_RR form instruction. */ 2197 #define ARY RY + 1 2198 { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR }, 2199 2200 /* The SCLSCI8 field in a D form instruction. */ 2201 #define SCLSCI8 ARY + 1 2202 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 }, 2203 2204 /* The SCLSCI8N field in a D form instruction. This is the same as the 2205 SCLSCI8 field, only negated. */ 2206 #define SCLSCI8N SCLSCI8 + 1 2207 { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n, 2208 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, 2209 2210 /* The SD field of the SD4 form instruction. */ 2211 #define SE_SD SCLSCI8N + 1 2212 { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS }, 2213 2214 /* The SD field of the SD4 form instruction, for halfword. */ 2215 #define SE_SDH SE_SD + 1 2216 { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS }, 2217 2218 /* The SD field of the SD4 form instruction, for word. */ 2219 #define SE_SDW SE_SDH + 1 2220 { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS }, 2221 2222 /* The SH field in an X or M form instruction. */ 2223 #define SH SE_SDW + 1 2224 #define SH_MASK (0x1f << 11) 2225 /* The other UIMM field in a EVX form instruction. */ 2226 #define EVUIMM SH 2227 /* The FC field in an atomic X form instruction. */ 2228 #define FC SH 2229 { 0x1f, 11, NULL, NULL, 0 }, 2230 2231 #define EVUIMM_LT8 SH + 1 2232 { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 }, 2233 2234 #define EVUIMM_LT16 EVUIMM_LT8 + 1 2235 { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 }, 2236 2237 /* The SI field in a HTM X form instruction. */ 2238 #define HTM_SI EVUIMM_LT16 + 1 2239 { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED }, 2240 2241 /* The SH field in an MD form instruction. This is split. */ 2242 #define SH6 HTM_SI + 1 2243 #define SH6_MASK ((0x1f << 11) | (1 << 1)) 2244 { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 }, 2245 2246 /* The SH field of some variants of the tlbre and tlbwe 2247 instructions, and the ELEV field of the e_sc instruction. */ 2248 #define SHO SH6 + 1 2249 #define ELEV SHO 2250 { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2251 2252 /* The SI field in a D form instruction. */ 2253 #define SI SHO + 1 2254 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED }, 2255 2256 /* The SI field in a D form instruction when we accept a wide range 2257 of positive values. */ 2258 #define SISIGNOPT SI + 1 2259 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 2260 2261 /* The SI8 field in a D form instruction. */ 2262 #define SI8 SISIGNOPT + 1 2263 { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED }, 2264 2265 /* The SPR field in an XFX form instruction. This is flipped--the 2266 lower 5 bits are stored in the upper 5 and vice- versa. */ 2267 #define SPR SI8 + 1 2268 #define PMR SPR 2269 #define TMR SPR 2270 #define SPR_MASK (0x3ff << 11) 2271 { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR }, 2272 2273 /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */ 2274 #define SPRBAT SPR + 1 2275 #define SPRBAT_MASK (0xc1 << 11) 2276 { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR }, 2277 2278 /* The GQR index number in an XFX form m[ft]gqr instruction. */ 2279 #define SPRGQR SPRBAT + 1 2280 #define SPRGQR_MASK (0x7 << 16) 2281 { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR }, 2282 2283 /* The SPRG register number in an XFX form m[ft]sprg instruction. */ 2284 #define SPRG SPRGQR + 1 2285 { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR }, 2286 2287 /* The SR field in an X form instruction. */ 2288 #define SR SPRG + 1 2289 /* The 4-bit UIMM field in a VX form instruction. */ 2290 #define UIMM4 SR 2291 { 0xf, 16, NULL, NULL, 0 }, 2292 2293 /* The STRM field in an X AltiVec form instruction. */ 2294 #define STRM SR + 1 2295 /* The T field in a tlbilx form instruction. */ 2296 #define T STRM 2297 /* The L field in wclr instructions. */ 2298 #define L2 STRM 2299 { 0x3, 21, NULL, NULL, 0 }, 2300 2301 /* The ESYNC field in an X (sync) form instruction. */ 2302 #define ESYNC STRM + 1 2303 { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL }, 2304 2305 /* The SV field in a POWER SC form instruction. */ 2306 #define SV ESYNC + 1 2307 { 0x3fff, 2, NULL, NULL, 0 }, 2308 2309 /* The TBR field in an XFX form instruction. This is like the SPR 2310 field, but it is optional. */ 2311 #define TBR SV + 1 2312 { 0x3ff, 11, insert_tbr, extract_tbr, 2313 PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL }, 2314 2315 /* The TO field in a D or X form instruction. */ 2316 #define TO TBR + 1 2317 #define DUI TO 2318 #define TO_MASK (0x1f << 21) 2319 { 0x1f, 21, NULL, NULL, 0 }, 2320 2321 /* The UI field in a D form instruction. */ 2322 #define UI TO + 1 2323 { 0xffff, 0, NULL, NULL, 0 }, 2324 2325 #define UISIGNOPT UI + 1 2326 { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT }, 2327 2328 /* The IMM field in an SE_IM5 instruction. */ 2329 #define UI5 UISIGNOPT + 1 2330 { 0x1f, 4, NULL, NULL, 0 }, 2331 2332 /* The OIMM field in an SE_OIM5 instruction. */ 2333 #define OIMM5 UI5 + 1 2334 { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 }, 2335 2336 /* The UI7 field in an SE_LI instruction. */ 2337 #define UI7 OIMM5 + 1 2338 { 0x7f, 4, NULL, NULL, 0 }, 2339 2340 /* The VA field in a VA, VX or VXR form instruction. */ 2341 #define VA UI7 + 1 2342 { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR }, 2343 2344 /* The VB field in a VA, VX or VXR form instruction. */ 2345 #define VB VA + 1 2346 { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR }, 2347 2348 /* The VC field in a VA form instruction. */ 2349 #define VC VB + 1 2350 { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR }, 2351 2352 /* The VD or VS field in a VA, VX, VXR or X form instruction. */ 2353 #define VD VC + 1 2354 #define VS VD 2355 { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR }, 2356 2357 /* The SIMM field in a VX form instruction, and TE in Z form. */ 2358 #define SIMM VD + 1 2359 #define TE SIMM 2360 { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED}, 2361 2362 /* The UIMM field in a VX form instruction. */ 2363 #define UIMM SIMM + 1 2364 #define DCTL UIMM 2365 { 0x1f, 16, NULL, NULL, 0 }, 2366 2367 /* The 3-bit UIMM field in a VX form instruction. */ 2368 #define UIMM3 UIMM + 1 2369 { 0x7, 16, NULL, NULL, 0 }, 2370 2371 /* The 6-bit UIM field in a X form instruction. */ 2372 #define UIM6 UIMM3 + 1 2373 { 0x3f, 16, NULL, NULL, 0 }, 2374 2375 /* The SIX field in a VX form instruction. */ 2376 #define SIX UIM6 + 1 2377 #define MMMM SIX 2378 { 0xf, 11, NULL, NULL, 0 }, 2379 2380 /* The PS field in a VX form instruction. */ 2381 #define PS SIX + 1 2382 { 0x1, 9, NULL, NULL, 0 }, 2383 2384 /* The SHB field in a VA form instruction. */ 2385 #define SHB PS + 1 2386 { 0xf, 6, NULL, NULL, 0 }, 2387 2388 /* The other UIMM field in a half word EVX form instruction. */ 2389 #define EVUIMM_1 SHB + 1 2390 { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS }, 2391 2392 #define EVUIMM_1_EX0 EVUIMM_1 + 1 2393 { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS }, 2394 2395 #define EVUIMM_2 EVUIMM_1_EX0 + 1 2396 { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS }, 2397 2398 #define EVUIMM_2_EX0 EVUIMM_2 + 1 2399 { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS }, 2400 2401 /* The other UIMM field in a word EVX form instruction. */ 2402 #define EVUIMM_4 EVUIMM_2_EX0 + 1 2403 { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS }, 2404 2405 #define EVUIMM_4_EX0 EVUIMM_4 + 1 2406 { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS }, 2407 2408 /* The other UIMM field in a double EVX form instruction. */ 2409 #define EVUIMM_8 EVUIMM_4_EX0 + 1 2410 { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS }, 2411 2412 #define EVUIMM_8_EX0 EVUIMM_8 + 1 2413 { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS }, 2414 2415 /* The WS or DRM field in an X form instruction. */ 2416 #define WS EVUIMM_8_EX0 + 1 2417 #define DRM WS 2418 /* The NNN field in a VX form instruction for SPE2 */ 2419 #define NNN WS 2420 { 0x7, 11, NULL, NULL, 0 }, 2421 2422 /* PowerPC paired singles extensions. */ 2423 /* W bit in the pair singles instructions for x type instructions. */ 2424 #define PSWM WS + 1 2425 /* The BO16 field in a BD8 form instruction. */ 2426 #define BO16 PSWM 2427 { 0x1, 10, 0, 0, 0 }, 2428 2429 /* IDX bits for quantization in the pair singles instructions. */ 2430 #define PSQ PSWM + 1 2431 { 0x7, 12, 0, 0, PPC_OPERAND_GQR }, 2432 2433 /* IDX bits for quantization in the pair singles x-type instructions. */ 2434 #define PSQM PSQ + 1 2435 { 0x7, 7, 0, 0, PPC_OPERAND_GQR }, 2436 2437 /* Smaller D field for quantization in the pair singles instructions. */ 2438 #define PSD PSQM + 1 2439 { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 2440 2441 /* The L field in an mtmsrd or A form instruction or R or W in an 2442 X form. */ 2443 #define A_L PSD + 1 2444 #define W A_L 2445 #define X_R A_L 2446 { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2447 2448 /* The RMC or CY field in a Z23 form instruction. */ 2449 #define RMC A_L + 1 2450 #define CY RMC 2451 { 0x3, 9, NULL, NULL, 0 }, 2452 2453 #define R RMC + 1 2454 { 0x1, 16, NULL, NULL, 0 }, 2455 2456 #define RIC R + 1 2457 { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2458 2459 #define PRS RIC + 1 2460 { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2461 2462 #define SP PRS + 1 2463 { 0x3, 19, NULL, NULL, 0 }, 2464 2465 #define S SP + 1 2466 { 0x1, 20, NULL, NULL, 0 }, 2467 2468 /* The S field in a XL form instruction. */ 2469 #define SXL S + 1 2470 { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL }, 2471 2472 /* SH field starting at bit position 16. */ 2473 #define SH16 SXL + 1 2474 /* The DCM and DGM fields in a Z form instruction. */ 2475 #define DCM SH16 2476 #define DGM DCM 2477 { 0x3f, 10, NULL, NULL, 0 }, 2478 2479 /* The EH field in larx instruction. */ 2480 #define EH SH16 + 1 2481 { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2482 2483 /* The L field in an mtfsf or XFL form instruction. */ 2484 /* The A field in a HTM X form instruction. */ 2485 #define XFL_L EH + 1 2486 #define HTM_A XFL_L 2487 { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL}, 2488 2489 /* Xilinx APU related masks and macros */ 2490 #define FCRT XFL_L + 1 2491 #define FCRT_MASK (0x1f << 21) 2492 { 0x1f, 21, 0, 0, PPC_OPERAND_FCR }, 2493 2494 /* Xilinx FSL related masks and macros */ 2495 #define FSL FCRT + 1 2496 #define FSL_MASK (0x1f << 11) 2497 { 0x1f, 11, 0, 0, PPC_OPERAND_FSL }, 2498 2499 /* Xilinx UDI related masks and macros */ 2500 #define URT FSL + 1 2501 { 0x1f, 21, 0, 0, PPC_OPERAND_UDI }, 2502 2503 #define URA URT + 1 2504 { 0x1f, 16, 0, 0, PPC_OPERAND_UDI }, 2505 2506 #define URB URA + 1 2507 { 0x1f, 11, 0, 0, PPC_OPERAND_UDI }, 2508 2509 #define URC URB + 1 2510 { 0x1f, 6, 0, 0, PPC_OPERAND_UDI }, 2511 2512 /* The VLESIMM field in a D form instruction. */ 2513 #define VLESIMM URC + 1 2514 { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi, 2515 PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 2516 2517 /* The VLENSIMM field in a D form instruction. */ 2518 #define VLENSIMM VLESIMM + 1 2519 { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi, 2520 PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 2521 2522 /* The VLEUIMM field in a D form instruction. */ 2523 #define VLEUIMM VLENSIMM + 1 2524 { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 }, 2525 2526 /* The VLEUIMML field in a D form instruction. */ 2527 #define VLEUIMML VLEUIMM + 1 2528 { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 }, 2529 2530 /* The XT and XS fields in an XX1 or XX3 form instruction. This is 2531 split. */ 2532 #define XS6 VLEUIMML + 1 2533 #define XT6 XS6 2534 { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR }, 2535 2536 /* The XT and XS fields in an DQ form VSX instruction. This is split. */ 2537 #define XSQ6 XT6 + 1 2538 #define XTQ6 XSQ6 2539 { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR }, 2540 2541 /* The XA field in an XX3 form instruction. This is split. */ 2542 #define XA6 XTQ6 + 1 2543 { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR }, 2544 2545 /* The XB field in an XX2 or XX3 form instruction. This is split. */ 2546 #define XB6 XA6 + 1 2547 { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR }, 2548 2549 /* The XA and XB fields in an XX3 form instruction when they must be the same. 2550 This is used in extended mnemonics like xvmovdp. This is split. */ 2551 #define XAB6 XB6 + 1 2552 { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR }, 2553 2554 /* The XC field in an XX4 form instruction. This is split. */ 2555 #define XC6 XAB6 + 1 2556 { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR }, 2557 2558 /* The DM or SHW field in an XX3 form instruction. */ 2559 #define DM XC6 + 1 2560 #define SHW DM 2561 { 0x3, 8, NULL, NULL, 0 }, 2562 2563 /* The DM field in an extended mnemonic XX3 form instruction. */ 2564 #define DMEX DM + 1 2565 { 0x3, 8, insert_dm, extract_dm, 0 }, 2566 2567 /* The UIM field in an XX2 form instruction. */ 2568 #define UIM DMEX + 1 2569 /* The 2-bit UIMM field in a VX form instruction. */ 2570 #define UIMM2 UIM 2571 /* The 2-bit L field in a darn instruction. */ 2572 #define LRAND UIM 2573 { 0x3, 16, NULL, NULL, 0 }, 2574 2575 #define ERAT_T UIM + 1 2576 { 0x7, 21, NULL, NULL, 0 }, 2577 2578 #define IH ERAT_T + 1 2579 { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2580 2581 /* The 8-bit IMM8 field in a XX1 form instruction. */ 2582 #define IMM8 IH + 1 2583 { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT }, 2584 2585 #define VX_OFF IMM8 + 1 2586 { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 }, 2587 2588 #define VX_OFF_SPE2 VX_OFF + 1 2589 { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 }, 2590 2591 #define BBB VX_OFF_SPE2 + 1 2592 { 0x7, 13, NULL, NULL, 0 }, 2593 2594 #define DDD BBB + 1 2595 #define VX_MASK_DDD (VX_MASK & ~0x1) 2596 { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 }, 2597 2598 #define HH DDD + 1 2599 { 0x3, 13, NULL, NULL, 0 }, 2600 }; 2601 2602 const unsigned int num_powerpc_operands = (sizeof (powerpc_operands) 2603 / sizeof (powerpc_operands[0])); 2604 2605 /* Macros used to form opcodes. */ 2606 2607 /* The main opcode. */ 2608 #define OP(x) ((((uint64_t)(x)) & 0x3f) << 26) 2609 #define OP_MASK OP (0x3f) 2610 2611 /* The main opcode combined with a trap code in the TO field of a D 2612 form instruction. Used for extended mnemonics for the trap 2613 instructions. */ 2614 #define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21)) 2615 #define OPTO_MASK (OP_MASK | TO_MASK) 2616 2617 /* The main opcode combined with a comparison size bit in the L field 2618 of a D form or X form instruction. Used for extended mnemonics for 2619 the comparison instructions. */ 2620 #define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21)) 2621 #define OPL_MASK OPL (0x3f,1) 2622 2623 /* The main opcode combined with an update code in D form instruction. 2624 Used for extended mnemonics for VLE memory instructions. */ 2625 #define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8)) 2626 #define OPVUP_MASK OPVUP (0x3f, 0xff) 2627 2628 /* The main opcode combined with an update code and the RT fields 2629 specified in D form instruction. Used for VLE volatile context 2630 save/restore instructions. */ 2631 #define OPVUPRT(x,vup,rt) \ 2632 (OPVUP (x, vup) \ 2633 | ((((uint64_t)(rt)) & 0x1f) << 21)) 2634 #define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f) 2635 2636 /* An A form instruction. */ 2637 #define A(op, xop, rc) \ 2638 (OP (op) \ 2639 | ((((uint64_t)(xop)) & 0x1f) << 1) \ 2640 | (((uint64_t)(rc)) & 1)) 2641 #define A_MASK A (0x3f, 0x1f, 1) 2642 2643 /* An A_MASK with the FRB field fixed. */ 2644 #define AFRB_MASK (A_MASK | FRB_MASK) 2645 2646 /* An A_MASK with the FRC field fixed. */ 2647 #define AFRC_MASK (A_MASK | FRC_MASK) 2648 2649 /* An A_MASK with the FRA and FRC fields fixed. */ 2650 #define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK) 2651 2652 /* An AFRAFRC_MASK, but with L bit clear. */ 2653 #define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16)) 2654 2655 /* A B form instruction. */ 2656 #define B(op, aa, lk) \ 2657 (OP (op) \ 2658 | ((((uint64_t)(aa)) & 1) << 1) \ 2659 | ((lk) & 1)) 2660 #define B_MASK B (0x3f, 1, 1) 2661 2662 /* A BD8 form instruction. This is a 16-bit instruction. */ 2663 #define BD8(op, aa, lk) \ 2664 (((((uint64_t)(op)) & 0x3f) << 10) \ 2665 | (((aa) & 1) << 9) \ 2666 | (((lk) & 1) << 8)) 2667 #define BD8_MASK BD8 (0x3f, 1, 1) 2668 2669 /* Another BD8 form instruction. This is a 16-bit instruction. */ 2670 #define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11) 2671 #define BD8IO_MASK BD8IO (0x1f) 2672 2673 /* A BD8 form instruction for simplified mnemonics. */ 2674 #define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8)) 2675 /* A mask that excludes BO32 and BI32. */ 2676 #define EBD8IO1_MASK 0xf800 2677 /* A mask that includes BO32 and excludes BI32. */ 2678 #define EBD8IO2_MASK 0xfc00 2679 /* A mask that include BO32 AND BI32. */ 2680 #define EBD8IO3_MASK 0xff00 2681 2682 /* A BD15 form instruction. */ 2683 #define BD15(op, aa, lk) \ 2684 (OP (op) \ 2685 | ((((uint64_t)(aa)) & 0xf) << 22) \ 2686 | ((lk) & 1)) 2687 #define BD15_MASK BD15 (0x3f, 0xf, 1) 2688 2689 /* A BD15 form instruction for extended conditional branch mnemonics. */ 2690 #define EBD15(op, aa, bo, lk) \ 2691 (((op) & 0x3f) << 26) \ 2692 | (((aa) & 0xf) << 22) \ 2693 | (((bo) & 0x3) << 20) \ 2694 | ((lk) & 1) 2695 #define EBD15_MASK 0xfff00001 2696 2697 /* A BD15 form instruction for extended conditional branch mnemonics 2698 with BI. */ 2699 #define EBD15BI(op, aa, bo, bi, lk) \ 2700 ((((op) & 0x3f) << 26) \ 2701 | (((aa) & 0xf) << 22) \ 2702 | (((bo) & 0x3) << 20) \ 2703 | (((bi) & 0x3) << 16) \ 2704 | ((lk) & 1)) 2705 2706 #define EBD15BI_MASK 0xfff30001 2707 2708 /* A BD24 form instruction. */ 2709 #define BD24(op, aa, lk) \ 2710 (OP (op) \ 2711 | ((((uint64_t)(aa)) & 1) << 25) \ 2712 | ((lk) & 1)) 2713 #define BD24_MASK BD24 (0x3f, 1, 1) 2714 2715 /* A B form instruction setting the BO field. */ 2716 #define BBO(op, bo, aa, lk) \ 2717 (B ((op), (aa), (lk)) \ 2718 | ((((uint64_t)(bo)) & 0x1f) << 21)) 2719 #define BBO_MASK BBO (0x3f, 0x1f, 1, 1) 2720 2721 /* A BBO_MASK with the y bit of the BO field removed. This permits 2722 matching a conditional branch regardless of the setting of the y 2723 bit. Similarly for the 'at' bits used for power4 branch hints. */ 2724 #define Y_MASK (((uint64_t) 1) << 21) 2725 #define AT1_MASK (((uint64_t) 3) << 21) 2726 #define AT2_MASK (((uint64_t) 9) << 21) 2727 #define BBOY_MASK (BBO_MASK &~ Y_MASK) 2728 #define BBOAT_MASK (BBO_MASK &~ AT1_MASK) 2729 2730 /* A B form instruction setting the BO field and the condition bits of 2731 the BI field. */ 2732 #define BBOCB(op, bo, cb, aa, lk) \ 2733 (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16)) 2734 #define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1) 2735 2736 /* A BBOCB_MASK with the y bit of the BO field removed. */ 2737 #define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK) 2738 #define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK) 2739 #define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK) 2740 2741 /* A BBOYCB_MASK in which the BI field is fixed. */ 2742 #define BBOYBI_MASK (BBOYCB_MASK | BI_MASK) 2743 #define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK) 2744 2745 /* A VLE C form instruction. */ 2746 #define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1)) 2747 #define C_LK_MASK C_LK(0x7fff, 1) 2748 #define C(x) ((((uint64_t)(x)) & 0xffff)) 2749 #define C_MASK C(0xffff) 2750 2751 /* An Context form instruction. */ 2752 #define CTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7)) 2753 #define CTX_MASK CTX(0x3f, 0x7) 2754 2755 /* An User Context form instruction. */ 2756 #define UCTX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f)) 2757 #define UCTX_MASK UCTX(0x3f, 0x1f) 2758 2759 /* The main opcode mask with the RA field clear. */ 2760 #define DRA_MASK (OP_MASK | RA_MASK) 2761 2762 /* A DQ form VSX instruction. */ 2763 #define DQX(op, xop) (OP (op) | ((xop) & 0x7)) 2764 #define DQX_MASK DQX (0x3f, 7) 2765 2766 /* A DS form instruction. */ 2767 #define DSO(op, xop) (OP (op) | ((xop) & 0x3)) 2768 #define DS_MASK DSO (0x3f, 3) 2769 2770 /* An DX form instruction. */ 2771 #define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1)) 2772 #define DX_MASK DX (0x3f, 0x1f) 2773 /* An DX form instruction with the D bits specified. */ 2774 #define NODX_MASK (DX_MASK | 0x1fffc1) 2775 2776 /* An EVSEL form instruction. */ 2777 #define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3) 2778 #define EVSEL_MASK EVSEL(0x3f, 0xff) 2779 2780 /* An IA16 form instruction. */ 2781 #define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11) 2782 #define IA16_MASK IA16(0x3f, 0x1f) 2783 2784 /* An I16A form instruction. */ 2785 #define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11) 2786 #define I16A_MASK I16A(0x3f, 0x1f) 2787 2788 /* An I16L form instruction. */ 2789 #define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11) 2790 #define I16L_MASK I16L(0x3f, 0x1f) 2791 2792 /* An IM7 form instruction. */ 2793 #define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11) 2794 #define IM7_MASK IM7(0x1f) 2795 2796 /* An M form instruction. */ 2797 #define M(op, rc) (OP (op) | ((rc) & 1)) 2798 #define M_MASK M (0x3f, 1) 2799 2800 /* An LI20 form instruction. */ 2801 #define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15) 2802 #define LI20_MASK LI20(0x3f, 0x1) 2803 2804 /* An M form instruction with the ME field specified. */ 2805 #define MME(op, me, rc) \ 2806 (M ((op), (rc)) \ 2807 | ((((uint64_t)(me)) & 0x1f) << 1)) 2808 2809 /* An M_MASK with the MB and ME fields fixed. */ 2810 #define MMBME_MASK (M_MASK | MB_MASK | ME_MASK) 2811 2812 /* An M_MASK with the SH and ME fields fixed. */ 2813 #define MSHME_MASK (M_MASK | SH_MASK | ME_MASK) 2814 2815 /* An MD form instruction. */ 2816 #define MD(op, xop, rc) \ 2817 (OP (op) \ 2818 | ((((uint64_t)(xop)) & 0x7) << 2) \ 2819 | ((rc) & 1)) 2820 #define MD_MASK MD (0x3f, 0x7, 1) 2821 2822 /* An MD_MASK with the MB field fixed. */ 2823 #define MDMB_MASK (MD_MASK | MB6_MASK) 2824 2825 /* An MD_MASK with the SH field fixed. */ 2826 #define MDSH_MASK (MD_MASK | SH6_MASK) 2827 2828 /* An MDS form instruction. */ 2829 #define MDS(op, xop, rc) \ 2830 (OP (op) \ 2831 | ((((uint64_t)(xop)) & 0xf) << 1) \ 2832 | ((rc) & 1)) 2833 #define MDS_MASK MDS (0x3f, 0xf, 1) 2834 2835 /* An MDS_MASK with the MB field fixed. */ 2836 #define MDSMB_MASK (MDS_MASK | MB6_MASK) 2837 2838 /* An SC form instruction. */ 2839 #define SC(op, sa, lk) \ 2840 (OP (op) \ 2841 | ((((uint64_t)(sa)) & 1) << 1) \ 2842 | ((lk) & 1)) 2843 #define SC_MASK \ 2844 (OP_MASK \ 2845 | (((uint64_t) 0x3ff) << 16) \ 2846 | (((uint64_t) 1) << 1) \ 2847 | 1) 2848 2849 /* An SCI8 form instruction. */ 2850 #define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11)) 2851 #define SCI8_MASK SCI8(0x3f, 0x1f) 2852 2853 /* An SCI8 form instruction. */ 2854 #define SCI8BF(op, fop, xop) \ 2855 (OP (op) \ 2856 | ((((uint64_t)(xop)) & 0x1f) << 11) \ 2857 | (((fop) & 7) << 23)) 2858 #define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f) 2859 2860 /* An SD4 form instruction. This is a 16-bit instruction. */ 2861 #define SD4(op) ((((uint64_t)(op)) & 0xf) << 12) 2862 #define SD4_MASK SD4(0xf) 2863 2864 /* An SE_IM5 form instruction. This is a 16-bit instruction. */ 2865 #define SE_IM5(op, xop) \ 2866 (((((uint64_t)(op)) & 0x3f) << 10) \ 2867 | (((xop) & 0x1) << 9)) 2868 #define SE_IM5_MASK SE_IM5(0x3f, 1) 2869 2870 /* An SE_R form instruction. This is a 16-bit instruction. */ 2871 #define SE_R(op, xop) \ 2872 (((((uint64_t)(op)) & 0x3f) << 10) \ 2873 | (((xop) & 0x3f) << 4)) 2874 #define SE_R_MASK SE_R(0x3f, 0x3f) 2875 2876 /* An SE_RR form instruction. This is a 16-bit instruction. */ 2877 #define SE_RR(op, xop) \ 2878 (((((uint64_t)(op)) & 0x3f) << 10) \ 2879 | (((xop) & 0x3) << 8)) 2880 #define SE_RR_MASK SE_RR(0x3f, 3) 2881 2882 /* A VX form instruction. */ 2883 #define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff)) 2884 2885 /* The mask for an VX form instruction. */ 2886 #define VX_MASK VX(0x3f, 0x7ff) 2887 2888 /* A VX LSP form instruction. */ 2889 #define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff)) 2890 2891 /* The mask for an VX LSP form instruction. */ 2892 #define VX_LSP_MASK VX_LSP(0x3f, 0xffff) 2893 #define VX_LSP_OFF_MASK VX_LSP(0x3f, 0x7fc) 2894 2895 /* Additional format of VX SPE2 form instruction. */ 2896 #define VX_RA_CONST(op, xop, bits11_15) \ 2897 (OP (op) \ 2898 | (((uint64_t)(bits11_15) & 0x1f) << 16) \ 2899 | (((uint64_t)(xop)) & 0x7ff)) 2900 #define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f) 2901 2902 #define VX_RB_CONST(op, xop, bits16_20) \ 2903 (OP (op) \ 2904 | (((uint64_t)(bits16_20) & 0x1f) << 11) \ 2905 | (((uint64_t)(xop)) & 0x7ff)) 2906 #define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f) 2907 2908 #define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8) 2909 2910 #define VX_SPE_CRFD(op, xop, bits9_10) \ 2911 (OP (op) \ 2912 | (((uint64_t)(bits9_10) & 0x3) << 21) \ 2913 | (((uint64_t)(xop)) & 0x7ff)) 2914 #define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3) 2915 2916 #define VX_SPE2_CLR(op, xop, bit16) \ 2917 (OP (op) \ 2918 | (((uint64_t)(bit16) & 0x1) << 15) \ 2919 | (((uint64_t)(xop)) & 0x7ff)) 2920 #define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1) 2921 2922 #define VX_SPE2_SPLATB(op, xop, bits19_20) \ 2923 (OP (op) \ 2924 | (((uint64_t)(bits19_20) & 0x3) << 11) \ 2925 | (((uint64_t)(xop)) & 0x7ff)) 2926 #define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3) 2927 2928 #define VX_SPE2_OCTET(op, xop, bits16_17) \ 2929 (OP (op) \ 2930 | (((uint64_t)(bits16_17) & 0x3) << 14) \ 2931 | (((uint64_t)(xop)) & 0x7ff)) 2932 #define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7) 2933 2934 #define VX_SPE2_DDHH(op, xop, bit16) \ 2935 (OP (op) \ 2936 | (((uint64_t)(bit16) & 0x1) << 15) \ 2937 | (((uint64_t)(xop)) & 0x7ff)) 2938 #define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1) 2939 2940 #define VX_SPE2_HH(op, xop, bit16, bits19_20) \ 2941 (OP (op) \ 2942 | (((uint64_t)(bit16) & 0x1) << 15) \ 2943 | (((uint64_t)(bits19_20) & 0x3) << 11) \ 2944 | (((uint64_t)(xop)) & 0x7ff)) 2945 #define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3) 2946 2947 #define VX_SPE2_EVMAR(op, xop) \ 2948 (OP (op) \ 2949 | ((uint64_t)(0x1) << 11) \ 2950 | (((uint64_t)(xop)) & 0x7ff)) 2951 #define VX_SPE2_EVMAR_MASK \ 2952 (VX_SPE2_EVMAR(0x3f, 0x7ff) \ 2953 | ((uint64_t)(0x1) << 11)) 2954 2955 /* A VX_MASK with the VA field fixed. */ 2956 #define VXVA_MASK (VX_MASK | (0x1f << 16)) 2957 2958 /* A VX_MASK with the VB field fixed. */ 2959 #define VXVB_MASK (VX_MASK | (0x1f << 11)) 2960 2961 /* A VX_MASK with the VA and VB fields fixed. */ 2962 #define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11)) 2963 2964 /* A VX_MASK with the VD and VA fields fixed. */ 2965 #define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16)) 2966 2967 /* A VX_MASK with a UIMM4 field. */ 2968 #define VXUIMM4_MASK (VX_MASK | (0x1 << 20)) 2969 2970 /* A VX_MASK with a UIMM3 field. */ 2971 #define VXUIMM3_MASK (VX_MASK | (0x3 << 19)) 2972 2973 /* A VX_MASK with a UIMM2 field. */ 2974 #define VXUIMM2_MASK (VX_MASK | (0x7 << 18)) 2975 2976 /* A VX_MASK with a PS field. */ 2977 #define VXPS_MASK (VX_MASK & ~(0x1 << 9)) 2978 2979 /* A VX_MASK with the VA field fixed with a PS field. */ 2980 #define VXVAPS_MASK ((VX_MASK | (0x1f << 16)) & ~(0x1 << 9)) 2981 2982 /* A VA form instruction. */ 2983 #define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f)) 2984 2985 /* The mask for an VA form instruction. */ 2986 #define VXA_MASK VXA(0x3f, 0x3f) 2987 2988 /* A VXA_MASK with a SHB field. */ 2989 #define VXASHB_MASK (VXA_MASK | (1 << 10)) 2990 2991 /* A VXR form instruction. */ 2992 #define VXR(op, xop, rc) \ 2993 (OP (op) \ 2994 | (((uint64_t)(rc) & 1) << 10) \ 2995 | (((uint64_t)(xop)) & 0x3ff)) 2996 2997 /* The mask for a VXR form instruction. */ 2998 #define VXR_MASK VXR(0x3f, 0x3ff, 1) 2999 3000 /* A VX form instruction with a VA tertiary opcode. */ 3001 #define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16)) 3002 3003 #define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1)) 3004 #define VXASH_MASK VXASH (0x3f, 0x1f) 3005 3006 /* An X form instruction. */ 3007 #define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1)) 3008 3009 /* A X form instruction for Quad-Precision FP Instructions. */ 3010 #define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16)) 3011 3012 /* An EX form instruction. */ 3013 #define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff)) 3014 3015 /* The mask for an EX form instruction. */ 3016 #define EX_MASK EX (0x3f, 0x7ff) 3017 3018 /* An XX2 form instruction. */ 3019 #define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2)) 3020 3021 /* A XX2 form instruction with the VA bits specified. */ 3022 #define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16)) 3023 3024 /* An XX3 form instruction. */ 3025 #define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3)) 3026 3027 /* An XX3 form instruction with the RC bit specified. */ 3028 #define XX3RC(op, xop, rc) \ 3029 (OP (op) \ 3030 | (((uint64_t)(rc) & 1) << 10) \ 3031 | ((((uint64_t)(xop)) & 0x7f) << 3)) 3032 3033 /* An XX4 form instruction. */ 3034 #define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4)) 3035 3036 /* A Z form instruction. */ 3037 #define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1)) 3038 3039 /* An X form instruction with the RC bit specified. */ 3040 #define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1)) 3041 3042 /* A X form instruction for Quad-Precision FP Instructions with RC bit. */ 3043 #define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1)) 3044 3045 /* An X form instruction with the RA bits specified as two ops. */ 3046 #define XMMF(op, xop, mop0, mop1) \ 3047 (X ((op), (xop)) \ 3048 | ((mop0) & 3) << 19 \ 3049 | ((mop1) & 7) << 16) 3050 3051 /* A Z form instruction with the RC bit specified. */ 3052 #define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1)) 3053 3054 /* The mask for an X form instruction. */ 3055 #define X_MASK XRC (0x3f, 0x3ff, 1) 3056 3057 /* The mask for an X form instruction with the BF bits specified. */ 3058 #define XBF_MASK (X_MASK | (3 << 21)) 3059 3060 /* An X form wait instruction with everything filled in except the WC 3061 field. */ 3062 #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK) 3063 3064 /* The mask for an XX1 form instruction. */ 3065 #define XX1_MASK X (0x3f, 0x3ff) 3066 3067 /* An XX1_MASK with the RB field fixed. */ 3068 #define XX1RB_MASK (XX1_MASK | RB_MASK) 3069 3070 /* The mask for an XX2 form instruction. */ 3071 #define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16)) 3072 3073 /* The mask for an XX2 form instruction with the UIM bits specified. */ 3074 #define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18)) 3075 3076 /* The mask for an XX2 form instruction with the 4 UIM bits specified. */ 3077 #define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20)) 3078 3079 /* The mask for an XX2 form instruction with the BF bits specified. */ 3080 #define XX2BF_MASK (XX2_MASK | (3 << 21) | (1)) 3081 3082 /* The mask for an XX2 form instruction with the BF and DCMX bits 3083 specified. */ 3084 #define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1) 3085 3086 /* The mask for an XX2 form instruction with a split DCMX bits 3087 specified. */ 3088 #define XX2DCMXS_MASK XX2 (0x3f, 0x1ee) 3089 3090 /* The mask for an XX3 form instruction. */ 3091 #define XX3_MASK XX3 (0x3f, 0xff) 3092 3093 /* The mask for an XX3 form instruction with the BF bits specified. */ 3094 #define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1)) 3095 3096 /* The mask for an XX3 form instruction with the DM or SHW bits 3097 specified. */ 3098 #define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10)) 3099 #define XX3SHW_MASK XX3DM_MASK 3100 3101 /* The mask for an XX4 form instruction. */ 3102 #define XX4_MASK XX4 (0x3f, 0x3) 3103 3104 /* An X form wait instruction with everything filled in except the WC 3105 field. */ 3106 #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK) 3107 3108 /* The mask for an XMMF form instruction. */ 3109 #define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1)) 3110 3111 /* The mask for a Z form instruction. */ 3112 #define Z_MASK ZRC (0x3f, 0x1ff, 1) 3113 #define Z2_MASK ZRC (0x3f, 0xff, 1) 3114 3115 /* An X_MASK with the RA/VA field fixed. */ 3116 #define XRA_MASK (X_MASK | RA_MASK) 3117 #define XVA_MASK XRA_MASK 3118 3119 /* An XRA_MASK with the A_L/W field clear. */ 3120 #define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16)) 3121 #define XRLA_MASK XWRA_MASK 3122 3123 /* An X_MASK with the RB field fixed. */ 3124 #define XRB_MASK (X_MASK | RB_MASK) 3125 3126 /* An X_MASK with the RT field fixed. */ 3127 #define XRT_MASK (X_MASK | RT_MASK) 3128 3129 /* An XRT_MASK mask with the L bits clear. */ 3130 #define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21)) 3131 3132 /* An X_MASK with the RA and RB fields fixed. */ 3133 #define XRARB_MASK (X_MASK | RA_MASK | RB_MASK) 3134 3135 /* An XBF_MASK with the RA and RB fields fixed. */ 3136 #define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK) 3137 3138 /* An XRARB_MASK, but with the L bit clear. */ 3139 #define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16)) 3140 3141 /* An XRARB_MASK, but with the L bits in a darn instruction clear. */ 3142 #define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16)) 3143 3144 /* An X_MASK with the RT and RA fields fixed. */ 3145 #define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK) 3146 3147 /* An X_MASK with the RT and RB fields fixed. */ 3148 #define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK) 3149 3150 /* An XRTRA_MASK, but with L bit clear. */ 3151 #define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21)) 3152 3153 /* An X_MASK with the RT, RA and RB fields fixed. */ 3154 #define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK) 3155 3156 /* An XRTRARB_MASK, but with L bit clear. */ 3157 #define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21)) 3158 3159 /* An XRTRARB_MASK, but with A bit clear. */ 3160 #define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25)) 3161 3162 /* An XRTRARB_MASK, but with BF bits clear. */ 3163 #define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23)) 3164 3165 /* An X form instruction with the L bit specified. */ 3166 #define XOPL(op, xop, l) \ 3167 (X ((op), (xop)) \ 3168 | ((((uint64_t)(l)) & 1) << 21)) 3169 3170 /* An X form instruction with the L bits specified. */ 3171 #define XOPL2(op, xop, l) \ 3172 (X ((op), (xop)) \ 3173 | ((((uint64_t)(l)) & 3) << 21)) 3174 3175 /* An X form instruction with the L bit and RC bit specified. */ 3176 #define XRCL(op, xop, l, rc) \ 3177 (XRC ((op), (xop), (rc)) \ 3178 | ((((uint64_t)(l)) & 1) << 21)) 3179 3180 /* An X form instruction with RT fields specified */ 3181 #define XRT(op, xop, rt) \ 3182 (X ((op), (xop)) \ 3183 | ((((uint64_t)(rt)) & 0x1f) << 21)) 3184 3185 /* An X form instruction with RT and RA fields specified */ 3186 #define XRTRA(op, xop, rt, ra) \ 3187 (X ((op), (xop)) \ 3188 | ((((uint64_t)(rt)) & 0x1f) << 21) \ 3189 | ((((uint64_t)(ra)) & 0x1f) << 16)) 3190 3191 /* The mask for an X form comparison instruction. */ 3192 #define XCMP_MASK (X_MASK | (((uint64_t)1) << 22)) 3193 3194 /* The mask for an X form comparison instruction with the L field 3195 fixed. */ 3196 #define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21)) 3197 3198 /* An X form trap instruction with the TO field specified. */ 3199 #define XTO(op, xop, to) \ 3200 (X ((op), (xop)) \ 3201 | ((((uint64_t)(to)) & 0x1f) << 21)) 3202 #define XTO_MASK (X_MASK | TO_MASK) 3203 3204 /* An X form tlb instruction with the SH field specified. */ 3205 #define XTLB(op, xop, sh) \ 3206 (X ((op), (xop)) \ 3207 | ((((uint64_t)(sh)) & 0x1f) << 11)) 3208 #define XTLB_MASK (X_MASK | SH_MASK) 3209 3210 /* An X form sync instruction. */ 3211 #define XSYNC(op, xop, l) \ 3212 (X ((op), (xop)) \ 3213 | ((((uint64_t)(l)) & 3) << 21)) 3214 3215 /* An X form sync instruction with everything filled in except the LS 3216 field. */ 3217 #define XSYNC_MASK (0xff9fffff) 3218 3219 /* An X form sync instruction with everything filled in except the L 3220 and E fields. */ 3221 #define XSYNCLE_MASK (0xff90ffff) 3222 3223 /* An X_MASK, but with the EH bit clear. */ 3224 #define XEH_MASK (X_MASK & ~((uint64_t )1)) 3225 3226 /* An X form AltiVec dss instruction. */ 3227 #define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25)) 3228 #define XDSS_MASK XDSS(0x3f, 0x3ff, 1) 3229 3230 /* An XFL form instruction. */ 3231 #define XFL(op, xop, rc) \ 3232 (OP (op) \ 3233 | ((((uint64_t)(xop)) & 0x3ff) << 1) \ 3234 | (((uint64_t)(rc)) & 1)) 3235 #define XFL_MASK XFL (0x3f, 0x3ff, 1) 3236 3237 /* An X form isel instruction. */ 3238 #define XISEL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1)) 3239 #define XISEL_MASK XISEL(0x3f, 0x1f) 3240 3241 /* An XL form instruction with the LK field set to 0. */ 3242 #define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1)) 3243 3244 /* An XL form instruction which uses the LK field. */ 3245 #define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1)) 3246 3247 /* The mask for an XL form instruction. */ 3248 #define XL_MASK XLLK (0x3f, 0x3ff, 1) 3249 3250 /* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */ 3251 #define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11)) 3252 3253 /* An XL form instruction which explicitly sets the BO field. */ 3254 #define XLO(op, bo, xop, lk) \ 3255 (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21)) 3256 #define XLO_MASK (XL_MASK | BO_MASK) 3257 3258 /* An XL form instruction which explicitly sets the y bit of the BO 3259 field. */ 3260 #define XLYLK(op, xop, y, lk) \ 3261 (XLLK ((op), (xop), (lk)) \ 3262 | ((((uint64_t)(y)) & 1) << 21)) 3263 #define XLYLK_MASK (XL_MASK | Y_MASK) 3264 3265 /* An XL form instruction which sets the BO field and the condition 3266 bits of the BI field. */ 3267 #define XLOCB(op, bo, cb, xop, lk) \ 3268 (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16)) 3269 #define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1) 3270 3271 /* An XL_MASK or XLYLK_MASK or XLOCB_MASK with the BB field fixed. */ 3272 #define XLBB_MASK (XL_MASK | BB_MASK) 3273 #define XLYBB_MASK (XLYLK_MASK | BB_MASK) 3274 #define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK) 3275 3276 /* A mask for branch instructions using the BH field. */ 3277 #define XLBH_MASK (XL_MASK | (0x1c << 11)) 3278 3279 /* An XL_MASK with the BO and BB fields fixed. */ 3280 #define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK) 3281 3282 /* An XL_MASK with the BO, BI and BB fields fixed. */ 3283 #define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK) 3284 3285 /* An X form mbar instruction with MO field. */ 3286 #define XMBAR(op, xop, mo) \ 3287 (X ((op), (xop)) \ 3288 | ((((uint64_t)(mo)) & 1) << 21)) 3289 3290 /* An XO form instruction. */ 3291 #define XO(op, xop, oe, rc) \ 3292 (OP (op) \ 3293 | ((((uint64_t)(xop)) & 0x1ff) << 1) \ 3294 | ((((uint64_t)(oe)) & 1) << 10) \ 3295 | (((unsigned long)(rc)) & 1)) 3296 #define XO_MASK XO (0x3f, 0x1ff, 1, 1) 3297 3298 /* An XO_MASK with the RB field fixed. */ 3299 #define XORB_MASK (XO_MASK | RB_MASK) 3300 3301 /* An XOPS form instruction for paired singles. */ 3302 #define XOPS(op, xop, rc) \ 3303 (OP (op) \ 3304 | ((((uint64_t)(xop)) & 0x3ff) << 1) \ 3305 | (((uint64_t)(rc)) & 1)) 3306 #define XOPS_MASK XOPS (0x3f, 0x3ff, 1) 3307 3308 3309 /* An XS form instruction. */ 3310 #define XS(op, xop, rc) \ 3311 (OP (op) \ 3312 | ((((uint64_t)(xop)) & 0x1ff) << 2) \ 3313 | (((uint64_t)(rc)) & 1)) 3314 #define XS_MASK XS (0x3f, 0x1ff, 1) 3315 3316 /* A mask for the FXM version of an XFX form instruction. */ 3317 #define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20)) 3318 3319 /* An XFX form instruction with the FXM field filled in. */ 3320 #define XFXM(op, xop, fxm, p4) \ 3321 (X ((op), (xop)) \ 3322 | ((((uint64_t)(fxm)) & 0xff) << 12) \ 3323 | ((uint64_t)(p4) << 20)) 3324 3325 /* An XFX form instruction with the SPR field filled in. */ 3326 #define XSPR(op, xop, spr) \ 3327 (X ((op), (xop)) \ 3328 | ((((uint64_t)(spr)) & 0x1f) << 16) \ 3329 | ((((uint64_t)(spr)) & 0x3e0) << 6)) 3330 #define XSPR_MASK (X_MASK | SPR_MASK) 3331 3332 /* An XFX form instruction with the SPR field filled in except for the 3333 SPRBAT field. */ 3334 #define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK) 3335 3336 /* An XFX form instruction with the SPR field filled in except for the 3337 SPRGQR field. */ 3338 #define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK) 3339 3340 /* An XFX form instruction with the SPR field filled in except for the 3341 SPRG field. */ 3342 #define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16)) 3343 3344 /* An X form instruction with everything filled in except the E field. */ 3345 #define XE_MASK (0xffff7fff) 3346 3347 /* An X form user context instruction. */ 3348 #define XUC(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f)) 3349 #define XUC_MASK XUC(0x3f, 0x1f) 3350 3351 /* An XW form instruction. */ 3352 #define XW(op, xop, rc) \ 3353 (OP (op) \ 3354 | ((((uint64_t)(xop)) & 0x3f) << 1) \ 3355 | ((rc) & 1)) 3356 /* The mask for a G form instruction. rc not supported at present. */ 3357 #define XW_MASK XW (0x3f, 0x3f, 0) 3358 3359 /* An APU form instruction. */ 3360 #define APU(op, xop, rc) \ 3361 (OP (op) \ 3362 | (((uint64_t)(xop)) & 0x3ff) << 1 \ 3363 | ((rc) & 1)) 3364 3365 /* The mask for an APU form instruction. */ 3366 #define APU_MASK APU (0x3f, 0x3ff, 1) 3367 #define APU_RT_MASK (APU_MASK | RT_MASK) 3368 #define APU_RA_MASK (APU_MASK | RA_MASK) 3369 3370 /* The BO encodings used in extended conditional branch mnemonics. */ 3371 #define BODNZF (0x0) 3372 #define BODNZFP (0x1) 3373 #define BODZF (0x2) 3374 #define BODZFP (0x3) 3375 #define BODNZT (0x8) 3376 #define BODNZTP (0x9) 3377 #define BODZT (0xa) 3378 #define BODZTP (0xb) 3379 3380 #define BOF (0x4) 3381 #define BOFP (0x5) 3382 #define BOFM4 (0x6) 3383 #define BOFP4 (0x7) 3384 #define BOT (0xc) 3385 #define BOTP (0xd) 3386 #define BOTM4 (0xe) 3387 #define BOTP4 (0xf) 3388 3389 #define BODNZ (0x10) 3390 #define BODNZP (0x11) 3391 #define BODZ (0x12) 3392 #define BODZP (0x13) 3393 #define BODNZM4 (0x18) 3394 #define BODNZP4 (0x19) 3395 #define BODZM4 (0x1a) 3396 #define BODZP4 (0x1b) 3397 3398 #define BOU (0x14) 3399 3400 /* The BO16 encodings used in extended VLE conditional branch mnemonics. */ 3401 #define BO16F (0x0) 3402 #define BO16T (0x1) 3403 3404 /* The BO32 encodings used in extended VLE conditional branch mnemonics. */ 3405 #define BO32F (0x0) 3406 #define BO32T (0x1) 3407 #define BO32DNZ (0x2) 3408 #define BO32DZ (0x3) 3409 3410 /* The BI condition bit encodings used in extended conditional branch 3411 mnemonics. */ 3412 #define CBLT (0) 3413 #define CBGT (1) 3414 #define CBEQ (2) 3415 #define CBSO (3) 3416 3417 /* The TO encodings used in extended trap mnemonics. */ 3418 #define TOLGT (0x1) 3419 #define TOLLT (0x2) 3420 #define TOEQ (0x4) 3421 #define TOLGE (0x5) 3422 #define TOLNL (0x5) 3423 #define TOLLE (0x6) 3424 #define TOLNG (0x6) 3425 #define TOGT (0x8) 3426 #define TOGE (0xc) 3427 #define TONL (0xc) 3428 #define TOLT (0x10) 3429 #define TOLE (0x14) 3430 #define TONG (0x14) 3431 #define TONE (0x18) 3432 #define TOU (0x1f) 3433 3434 /* Smaller names for the flags so each entry in the opcodes table will 3435 fit on a single line. */ 3436 #undef PPC 3437 #define PPC PPC_OPCODE_PPC 3438 #define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON 3439 #define POWER4 PPC_OPCODE_POWER4 3440 #define POWER5 PPC_OPCODE_POWER5 3441 #define POWER6 PPC_OPCODE_POWER6 3442 #define POWER7 PPC_OPCODE_POWER7 3443 #define POWER8 PPC_OPCODE_POWER8 3444 #define POWER9 PPC_OPCODE_POWER9 3445 #define CELL PPC_OPCODE_CELL 3446 #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE 3447 #define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \ 3448 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN) 3449 #define PPC403 PPC_OPCODE_403 3450 #define PPC405 PPC_OPCODE_405 3451 #define PPC440 PPC_OPCODE_440 3452 #define PPC464 PPC440 3453 #define PPC476 PPC_OPCODE_476 3454 #define PPC750 PPC_OPCODE_750 3455 #define GEKKO PPC_OPCODE_750 3456 #define BROADWAY PPC_OPCODE_750 3457 #define PPC7450 PPC_OPCODE_7450 3458 #define PPC860 PPC_OPCODE_860 3459 #define PPCPS PPC_OPCODE_PPCPS 3460 #define PPCVEC PPC_OPCODE_ALTIVEC 3461 #define PPCVEC2 (PPC_OPCODE_POWER8 | PPC_OPCODE_E6500) 3462 #define PPCVEC3 PPC_OPCODE_POWER9 3463 #define PPCVSX PPC_OPCODE_VSX 3464 #define PPCVSX2 PPC_OPCODE_POWER8 3465 #define PPCVSX3 PPC_OPCODE_POWER9 3466 #define POWER PPC_OPCODE_POWER 3467 #define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2 3468 #define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON 3469 #define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \ 3470 | PPC_OPCODE_COMMON) 3471 #define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON 3472 #define M601 PPC_OPCODE_POWER | PPC_OPCODE_601 3473 #define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON 3474 #define MFDEC1 PPC_OPCODE_POWER 3475 #define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \ 3476 | PPC_OPCODE_TITAN) 3477 #define BOOKE PPC_OPCODE_BOOKE 3478 #define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS 3479 #define PPCE300 PPC_OPCODE_E300 3480 #define PPCSPE PPC_OPCODE_SPE 3481 #define PPCSPE2 PPC_OPCODE_SPE2 3482 #define PPCISEL PPC_OPCODE_ISEL 3483 #define PPCEFS PPC_OPCODE_EFS 3484 #define PPCEFS2 PPC_OPCODE_EFS2 3485 #define PPCBRLK PPC_OPCODE_BRLOCK 3486 #define PPCPMR PPC_OPCODE_PMR 3487 #define PPCTMR PPC_OPCODE_TMR 3488 #define PPCCHLK PPC_OPCODE_CACHELCK 3489 #define PPCRFMCI PPC_OPCODE_RFMCI 3490 #define E500MC PPC_OPCODE_E500MC 3491 #define PPCA2 PPC_OPCODE_A2 3492 #define TITAN PPC_OPCODE_TITAN 3493 #define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN 3494 #define E500 PPC_OPCODE_E500 3495 #define E6500 PPC_OPCODE_E6500 3496 #define PPCVLE PPC_OPCODE_VLE 3497 #define PPCHTM PPC_OPCODE_POWER8 3498 #define E200Z4 PPC_OPCODE_E200Z4 3499 #define PPCLSP PPC_OPCODE_LSP 3500 /* The list of embedded processors that use the embedded operand ordering 3501 for the 3 operand dcbt and dcbtst instructions. */ 3502 #define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \ 3503 | PPC_OPCODE_A2) 3504 3505 3506 3507 /* The opcode table. 3508 3509 The format of the opcode table is: 3510 3511 NAME OPCODE MASK FLAGS ANTI {OPERANDS} 3512 3513 NAME is the name of the instruction. 3514 OPCODE is the instruction opcode. 3515 MASK is the opcode mask; this is used to tell the disassembler 3516 which bits in the actual opcode must match OPCODE. 3517 FLAGS are flags indicating which processors support the instruction. 3518 ANTI indicates which processors don't support the instruction. 3519 OPERANDS is the list of operands. 3520 3521 The disassembler reads the table in order and prints the first 3522 instruction which matches, so this table is sorted to put more 3523 specific instructions before more general instructions. 3524 3525 This table must be sorted by major opcode. Please try to keep it 3526 vaguely sorted within major opcode too, except of course where 3527 constrained otherwise by disassembler operation. */ 3528 3529 const struct powerpc_opcode powerpc_opcodes[] = { 3530 {"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}}, 3531 {"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3532 {"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3533 {"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3534 {"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3535 {"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3536 {"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3537 {"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3538 {"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3539 {"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3540 {"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3541 {"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3542 {"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3543 {"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3544 {"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3545 {"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 3546 {"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}}, 3547 3548 {"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3549 {"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3550 {"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3551 {"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3552 {"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3553 {"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3554 {"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3555 {"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3556 {"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3557 {"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3558 {"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3559 {"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3560 {"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3561 {"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3562 {"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3563 {"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3564 {"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3565 {"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3566 {"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3567 {"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3568 {"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3569 {"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3570 {"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3571 {"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3572 {"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3573 {"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3574 {"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3575 {"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3576 {"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 3577 {"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 3578 {"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}}, 3579 {"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}}, 3580 3581 {"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 3582 {"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3583 {"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}}, 3584 {"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3585 {"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3586 {"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3587 {"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3588 {"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3589 {"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3590 {"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}}, 3591 {"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3592 {"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}}, 3593 {"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3594 {"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 3595 {"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 3596 {"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3597 {"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3598 {"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3599 {"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3600 {"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 3601 {"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3602 {"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 3603 {"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3604 {"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 3605 {"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 3606 {"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3607 {"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3608 {"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3609 {"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3610 {"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3611 {"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3612 {"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3613 {"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}}, 3614 {"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 3615 {"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3616 {"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 3617 {"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3618 {"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3619 {"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3620 {"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 3621 {"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3622 {"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 3623 {"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3624 {"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 3625 {"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3626 {"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 3627 {"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 3628 {"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}}, 3629 {"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 3630 {"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3631 {"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}}, 3632 {"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3633 {"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}}, 3634 {"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 3635 {"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}}, 3636 {"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 3637 {"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}}, 3638 {"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 3639 {"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 3640 {"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}}, 3641 {"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 3642 {"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 3643 {"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3644 {"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3645 {"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3646 {"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3647 {"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}}, 3648 {"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3649 {"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 3650 {"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3651 {"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 3652 {"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3653 {"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 3654 {"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 3655 {"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 3656 {"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 3657 {"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3658 {"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3659 {"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3660 {"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3661 {"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3662 {"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3663 {"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3664 {"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3665 {"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}}, 3666 {"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3667 {"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}}, 3668 {"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3669 {"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3670 {"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 3671 {"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3672 {"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 3673 {"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3674 {"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3675 {"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3676 {"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3677 {"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 3678 {"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3679 {"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3680 {"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3681 {"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3682 {"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3683 {"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3684 {"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3685 {"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3686 {"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3687 {"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3688 {"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3689 {"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3690 {"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3691 {"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3692 {"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 3693 {"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3694 {"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3695 {"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3696 {"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3697 {"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3698 {"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3699 {"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3700 {"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3701 {"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3702 {"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3703 {"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3704 {"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3705 {"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3706 {"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3707 {"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3708 {"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3709 {"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3710 {"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3711 {"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3712 {"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3713 {"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 3714 {"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3715 {"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 3716 {"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3717 {"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3718 {"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3719 {"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3720 {"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3721 {"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3722 {"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3723 {"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3724 {"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3725 {"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3726 {"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 3727 {"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 3728 {"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3729 {"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3730 {"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3731 {"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3732 {"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3733 {"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3734 {"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3735 {"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3736 {"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3737 {"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3738 {"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3739 {"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3740 {"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3741 {"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3742 {"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3743 {"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3744 {"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3745 {"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3746 {"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3747 {"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3748 {"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3749 {"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3750 {"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3751 {"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3752 {"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 3753 {"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3754 {"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3755 {"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}}, 3756 {"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}}, 3757 {"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3758 {"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3759 {"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}}, 3760 {"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3761 {"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}}, 3762 {"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}}, 3763 {"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3764 {"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}}, 3765 {"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3766 {"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}}, 3767 {"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}}, 3768 {"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3769 {"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}}, 3770 {"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}}, 3771 {"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}}, 3772 {"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 3773 {"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}}, 3774 {"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}}, 3775 {"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3776 {"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3777 {"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3778 {"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 3779 {"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3780 {"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3781 {"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3782 {"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RAB}}, 3783 {"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3784 {"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RAB}}, 3785 {"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3786 {"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 3787 {"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3788 {"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3789 {"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3790 {"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3791 {"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3792 {"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 3793 {"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 3794 {"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3795 {"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 3796 {"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3797 {"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}}, 3798 {"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 3799 {"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}}, 3800 {"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3801 {"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3802 {"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3803 {"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3804 {"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3805 {"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3806 {"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3807 {"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3808 {"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3809 {"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 3810 {"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3811 {"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 3812 {"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3813 {"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3814 {"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3815 {"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3816 {"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3817 {"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}}, 3818 {"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 3819 {"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3820 {"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 3821 {"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}}, 3822 {"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 3823 {"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3824 {"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3825 {"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3826 {"evfsmadd", VX (4, 642), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3827 {"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3828 {"evfsmsub", VX (4, 643), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3829 {"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}}, 3830 {"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3831 {"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}}, 3832 {"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}}, 3833 {"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3834 {"evfssqrt", VX_RB_CONST(4, 647, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}}, 3835 {"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3836 {"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3837 {"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3838 {"evfsnmadd", VX (4, 650), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3839 {"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3840 {"evfsnmsub", VX (4, 651), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3841 {"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3842 {"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}}, 3843 {"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 3844 {"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3845 {"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3846 {"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3847 {"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}}, 3848 {"evfscfh", VX_RA_CONST(4, 657, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}}, 3849 {"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}}, 3850 {"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}}, 3851 {"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}}, 3852 {"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}}, 3853 {"evfscth", VX_RA_CONST(4, 661, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}}, 3854 {"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}}, 3855 {"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}}, 3856 {"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}}, 3857 {"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}}, 3858 {"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 3859 {"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}}, 3860 {"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3861 {"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3862 {"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 3863 {"evfsmax", VX (4, 672), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3864 {"evfsmin", VX (4, 673), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3865 {"evfsaddsub", VX (4, 674), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3866 {"evfssubadd", VX (4, 675), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3867 {"evfssum", VX (4, 676), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3868 {"evfsdiff", VX (4, 677), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3869 {"evfssumdiff", VX (4, 678), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3870 {"evfsdiffsum", VX (4, 679), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3871 {"evfsaddx", VX (4, 680), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3872 {"evfssubx", VX (4, 681), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3873 {"evfsaddsubx", VX (4, 682), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3874 {"evfssubaddx", VX (4, 683), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3875 {"evfsmulx", VX (4, 684), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3876 {"evfsmule", VX (4, 686), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3877 {"evfsmulo", VX (4, 687), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3878 {"efsmax", VX (4, 688), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3879 {"efsmin", VX (4, 689), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3880 {"efdmax", VX (4, 696), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3881 {"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 3882 {"efdmin", VX (4, 697), VX_MASK, PPCEFS2, 0, {RD, RA, RB}}, 3883 {"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3884 {"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3885 {"efsmadd", VX (4, 706), VX_MASK, PPCEFS2, 0, {RS, RA, RB}}, 3886 {"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3887 {"efsmsub", VX (4, 707), VX_MASK, PPCEFS2, 0, {RS, RA, RB}}, 3888 {"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}}, 3889 {"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3890 {"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}}, 3891 {"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}}, 3892 {"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3893 {"efssqrt", VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0, {RD, RA}}, 3894 {"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 3895 {"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3896 {"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3897 {"efsnmadd", VX (4, 714), VX_MASK, PPCEFS2, 0, {RS, RA, RB}}, 3898 {"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3899 {"efsnmsub", VX (4, 715), VX_MASK, PPCEFS2, 0, {RS, RA, RB}}, 3900 {"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3901 {"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 3902 {"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3903 {"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3904 {"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 3905 {"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}}, 3906 {"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}}, 3907 {"efscfh", VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}}, 3908 {"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}}, 3909 {"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}}, 3910 {"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}}, 3911 {"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}}, 3912 {"efscth", VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}}, 3913 {"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}}, 3914 {"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}}, 3915 {"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}}, 3916 {"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}}, 3917 {"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 3918 {"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}}, 3919 {"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3920 {"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3921 {"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3922 {"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3923 {"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3924 {"efdmadd", VX (4, 738), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}}, 3925 {"efdcfuid", VX (4, 738), VX_MASK, E500|E500MC,0, {RS, RB}}, 3926 {"efdmsub", VX (4, 739), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}}, 3927 {"efdcfsid", VX (4, 739), VX_MASK, E500|E500MC,0, {RS, RB}}, 3928 {"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}}, 3929 {"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}}, 3930 {"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}}, 3931 {"efdsqrt", VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0, {RD, RA}}, 3932 {"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3933 {"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 3934 {"efdnmadd", VX (4, 746), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}}, 3935 {"efdctuidz", VX (4, 746), VX_MASK, E500|E500MC,0, {RS, RB}}, 3936 {"efdnmsub", VX (4, 747), VX_MASK, PPCEFS2, E500|E500MC, {RD, RA, RB}}, 3937 {"efdctsidz", VX (4, 747), VX_MASK, E500|E500MC,0, {RS, RB}}, 3938 {"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3939 {"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3940 {"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3941 {"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}}, 3942 {"efdcfui", VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}}, 3943 {"efdcfuid", VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}}, 3944 {"efdcfsi", VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}}, 3945 {"efdcfsid", VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}}, 3946 {"efdcfh", VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}}, 3947 {"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}}, 3948 {"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}}, 3949 {"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}}, 3950 {"efdcth", VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0, {RD, RB}}, 3951 {"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}}, 3952 {"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}}, 3953 {"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}}, 3954 {"efdctuiz", VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}}, 3955 {"efdctuidz", VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}}, 3956 {"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 3957 {"efdctsiz", VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0, {RS, RB}}, 3958 {"efdctsidz", VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC, {RS, RB}}, 3959 {"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3960 {"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3961 {"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 3962 {"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3963 {"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3964 {"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 3965 {"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3966 {"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3967 {"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 3968 {"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3969 {"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3970 {"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 3971 {"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 3972 {"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3973 {"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3974 {"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}}, 3975 {"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 3976 {"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 3977 {"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3978 {"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}}, 3979 {"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 3980 {"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}}, 3981 {"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3982 {"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 3983 {"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}}, 3984 {"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 3985 {"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3986 {"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 3987 {"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 3988 {"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3989 {"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 3990 {"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3991 {"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 3992 {"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}}, 3993 {"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3994 {"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}}, 3995 {"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 3996 {"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3997 {"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 3998 {"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 3999 {"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 4000 {"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4001 {"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 4002 {"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4003 {"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 4004 {"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4005 {"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 4006 {"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4007 {"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 4008 {"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4009 {"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 4010 {"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4011 {"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 4012 {"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4013 {"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4014 {"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4015 {"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4016 {"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4017 {"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4018 {"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 4019 {"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 4020 {"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}}, 4021 {"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 4022 {"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 4023 {"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 4024 {"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 4025 {"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}}, 4026 {"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}}, 4027 {"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}}, 4028 {"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}}, 4029 {"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4030 {"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4031 {"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4032 {"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4033 {"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4034 {"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 4035 {"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 4036 {"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}}, 4037 {"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 4038 {"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4039 {"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4040 {"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4041 {"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4042 {"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4043 {"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4044 {"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 4045 {"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 4046 {"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 4047 {"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 4048 {"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4049 {"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4050 {"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4051 {"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4052 {"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4053 {"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}}, 4054 {"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4055 {"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4056 {"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4057 {"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4058 {"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4059 {"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4060 {"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4061 {"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4062 {"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4063 {"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4064 {"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4065 {"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4066 {"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4067 {"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4068 {"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4069 {"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4070 {"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4071 {"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4072 {"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4073 {"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4074 {"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4075 {"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4076 {"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4077 {"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4078 {"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4079 {"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4080 {"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4081 {"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4082 {"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4083 {"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4084 {"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4085 {"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}}, 4086 {"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4087 {"evmwlssf", VX (4,1091), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4088 {"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4089 {"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4090 {"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4091 {"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4092 {"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4093 {"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4094 {"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4095 {"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4096 {"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4097 {"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4098 {"evmwlsmf", VX (4,1099), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4099 {"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4100 {"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4101 {"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4102 {"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4103 {"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4104 {"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4105 {"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4106 {"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4107 {"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4108 {"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4109 {"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4110 {"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4111 {"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4112 {"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4113 {"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4114 {"evmwlssfa", VX (4,1123), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4115 {"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4116 {"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4117 {"evmwlsmfa", VX (4,1131), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4118 {"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4119 {"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4120 {"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4121 {"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4122 {"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4123 {"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4124 {"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4125 {"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4126 {"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4127 {"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4128 {"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4129 {"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VAB}}, 4130 {"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4131 {"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4132 {"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4133 {"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4134 {"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4135 {"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4136 {"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4137 {"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4138 {"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4139 {"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4140 {"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4141 {"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}}, 4142 {"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}}, 4143 {"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}}, 4144 {"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}}, 4145 {"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}}, 4146 {"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}}, 4147 {"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4148 {"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4149 {"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4150 {"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4151 {"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4152 {"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4153 {"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4154 {"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4155 {"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}}, 4156 {"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}}, 4157 {"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}}, 4158 {"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}}, 4159 {"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4160 {"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4161 {"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4162 {"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4163 {"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4164 {"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4165 {"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 4166 {"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4167 {"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4168 {"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}}, 4169 {"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4170 {"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4171 {"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4172 {"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4173 {"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VAB}}, 4174 {"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4175 {"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4176 {"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4177 {"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4178 {"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4179 {"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4180 {"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4181 {"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4182 {"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4183 {"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4184 {"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4185 {"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4186 {"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4187 {"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4188 {"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4189 {"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4190 {"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4191 {"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4192 {"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4193 {"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4194 {"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4195 {"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4196 {"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4197 {"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4198 {"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4199 {"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4200 {"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4201 {"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4202 {"evmwlssfaaw", VX (4,1347), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4203 {"evmwhusiaa", VX (4,1348), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4204 {"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4205 {"evmwhssmaa", VX (4,1349), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4206 {"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4207 {"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4208 {"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4209 {"evmwhssfaa", VX (4,1351), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4210 {"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4211 {"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4212 {"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4213 {"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4214 {"evmwlsmfaaw", VX (4,1355), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4215 {"evmwhumiaa", VX (4,1356), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4216 {"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4217 {"evmwhsmiaa", VX (4,1357), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4218 {"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4219 {"evmwhsmfaa", VX (4,1359), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4220 {"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4221 {"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4222 {"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4223 {"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4224 {"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4225 {"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4226 {"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4227 {"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4228 {"evmwhgumiaa", VX (4,1380), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4229 {"evmwhgsmiaa", VX (4,1381), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4230 {"evmwhgssfaa", VX (4,1383), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4231 {"evmwhgsmfaa", VX (4,1391), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4232 {"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4233 {"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4234 {"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4235 {"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4236 {"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 4237 {"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 4238 {"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4239 {"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 4240 {"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 4241 {"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 4242 {"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4243 {"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4244 {"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4245 {"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4246 {"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4247 {"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4248 {"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4249 {"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4250 {"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4251 {"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4252 {"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4253 {"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4254 {"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4255 {"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4256 {"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4257 {"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4258 {"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4259 {"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4260 {"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4261 {"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4262 {"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4263 {"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4264 {"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4265 {"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4266 {"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}}, 4267 {"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4268 {"evmwlssfanw", VX (4,1475), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4269 {"evmwhusian", VX (4,1476), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4270 {"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4271 {"evmwhssian", VX (4,1477), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4272 {"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4273 {"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4274 {"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, 0, {URT, URA, URB}}, 4275 {"evmwhssfan", VX (4,1479), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4276 {"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}}, 4277 {"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4278 {"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4279 {"evmwlsmfanw", VX (4,1483), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4280 {"evmwhumian", VX (4,1484), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4281 {"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4282 {"evmwhsmian", VX (4,1485), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4283 {"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4284 {"evmwhsmfan", VX (4,1487), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4285 {"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4286 {"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4287 {"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4288 {"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4289 {"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4290 {"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 4291 {"evmwhgumian", VX (4,1508), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4292 {"evmwhgsmian", VX (4,1509), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4293 {"evmwhgssfan", VX (4,1511), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4294 {"evmwhgsmfan", VX (4,1519), VX_MASK, PPCSPE, 0, {RD, RA, RB}}, 4295 {"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4296 {"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4297 {"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4298 {"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}}, 4299 {"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}}, 4300 {"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4301 {"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4302 {"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4303 {"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4304 {"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4305 {"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4306 {"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4307 {"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4308 {"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4309 {"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4310 {"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4311 {"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4312 {"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4313 {"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 4314 {"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}}, 4315 {"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4316 {"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4317 {"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4318 {"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4319 {"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 4320 {"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4321 {"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}}, 4322 {"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4323 {"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4324 {"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4325 {"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4326 {"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 4327 {"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4328 {"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4329 {"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}}, 4330 {"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4331 {"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4332 {"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4333 {"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4334 {"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4335 {"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4336 {"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 4337 {"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}}, 4338 {"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4339 {"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4340 {"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4341 {"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4342 {"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4343 {"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4344 {"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4345 {"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4346 {"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4347 {"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4348 {"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4349 {"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4350 {"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4351 {"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4352 {"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 4353 {"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4354 {"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4355 {"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4356 {"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4357 {"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4358 {"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 4359 {"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4360 {"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 4361 {"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4362 {"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4363 {"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4364 {"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4365 {"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4366 {"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4367 {"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4368 {"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4369 {"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4370 {"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4371 {"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4372 {"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4373 {"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 4374 {"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4375 {"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 4376 {"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4377 {"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4378 {"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4379 {"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 4380 {"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 4381 {"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4382 {"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 4383 {"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, 0, {URT, URA, URB}}, 4384 {"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4385 {"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4386 {"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4387 {"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 4388 {"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}}, 4389 4390 {"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 4391 {"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 4392 4393 {"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 4394 {"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 4395 4396 {"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}}, 4397 4398 {"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}}, 4399 {"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}}, 4400 {"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}}, 4401 {"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}}, 4402 4403 {"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}}, 4404 {"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}}, 4405 {"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}}, 4406 {"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}}, 4407 4408 {"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 4409 {"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 4410 {"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}}, 4411 4412 {"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 4413 {"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 4414 {"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}}, 4415 4416 {"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}}, 4417 {"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}}, 4418 {"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}}, 4419 {"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 4420 {"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}}, 4421 {"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}}, 4422 4423 {"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}}, 4424 {"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}}, 4425 {"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}}, 4426 {"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}}, 4427 {"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}}, 4428 4429 {"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 4430 {"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 4431 {"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}}, 4432 {"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}}, 4433 {"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 4434 {"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 4435 {"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}}, 4436 {"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}}, 4437 {"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 4438 {"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 4439 {"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}}, 4440 {"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}}, 4441 {"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 4442 {"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 4443 {"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}}, 4444 {"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}}, 4445 {"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 4446 {"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 4447 {"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}}, 4448 {"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 4449 {"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 4450 {"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}}, 4451 {"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 4452 {"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 4453 {"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}}, 4454 {"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 4455 {"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 4456 {"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}}, 4457 4458 {"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4459 {"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4460 {"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4461 {"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4462 {"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4463 {"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4464 {"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4465 {"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4466 {"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4467 {"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4468 {"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4469 {"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4470 {"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4471 {"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4472 {"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4473 {"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4474 {"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4475 {"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4476 {"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4477 {"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4478 {"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4479 {"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4480 {"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4481 {"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4482 {"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4483 {"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4484 {"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4485 {"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4486 {"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4487 {"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4488 {"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4489 {"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4490 {"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4491 {"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4492 {"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4493 {"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4494 {"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4495 {"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4496 {"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4497 {"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4498 {"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4499 {"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4500 {"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4501 {"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4502 {"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4503 {"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4504 {"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4505 {"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4506 {"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4507 {"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4508 {"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4509 {"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4510 {"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4511 {"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4512 {"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4513 {"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4514 {"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4515 {"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4516 {"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4517 {"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4518 {"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4519 {"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4520 {"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4521 {"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4522 {"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4523 {"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 4524 {"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4525 {"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4526 {"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4527 {"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4528 {"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4529 {"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 4530 {"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4531 {"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4532 {"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4533 {"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4534 {"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4535 {"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 4536 {"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4537 {"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4538 {"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4539 {"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4540 {"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4541 {"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 4542 4543 {"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4544 {"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4545 {"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4546 {"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4547 {"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4548 {"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4549 {"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4550 {"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4551 {"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4552 {"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4553 {"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4554 {"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4555 {"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4556 {"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4557 {"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4558 {"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4559 {"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4560 {"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4561 {"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4562 {"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4563 {"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4564 {"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4565 {"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4566 {"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4567 {"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4568 {"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4569 {"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4570 {"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4571 {"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4572 {"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4573 {"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4574 {"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4575 {"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4576 {"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4577 {"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4578 {"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4579 {"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4580 {"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4581 {"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4582 {"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4583 {"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4584 {"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 4585 {"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4586 {"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4587 {"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 4588 {"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 4589 {"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 4590 {"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 4591 {"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4592 {"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4593 {"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4594 {"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4595 {"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4596 {"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 4597 {"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4598 {"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4599 {"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 4600 {"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 4601 {"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 4602 {"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 4603 4604 {"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4605 {"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4606 {"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4607 {"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4608 {"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4609 {"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4610 {"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4611 {"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4612 {"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4613 {"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4614 {"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4615 {"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4616 {"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4617 {"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4618 {"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4619 {"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4620 {"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4621 {"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4622 {"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4623 {"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4624 {"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4625 {"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4626 {"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4627 {"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4628 4629 {"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 4630 {"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 4631 {"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4632 {"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 4633 {"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 4634 {"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 4635 {"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4636 {"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 4637 {"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 4638 {"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 4639 {"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4640 {"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 4641 {"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 4642 {"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 4643 {"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4644 {"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 4645 4646 {"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4647 {"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4648 {"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4649 {"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4650 {"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4651 {"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4652 {"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4653 {"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4654 {"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4655 {"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4656 {"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4657 {"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4658 {"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4659 {"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4660 {"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4661 {"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 4662 {"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 4663 {"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4664 {"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4665 {"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4666 {"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4667 {"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 4668 {"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 4669 {"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4670 4671 {"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 4672 {"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 4673 {"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4674 {"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 4675 {"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 4676 {"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 4677 {"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 4678 {"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 4679 {"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 4680 {"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 4681 {"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4682 {"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 4683 {"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 4684 {"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 4685 {"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 4686 {"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 4687 4688 {"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDM}}, 4689 {"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDP}}, 4690 {"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}}, 4691 {"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDM}}, 4692 {"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDP}}, 4693 {"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}}, 4694 {"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDMA}}, 4695 {"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDPA}}, 4696 {"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}}, 4697 {"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDMA}}, 4698 {"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDPA}}, 4699 {"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}}, 4700 4701 {"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}}, 4702 {"scv", SC(17,0,1), SC_MASK, POWER9, PPCVLE, {SVC_LEV}}, 4703 {"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}}, 4704 {"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}}, 4705 {"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}}, 4706 {"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}}, 4707 4708 {"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}}, 4709 {"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}}, 4710 {"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}}, 4711 {"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}}, 4712 4713 {"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}}, 4714 4715 {"lnia", DX(19,2), NODX_MASK, POWER9, PPCVLE, {RT}}, 4716 {"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}}, 4717 {"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}}, 4718 4719 {"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 4720 {"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4721 {"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 4722 {"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4723 {"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4724 {"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4725 {"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 4726 {"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4727 {"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 4728 {"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4729 {"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4730 {"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 4731 {"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 4732 {"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}}, 4733 {"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 4734 {"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}}, 4735 {"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4736 {"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4737 {"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4738 {"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4739 {"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4740 {"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4741 {"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4742 {"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 4743 4744 {"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4745 {"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4746 {"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4747 {"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4748 {"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4749 {"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4750 {"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4751 {"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4752 {"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4753 {"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4754 {"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4755 {"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4756 {"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4757 {"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4758 {"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4759 {"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4760 {"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4761 {"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4762 {"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4763 {"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4764 {"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4765 {"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4766 {"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4767 {"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4768 {"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4769 {"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4770 {"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4771 {"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4772 {"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4773 {"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4774 {"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4775 {"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4776 {"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4777 {"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4778 {"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4779 {"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4780 {"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4781 {"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4782 {"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4783 {"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4784 {"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4785 {"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4786 {"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4787 {"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4788 {"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4789 {"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4790 {"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4791 {"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4792 {"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4793 {"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4794 {"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4795 {"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4796 {"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4797 {"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4798 {"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4799 {"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4800 {"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4801 {"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4802 {"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4803 {"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4804 {"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4805 {"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4806 {"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4807 {"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4808 {"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4809 {"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4810 {"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4811 {"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4812 {"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4813 {"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4814 {"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4815 {"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4816 {"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4817 {"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4818 {"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4819 {"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4820 {"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4821 {"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4822 {"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4823 {"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4824 {"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4825 {"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4826 {"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4827 {"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4828 {"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4829 {"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4830 {"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4831 {"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4832 {"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4833 {"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4834 {"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4835 {"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4836 {"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4837 {"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4838 {"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4839 {"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4840 {"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4841 {"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4842 {"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4843 {"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4844 {"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4845 {"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4846 {"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4847 {"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4848 {"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4849 {"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4850 {"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4851 {"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 4852 {"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4853 {"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4854 {"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4855 {"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4856 {"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4857 {"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4858 {"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4859 {"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4860 {"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4861 {"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4862 {"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4863 {"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4864 {"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4865 {"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4866 {"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4867 {"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4868 {"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4869 {"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4870 {"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4871 {"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4872 {"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4873 {"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4874 {"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4875 {"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4876 {"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4877 {"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4878 {"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4879 {"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4880 {"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4881 {"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4882 {"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4883 {"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 4884 4885 {"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4886 {"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4887 {"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4888 {"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4889 {"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4890 {"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4891 {"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4892 {"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4893 {"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4894 {"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4895 {"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4896 {"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4897 {"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4898 {"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4899 {"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 4900 {"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4901 {"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4902 {"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 4903 {"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4904 {"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4905 {"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4906 {"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4907 {"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4908 {"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4909 {"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4910 {"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4911 {"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4912 {"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4913 {"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4914 {"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4915 {"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4916 {"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4917 {"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4918 {"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4919 {"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4920 {"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4921 {"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4922 {"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4923 {"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 4924 {"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 4925 {"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4926 {"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 4927 {"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4928 {"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 4929 {"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4930 {"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4931 {"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4932 {"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 4933 4934 {"bclr-", XLYLK(19,16,0,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 4935 {"bclrl-", XLYLK(19,16,0,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 4936 {"bclr+", XLYLK(19,16,1,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 4937 {"bclrl+", XLYLK(19,16,1,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 4938 {"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 4939 {"bcr", XLLK(19,16,0), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 4940 {"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 4941 {"bcrl", XLLK(19,16,1), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 4942 4943 {"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}}, 4944 4945 {"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}}, 4946 {"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4947 {"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}}, 4948 4949 {"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}}, 4950 {"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}}, 4951 {"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}}, 4952 4953 {"rfscv", XL(19,82), 0xffffffff, POWER9, PPCVLE, {0}}, 4954 {"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}}, 4955 4956 {"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}}, 4957 4958 {"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4959 4960 {"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}}, 4961 4962 {"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}}, 4963 {"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}}, 4964 4965 {"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BTAB}}, 4966 {"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4967 4968 {"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}}, 4969 4970 {"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4971 4972 {"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4973 4974 {"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}}, 4975 4976 {"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BTAB}}, 4977 {"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4978 4979 {"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}}, 4980 {"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}}, 4981 4982 {"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 4983 4984 {"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4985 4986 {"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 4987 4988 {"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BAB}}, 4989 {"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 4990 4991 {"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 4992 {"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 4993 4994 {"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {0}}, 4995 {"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {0}}, 4996 4997 {"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 4998 {"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 4999 {"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5000 {"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5001 {"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5002 {"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5003 {"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5004 {"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5005 {"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5006 {"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5007 {"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5008 {"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5009 {"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5010 {"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5011 {"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5012 {"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5013 {"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5014 {"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5015 {"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5016 {"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5017 {"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5018 {"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5019 {"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5020 {"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5021 {"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5022 {"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5023 {"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5024 {"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5025 {"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5026 {"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5027 {"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5028 {"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5029 {"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5030 {"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5031 {"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5032 {"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5033 {"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5034 {"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5035 {"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5036 {"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5037 {"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5038 {"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5039 {"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5040 {"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5041 {"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5042 {"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5043 {"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5044 {"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5045 {"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5046 {"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5047 {"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5048 {"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5049 {"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5050 {"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5051 {"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5052 {"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5053 {"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5054 {"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5055 {"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5056 {"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5057 {"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5058 {"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5059 {"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5060 {"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5061 {"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5062 {"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5063 {"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5064 {"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5065 {"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5066 {"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5067 {"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5068 {"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5069 {"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5070 {"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5071 {"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5072 {"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5073 {"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5074 {"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5075 {"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5076 {"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5077 {"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5078 {"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5079 {"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5080 {"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5081 {"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5082 {"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5083 {"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5084 {"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5085 {"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 5086 {"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5087 {"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5088 {"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5089 {"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5090 {"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5091 {"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5092 {"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5093 {"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5094 {"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5095 {"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5096 {"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 5097 {"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5098 {"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5099 {"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5100 {"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5101 {"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5102 {"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5103 {"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5104 {"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5105 {"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5106 {"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5107 {"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5108 {"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5109 {"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5110 {"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5111 {"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5112 {"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5113 {"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5114 {"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5115 {"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5116 {"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 5117 5118 {"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 5119 {"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5120 {"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 5121 {"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5122 {"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5123 {"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5124 {"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5125 {"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5126 {"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5127 {"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5128 {"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 5129 {"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5130 {"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 5131 {"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5132 {"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5133 {"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 5134 {"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5135 {"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5136 {"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5137 {"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 5138 5139 {"bcctr-", XLYLK(19,528,0,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 5140 {"bcctrl-", XLYLK(19,528,0,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 5141 {"bcctr+", XLYLK(19,528,1,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 5142 {"bcctrl+", XLYLK(19,528,1,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 5143 {"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 5144 {"bcc", XLLK(19,528,0), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 5145 {"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 5146 {"bccl", XLLK(19,528,1), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 5147 5148 {"bctar-", XLYLK(19,560,0,0), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 5149 {"bctarl-", XLYLK(19,560,0,1), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 5150 {"bctar+", XLYLK(19,560,1,0), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 5151 {"bctarl+", XLYLK(19,560,1,1), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 5152 {"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}}, 5153 {"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}}, 5154 5155 {"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5156 {"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5157 5158 {"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5159 {"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5160 5161 {"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}}, 5162 {"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}}, 5163 {"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5164 {"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5165 {"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}}, 5166 {"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}}, 5167 {"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5168 {"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 5169 5170 {"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}}, 5171 {"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}}, 5172 5173 {"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}}, 5174 {"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 5175 {"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 5176 {"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}}, 5177 {"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 5178 {"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 5179 5180 {"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}}, 5181 {"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 5182 {"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 5183 5184 {"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 5185 {"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 5186 5187 {"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}}, 5188 {"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 5189 {"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 5190 5191 {"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 5192 {"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 5193 5194 {"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 5195 {"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 5196 5197 {"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 5198 {"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 5199 5200 {"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}}, 5201 {"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}}, 5202 {"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 5203 {"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}}, 5204 {"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}}, 5205 {"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 5206 5207 {"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}}, 5208 {"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}}, 5209 5210 {"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 5211 {"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 5212 5213 {"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 5214 {"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 5215 5216 {"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}}, 5217 {"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}}, 5218 {"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}}, 5219 {"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}}, 5220 5221 {"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}}, 5222 {"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}}, 5223 5224 {"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}}, 5225 {"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}}, 5226 {"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}}, 5227 {"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}}, 5228 5229 {"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5230 {"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5231 {"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5232 {"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5233 {"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5234 {"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5235 {"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5236 {"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5237 {"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5238 {"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5239 {"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5240 {"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5241 {"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5242 {"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5243 {"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5244 {"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5245 {"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5246 {"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5247 {"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5248 {"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5249 {"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5250 {"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5251 {"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5252 {"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5253 {"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5254 {"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5255 {"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5256 {"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5257 {"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}}, 5258 {"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}}, 5259 {"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}}, 5260 {"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}}, 5261 {"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}}, 5262 5263 {"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5264 {"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5265 {"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5266 5267 {"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5268 {"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5269 {"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 5270 {"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5271 {"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5272 {"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 5273 5274 {"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 5275 {"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 5276 5277 {"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5278 {"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5279 {"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5280 {"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5281 5282 {"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 5283 {"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 5284 5285 {"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}}, 5286 5287 {"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}}, 5288 5289 {"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}}, 5290 {"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}}, 5291 {"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 5292 {"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}}, 5293 5294 {"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}}, 5295 {"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}}, 5296 5297 {"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}}, 5298 5299 {"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}}, 5300 5301 {"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}}, 5302 5303 {"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}}, 5304 {"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 5305 5306 {"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 5307 {"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 5308 {"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 5309 {"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 5310 5311 {"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}}, 5312 {"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}}, 5313 {"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}}, 5314 {"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}}, 5315 5316 {"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}}, 5317 {"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}}, 5318 5319 {"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}}, 5320 {"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}}, 5321 5322 {"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}}, 5323 {"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}}, 5324 5325 {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 5326 5327 {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}}, 5328 {"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}}, 5329 5330 {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 5331 5332 {"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}}, 5333 {"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}}, 5334 {"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}}, 5335 {"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}}, 5336 5337 {"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5338 {"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5339 {"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5340 5341 {"mviwsplt", X(31,46), X_MASK, E6500, 0, {VD, RA, RB}}, 5342 5343 {"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}}, 5344 5345 {"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5346 5347 {"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}}, 5348 5349 {"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}}, 5350 5351 {"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}}, 5352 5353 {"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}}, 5354 5355 {"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 5356 {"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}}, 5357 {"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 5358 {"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}}, 5359 5360 {"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}}, 5361 {"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}}, 5362 {"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}}, 5363 {"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}}, 5364 5365 {"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}}, 5366 5367 {"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}}, 5368 5369 {"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}}, 5370 5371 {"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}}, 5372 {"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 5373 5374 {"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}}, 5375 {"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}}, 5376 5377 {"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}}, 5378 {"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}}, 5379 5380 {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, 5381 {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, 5382 {"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}}, 5383 5384 {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 5385 5386 {"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}}, 5387 {"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}}, 5388 {"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}}, 5389 {"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}}, 5390 {"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}}, 5391 {"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}}, 5392 {"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}}, 5393 {"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}}, 5394 {"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}}, 5395 {"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}}, 5396 {"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}}, 5397 {"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}}, 5398 {"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}}, 5399 {"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}}, 5400 {"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}}, 5401 {"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}}, 5402 5403 {"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5404 {"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 5405 {"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 5406 5407 {"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 5408 {"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 5409 5410 {"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}}, 5411 {"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA, RS, RB}}, 5412 5413 {"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}}, 5414 5415 {"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}}, 5416 5417 {"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}}, 5418 5419 {"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}}, 5420 {"dcbf", X(31,86), XLRT_MASK, PPC, 0, {RA0, RB, L2OPT}}, 5421 5422 {"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}}, 5423 5424 {"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 5425 5426 {"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}}, 5427 5428 {"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5429 {"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5430 5431 {"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}}, 5432 {"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}}, 5433 5434 {"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 5435 {"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 5436 5437 {"mvidsplt", X(31,110), X_MASK, E6500, 0, {VD, RA, RB}}, 5438 5439 {"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}}, 5440 5441 {"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}}, 5442 {"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}}, 5443 {"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}}, 5444 5445 {"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}}, 5446 5447 {"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}}, 5448 5449 {"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}}, 5450 5451 {"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}}, 5452 5453 {"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RSB}}, 5454 {"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}}, 5455 {"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RSB}}, 5456 {"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}}, 5457 5458 {"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 5459 5460 {"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}}, 5461 5462 {"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}}, 5463 5464 {"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 5465 5466 {"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 5467 {"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5468 5469 {"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5470 {"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5471 {"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5472 {"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5473 5474 {"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5475 {"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5476 {"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5477 {"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5478 5479 {"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}}, 5480 5481 {"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}}, 5482 {"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}}, 5483 5484 {"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}}, 5485 {"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}}, 5486 {"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}}, 5487 5488 {"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}}, 5489 5490 {"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}}, 5491 5492 {"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}}, 5493 {"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}}, 5494 5495 {"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}}, 5496 5497 {"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}}, 5498 5499 {"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}}, 5500 {"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}}, 5501 5502 {"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}}, 5503 {"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}}, 5504 5505 {"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}}, 5506 {"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}}, 5507 5508 {"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}}, 5509 5510 {"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 5511 5512 {"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 5513 5514 {"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}}, 5515 5516 {"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 5517 5518 {"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 5519 {"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5520 5521 {"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}}, 5522 5523 {"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}}, 5524 {"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}}, 5525 5526 {"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}}, 5527 5528 {"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}}, 5529 {"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}}, 5530 {"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}}, 5531 {"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}}, 5532 5533 {"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}}, 5534 5535 {"stqcx.", XRC(31,182,1), X_MASK|Q_MASK, POWER8, 0, {RSQ, RA0, RB}}, 5536 {"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}}, 5537 5538 {"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}}, 5539 {"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}}, 5540 5541 {"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}}, 5542 {"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}}, 5543 5544 {"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}}, 5545 5546 {"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}}, 5547 5548 {"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}}, 5549 5550 {"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 5551 {"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5552 5553 {"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5554 {"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5555 {"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5556 {"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5557 5558 {"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5559 {"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5560 {"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5561 {"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5562 5563 {"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}}, 5564 5565 {"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}}, 5566 5567 {"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}}, 5568 {"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}}, 5569 {"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}}, 5570 {"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}}, 5571 5572 {"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}}, 5573 5574 {"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}}, 5575 5576 {"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}}, 5577 5578 {"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}}, 5579 {"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}}, 5580 5581 {"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}}, 5582 {"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}}, 5583 5584 {"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 5585 5586 {"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}}, 5587 5588 {"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 5589 5590 {"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 5591 {"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5592 5593 {"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5594 {"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5595 {"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5596 {"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5597 5598 {"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 5599 {"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 5600 5601 {"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5602 {"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5603 {"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 5604 {"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 5605 5606 {"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5607 {"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5608 {"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5609 {"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5610 5611 {"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}}, 5612 {"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}}, 5613 {"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}}, 5614 {"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}}, 5615 5616 {"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}}, 5617 {"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}}, 5618 {"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}}, 5619 5620 {"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}}, 5621 {"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}}, 5622 {"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}}, 5623 {"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}}, 5624 5625 {"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}}, 5626 5627 {"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}}, 5628 {"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}}, 5629 5630 {"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}}, 5631 5632 {"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 5633 5634 {"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}}, 5635 {"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}}, 5636 5637 {"lvexbx", X(31,261), X_MASK, E6500, 0, {VD, RA0, RB}}, 5638 5639 {"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}}, 5640 5641 {"lvepxl", X(31,263), X_MASK, E6500, 0, {VD, RA0, RB}}, 5642 5643 {"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 5644 {"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 5645 {"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 5646 5647 {"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}}, 5648 5649 {"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5650 {"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5651 {"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 5652 {"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 5653 5654 {"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}}, 5655 5656 {"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}}, 5657 {"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 5658 5659 {"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}}, 5660 5661 {"tlbiel", X(31,274), X_MASK|1<<20,POWER9, 0, {RB, RSO, RIC, PRS, X_R}}, 5662 {"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}}, 5663 5664 {"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}}, 5665 5666 {"lqarx", X(31,276), XEH_MASK|Q_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}}, 5667 5668 {"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}}, 5669 {"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}}, 5670 5671 {"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}}, 5672 {"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}}, 5673 {"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}}, 5674 {"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}}, 5675 5676 {"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}}, 5677 5678 {"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}}, 5679 5680 {"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}}, 5681 {"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}}, 5682 5683 {"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 5684 5685 {"mfdcrux", X(31,291), X_MASK, PPC464|PPC476, 0, {RS, RA}}, 5686 5687 {"lvexhx", X(31,293), X_MASK, E6500, 0, {VD, RA0, RB}}, 5688 {"lvepx", X(31,295), X_MASK, E6500, 0, {VD, RA0, RB}}, 5689 5690 {"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 5691 5692 {"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}}, 5693 5694 {"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}}, 5695 {"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}}, 5696 {"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}}, 5697 {"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}}, 5698 5699 {"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}}, 5700 5701 {"ldmx", X(31,309), X_MASK, POWER9, 0, {RT, RA0, RB}}, 5702 5703 {"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}}, 5704 5705 {"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}}, 5706 5707 {"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}}, 5708 5709 {"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}}, 5710 {"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}}, 5711 5712 {"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 5713 5714 {"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}}, 5715 {"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}}, 5716 {"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}}, 5717 {"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}}, 5718 {"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}}, 5719 {"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}}, 5720 {"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}}, 5721 {"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}}, 5722 {"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}}, 5723 {"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}}, 5724 {"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}}, 5725 {"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}}, 5726 {"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}}, 5727 {"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}}, 5728 {"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}}, 5729 {"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}}, 5730 {"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}}, 5731 {"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}}, 5732 {"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}}, 5733 {"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}}, 5734 {"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}}, 5735 {"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}}, 5736 {"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}}, 5737 {"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}}, 5738 {"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}}, 5739 {"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}}, 5740 {"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}}, 5741 {"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}}, 5742 {"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}}, 5743 {"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}}, 5744 {"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}}, 5745 {"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}}, 5746 {"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}}, 5747 {"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}}, 5748 {"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}}, 5749 {"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}}, 5750 5751 {"lvexwx", X(31,325), X_MASK, E6500, 0, {VD, RA0, RB}}, 5752 5753 {"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}}, 5754 5755 {"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 5756 {"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 5757 5758 {"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 5759 5760 {"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}}, 5761 {"mftmr", X(31,366), X_MASK, PPCTMR, 0, {RT, TMR}}, 5762 5763 {"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}}, 5764 5765 {"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}}, 5766 {"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}}, 5767 {"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}}, 5768 {"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}}, 5769 {"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}}, 5770 {"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}}, 5771 {"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}}, 5772 {"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}}, 5773 {"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}}, 5774 {"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}}, 5775 {"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}}, 5776 {"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}}, 5777 {"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}}, 5778 {"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}}, 5779 {"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}}, 5780 {"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}}, 5781 {"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}}, 5782 {"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}}, 5783 {"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}}, 5784 {"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}}, 5785 {"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}}, 5786 {"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}}, 5787 {"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}}, 5788 {"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}}, 5789 {"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}}, 5790 {"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}}, 5791 {"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}}, 5792 {"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}}, 5793 {"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}}, 5794 {"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}}, 5795 {"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}}, 5796 {"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}}, 5797 {"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}}, 5798 {"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}}, 5799 {"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}}, 5800 {"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}}, 5801 {"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}}, 5802 {"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}}, 5803 {"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}}, 5804 {"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}}, 5805 {"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}}, 5806 {"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}}, 5807 {"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}}, 5808 {"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 5809 {"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 5810 {"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 5811 {"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 5812 {"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}}, 5813 {"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}}, 5814 {"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}}, 5815 {"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}}, 5816 {"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}}, 5817 {"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}}, 5818 {"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}}, 5819 {"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}}, 5820 {"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}}, 5821 {"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}}, 5822 {"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}}, 5823 {"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}}, 5824 {"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}}, 5825 {"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}}, 5826 {"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}}, 5827 {"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}}, 5828 {"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}}, 5829 {"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}}, 5830 {"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}}, 5831 {"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}}, 5832 {"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}}, 5833 {"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}}, 5834 {"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}}, 5835 {"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}}, 5836 {"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}}, 5837 {"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}}, 5838 {"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}}, 5839 {"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}}, 5840 {"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}}, 5841 {"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}}, 5842 {"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}}, 5843 {"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}}, 5844 {"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}}, 5845 {"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}}, 5846 {"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}}, 5847 {"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}}, 5848 {"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}}, 5849 {"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}}, 5850 {"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}}, 5851 {"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}}, 5852 {"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}}, 5853 {"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}}, 5854 {"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}}, 5855 {"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}}, 5856 {"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, 0, {RT}}, 5857 {"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, 0, {RT}}, 5858 {"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}}, 5859 {"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}}, 5860 {"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 5861 {"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 5862 {"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 5863 {"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 5864 {"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}}, 5865 {"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}}, 5866 {"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}}, 5867 {"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}}, 5868 {"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}}, 5869 {"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}}, 5870 {"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}}, 5871 {"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}}, 5872 {"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}}, 5873 {"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}}, 5874 {"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}}, 5875 {"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}}, 5876 {"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}}, 5877 {"mfupmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}}, 5878 {"mfpmc1", XSPR(31,339,771), XSPR_MASK, POWER9, 0, {RT}}, 5879 {"mfupmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}}, 5880 {"mfpmc2", XSPR(31,339,772), XSPR_MASK, POWER9, 0, {RT}}, 5881 {"mfupmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}}, 5882 {"mfpmc3", XSPR(31,339,773), XSPR_MASK, POWER9, 0, {RT}}, 5883 {"mfupmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}}, 5884 {"mfpmc4", XSPR(31,339,774), XSPR_MASK, POWER9, 0, {RT}}, 5885 {"mfupmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}}, 5886 {"mfpmc5", XSPR(31,339,775), XSPR_MASK, POWER9, 0, {RT}}, 5887 {"mfupmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}}, 5888 {"mfpmc6", XSPR(31,339,776), XSPR_MASK, POWER9, 0, {RT}}, 5889 {"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}}, 5890 {"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}}, 5891 {"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}}, 5892 {"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}}, 5893 {"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}}, 5894 {"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}}, 5895 {"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}}, 5896 {"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}}, 5897 {"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}}, 5898 {"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}}, 5899 {"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}}, 5900 {"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}}, 5901 {"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}}, 5902 {"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}}, 5903 {"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}}, 5904 {"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}}, 5905 {"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}}, 5906 {"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}}, 5907 {"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}}, 5908 {"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}}, 5909 {"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}}, 5910 {"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}}, 5911 {"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}}, 5912 {"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}}, 5913 {"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}}, 5914 {"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}}, 5915 {"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}}, 5916 {"mfgqr", XSPR(31,339,912), XSPRGQR_MASK, PPCPS, 0, {RT, SPRGQR}}, 5917 {"mfhid2", XSPR(31,339,920), XSPR_MASK, GEKKO, 0, {RT}}, 5918 {"mfwpar", XSPR(31,339,921), XSPR_MASK, GEKKO, 0, {RT}}, 5919 {"mfdmau", XSPR(31,339,922), XSPR_MASK, GEKKO, 0, {RT}}, 5920 {"mfdmal", XSPR(31,339,923), XSPR_MASK, GEKKO, 0, {RT}}, 5921 {"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}}, 5922 {"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}}, 5923 {"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}}, 5924 {"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}}, 5925 {"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}}, 5926 {"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}}, 5927 {"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}}, 5928 {"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}}, 5929 {"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}}, 5930 {"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}}, 5931 {"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}}, 5932 {"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}}, 5933 {"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}}, 5934 {"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}}, 5935 {"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}}, 5936 {"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}}, 5937 {"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}}, 5938 {"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}}, 5939 {"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}}, 5940 {"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}}, 5941 {"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}}, 5942 {"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}}, 5943 {"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}}, 5944 {"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}}, 5945 {"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}}, 5946 {"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}}, 5947 {"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}}, 5948 {"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}}, 5949 {"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}}, 5950 {"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}}, 5951 {"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}}, 5952 {"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}}, 5953 {"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}}, 5954 {"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}}, 5955 {"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}}, 5956 {"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}}, 5957 {"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}}, 5958 {"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}}, 5959 {"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}}, 5960 {"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}}, 5961 {"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}}, 5962 {"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}}, 5963 {"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}}, 5964 {"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}}, 5965 {"mfhid0", XSPR(31,339,1008), XSPR_MASK, GEKKO, 0, {RT}}, 5966 {"mfhid1", XSPR(31,339,1009), XSPR_MASK, GEKKO, 0, {RT}}, 5967 {"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}}, 5968 {"mfiabr", XSPR(31,339,1010), XSPR_MASK, GEKKO, 0, {RT}}, 5969 {"mfhid4", XSPR(31,339,1011), XSPR_MASK, BROADWAY, 0, {RT}}, 5970 {"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}}, 5971 {"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}}, 5972 {"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}}, 5973 {"mfdabr", XSPR(31,339,1013), XSPR_MASK, PPC750, 0, {RT}}, 5974 {"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}}, 5975 {"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}}, 5976 {"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}}, 5977 {"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}}, 5978 {"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}}, 5979 {"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}}, 5980 {"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}}, 5981 {"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}}, 5982 {"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}}, 5983 {"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}}, 5984 {"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}}, 5985 {"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}}, 5986 {"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}}, 5987 {"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}}, 5988 5989 {"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}}, 5990 5991 {"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 5992 5993 {"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}}, 5994 5995 {"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 5996 5997 {"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}}, 5998 {"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}}, 5999 6000 {"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 6001 {"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 6002 6003 {"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 6004 6005 {"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}}, 6006 6007 {"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}}, 6008 {"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}}, 6009 {"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}}, 6010 6011 {"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}}, 6012 6013 {"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 6014 6015 {"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}}, 6016 6017 {"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}}, 6018 6019 {"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}}, 6020 {"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}}, 6021 6022 {"stvexbx", X(31,389), X_MASK, E6500, 0, {VS, RA0, RB}}, 6023 6024 {"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 6025 {"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6026 6027 {"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6028 {"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6029 {"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6030 {"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6031 6032 {"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6033 {"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6034 6035 {"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}}, 6036 6037 {"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}}, 6038 6039 {"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}}, 6040 6041 {"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}}, 6042 6043 {"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}}, 6044 {"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}}, 6045 6046 {"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}}, 6047 6048 {"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}}, 6049 {"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}}, 6050 6051 {"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 6052 6053 {"mtdcrux", X(31,419), X_MASK, PPC464|PPC476, 0, {RA, RS}}, 6054 6055 {"stvexhx", X(31,421), X_MASK, E6500, 0, {VS, RA0, RB}}, 6056 6057 {"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}}, 6058 6059 {"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6060 {"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6061 {"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6062 {"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6063 6064 {"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6065 6066 {"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}}, 6067 6068 {"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}}, 6069 6070 {"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 6071 6072 {"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}}, 6073 6074 {"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}}, 6075 6076 {"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}}, 6077 6078 {"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}}, 6079 6080 /* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for 6081 "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */ 6082 {"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}}, 6083 {"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}}, 6084 {"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}}, 6085 {"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RSB}}, 6086 {"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}}, 6087 {"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RSB}}, 6088 {"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}}, 6089 6090 {"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}}, 6091 {"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}}, 6092 {"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}}, 6093 {"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}}, 6094 {"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}}, 6095 {"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}}, 6096 {"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}}, 6097 {"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}}, 6098 {"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}}, 6099 {"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}}, 6100 {"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}}, 6101 {"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}}, 6102 {"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}}, 6103 {"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}}, 6104 {"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}}, 6105 {"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}}, 6106 {"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}}, 6107 {"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}}, 6108 {"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}}, 6109 {"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}}, 6110 {"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}}, 6111 {"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}}, 6112 {"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}}, 6113 {"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}}, 6114 {"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}}, 6115 {"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}}, 6116 {"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}}, 6117 {"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}}, 6118 {"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}}, 6119 {"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}}, 6120 {"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}}, 6121 {"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}}, 6122 {"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}}, 6123 {"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}}, 6124 {"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}}, 6125 {"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}}, 6126 6127 {"stvexwx", X(31,453), X_MASK, E6500, 0, {VS, RA0, RB}}, 6128 6129 {"dccci", X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}}, 6130 {"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}}, 6131 6132 {"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6133 {"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6134 6135 {"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 6136 {"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 6137 6138 {"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}}, 6139 {"mttmr", X(31,494), X_MASK, PPCTMR, 0, {TMR, RS}}, 6140 6141 {"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}}, 6142 6143 {"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}}, 6144 {"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}}, 6145 {"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}}, 6146 {"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}}, 6147 {"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}}, 6148 {"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}}, 6149 {"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}}, 6150 {"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}}, 6151 {"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}}, 6152 {"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}}, 6153 {"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}}, 6154 {"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}}, 6155 {"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}}, 6156 {"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}}, 6157 {"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}}, 6158 {"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}}, 6159 {"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}}, 6160 {"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}}, 6161 {"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}}, 6162 {"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}}, 6163 {"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}}, 6164 {"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}}, 6165 {"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}}, 6166 {"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}}, 6167 {"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}}, 6168 {"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}}, 6169 {"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}}, 6170 {"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}}, 6171 {"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}}, 6172 {"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}}, 6173 {"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}}, 6174 {"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}}, 6175 {"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}}, 6176 {"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}}, 6177 {"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}}, 6178 {"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}}, 6179 {"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}}, 6180 {"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}}, 6181 {"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}}, 6182 {"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}}, 6183 {"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}}, 6184 {"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}}, 6185 {"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}}, 6186 {"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}}, 6187 {"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}}, 6188 {"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}}, 6189 {"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}}, 6190 {"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 6191 {"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 6192 {"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 6193 {"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 6194 {"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}}, 6195 {"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}}, 6196 {"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}}, 6197 {"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}}, 6198 {"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}}, 6199 {"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}}, 6200 {"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}}, 6201 {"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}}, 6202 {"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}}, 6203 {"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}}, 6204 {"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}}, 6205 {"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}}, 6206 {"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}}, 6207 {"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}}, 6208 {"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}}, 6209 {"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}}, 6210 {"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}}, 6211 {"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}}, 6212 {"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}}, 6213 {"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}}, 6214 {"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}}, 6215 {"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}}, 6216 {"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}}, 6217 {"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}}, 6218 {"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}}, 6219 {"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}}, 6220 {"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}}, 6221 {"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}}, 6222 {"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}}, 6223 {"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}}, 6224 {"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}}, 6225 {"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}}, 6226 {"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}}, 6227 {"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}}, 6228 {"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}}, 6229 {"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}}, 6230 {"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}}, 6231 {"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, 0, {RS}}, 6232 {"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, 0, {RS}}, 6233 {"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}}, 6234 {"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}}, 6235 {"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 6236 {"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 6237 {"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 6238 {"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 6239 {"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}}, 6240 {"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}}, 6241 {"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}}, 6242 {"mtupmc1", XSPR(31,467,771), XSPR_MASK, POWER9, 0, {RS}}, 6243 {"mtupmc2", XSPR(31,467,772), XSPR_MASK, POWER9, 0, {RS}}, 6244 {"mtupmc3", XSPR(31,467,773), XSPR_MASK, POWER9, 0, {RS}}, 6245 {"mtupmc4", XSPR(31,467,774), XSPR_MASK, POWER9, 0, {RS}}, 6246 {"mtupmc5", XSPR(31,467,775), XSPR_MASK, POWER9, 0, {RS}}, 6247 {"mtupmc6", XSPR(31,467,776), XSPR_MASK, POWER9, 0, {RS}}, 6248 {"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}}, 6249 {"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}}, 6250 {"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}}, 6251 {"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}}, 6252 {"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}}, 6253 {"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}}, 6254 {"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}}, 6255 {"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}}, 6256 {"mtgqr", XSPR(31,467,912), XSPRGQR_MASK, PPCPS, 0, {SPRGQR, RS}}, 6257 {"mthid2", XSPR(31,467,920), XSPR_MASK, GEKKO, 0, {RS}}, 6258 {"mtwpar", XSPR(31,467,921), XSPR_MASK, GEKKO, 0, {RS}}, 6259 {"mtdmau", XSPR(31,467,922), XSPR_MASK, GEKKO, 0, {RS}}, 6260 {"mtdmal", XSPR(31,467,923), XSPR_MASK, GEKKO, 0, {RS}}, 6261 {"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}}, 6262 {"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}}, 6263 {"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}}, 6264 {"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}}, 6265 {"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}}, 6266 {"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}}, 6267 {"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}}, 6268 {"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}}, 6269 {"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}}, 6270 {"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}}, 6271 {"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}}, 6272 {"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}}, 6273 {"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}}, 6274 {"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}}, 6275 {"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}}, 6276 {"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}}, 6277 {"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}}, 6278 {"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}}, 6279 {"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}}, 6280 {"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}}, 6281 {"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}}, 6282 {"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}}, 6283 {"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}}, 6284 {"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}}, 6285 {"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}}, 6286 {"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}}, 6287 {"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}}, 6288 {"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}}, 6289 {"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}}, 6290 {"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}}, 6291 {"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}}, 6292 {"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}}, 6293 {"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}}, 6294 {"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}}, 6295 {"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}}, 6296 {"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}}, 6297 {"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}}, 6298 {"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}}, 6299 {"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}}, 6300 {"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}}, 6301 {"mthid0", XSPR(31,467,1008), XSPR_MASK, GEKKO, 0, {RS}}, 6302 {"mthid1", XSPR(31,467,1009), XSPR_MASK, GEKKO, 0, {RS}}, 6303 {"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}}, 6304 {"mtiabr", XSPR(31,467,1010), XSPR_MASK, GEKKO, 0, {RS}}, 6305 {"mthid4", XSPR(31,467,1011), XSPR_MASK, BROADWAY, 0, {RS}}, 6306 {"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}}, 6307 {"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}}, 6308 {"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}}, 6309 {"mtdabr", XSPR(31,467,1013), XSPR_MASK, PPC750, 0, {RS}}, 6310 {"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}}, 6311 {"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}}, 6312 {"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}}, 6313 {"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}}, 6314 {"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}}, 6315 {"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}}, 6316 {"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}}, 6317 {"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}}, 6318 {"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}}, 6319 {"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}}, 6320 {"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}}, 6321 {"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}}, 6322 {"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}}, 6323 {"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}}, 6324 6325 {"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}}, 6326 6327 {"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}}, 6328 {"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}}, 6329 6330 {"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}}, 6331 6332 {"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2, {RT, RA0, RB}}, 6333 6334 {"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 6335 6336 {"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 6337 6338 {"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}}, 6339 {"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}}, 6340 6341 {"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6342 {"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6343 6344 {"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 6345 {"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 6346 6347 {"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}}, 6348 6349 {"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}}, 6350 {"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}}, 6351 6352 {"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}}, 6353 6354 {"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}}, 6355 6356 {"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}}, 6357 6358 {"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}}, 6359 6360 {"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}}, 6361 {"lbdx", X(31,515), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}}, 6362 6363 {"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}}, 6364 6365 {"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}}, 6366 {"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6367 6368 {"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6369 {"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6370 {"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 6371 {"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6372 {"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6373 {"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 6374 6375 {"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6376 {"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6377 {"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6378 {"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6379 6380 {"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}}, 6381 6382 {"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}}, 6383 6384 {"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}}, 6385 6386 {"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}}, 6387 {"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 6388 6389 {"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}}, 6390 {"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 6391 6392 {"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}}, 6393 6394 {"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 6395 {"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 6396 {"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 6397 {"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 6398 6399 {"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}}, 6400 {"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}}, 6401 6402 {"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}}, 6403 {"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}}, 6404 6405 {"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}}, 6406 {"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}}, 6407 6408 {"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}}, 6409 {"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}}, 6410 6411 {"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}}, 6412 {"lhdx", X(31,547), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}}, 6413 6414 {"lvtrx", X(31,549), X_MASK, E6500, 0, {VD, RA0, RB}}, 6415 6416 {"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}}, 6417 6418 {"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}}, 6419 {"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6420 6421 {"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 6422 {"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}}, 6423 {"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 6424 {"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}}, 6425 6426 {"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}}, 6427 6428 {"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}}, 6429 6430 {"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}}, 6431 {"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}}, 6432 6433 {"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}}, 6434 6435 {"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}}, 6436 {"lwdx", X(31,579), X_MASK, E500MC|E200Z4, 0, {RT, RA, RB}}, 6437 6438 {"lvtlx", X(31,581), X_MASK, E6500, 0, {VD, RA0, RB}}, 6439 6440 {"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}}, 6441 6442 {"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6443 6444 {"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 6445 6446 {"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}}, 6447 6448 {"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}}, 6449 {"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}}, 6450 6451 {"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}}, 6452 {"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}}, 6453 {"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}}, 6454 {"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}}, 6455 {"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}}, 6456 {"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}}, 6457 {"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}}, 6458 {"lwsync", X(31,598), 0xffffffff, E500, 0, {0}}, 6459 {"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}}, 6460 6461 {"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}}, 6462 6463 {"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}}, 6464 {"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}}, 6465 6466 {"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}}, 6467 6468 {"lvswx", X(31,613), X_MASK, E6500, 0, {VD, RA0, RB}}, 6469 6470 {"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}}, 6471 6472 {"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6473 6474 {"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}}, 6475 {"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}}, 6476 6477 {"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 6478 {"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 6479 6480 {"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}}, 6481 6482 {"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}}, 6483 6484 {"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}}, 6485 6486 {"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}}, 6487 {"stbdx", X(31,643), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}}, 6488 6489 {"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}}, 6490 {"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6491 6492 {"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}}, 6493 6494 {"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}}, 6495 6496 {"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6497 {"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6498 {"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6499 {"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6500 6501 {"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6502 {"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6503 {"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6504 {"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6505 6506 {"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}}, 6507 6508 {"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}}, 6509 6510 {"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}}, 6511 {"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}}, 6512 6513 {"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}}, 6514 {"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}}, 6515 6516 {"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}}, 6517 6518 {"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}}, 6519 {"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}}, 6520 6521 {"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}}, 6522 {"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}}, 6523 6524 {"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}}, 6525 {"sthdx", X(31,675), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}}, 6526 6527 {"stvfrx", X(31,677), X_MASK, E6500, 0, {VS, RA0, RB}}, 6528 6529 {"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}}, 6530 {"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6531 6532 {"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}}, 6533 {"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}}, 6534 6535 {"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}}, 6536 6537 {"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}}, 6538 6539 {"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}}, 6540 {"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}}, 6541 6542 {"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}}, 6543 {"stwdx", X(31,707), X_MASK, E500MC|E200Z4, 0, {RS, RA, RB}}, 6544 6545 {"stvflx", X(31,709), X_MASK, E6500, 0, {VS, RA0, RB}}, 6546 6547 {"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}}, 6548 6549 {"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6550 6551 {"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}}, 6552 6553 {"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}}, 6554 6555 {"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6556 {"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6557 {"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6558 {"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6559 6560 {"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6561 {"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6562 {"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6563 {"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6564 6565 {"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}}, 6566 {"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}}, 6567 6568 {"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}}, 6569 6570 {"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}}, 6571 6572 {"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}}, 6573 {"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}}, 6574 6575 {"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}}, 6576 {"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}}, 6577 6578 {"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}}, 6579 {"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}}, 6580 6581 {"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}}, 6582 6583 {"stvswx", X(31,741), X_MASK, E6500, 0, {VS, RA0, RB}}, 6584 6585 {"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}}, 6586 6587 {"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6588 6589 {"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6590 {"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6591 {"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6592 {"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6593 6594 {"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6595 {"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6596 6597 {"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6598 {"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6599 {"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 6600 {"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 6601 6602 {"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6603 {"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6604 {"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6605 {"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6606 6607 {"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}}, 6608 {"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}}, 6609 {"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}}, 6610 6611 {"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}}, 6612 6613 {"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}}, 6614 {"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}}, 6615 6616 {"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}}, 6617 6618 {"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}}, 6619 {"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}}, 6620 6621 {"lvsm", X(31,773), X_MASK, E6500, 0, {VD, RA0, RB}}, 6622 6623 {"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}}, 6624 6625 {"stvepxl", X(31,775), X_MASK, E6500, 0, {VS, RA0, RB}}, 6626 {"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}}, 6627 {"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6628 6629 {"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 6630 {"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 6631 6632 {"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6633 {"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6634 {"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 6635 {"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 6636 6637 {"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}}, 6638 {"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}}, 6639 6640 {"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 6641 {"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 6642 6643 {"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}}, 6644 6645 {"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}}, 6646 6647 {"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}}, 6648 6649 {"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}}, 6650 6651 {"lfdpx", X(31,791), X_MASK|Q_MASK, POWER6, POWER7, {FRTp, RA0, RB}}, 6652 {"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}}, 6653 6654 {"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 6655 {"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 6656 {"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 6657 {"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 6658 6659 {"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}}, 6660 {"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}}, 6661 6662 {"evlddepx", VX (31, 1598), VX_MASK, PPCSPE, 0, {RT, RA, RB}}, 6663 {"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}}, 6664 6665 {"lvtrxl", X(31,805), X_MASK, E6500, 0, {VD, RA0, RB}}, 6666 {"stvepx", X(31,807), X_MASK, E6500, 0, {VS, RA0, RB}}, 6667 {"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}}, 6668 6669 {"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 6670 {"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 6671 6672 {"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}}, 6673 6674 {"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}}, 6675 6676 {"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}}, 6677 6678 {"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}}, 6679 6680 {"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}}, 6681 6682 {"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}}, 6683 6684 {"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}}, 6685 {"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}}, 6686 {"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}}, 6687 {"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}}, 6688 6689 {"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}}, 6690 {"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}}, 6691 6692 {"lvtlxl", X(31,837), X_MASK, E6500, 0, {VD, RA0, RB}}, 6693 6694 {"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}}, 6695 6696 {"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 6697 {"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 6698 6699 {"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 6700 {"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}}, 6701 6702 {"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}}, 6703 6704 {"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}}, 6705 6706 {"slbiag", X(31,850), XRARB_MASK, POWER9, 0, {RS}}, 6707 {"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}}, 6708 {"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}}, 6709 6710 {"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}}, 6711 6712 {"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}}, 6713 {"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}}, 6714 {"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}}, 6715 {"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}}, 6716 6717 {"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}}, 6718 6719 {"lvswxl", X(31,869), X_MASK, E6500, 0, {VD, RA0, RB}}, 6720 6721 {"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}}, 6722 {"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}}, 6723 6724 {"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 6725 {"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 6726 6727 {"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 6728 6729 {"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}}, 6730 6731 {"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}}, 6732 6733 {"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}}, 6734 6735 {"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}}, 6736 6737 {"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}}, 6738 6739 {"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}}, 6740 {"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}}, 6741 6742 {"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, 0, {RA0, RB}}, 6743 6744 {"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}}, 6745 {"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 6746 6747 {"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6748 {"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6749 {"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6750 {"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6751 6752 {"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}}, 6753 {"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6754 6755 {"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}}, 6756 6757 {"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}}, 6758 {"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}}, 6759 6760 {"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}}, 6761 {"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}}, 6762 6763 {"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}}, 6764 6765 {"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}}, 6766 6767 {"stfdpx", X(31,919), X_MASK|Q_MASK, POWER6, POWER7, {FRSp, RA0, RB}}, 6768 {"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}}, 6769 6770 {"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}}, 6771 {"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}}, 6772 6773 {"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}}, 6774 {"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}}, 6775 6776 {"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}}, 6777 {"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}}, 6778 {"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}}, 6779 {"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}}, 6780 6781 {"evstddepx", VX (31, 1854), VX_MASK, PPCSPE, 0, {RT, RA, RB}}, 6782 {"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}}, 6783 6784 {"stvfrxl", X(31,933), X_MASK, E6500, 0, {VS, RA0, RB}}, 6785 6786 {"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}}, 6787 {"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}}, 6788 {"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}}, 6789 6790 {"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}}, 6791 6792 {"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6793 {"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6794 {"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6795 {"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 6796 6797 {"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6798 {"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6799 6800 {"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}}, 6801 6802 {"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}}, 6803 {"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}}, 6804 {"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}}, 6805 6806 {"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}}, 6807 6808 {"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}}, 6809 {"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}}, 6810 6811 {"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}}, 6812 6813 {"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}}, 6814 {"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}}, 6815 6816 {"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}}, 6817 {"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}}, 6818 6819 {"stvflxl", X(31,965), X_MASK, E6500, 0, {VS, RA0, RB}}, 6820 6821 {"iccci", X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}}, 6822 {"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}}, 6823 6824 {"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6825 {"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6826 6827 {"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 6828 {"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 6829 6830 {"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}}, 6831 {"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}}, 6832 6833 {"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}}, 6834 {"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}}, 6835 {"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}}, 6836 {"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}}, 6837 6838 {"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}}, 6839 6840 {"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}}, 6841 6842 {"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}}, 6843 6844 {"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}}, 6845 6846 {"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}}, 6847 {"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}}, 6848 6849 {"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 6850 6851 {"stvswxl", X(31,997), X_MASK, E6500, 0, {VS, RA0, RB}}, 6852 6853 {"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}}, 6854 6855 {"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}}, 6856 {"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}}, 6857 6858 {"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6859 {"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 6860 6861 {"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 6862 {"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 6863 6864 {"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 6865 6866 {"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}}, 6867 6868 {"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}}, 6869 6870 {"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}}, 6871 6872 {"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}}, 6873 {"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}}, 6874 6875 {"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 6876 6877 {"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}}, 6878 6879 {"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}}, 6880 {"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}}, 6881 {"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}}, 6882 6883 {"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 6884 {"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 6885 {"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}}, 6886 6887 {"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}}, 6888 {"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}}, 6889 {"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}}, 6890 {"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}}, 6891 6892 {"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}}, 6893 {"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 6894 6895 {"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}}, 6896 {"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 6897 6898 {"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}}, 6899 6900 {"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}}, 6901 6902 {"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}}, 6903 {"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}}, 6904 6905 {"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}}, 6906 {"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}}, 6907 6908 {"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}}, 6909 6910 {"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}}, 6911 6912 {"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}}, 6913 6914 {"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}}, 6915 6916 {"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}}, 6917 6918 {"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}}, 6919 6920 {"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}}, 6921 6922 {"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}}, 6923 6924 {"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}}, 6925 {"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 6926 6927 {"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}}, 6928 {"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}}, 6929 6930 {"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}}, 6931 6932 {"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}}, 6933 6934 {"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}}, 6935 6936 {"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}}, 6937 6938 {"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}}, 6939 6940 {"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}}, 6941 6942 {"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}}, 6943 6944 {"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}}, 6945 6946 {"lq", OP(56), OP_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}}, 6947 {"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}}, 6948 {"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}}, 6949 6950 {"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}}, 6951 {"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}}, 6952 {"lfdp", OP(57), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}}, 6953 {"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}}, 6954 {"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}}, 6955 6956 {"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}}, 6957 {"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}}, 6958 {"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}}, 6959 6960 {"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 6961 {"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 6962 6963 {"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}}, 6964 {"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}}, 6965 6966 {"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 6967 {"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 6968 6969 {"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 6970 {"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 6971 6972 {"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 6973 {"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 6974 6975 {"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}}, 6976 {"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}}, 6977 6978 {"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 6979 {"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 6980 {"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 6981 {"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 6982 6983 {"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 6984 {"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 6985 6986 {"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 6987 {"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 6988 {"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 6989 {"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 6990 6991 {"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 6992 {"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 6993 6994 {"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 6995 {"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 6996 6997 {"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 6998 {"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 6999 7000 {"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7001 {"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7002 7003 {"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7004 {"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7005 7006 {"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}}, 7007 {"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}}, 7008 7009 {"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 7010 {"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 7011 7012 {"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}}, 7013 {"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}}, 7014 7015 {"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 7016 {"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 7017 7018 {"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 7019 {"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 7020 7021 {"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 7022 7023 {"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 7024 {"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}}, 7025 {"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}}, 7026 7027 {"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 7028 {"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 7029 7030 {"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7031 {"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7032 7033 {"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7034 {"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7035 7036 {"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}}, 7037 {"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}}, 7038 7039 {"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7040 {"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7041 7042 {"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7043 {"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7044 7045 {"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7046 {"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7047 7048 {"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 7049 7050 {"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 7051 {"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}}, 7052 7053 {"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7054 {"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 7055 7056 {"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7057 {"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7058 7059 {"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}}, 7060 {"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}}, 7061 7062 {"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7063 {"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7064 7065 {"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7066 {"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 7067 7068 {"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7069 {"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7070 7071 {"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7072 {"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7073 {"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}}, 7074 {"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7075 {"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7076 {"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7077 {"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}}, 7078 {"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7079 {"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7080 {"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XAB6, DMEX}}, 7081 {"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7082 {"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}}, 7083 {"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7084 {"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}}, 7085 {"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7086 {"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7087 {"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7088 {"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7089 {"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7090 {"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7091 {"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7092 {"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7093 {"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7094 {"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7095 {"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7096 {"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 7097 {"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7098 {"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7099 {"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7100 {"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7101 {"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7102 {"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7103 {"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 7104 {"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7105 {"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7106 {"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7107 {"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7108 {"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7109 {"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7110 {"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7111 {"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}}, 7112 {"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7113 {"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7114 {"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7115 {"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7116 {"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}}, 7117 {"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7118 {"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 7119 {"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7120 {"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7121 {"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7122 {"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7123 {"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7124 {"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7125 {"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7126 {"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7127 {"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7128 {"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7129 {"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7130 {"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7131 {"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7132 {"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7133 {"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7134 {"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7135 {"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7136 {"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}}, 7137 {"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}}, 7138 {"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7139 {"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7140 {"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7141 {"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7142 {"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}}, 7143 {"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7144 {"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7145 {"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7146 {"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}}, 7147 {"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}}, 7148 {"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7149 {"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7150 {"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 7151 {"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7152 {"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7153 {"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7154 {"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7155 {"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7156 {"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7157 {"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7158 {"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7159 {"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7160 {"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7161 {"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7162 {"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7163 {"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7164 {"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7165 {"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7166 {"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7167 {"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7168 {"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7169 {"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7170 {"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7171 {"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7172 {"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}}, 7173 {"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7174 {"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7175 {"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7176 {"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7177 {"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7178 {"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 7179 {"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7180 {"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7181 {"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7182 {"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7183 {"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7184 {"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7185 {"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7186 {"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7187 {"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7188 {"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7189 {"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7190 {"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7191 {"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7192 {"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}}, 7193 {"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7194 {"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7195 {"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7196 {"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7197 {"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7198 {"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7199 {"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7200 {"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7201 {"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7202 {"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 7203 {"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7204 {"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7205 {"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7206 {"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7207 {"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7208 {"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}}, 7209 {"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}}, 7210 {"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7211 {"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7212 {"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7213 {"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7214 {"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7215 {"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7216 {"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7217 {"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}}, 7218 {"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7219 {"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 7220 {"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7221 {"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7222 {"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7223 {"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7224 {"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7225 {"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7226 {"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7227 {"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7228 {"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7229 {"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7230 {"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}}, 7231 {"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7232 {"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7233 {"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7234 {"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7235 {"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}}, 7236 {"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7237 {"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7238 {"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7239 {"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7240 {"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7241 {"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7242 {"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7243 {"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7244 {"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}}, 7245 {"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7246 {"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7247 {"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7248 {"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7249 {"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7250 {"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7251 {"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7252 {"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7253 {"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7254 {"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7255 {"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7256 {"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7257 {"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7258 {"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 7259 {"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XAB6}}, 7260 {"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7261 {"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7262 {"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7263 {"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7264 {"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}}, 7265 {"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 7266 {"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 7267 {"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7268 {"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 7269 7270 {"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}}, 7271 {"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}}, 7272 7273 {"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}}, 7274 {"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}}, 7275 {"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}}, 7276 {"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}}, 7277 {"stfdp", OP(61), OP_MASK|Q_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}}, 7278 {"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}}, 7279 {"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}}, 7280 7281 {"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}}, 7282 {"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}}, 7283 {"stq", DSO(62,2), DS_MASK|Q_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}}, 7284 7285 {"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}}, 7286 7287 {"daddq", XRC(63,2,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7288 {"daddq.", XRC(63,2,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7289 7290 {"dquaq", ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}}, 7291 {"dquaq.", ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}}, 7292 7293 {"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7294 {"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7295 7296 {"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}}, 7297 {"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}}, 7298 7299 {"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}}, 7300 {"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}}, 7301 7302 {"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7303 {"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7304 7305 {"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 7306 {"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 7307 {"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 7308 {"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 7309 7310 {"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 7311 {"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 7312 {"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 7313 {"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 7314 7315 {"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 7316 {"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 7317 {"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 7318 {"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 7319 7320 {"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 7321 {"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 7322 {"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 7323 {"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 7324 7325 {"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 7326 {"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 7327 {"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 7328 {"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 7329 7330 {"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}}, 7331 {"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}}, 7332 7333 {"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7334 {"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7335 7336 {"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7337 {"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 7338 {"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7339 {"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 7340 7341 {"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 7342 {"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}}, 7343 {"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 7344 {"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}}, 7345 7346 {"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7347 {"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 7348 {"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7349 {"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 7350 7351 {"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7352 {"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7353 {"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7354 {"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7355 7356 {"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7357 {"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7358 {"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7359 {"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7360 7361 {"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7362 {"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7363 {"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7364 {"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7365 7366 {"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7367 {"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7368 {"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 7369 {"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 7370 7371 {"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}}, 7372 7373 {"dmulq", XRC(63,34,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7374 {"dmulq.", XRC(63,34,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7375 7376 {"drrndq", ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}}, 7377 {"drrndq.", ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}}, 7378 7379 {"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7380 {"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7381 7382 {"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}}, 7383 7384 {"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BT}}, 7385 {"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BT}}, 7386 7387 {"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7388 {"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7389 7390 {"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}}, 7391 7392 {"dscliq", ZRC(63,66,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 7393 {"dscliq.", ZRC(63,66,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 7394 7395 {"dquaiq", ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}}, 7396 {"dquaiq.", ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}}, 7397 7398 {"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BT}}, 7399 {"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BT}}, 7400 7401 {"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7402 {"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7403 7404 {"dscriq", ZRC(63,98,0), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 7405 {"dscriq.", ZRC(63,98,1), Z_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 7406 7407 {"drintxq", ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 7408 {"drintxq.", ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 7409 7410 {"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7411 7412 {"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}}, 7413 7414 {"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}}, 7415 7416 {"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}}, 7417 7418 {"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}}, 7419 {"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}}, 7420 {"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}}, 7421 {"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}}, 7422 7423 {"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7424 {"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7425 7426 {"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7427 {"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7428 {"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7429 {"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 7430 7431 {"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}}, 7432 7433 {"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}}, 7434 7435 {"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}}, 7436 7437 {"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}}, 7438 {"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}}, 7439 7440 {"drintnq", ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 7441 {"drintnq.", ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 7442 7443 {"dctqpq", XRC(63,258,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 7444 {"dctqpq.", XRC(63,258,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 7445 7446 {"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7447 {"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 7448 7449 {"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 7450 {"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 7451 7452 {"ddedpdq", XRC(63,322,0), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}}, 7453 {"ddedpdq.", XRC(63,322,1), X_MASK|Q_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}}, 7454 7455 {"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 7456 {"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 7457 7458 {"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7459 {"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7460 7461 {"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7462 {"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7463 7464 {"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7465 {"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7466 7467 {"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7468 {"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7469 7470 {"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7471 {"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7472 7473 {"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7474 {"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7475 7476 {"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7477 {"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7478 7479 {"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7480 {"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 7481 7482 {"dsubq", XRC(63,514,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7483 {"dsubq.", XRC(63,514,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7484 7485 {"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7486 {"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7487 7488 {"ddivq", XRC(63,546,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7489 {"ddivq.", XRC(63,546,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 7490 7491 {"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7492 {"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7493 7494 {"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}}, 7495 {"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}}, 7496 7497 {"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}}, 7498 {"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}}, 7499 {"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}}, 7500 {"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}}, 7501 {"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}}, 7502 {"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}}, 7503 7504 {"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}}, 7505 7506 {"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}}, 7507 7508 {"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}}, 7509 {"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}}, 7510 7511 {"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}}, 7512 7513 {"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}}, 7514 {"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}}, 7515 {"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}}, 7516 {"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}}, 7517 7518 {"drdpq", XRC(63,770,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}}, 7519 {"drdpq.", XRC(63,770,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRBp}}, 7520 7521 {"dcffixq", XRC(63,802,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 7522 {"dcffixq.", XRC(63,802,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 7523 7524 {"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7525 {"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7526 {"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7527 {"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7528 {"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7529 {"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7530 {"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7531 7532 {"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 7533 {"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 7534 {"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 7535 {"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 7536 7537 {"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 7538 {"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 7539 {"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 7540 {"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 7541 7542 {"denbcdq", XRC(63,834,0), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}}, 7543 {"denbcdq.", XRC(63,834,1), X_MASK|Q_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}}, 7544 7545 {"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7546 {"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7547 {"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7548 {"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7549 {"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7550 {"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7551 {"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7552 {"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7553 {"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 7554 7555 {"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}}, 7556 7557 {"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 7558 {"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 7559 {"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 7560 {"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 7561 7562 {"diexq", XRC(63,866,0), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}}, 7563 {"diexq.", XRC(63,866,1), X_MASK|Q_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}}, 7564 7565 {"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 7566 7567 {"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7568 {"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7569 7570 {"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7571 {"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7572 7573 {"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}}, 7574 7575 {"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7576 {"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 7577 }; 7578 7579 const unsigned int powerpc_num_opcodes = 7580 sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]); 7581 7582 /* The VLE opcode table. 7583 7584 The format of this opcode table is the same as the main opcode table. */ 7585 7586 const struct powerpc_opcode vle_opcodes[] = { 7587 {"se_illegal", C(0), C_MASK, PPCVLE, 0, {}}, 7588 {"se_isync", C(1), C_MASK, PPCVLE, 0, {}}, 7589 {"se_sc", C(2), C_MASK, PPCVLE, 0, {}}, 7590 {"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}}, 7591 {"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}}, 7592 {"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}}, 7593 {"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}}, 7594 {"se_rfi", C(8), C_MASK, PPCVLE, 0, {}}, 7595 {"se_rfci", C(9), C_MASK, PPCVLE, 0, {}}, 7596 {"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}}, 7597 {"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}}, 7598 {"se_rfgi", C(12), C_MASK, PPCVLE, 0, {}}, 7599 {"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}}, 7600 {"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}}, 7601 {"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}}, 7602 {"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}}, 7603 {"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}}, 7604 {"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}}, 7605 {"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}}, 7606 {"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}}, 7607 {"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}}, 7608 {"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}}, 7609 {"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7610 {"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}}, 7611 {"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}}, 7612 {"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7613 {"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7614 {"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7615 {"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7616 {"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7617 {"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7618 {"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7619 {"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 7620 7621 /* by major opcode */ 7622 {"zvaddih", VX(4, 0x200), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, 7623 {"zvsubifh", VX(4, 0x201), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, 7624 {"zvaddh", VX(4, 0x204), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7625 {"zvsubfh", VX(4, 0x205), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7626 {"zvaddsubfh", VX(4, 0x206), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7627 {"zvsubfaddh", VX(4, 0x207), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7628 {"zvaddhx", VX(4, 0x20C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7629 {"zvsubfhx", VX(4, 0x20D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7630 {"zvaddsubfhx", VX(4, 0x20E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7631 {"zvsubfaddhx", VX(4, 0x20F), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7632 {"zaddwus", VX(4, 0x210), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7633 {"zsubfwus", VX(4, 0x211), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7634 {"zaddwss", VX(4, 0x212), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7635 {"zsubfwss", VX(4, 0x213), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7636 {"zvaddhus", VX(4, 0x214), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7637 {"zvsubfhus", VX(4, 0x215), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7638 {"zvaddhss", VX(4, 0x216), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7639 {"zvsubfhss", VX(4, 0x217), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7640 {"zvaddsubfhss", VX(4, 0x21A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7641 {"zvsubfaddhss", VX(4, 0x21B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7642 {"zvaddhxss", VX(4, 0x21C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7643 {"zvsubfhxss", VX(4, 0x21D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7644 {"zvaddsubfhxss", VX(4, 0x21E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7645 {"zvsubfaddhxss", VX(4, 0x21F), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7646 {"zaddheuw", VX(4, 0x220), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7647 {"zsubfheuw", VX(4, 0x221), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7648 {"zaddhesw", VX(4, 0x222), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7649 {"zsubfhesw", VX(4, 0x223), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7650 {"zaddhouw", VX(4, 0x224), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7651 {"zsubfhouw", VX(4, 0x225), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7652 {"zaddhosw", VX(4, 0x226), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7653 {"zsubfhosw", VX(4, 0x227), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7654 {"zvmergehih", VX(4, 0x22C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7655 {"zvmergeloh", VX(4, 0x22D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7656 {"zvmergehiloh", VX(4, 0x22E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7657 {"zvmergelohih", VX(4, 0x22F), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7658 {"zvcmpgthu", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, 7659 {"zvcmpgths", VX(4, 0x230), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, 7660 {"zvcmplthu", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, 7661 {"zvcmplths", VX(4, 0x231), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, 7662 {"zvcmpeqh", VX(4, 0x232), VX_MASK, PPCLSP, 0, {CRFD, RA, RB}}, 7663 {"zpkswgshfrs", VX(4, 0x238), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7664 {"zpkswgswfrs", VX(4, 0x239), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7665 {"zvpkshgwshfrs", VX(4, 0x23A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7666 {"zvpkswshfrs", VX(4, 0x23B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7667 {"zvpkswuhs", VX(4, 0x23C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7668 {"zvpkswshs", VX(4, 0x23D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7669 {"zvpkuwuhs", VX(4, 0x23E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7670 {"zvsplatih", VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}}, 7671 {"zvsplatfih", VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0, {RD, SIMM}}, 7672 {"zcntlsw", VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7673 {"zvcntlzh", VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7674 {"zvcntlsh", VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7675 {"znegws", VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7676 {"zvnegh", VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7677 {"zvneghs", VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7678 {"zvnegho", VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7679 {"zvneghos", VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7680 {"zrndwh", VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7681 {"zrndwhss", VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7682 {"zvabsh", VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7683 {"zvabshs", VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7684 {"zabsw", VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7685 {"zabsws", VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7686 {"zsatswuw", VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7687 {"zsatuwsw", VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7688 {"zsatswuh", VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7689 {"zsatswsh", VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7690 {"zvsatshuh", VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7691 {"zvsatuhsh", VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7692 {"zsatuwuh", VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7693 {"zsatuwsh", VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0, {RD, RA}}, 7694 {"zsatsduw", VX(4, 0x260), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7695 {"zsatsdsw", VX(4, 0x261), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7696 {"zsatuduw", VX(4, 0x262), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7697 {"zvselh", VX(4, 0x264), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7698 {"zxtrw", VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0, {RD, RA, RB, VX_OFF}}, 7699 {"zbrminc", VX(4, 0x268), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7700 {"zcircinc", VX(4, 0x269), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7701 {"zdivwsf", VX(4, 0x26B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7702 {"zvsrhu", VX(4, 0x270), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7703 {"zvsrhs", VX(4, 0x271), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7704 {"zvsrhiu", VX(4, 0x272), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, 7705 {"zvsrhis", VX(4, 0x273), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, 7706 {"zvslh", VX(4, 0x274), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7707 {"zvrlh", VX(4, 0x275), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7708 {"zvslhi", VX(4, 0x276), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, 7709 {"zvrlhi", VX(4, 0x277), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, 7710 {"zvslhus", VX(4, 0x278), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7711 {"zvslhss", VX(4, 0x279), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7712 {"zvslhius", VX(4, 0x27A), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, 7713 {"zvslhiss", VX(4, 0x27B), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM_LT16}}, 7714 {"zslwus", VX(4, 0x27C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7715 {"zslwss", VX(4, 0x27D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7716 {"zslwius", VX(4, 0x27E), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, 7717 {"zslwiss", VX(4, 0x27F), VX_MASK, PPCLSP, 0, {RD, RA, EVUIMM}}, 7718 {"zaddwgui", VX(4, 0x460), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7719 {"zsubfwgui", VX(4, 0x461), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7720 {"zaddd", VX(4, 0x462), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7721 {"zsubfd", VX(4, 0x463), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7722 {"zvaddsubfw", VX(4, 0x464), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7723 {"zvsubfaddw", VX(4, 0x465), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7724 {"zvaddw", VX(4, 0x466), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7725 {"zvsubfw", VX(4, 0x467), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7726 {"zaddwgsi", VX(4, 0x468), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7727 {"zsubfwgsi", VX(4, 0x469), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7728 {"zadddss", VX(4, 0x46A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7729 {"zsubfdss", VX(4, 0x46B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7730 {"zvaddsubfwss", VX(4, 0x46C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7731 {"zvsubfaddwss", VX(4, 0x46D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7732 {"zvaddwss", VX(4, 0x46E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7733 {"zvsubfwss", VX(4, 0x46F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7734 {"zaddwgsf", VX(4, 0x470), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7735 {"zsubfwgsf", VX(4, 0x471), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7736 {"zadddus", VX(4, 0x472), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7737 {"zsubfdus", VX(4, 0x473), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7738 {"zvaddwus", VX(4, 0x476), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7739 {"zvsubfwus", VX(4, 0x477), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7740 {"zvunpkhgwsf", VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, 7741 {"zvunpkhsf", VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, 7742 {"zvunpkhui", VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, 7743 {"zvunpkhsi", VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, 7744 {"zunpkwgsf", VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0, {RD_EVEN, RA}}, 7745 {"zvdotphgwasmf", VX(4, 0x488), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7746 {"zvdotphgwasmfr", VX(4, 0x489), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7747 {"zvdotphgwasmfaa", VX(4, 0x48A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7748 {"zvdotphgwasmfraa", VX(4, 0x48B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7749 {"zvdotphgwasmfan", VX(4, 0x48C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7750 {"zvdotphgwasmfran", VX(4, 0x48D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7751 {"zvmhulgwsmf", VX(4, 0x490), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7752 {"zvmhulgwsmfr", VX(4, 0x491), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7753 {"zvmhulgwsmfaa", VX(4, 0x492), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7754 {"zvmhulgwsmfraa", VX(4, 0x493), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7755 {"zvmhulgwsmfan", VX(4, 0x494), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7756 {"zvmhulgwsmfran", VX(4, 0x495), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7757 {"zvmhulgwsmfanp", VX(4, 0x496), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7758 {"zvmhulgwsmfranp", VX(4, 0x497), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7759 {"zmhegwsmf", VX(4, 0x498), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7760 {"zmhegwsmfr", VX(4, 0x499), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7761 {"zmhegwsmfaa", VX(4, 0x49A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7762 {"zmhegwsmfraa", VX(4, 0x49B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7763 {"zmhegwsmfan", VX(4, 0x49C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7764 {"zmhegwsmfran", VX(4, 0x49D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7765 {"zvdotphxgwasmf", VX(4, 0x4A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7766 {"zvdotphxgwasmfr", VX(4, 0x4A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7767 {"zvdotphxgwasmfaa", VX(4, 0x4AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7768 {"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7769 {"zvdotphxgwasmfan", VX(4, 0x4AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7770 {"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7771 {"zvmhllgwsmf", VX(4, 0x4B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7772 {"zvmhllgwsmfr", VX(4, 0x4B1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7773 {"zvmhllgwsmfaa", VX(4, 0x4B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7774 {"zvmhllgwsmfraa", VX(4, 0x4B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7775 {"zvmhllgwsmfan", VX(4, 0x4B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7776 {"zvmhllgwsmfran", VX(4, 0x4B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7777 {"zvmhllgwsmfanp", VX(4, 0x4B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7778 {"zvmhllgwsmfranp", VX(4, 0x4B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7779 {"zmheogwsmf", VX(4, 0x4B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7780 {"zmheogwsmfr", VX(4, 0x4B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7781 {"zmheogwsmfaa", VX(4, 0x4BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7782 {"zmheogwsmfraa", VX(4, 0x4BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7783 {"zmheogwsmfan", VX(4, 0x4BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7784 {"zmheogwsmfran", VX(4, 0x4BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7785 {"zvdotphgwssmf", VX(4, 0x4C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7786 {"zvdotphgwssmfr", VX(4, 0x4C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7787 {"zvdotphgwssmfaa", VX(4, 0x4CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7788 {"zvdotphgwssmfraa", VX(4, 0x4CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7789 {"zvdotphgwssmfan", VX(4, 0x4CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7790 {"zvdotphgwssmfran", VX(4, 0x4CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7791 {"zvmhuugwsmf", VX(4, 0x4D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7792 {"zvmhuugwsmfr", VX(4, 0x4D1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7793 {"zvmhuugwsmfaa", VX(4, 0x4D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7794 {"zvmhuugwsmfraa", VX(4, 0x4D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7795 {"zvmhuugwsmfan", VX(4, 0x4D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7796 {"zvmhuugwsmfran", VX(4, 0x4D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7797 {"zvmhuugwsmfanp", VX(4, 0x4D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7798 {"zvmhuugwsmfranp", VX(4, 0x4D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7799 {"zmhogwsmf", VX(4, 0x4D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7800 {"zmhogwsmfr", VX(4, 0x4D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7801 {"zmhogwsmfaa", VX(4, 0x4DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7802 {"zmhogwsmfraa", VX(4, 0x4DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7803 {"zmhogwsmfan", VX(4, 0x4DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7804 {"zmhogwsmfran", VX(4, 0x4DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 7805 {"zvmhxlgwsmf", VX(4, 0x4F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7806 {"zvmhxlgwsmfr", VX(4, 0x4F1), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7807 {"zvmhxlgwsmfaa", VX(4, 0x4F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7808 {"zvmhxlgwsmfraa", VX(4, 0x4F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7809 {"zvmhxlgwsmfan", VX(4, 0x4F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7810 {"zvmhxlgwsmfran", VX(4, 0x4F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7811 {"zvmhxlgwsmfanp", VX(4, 0x4F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7812 {"zvmhxlgwsmfranp", VX(4, 0x4F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7813 {"zmhegui", VX(4, 0x500), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7814 {"zvdotphgaui", VX(4, 0x501), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7815 {"zmheguiaa", VX(4, 0x502), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7816 {"zvdotphgauiaa", VX(4, 0x503), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7817 {"zmheguian", VX(4, 0x504), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7818 {"zvdotphgauian", VX(4, 0x505), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7819 {"zmhegsi", VX(4, 0x508), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7820 {"zvdotphgasi", VX(4, 0x509), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7821 {"zmhegsiaa", VX(4, 0x50A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7822 {"zvdotphgasiaa", VX(4, 0x50B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7823 {"zmhegsian", VX(4, 0x50C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7824 {"zvdotphgasian", VX(4, 0x50D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7825 {"zmhegsui", VX(4, 0x510), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7826 {"zvdotphgasui", VX(4, 0x511), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7827 {"zmhegsuiaa", VX(4, 0x512), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7828 {"zvdotphgasuiaa", VX(4, 0x513), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7829 {"zmhegsuian", VX(4, 0x514), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7830 {"zvdotphgasuian", VX(4, 0x515), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7831 {"zmhegsmf", VX(4, 0x518), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7832 {"zvdotphgasmf", VX(4, 0x519), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7833 {"zmhegsmfaa", VX(4, 0x51A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7834 {"zvdotphgasmfaa", VX(4, 0x51B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7835 {"zmhegsmfan", VX(4, 0x51C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7836 {"zvdotphgasmfan", VX(4, 0x51D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7837 {"zmheogui", VX(4, 0x520), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7838 {"zvdotphxgaui", VX(4, 0x521), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7839 {"zmheoguiaa", VX(4, 0x522), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7840 {"zvdotphxgauiaa", VX(4, 0x523), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7841 {"zmheoguian", VX(4, 0x524), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7842 {"zvdotphxgauian", VX(4, 0x525), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7843 {"zmheogsi", VX(4, 0x528), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7844 {"zvdotphxgasi", VX(4, 0x529), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7845 {"zmheogsiaa", VX(4, 0x52A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7846 {"zvdotphxgasiaa", VX(4, 0x52B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7847 {"zmheogsian", VX(4, 0x52C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7848 {"zvdotphxgasian", VX(4, 0x52D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7849 {"zmheogsui", VX(4, 0x530), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7850 {"zvdotphxgasui", VX(4, 0x531), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7851 {"zmheogsuiaa", VX(4, 0x532), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7852 {"zvdotphxgasuiaa", VX(4, 0x533), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7853 {"zmheogsuian", VX(4, 0x534), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7854 {"zvdotphxgasuian", VX(4, 0x535), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7855 {"zmheogsmf", VX(4, 0x538), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7856 {"zvdotphxgasmf", VX(4, 0x539), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7857 {"zmheogsmfaa", VX(4, 0x53A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7858 {"zvdotphxgasmfaa", VX(4, 0x53B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7859 {"zmheogsmfan", VX(4, 0x53C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7860 {"zvdotphxgasmfan", VX(4, 0x53D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7861 {"zmhogui", VX(4, 0x540), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7862 {"zvdotphgsui", VX(4, 0x541), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7863 {"zmhoguiaa", VX(4, 0x542), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7864 {"zvdotphgsuiaa", VX(4, 0x543), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7865 {"zmhoguian", VX(4, 0x544), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7866 {"zvdotphgsuian", VX(4, 0x545), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7867 {"zmhogsi", VX(4, 0x548), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7868 {"zvdotphgssi", VX(4, 0x549), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7869 {"zmhogsiaa", VX(4, 0x54A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7870 {"zvdotphgssiaa", VX(4, 0x54B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7871 {"zmhogsian", VX(4, 0x54C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7872 {"zvdotphgssian", VX(4, 0x54D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7873 {"zmhogsui", VX(4, 0x550), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7874 {"zvdotphgssui", VX(4, 0x551), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7875 {"zmhogsuiaa", VX(4, 0x552), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7876 {"zvdotphgssuiaa", VX(4, 0x553), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7877 {"zmhogsuian", VX(4, 0x554), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7878 {"zvdotphgssuian", VX(4, 0x555), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7879 {"zmhogsmf", VX(4, 0x558), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7880 {"zvdotphgssmf", VX(4, 0x559), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7881 {"zmhogsmfaa", VX(4, 0x55A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7882 {"zvdotphgssmfaa", VX(4, 0x55B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7883 {"zmhogsmfan", VX(4, 0x55C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7884 {"zvdotphgssmfan", VX(4, 0x55D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7885 {"zmwgui", VX(4, 0x560), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7886 {"zmwguiaa", VX(4, 0x562), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7887 {"zmwguiaas", VX(4, 0x563), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7888 {"zmwguian", VX(4, 0x564), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7889 {"zmwguians", VX(4, 0x565), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7890 {"zmwgsi", VX(4, 0x568), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7891 {"zmwgsiaa", VX(4, 0x56A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7892 {"zmwgsiaas", VX(4, 0x56B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7893 {"zmwgsian", VX(4, 0x56C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7894 {"zmwgsians", VX(4, 0x56D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7895 {"zmwgsui", VX(4, 0x570), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7896 {"zmwgsuiaa", VX(4, 0x572), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7897 {"zmwgsuiaas", VX(4, 0x573), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7898 {"zmwgsuian", VX(4, 0x574), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7899 {"zmwgsuians", VX(4, 0x575), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7900 {"zmwgsmf", VX(4, 0x578), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7901 {"zmwgsmfr", VX(4, 0x579), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7902 {"zmwgsmfaa", VX(4, 0x57A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7903 {"zmwgsmfraa", VX(4, 0x57B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7904 {"zmwgsmfan", VX(4, 0x57C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7905 {"zmwgsmfran", VX(4, 0x57D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7906 {"zvmhului", VX(4, 0x580), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7907 {"zvmhuluiaa", VX(4, 0x582), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7908 {"zvmhuluiaas", VX(4, 0x583), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7909 {"zvmhuluian", VX(4, 0x584), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7910 {"zvmhuluians", VX(4, 0x585), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7911 {"zvmhuluianp", VX(4, 0x586), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7912 {"zvmhuluianps", VX(4, 0x587), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7913 {"zvmhulsi", VX(4, 0x588), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7914 {"zvmhulsiaa", VX(4, 0x58A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7915 {"zvmhulsiaas", VX(4, 0x58B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7916 {"zvmhulsian", VX(4, 0x58C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7917 {"zvmhulsians", VX(4, 0x58D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7918 {"zvmhulsianp", VX(4, 0x58E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7919 {"zvmhulsianps", VX(4, 0x58F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7920 {"zvmhulsui", VX(4, 0x590), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7921 {"zvmhulsuiaa", VX(4, 0x592), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7922 {"zvmhulsuiaas", VX(4, 0x593), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7923 {"zvmhulsuian", VX(4, 0x594), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7924 {"zvmhulsuians", VX(4, 0x595), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7925 {"zvmhulsuianp", VX(4, 0x596), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7926 {"zvmhulsuianps", VX(4, 0x597), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7927 {"zvmhulsf", VX(4, 0x598), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7928 {"zvmhulsfr", VX(4, 0x599), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7929 {"zvmhulsfaas", VX(4, 0x59A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7930 {"zvmhulsfraas", VX(4, 0x59B), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7931 {"zvmhulsfans", VX(4, 0x59C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7932 {"zvmhulsfrans", VX(4, 0x59D), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7933 {"zvmhulsfanps", VX(4, 0x59E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7934 {"zvmhulsfranps", VX(4, 0x59F), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7935 {"zvmhllui", VX(4, 0x5A0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7936 {"zvmhlluiaa", VX(4, 0x5A2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7937 {"zvmhlluiaas", VX(4, 0x5A3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7938 {"zvmhlluian", VX(4, 0x5A4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7939 {"zvmhlluians", VX(4, 0x5A5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7940 {"zvmhlluianp", VX(4, 0x5A6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7941 {"zvmhlluianps", VX(4, 0x5A7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7942 {"zvmhllsi", VX(4, 0x5A8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7943 {"zvmhllsiaa", VX(4, 0x5AA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7944 {"zvmhllsiaas", VX(4, 0x5AB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7945 {"zvmhllsian", VX(4, 0x5AC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7946 {"zvmhllsians", VX(4, 0x5AD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7947 {"zvmhllsianp", VX(4, 0x5AE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7948 {"zvmhllsianps", VX(4, 0x5AF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7949 {"zvmhllsui", VX(4, 0x5B0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7950 {"zvmhllsuiaa", VX(4, 0x5B2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7951 {"zvmhllsuiaas", VX(4, 0x5B3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7952 {"zvmhllsuian", VX(4, 0x5B4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7953 {"zvmhllsuians", VX(4, 0x5B5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7954 {"zvmhllsuianp", VX(4, 0x5B6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7955 {"zvmhllsuianps", VX(4, 0x5B7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7956 {"zvmhllsf", VX(4, 0x5B8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7957 {"zvmhllsfr", VX(4, 0x5B9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7958 {"zvmhllsfaas", VX(4, 0x5BA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7959 {"zvmhllsfraas", VX(4, 0x5BB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7960 {"zvmhllsfans", VX(4, 0x5BC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7961 {"zvmhllsfrans", VX(4, 0x5BD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7962 {"zvmhllsfanps", VX(4, 0x5BE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7963 {"zvmhllsfranps", VX(4, 0x5BF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7964 {"zvmhuuui", VX(4, 0x5C0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7965 {"zvmhuuuiaa", VX(4, 0x5C2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7966 {"zvmhuuuiaas", VX(4, 0x5C3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7967 {"zvmhuuuian", VX(4, 0x5C4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7968 {"zvmhuuuians", VX(4, 0x5C5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7969 {"zvmhuuuianp", VX(4, 0x5C6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7970 {"zvmhuuuianps", VX(4, 0x5C7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7971 {"zvmhuusi", VX(4, 0x5C8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7972 {"zvmhuusiaa", VX(4, 0x5CA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7973 {"zvmhuusiaas", VX(4, 0x5CB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7974 {"zvmhuusian", VX(4, 0x5CC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7975 {"zvmhuusians", VX(4, 0x5CD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7976 {"zvmhuusianp", VX(4, 0x5CE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7977 {"zvmhuusianps", VX(4, 0x5CF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7978 {"zvmhuusui", VX(4, 0x5D0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7979 {"zvmhuusuiaa", VX(4, 0x5D2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7980 {"zvmhuusuiaas", VX(4, 0x5D3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7981 {"zvmhuusuian", VX(4, 0x5D4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7982 {"zvmhuusuians", VX(4, 0x5D5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7983 {"zvmhuusuianp", VX(4, 0x5D6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7984 {"zvmhuusuianps", VX(4, 0x5D7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7985 {"zvmhuusf", VX(4, 0x5D8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7986 {"zvmhuusfr", VX(4, 0x5D9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7987 {"zvmhuusfaas", VX(4, 0x5DA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7988 {"zvmhuusfraas", VX(4, 0x5DB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7989 {"zvmhuusfans", VX(4, 0x5DC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7990 {"zvmhuusfrans", VX(4, 0x5DD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7991 {"zvmhuusfanps", VX(4, 0x5DE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7992 {"zvmhuusfranps", VX(4, 0x5DF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7993 {"zvmhxlui", VX(4, 0x5E0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7994 {"zvmhxluiaa", VX(4, 0x5E2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7995 {"zvmhxluiaas", VX(4, 0x5E3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7996 {"zvmhxluian", VX(4, 0x5E4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7997 {"zvmhxluians", VX(4, 0x5E5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7998 {"zvmhxluianp", VX(4, 0x5E6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 7999 {"zvmhxluianps", VX(4, 0x5E7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8000 {"zvmhxlsi", VX(4, 0x5E8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8001 {"zvmhxlsiaa", VX(4, 0x5EA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8002 {"zvmhxlsiaas", VX(4, 0x5EB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8003 {"zvmhxlsian", VX(4, 0x5EC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8004 {"zvmhxlsians", VX(4, 0x5ED), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8005 {"zvmhxlsianp", VX(4, 0x5EE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8006 {"zvmhxlsianps", VX(4, 0x5EF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8007 {"zvmhxlsui", VX(4, 0x5F0), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8008 {"zvmhxlsuiaa", VX(4, 0x5F2), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8009 {"zvmhxlsuiaas", VX(4, 0x5F3), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8010 {"zvmhxlsuian", VX(4, 0x5F4), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8011 {"zvmhxlsuians", VX(4, 0x5F5), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8012 {"zvmhxlsuianp", VX(4, 0x5F6), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8013 {"zvmhxlsuianps", VX(4, 0x5F7), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8014 {"zvmhxlsf", VX(4, 0x5F8), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8015 {"zvmhxlsfr", VX(4, 0x5F9), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8016 {"zvmhxlsfaas", VX(4, 0x5FA), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8017 {"zvmhxlsfraas", VX(4, 0x5FB), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8018 {"zvmhxlsfans", VX(4, 0x5FC), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8019 {"zvmhxlsfrans", VX(4, 0x5FD), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8020 {"zvmhxlsfanps", VX(4, 0x5FE), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8021 {"zvmhxlsfranps", VX(4, 0x5FF), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8022 {"zmheui", VX(4, 0x600), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8023 {"zmheuiaa", VX(4, 0x602), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8024 {"zmheuiaas", VX(4, 0x603), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8025 {"zmheuian", VX(4, 0x604), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8026 {"zmheuians", VX(4, 0x605), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8027 {"zmhesi", VX(4, 0x608), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8028 {"zmhesiaa", VX(4, 0x60A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8029 {"zmhesiaas", VX(4, 0x60B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8030 {"zmhesian", VX(4, 0x60C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8031 {"zmhesians", VX(4, 0x60D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8032 {"zmhesui", VX(4, 0x610), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8033 {"zmhesuiaa", VX(4, 0x612), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8034 {"zmhesuiaas", VX(4, 0x613), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8035 {"zmhesuian", VX(4, 0x614), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8036 {"zmhesuians", VX(4, 0x615), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8037 {"zmhesf", VX(4, 0x618), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8038 {"zmhesfr", VX(4, 0x619), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8039 {"zmhesfaas", VX(4, 0x61A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8040 {"zmhesfraas", VX(4, 0x61B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8041 {"zmhesfans", VX(4, 0x61C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8042 {"zmhesfrans", VX(4, 0x61D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8043 {"zmheoui", VX(4, 0x620), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8044 {"zmheouiaa", VX(4, 0x622), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8045 {"zmheouiaas", VX(4, 0x623), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8046 {"zmheouian", VX(4, 0x624), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8047 {"zmheouians", VX(4, 0x625), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8048 {"zmheosi", VX(4, 0x628), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8049 {"zmheosiaa", VX(4, 0x62A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8050 {"zmheosiaas", VX(4, 0x62B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8051 {"zmheosian", VX(4, 0x62C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8052 {"zmheosians", VX(4, 0x62D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8053 {"zmheosui", VX(4, 0x630), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8054 {"zmheosuiaa", VX(4, 0x632), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8055 {"zmheosuiaas", VX(4, 0x633), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8056 {"zmheosuian", VX(4, 0x634), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8057 {"zmheosuians", VX(4, 0x635), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8058 {"zmheosf", VX(4, 0x638), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8059 {"zmheosfr", VX(4, 0x639), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8060 {"zmheosfaas", VX(4, 0x63A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8061 {"zmheosfraas", VX(4, 0x63B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8062 {"zmheosfans", VX(4, 0x63C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8063 {"zmheosfrans", VX(4, 0x63D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8064 {"zmhoui", VX(4, 0x640), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8065 {"zmhouiaa", VX(4, 0x642), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8066 {"zmhouiaas", VX(4, 0x643), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8067 {"zmhouian", VX(4, 0x644), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8068 {"zmhouians", VX(4, 0x645), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8069 {"zmhosi", VX(4, 0x648), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8070 {"zmhosiaa", VX(4, 0x64A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8071 {"zmhosiaas", VX(4, 0x64B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8072 {"zmhosian", VX(4, 0x64C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8073 {"zmhosians", VX(4, 0x64D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8074 {"zmhosui", VX(4, 0x650), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8075 {"zmhosuiaa", VX(4, 0x652), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8076 {"zmhosuiaas", VX(4, 0x653), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8077 {"zmhosuian", VX(4, 0x654), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8078 {"zmhosuians", VX(4, 0x655), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8079 {"zmhosf", VX(4, 0x658), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8080 {"zmhosfr", VX(4, 0x659), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8081 {"zmhosfaas", VX(4, 0x65A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8082 {"zmhosfraas", VX(4, 0x65B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8083 {"zmhosfans", VX(4, 0x65C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8084 {"zmhosfrans", VX(4, 0x65D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8085 {"zvmhuih", VX(4, 0x660), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8086 {"zvmhuihs", VX(4, 0x661), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8087 {"zvmhuiaah", VX(4, 0x662), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8088 {"zvmhuiaahs", VX(4, 0x663), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8089 {"zvmhuianh", VX(4, 0x664), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8090 {"zvmhuianhs", VX(4, 0x665), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8091 {"zvmhsihs", VX(4, 0x669), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8092 {"zvmhsiaahs", VX(4, 0x66B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8093 {"zvmhsianhs", VX(4, 0x66D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8094 {"zvmhsuihs", VX(4, 0x671), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8095 {"zvmhsuiaahs", VX(4, 0x673), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8096 {"zvmhsuianhs", VX(4, 0x675), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8097 {"zvmhsfh", VX(4, 0x678), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8098 {"zvmhsfrh", VX(4, 0x679), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8099 {"zvmhsfaahs", VX(4, 0x67A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8100 {"zvmhsfraahs", VX(4, 0x67B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8101 {"zvmhsfanhs", VX(4, 0x67C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8102 {"zvmhsfranhs", VX(4, 0x67D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8103 {"zvdotphaui", VX(4, 0x680), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8104 {"zvdotphauis", VX(4, 0x681), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8105 {"zvdotphauiaa", VX(4, 0x682), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8106 {"zvdotphauiaas", VX(4, 0x683), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8107 {"zvdotphauian", VX(4, 0x684), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8108 {"zvdotphauians", VX(4, 0x685), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8109 {"zvdotphasi", VX(4, 0x688), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8110 {"zvdotphasis", VX(4, 0x689), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8111 {"zvdotphasiaa", VX(4, 0x68A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8112 {"zvdotphasiaas", VX(4, 0x68B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8113 {"zvdotphasian", VX(4, 0x68C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8114 {"zvdotphasians", VX(4, 0x68D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8115 {"zvdotphasui", VX(4, 0x690), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8116 {"zvdotphasuis", VX(4, 0x691), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8117 {"zvdotphasuiaa", VX(4, 0x692), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8118 {"zvdotphasuiaas", VX(4, 0x693), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8119 {"zvdotphasuian", VX(4, 0x694), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8120 {"zvdotphasuians", VX(4, 0x695), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8121 {"zvdotphasfs", VX(4, 0x698), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8122 {"zvdotphasfrs", VX(4, 0x699), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8123 {"zvdotphasfaas", VX(4, 0x69A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8124 {"zvdotphasfraas", VX(4, 0x69B), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8125 {"zvdotphasfans", VX(4, 0x69C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8126 {"zvdotphasfrans", VX(4, 0x69D), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8127 {"zvdotphxaui", VX(4, 0x6A0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8128 {"zvdotphxauis", VX(4, 0x6A1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8129 {"zvdotphxauiaa", VX(4, 0x6A2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8130 {"zvdotphxauiaas", VX(4, 0x6A3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8131 {"zvdotphxauian", VX(4, 0x6A4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8132 {"zvdotphxauians", VX(4, 0x6A5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8133 {"zvdotphxasi", VX(4, 0x6A8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8134 {"zvdotphxasis", VX(4, 0x6A9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8135 {"zvdotphxasiaa", VX(4, 0x6AA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8136 {"zvdotphxasiaas", VX(4, 0x6AB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8137 {"zvdotphxasian", VX(4, 0x6AC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8138 {"zvdotphxasians", VX(4, 0x6AD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8139 {"zvdotphxasui", VX(4, 0x6B0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8140 {"zvdotphxasuis", VX(4, 0x6B1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8141 {"zvdotphxasuiaa", VX(4, 0x6B2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8142 {"zvdotphxasuiaas", VX(4, 0x6B3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8143 {"zvdotphxasuian", VX(4, 0x6B4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8144 {"zvdotphxasuians", VX(4, 0x6B5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8145 {"zvdotphxasfs", VX(4, 0x6B8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8146 {"zvdotphxasfrs", VX(4, 0x6B9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8147 {"zvdotphxasfaas", VX(4, 0x6BA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8148 {"zvdotphxasfraas", VX(4, 0x6BB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8149 {"zvdotphxasfans", VX(4, 0x6BC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8150 {"zvdotphxasfrans", VX(4, 0x6BD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8151 {"zvdotphsui", VX(4, 0x6C0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8152 {"zvdotphsuis", VX(4, 0x6C1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8153 {"zvdotphsuiaa", VX(4, 0x6C2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8154 {"zvdotphsuiaas", VX(4, 0x6C3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8155 {"zvdotphsuian", VX(4, 0x6C4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8156 {"zvdotphsuians", VX(4, 0x6C5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8157 {"zvdotphssi", VX(4, 0x6C8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8158 {"zvdotphssis", VX(4, 0x6C9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8159 {"zvdotphssiaa", VX(4, 0x6CA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8160 {"zvdotphssiaas", VX(4, 0x6CB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8161 {"zvdotphssian", VX(4, 0x6CC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8162 {"zvdotphssians", VX(4, 0x6CD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8163 {"zvdotphssui", VX(4, 0x6D0), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8164 {"zvdotphssuis", VX(4, 0x6D1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8165 {"zvdotphssuiaa", VX(4, 0x6D2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8166 {"zvdotphssuiaas", VX(4, 0x6D3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8167 {"zvdotphssuian", VX(4, 0x6D4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8168 {"zvdotphssuians", VX(4, 0x6D5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8169 {"zvdotphssfs", VX(4, 0x6D8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8170 {"zvdotphssfrs", VX(4, 0x6D9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8171 {"zvdotphssfaas", VX(4, 0x6DA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8172 {"zvdotphssfraas", VX(4, 0x6DB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8173 {"zvdotphssfans", VX(4, 0x6DC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8174 {"zvdotphssfrans", VX(4, 0x6DD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8175 {"zmwluis", VX(4, 0x6E1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8176 {"zmwluiaa", VX(4, 0x6E2), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8177 {"zmwluiaas", VX(4, 0x6E3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8178 {"zmwluian", VX(4, 0x6E4), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8179 {"zmwluians", VX(4, 0x6E5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8180 {"zmwlsis", VX(4, 0x6E9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8181 {"zmwlsiaas", VX(4, 0x6EB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8182 {"zmwlsians", VX(4, 0x6ED), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8183 {"zmwlsuis", VX(4, 0x6F1), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8184 {"zmwlsuiaas", VX(4, 0x6F3), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8185 {"zmwlsuians", VX(4, 0x6F5), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8186 {"zmwsf", VX(4, 0x6F8), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8187 {"zmwsfr", VX(4, 0x6F9), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8188 {"zmwsfaas", VX(4, 0x6FA), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8189 {"zmwsfraas", VX(4, 0x6FB), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8190 {"zmwsfans", VX(4, 0x6FC), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8191 {"zmwsfrans", VX(4, 0x6FD), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8192 {"zlddx", VX(4, 0x300), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8193 {"zldd", VX(4, 0x301), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}}, 8194 {"zldwx", VX(4, 0x302), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8195 {"zldw", VX(4, 0x303), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}}, 8196 {"zldhx", VX(4, 0x304), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8197 {"zldh", VX(4, 0x305), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8, RA}}, 8198 {"zlwgsfdx", VX(4, 0x308), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8199 {"zlwgsfd", VX(4, 0x309), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8200 {"zlwwosdx", VX(4, 0x30A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8201 {"zlwwosd", VX(4, 0x30B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8202 {"zlwhsplatwdx", VX(4, 0x30C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8203 {"zlwhsplatwd", VX(4, 0x30D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8204 {"zlwhsplatdx", VX(4, 0x30E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8205 {"zlwhsplatd", VX(4, 0x30F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8206 {"zlwhgwsfdx", VX(4, 0x310), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8207 {"zlwhgwsfd", VX(4, 0x311), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8208 {"zlwhedx", VX(4, 0x312), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8209 {"zlwhed", VX(4, 0x313), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8210 {"zlwhosdx", VX(4, 0x314), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8211 {"zlwhosd", VX(4, 0x315), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8212 {"zlwhoudx", VX(4, 0x316), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8213 {"zlwhoud", VX(4, 0x317), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4, RA}}, 8214 {"zlwhx", VX(4, 0x318), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8215 {"zlwh", VX(4, 0x319), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}}, 8216 {"zlwwx", VX(4, 0x31A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8217 {"zlww", VX(4, 0x31B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4, RA}}, 8218 {"zlhgwsfx", VX(4, 0x31C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8219 {"zlhgwsf", VX(4, 0x31D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, 8220 {"zlhhsplatx", VX(4, 0x31E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8221 {"zlhhsplat", VX(4, 0x31F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, 8222 {"zstddx", VX(4, 0x320), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8223 {"zstdd", VX(4, 0x321), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}}, 8224 {"zstdwx", VX(4, 0x322), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8225 {"zstdw", VX(4, 0x323), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}}, 8226 {"zstdhx", VX(4, 0x324), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8227 {"zstdh", VX(4, 0x325), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8, RA}}, 8228 {"zstwhedx", VX(4, 0x328), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8229 {"zstwhed", VX(4, 0x329), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}}, 8230 {"zstwhodx", VX(4, 0x32A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8231 {"zstwhod", VX(4, 0x32B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4, RA}}, 8232 {"zlhhex", VX(4, 0x330), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8233 {"zlhhe", VX(4, 0x331), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, 8234 {"zlhhosx", VX(4, 0x332), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8235 {"zlhhos", VX(4, 0x333), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, 8236 {"zlhhoux", VX(4, 0x334), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8237 {"zlhhou", VX(4, 0x335), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2, RA}}, 8238 {"zsthex", VX(4, 0x338), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8239 {"zsthe", VX(4, 0x339), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}}, 8240 {"zsthox", VX(4, 0x33A), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8241 {"zstho", VX(4, 0x33B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2, RA}}, 8242 {"zstwhx", VX(4, 0x33C), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8243 {"zstwh", VX(4, 0x33D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}}, 8244 {"zstwwx", VX(4, 0x33E), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8245 {"zstww", VX(4, 0x33F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4, RA}}, 8246 {"zlddmx", VX(4, 0x340), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8247 {"zlddu", VX(4, 0x341), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}}, 8248 {"zldwmx", VX(4, 0x342), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8249 {"zldwu", VX(4, 0x343), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}}, 8250 {"zldhmx", VX(4, 0x344), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8251 {"zldhu", VX(4, 0x345), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_8_EX0, RA}}, 8252 {"zlwgsfdmx", VX(4, 0x348), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8253 {"zlwgsfdu", VX(4, 0x349), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8254 {"zlwwosdmx", VX(4, 0x34A), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8255 {"zlwwosdu", VX(4, 0x34B), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8256 {"zlwhsplatwdmx", VX(4, 0x34C), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8257 {"zlwhsplatwdu", VX(4, 0x34D), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8258 {"zlwhsplatdmx", VX(4, 0x34E), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8259 {"zlwhsplatdu", VX(4, 0x34F), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8260 {"zlwhgwsfdmx", VX(4, 0x350), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8261 {"zlwhgwsfdu", VX(4, 0x351), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8262 {"zlwhedmx", VX(4, 0x352), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8263 {"zlwhedu", VX(4, 0x353), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8264 {"zlwhosdmx", VX(4, 0x354), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8265 {"zlwhosdu", VX(4, 0x355), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8266 {"zlwhoudmx", VX(4, 0x356), VX_MASK, PPCLSP, 0, {RD_EVEN, RA, RB}}, 8267 {"zlwhoudu", VX(4, 0x357), VX_MASK, PPCLSP, 0, {RD_EVEN, EVUIMM_4_EX0, RA}}, 8268 {"zlwhmx", VX(4, 0x358), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8269 {"zlwhu", VX(4, 0x359), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}}, 8270 {"zlwwmx", VX(4, 0x35A), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8271 {"zlwwu", VX(4, 0x35B), VX_MASK, PPCLSP, 0, {RD, EVUIMM_4_EX0, RA}}, 8272 {"zlhgwsfmx", VX(4, 0x35C), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8273 {"zlhgwsfu", VX(4, 0x35D), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, 8274 {"zlhhsplatmx", VX(4, 0x35E), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8275 {"zlhhsplatu", VX(4, 0x35F), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, 8276 {"zstddmx", VX(4, 0x360), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8277 {"zstddu", VX(4, 0x361), VX_MASK, PPCLSP, 0, {RS, EVUIMM_8_EX0, RA}}, 8278 {"zstdwmx", VX(4, 0x362), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8279 {"zstdwu", VX(4, 0x363), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}}, 8280 {"zstdhmx", VX(4, 0x364), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8281 {"zstdhu", VX(4, 0x365), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_8_EX0, RA}}, 8282 {"zstwhedmx", VX(4, 0x368), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8283 {"zstwhedu", VX(4, 0x369), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}}, 8284 {"zstwhodmx", VX(4, 0x36A), VX_MASK, PPCLSP, 0, {RS_EVEN, RA, RB}}, 8285 {"zstwhodu", VX(4, 0x36B), VX_MASK, PPCLSP, 0, {RS_EVEN, EVUIMM_4_EX0, RA}}, 8286 {"zlhhemx", VX(4, 0x370), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8287 {"zlhheu", VX(4, 0x371), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, 8288 {"zlhhosmx", VX(4, 0x372), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8289 {"zlhhosu", VX(4, 0x373), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, 8290 {"zlhhoumx", VX(4, 0x374), VX_MASK, PPCLSP, 0, {RD, RA, RB}}, 8291 {"zlhhouu", VX(4, 0x375), VX_MASK, PPCLSP, 0, {RD, EVUIMM_2_EX0, RA}}, 8292 {"zsthemx", VX(4, 0x378), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8293 {"zstheu", VX(4, 0x379), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}}, 8294 {"zsthomx", VX(4, 0x37A), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8295 {"zsthou", VX(4, 0x37B), VX_MASK, PPCLSP, 0, {RS, EVUIMM_2_EX0, RA}}, 8296 {"zstwhmx", VX(4, 0x37C), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8297 {"zstwhu", VX(4, 0x37D), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}}, 8298 {"zstwwmx", VX(4, 0x37E), VX_MASK, PPCLSP, 0, {RS, RA, RB}}, 8299 {"zstwwu", VX(4, 0x37F), VX_MASK, PPCLSP, 0, {RS, EVUIMM_4_EX0, RA}}, 8300 8301 {"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 8302 {"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 8303 {"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 8304 {"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 8305 {"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8306 {"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}}, 8307 {"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8308 {"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8309 {"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}}, 8310 {"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8311 {"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}}, 8312 {"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8313 {"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8314 {"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 8315 {"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 8316 {"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 8317 {"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}}, 8318 {"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 8319 {"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 8320 {"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 8321 {"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 8322 {"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8323 {"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8324 {"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8325 {"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8326 {"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8327 {"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8328 {"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8329 {"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8330 {"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 8331 {"e_lmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8332 {"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8333 {"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8334 {"e_lmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8335 {"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8336 {"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8337 {"e_lmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8338 {"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8339 {"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8340 {"e_lmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8341 {"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8342 {"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8343 {"e_lmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8344 {"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8345 {"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8346 {"e_lmvmcsrrw", OPVUPRT(6,16,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8347 {"e_stmvmcsrrw", OPVUPRT(6,17,7),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 8348 {"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}}, 8349 {"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8350 {"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}}, 8351 8352 {"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 8353 {"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 8354 {"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 8355 {"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 8356 {"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8357 {"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8358 {"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8359 8360 {"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8361 {"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8362 {"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8363 8364 {"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8365 {"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8366 {"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8367 {"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}}, 8368 {"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8369 {"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8370 {"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8371 {"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 8372 {"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}}, 8373 8374 {"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8375 {"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8376 {"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8377 {"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 8378 8379 {"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8380 {"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8381 {"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8382 {"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8383 {"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8384 {"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8385 {"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 8386 8387 {"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 8388 {"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 8389 {"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 8390 {"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 8391 {"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 8392 {"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}}, 8393 {"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}}, 8394 {"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}}, 8395 {"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}}, 8396 {"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}}, 8397 {"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}}, 8398 {"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}}, 8399 {"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}}, 8400 {"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}}, 8401 {"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}}, 8402 {"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}}, 8403 {"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}}, 8404 {"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}}, 8405 {"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}}, 8406 {"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}}, 8407 {"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}}, 8408 {"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}}, 8409 {"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}}, 8410 {"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8411 {"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8412 {"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8413 {"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8414 {"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8415 {"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8416 {"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8417 {"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8418 {"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8419 {"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8420 {"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8421 {"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8422 {"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8423 {"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8424 {"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8425 {"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8426 {"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8427 {"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8428 {"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8429 {"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8430 {"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8431 {"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8432 {"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8433 {"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 8434 {"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}}, 8435 {"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}}, 8436 8437 {"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 8438 {"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 8439 {"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 8440 {"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 8441 8442 {"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}}, 8443 {"e_sc", X(31,36), XRTRA_MASK, PPCVLE, 0, {ELEV}}, 8444 {"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}}, 8445 {"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8446 {"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8447 {"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BAB}}, 8448 {"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8449 {"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BTAB}}, 8450 {"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8451 {"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}}, 8452 {"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 8453 {"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 8454 8455 {"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8456 8457 {"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}}, 8458 {"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}}, 8459 8460 {"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BTAB}}, 8461 {"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8462 8463 {"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 8464 {"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 8465 8466 {"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8467 8468 {"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BAB}}, 8469 {"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 8470 8471 {"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}}, 8472 8473 {"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 8474 {"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 8475 8476 {"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}}, 8477 8478 {"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}}, 8479 8480 {"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}}, 8481 8482 {"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}}, 8483 8484 {"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}}, 8485 8486 {"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}}, 8487 8488 {"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8489 {"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8490 {"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8491 {"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8492 {"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8493 {"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8494 {"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8495 {"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}}, 8496 {"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8497 {"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8498 {"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8499 {"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8500 {"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 8501 {"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}}, 8502 {"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}}, 8503 {"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}}, 8504 {"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}}, 8505 }; 8506 8507 const unsigned int vle_num_opcodes = 8508 sizeof (vle_opcodes) / sizeof (vle_opcodes[0]); 8509 8510 /* The macro table. This is only used by the assembler. */ 8511 8512 /* The expressions of the form (-x ! 31) & (x | 31) have the value 0 8513 when x=0; 32-x when x is between 1 and 31; are negative if x is 8514 negative; and are 32 or more otherwise. This is what you want 8515 when, for instance, you are emulating a right shift by a 8516 rotate-left-and-mask, because the underlying instructions support 8517 shifts of size 0 but not shifts of size 32. By comparison, when 8518 extracting x bits from some word you want to use just 32-x, because 8519 the underlying instructions don't support extracting 0 bits but do 8520 support extracting the whole word (32 bits in this case). */ 8521 8522 const struct powerpc_macro powerpc_macros[] = { 8523 {"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"}, 8524 {"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"}, 8525 {"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"}, 8526 {"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"}, 8527 {"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"}, 8528 {"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"}, 8529 {"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"}, 8530 {"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"}, 8531 {"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"}, 8532 {"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"}, 8533 {"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"}, 8534 {"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"}, 8535 {"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"}, 8536 {"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"}, 8537 {"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"}, 8538 {"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"}, 8539 8540 {"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"}, 8541 {"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"}, 8542 {"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"}, 8543 {"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"}, 8544 {"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 8545 {"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 8546 {"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 8547 {"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 8548 {"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"}, 8549 {"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"}, 8550 {"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"}, 8551 {"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"}, 8552 {"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"}, 8553 {"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"}, 8554 {"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 8555 {"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 8556 {"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 8557 {"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 8558 {"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"}, 8559 {"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"}, 8560 {"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"}, 8561 {"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"}, 8562 8563 {"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"}, 8564 {"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"}, 8565 {"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 8566 {"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 8567 {"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"}, 8568 {"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"}, 8569 {"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"}, 8570 {"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 8571 {"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"}, 8572 {"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"}, 8573 {"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"}, 8574 8575 /* old SPE instructions have new names with the same opcodes */ 8576 {"evsadd", 3, PPCSPE|PPCVLE, "efsadd %0,%1,%2"}, 8577 {"evssub", 3, PPCSPE|PPCVLE, "efssub %0,%1,%2"}, 8578 {"evsabs", 2, PPCSPE|PPCVLE, "efsabs %0,%1"}, 8579 {"evsnabs", 2, PPCSPE|PPCVLE, "efsnabs %0,%1"}, 8580 {"evsneg", 2, PPCSPE|PPCVLE, "efsneg %0,%1"}, 8581 {"evsmul", 3, PPCSPE|PPCVLE, "efsmul %0,%1,%2"}, 8582 {"evsdiv", 3, PPCSPE|PPCVLE, "efsdiv %0,%1,%2"}, 8583 {"evscmpgt", 3, PPCSPE|PPCVLE, "efscmpgt %0,%1,%2"}, 8584 {"evsgmplt", 3, PPCSPE|PPCVLE, "efscmplt %0,%1,%2"}, 8585 {"evsgmpeq", 3, PPCSPE|PPCVLE, "efscmpeq %0,%1,%2"}, 8586 {"evscfui", 2, PPCSPE|PPCVLE, "efscfui %0,%1"}, 8587 {"evscfsi", 2, PPCSPE|PPCVLE, "efscfsi %0,%1"}, 8588 {"evscfuf", 2, PPCSPE|PPCVLE, "efscfuf %0,%1"}, 8589 {"evscfsf", 2, PPCSPE|PPCVLE, "efscfsf %0,%1"}, 8590 {"evsctui", 2, PPCSPE|PPCVLE, "efsctui %0,%1"}, 8591 {"evsctsi", 2, PPCSPE|PPCVLE, "efsctsi %0,%1"}, 8592 {"evsctuf", 2, PPCSPE|PPCVLE, "efsctuf %0,%1"}, 8593 {"evsctsf", 2, PPCSPE|PPCVLE, "efsctsf %0,%1"}, 8594 {"evsctuiz", 2, PPCSPE|PPCVLE, "efsctuiz %0,%1"}, 8595 {"evsctsiz", 2, PPCSPE|PPCVLE, "efsctsiz %0,%1"}, 8596 {"evststgt", 3, PPCSPE|PPCVLE, "efststgt %0,%1,%2"}, 8597 {"evststlt", 3, PPCSPE|PPCVLE, "efststlt %0,%1,%2"}, 8598 {"evststeq", 3, PPCSPE|PPCVLE, "efststeq %0,%1,%2"}, 8599 8600 /* SPE2 instructions which just are mapped to SPE2 */ 8601 {"evdotphsssi", 3, PPCSPE2, "evdotphssmi %0,%1,%2"}, 8602 {"evdotphsssia", 3, PPCSPE2, "evdotphssmia %0,%1,%2"}, 8603 {"evdotpwsssi", 3, PPCSPE2, "evdotpwssmi %0,%1,%2"}, 8604 {"evdotpwsssia", 3, PPCSPE2, "evdotpwssmia %0,%1,%2"} 8605 }; 8606 8607 const int powerpc_num_macros = 8608 sizeof (powerpc_macros) / sizeof (powerpc_macros[0]); 8609 8610 /* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */ 8611 const struct powerpc_opcode spe2_opcodes[] = { 8612 {"evdotpwcssi", VX (4, 128), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8613 {"evdotpwcsmi", VX (4, 129), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8614 {"evdotpwcssfr", VX (4, 130), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8615 {"evdotpwcssf", VX (4, 131), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8616 {"evdotpwgasmf", VX (4, 136), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8617 {"evdotpwxgasmf", VX (4, 137), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8618 {"evdotpwgasmfr", VX (4, 138), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8619 {"evdotpwxgasmfr", VX (4, 139), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8620 {"evdotpwgssmf", VX (4, 140), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8621 {"evdotpwxgssmf", VX (4, 141), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8622 {"evdotpwgssmfr", VX (4, 142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8623 {"evdotpwxgssmfr", VX (4, 143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8624 {"evdotpwcssiaaw3", VX (4, 144), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8625 {"evdotpwcsmiaaw3", VX (4, 145), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8626 {"evdotpwcssfraaw3", VX (4, 146), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8627 {"evdotpwcssfaaw3", VX (4, 147), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8628 {"evdotpwgasmfaa3", VX (4, 152), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8629 {"evdotpwxgasmfaa3", VX (4, 153), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8630 {"evdotpwgasmfraa3", VX (4, 154), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8631 {"evdotpwxgasmfraa3", VX (4, 155), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8632 {"evdotpwgssmfaa3", VX (4, 156), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8633 {"evdotpwxgssmfaa3", VX (4, 157), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8634 {"evdotpwgssmfraa3", VX (4, 158), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8635 {"evdotpwxgssmfraa3", VX (4, 159), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8636 {"evdotpwcssia", VX (4, 160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8637 {"evdotpwcsmia", VX (4, 161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8638 {"evdotpwcssfra", VX (4, 162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8639 {"evdotpwcssfa", VX (4, 163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8640 {"evdotpwgasmfa", VX (4, 168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8641 {"evdotpwxgasmfa", VX (4, 169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8642 {"evdotpwgasmfra", VX (4, 170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8643 {"evdotpwxgasmfra", VX (4, 171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8644 {"evdotpwgssmfa", VX (4, 172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8645 {"evdotpwxgssmfa", VX (4, 173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8646 {"evdotpwgssmfra", VX (4, 174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8647 {"evdotpwxgssmfra", VX (4, 175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8648 {"evdotpwcssiaaw", VX (4, 176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8649 {"evdotpwcsmiaaw", VX (4, 177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8650 {"evdotpwcssfraaw", VX (4, 178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8651 {"evdotpwcssfaaw", VX (4, 179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8652 {"evdotpwgasmfaa", VX (4, 184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8653 {"evdotpwxgasmfaa", VX (4, 185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8654 {"evdotpwgasmfraa", VX (4, 186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8655 {"evdotpwxgasmfraa", VX (4, 187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8656 {"evdotpwgssmfaa", VX (4, 188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8657 {"evdotpwxgssmfaa", VX (4, 189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8658 {"evdotpwgssmfraa", VX (4, 190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8659 {"evdotpwxgssmfraa", VX (4, 191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8660 {"evdotphihcssi", VX (4, 256), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8661 {"evdotplohcssi", VX (4, 257), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8662 {"evdotphihcssf", VX (4, 258), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8663 {"evdotplohcssf", VX (4, 259), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8664 {"evdotphihcsmi", VX (4, 264), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8665 {"evdotplohcsmi", VX (4, 265), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8666 {"evdotphihcssfr", VX (4, 266), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8667 {"evdotplohcssfr", VX (4, 267), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8668 {"evdotphihcssiaaw3", VX (4, 272), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8669 {"evdotplohcssiaaw3", VX (4, 273), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8670 {"evdotphihcssfaaw3", VX (4, 274), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8671 {"evdotplohcssfaaw3", VX (4, 275), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8672 {"evdotphihcsmiaaw3", VX (4, 280), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8673 {"evdotplohcsmiaaw3", VX (4, 281), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8674 {"evdotphihcssfraaw3", VX (4, 282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8675 {"evdotplohcssfraaw3", VX (4, 283), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8676 {"evdotphihcssia", VX (4, 288), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8677 {"evdotplohcssia", VX (4, 289), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8678 {"evdotphihcssfa", VX (4, 290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8679 {"evdotplohcssfa", VX (4, 291), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8680 {"evdotphihcsmia", VX (4, 296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8681 {"evdotplohcsmia", VX (4, 297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8682 {"evdotphihcssfra", VX (4, 298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8683 {"evdotplohcssfra", VX (4, 299), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8684 {"evdotphihcssiaaw", VX (4, 304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8685 {"evdotplohcssiaaw", VX (4, 305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8686 {"evdotphihcssfaaw", VX (4, 306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8687 {"evdotplohcssfaaw", VX (4, 307), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8688 {"evdotphihcsmiaaw", VX (4, 312), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8689 {"evdotplohcsmiaaw", VX (4, 313), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8690 {"evdotphihcssfraaw", VX (4, 314), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8691 {"evdotplohcssfraaw", VX (4, 315), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8692 {"evdotphausi", VX (4, 320), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8693 {"evdotphassi", VX (4, 321), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8694 {"evdotphasusi", VX (4, 322), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8695 {"evdotphassf", VX (4, 323), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8696 {"evdotphsssf", VX (4, 327), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8697 {"evdotphaumi", VX (4, 328), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8698 {"evdotphasmi", VX (4, 329), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8699 {"evdotphasumi", VX (4, 330), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8700 {"evdotphassfr", VX (4, 331), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8701 {"evdotphssmi", VX (4, 333), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8702 {"evdotphsssfr", VX (4, 335), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8703 {"evdotphausiaaw3", VX (4, 336), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8704 {"evdotphassiaaw3", VX (4, 337), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8705 {"evdotphasusiaaw3", VX (4, 338), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8706 {"evdotphassfaaw3", VX (4, 339), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8707 {"evdotphsssiaaw3", VX (4, 341), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8708 {"evdotphsssfaaw3", VX (4, 343), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8709 {"evdotphaumiaaw3", VX (4, 344), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8710 {"evdotphasmiaaw3", VX (4, 345), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8711 {"evdotphasumiaaw3", VX (4, 346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8712 {"evdotphassfraaw3", VX (4, 347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8713 {"evdotphssmiaaw3", VX (4, 349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8714 {"evdotphsssfraaw3", VX (4, 351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8715 {"evdotphausia", VX (4, 352), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8716 {"evdotphassia", VX (4, 353), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8717 {"evdotphasusia", VX (4, 354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8718 {"evdotphassfa", VX (4, 355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8719 {"evdotphsssfa", VX (4, 359), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8720 {"evdotphaumia", VX (4, 360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8721 {"evdotphasmia", VX (4, 361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8722 {"evdotphasumia", VX (4, 362), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8723 {"evdotphassfra", VX (4, 363), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8724 {"evdotphssmia", VX (4, 365), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8725 {"evdotphsssfra", VX (4, 367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8726 {"evdotphausiaaw", VX (4, 368), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8727 {"evdotphassiaaw", VX (4, 369), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8728 {"evdotphasusiaaw", VX (4, 370), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8729 {"evdotphassfaaw", VX (4, 371), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8730 {"evdotphsssiaaw", VX (4, 373), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8731 {"evdotphsssfaaw", VX (4, 375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8732 {"evdotphaumiaaw", VX (4, 376), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8733 {"evdotphasmiaaw", VX (4, 377), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8734 {"evdotphasumiaaw", VX (4, 378), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8735 {"evdotphassfraaw", VX (4, 379), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8736 {"evdotphssmiaaw", VX (4, 381), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8737 {"evdotphsssfraaw", VX (4, 383), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8738 {"evdotp4hgaumi", VX (4, 384), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8739 {"evdotp4hgasmi", VX (4, 385), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8740 {"evdotp4hgasumi", VX (4, 386), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8741 {"evdotp4hgasmf", VX (4, 387), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8742 {"evdotp4hgssmi", VX (4, 388), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8743 {"evdotp4hgssmf", VX (4, 389), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8744 {"evdotp4hxgasmi", VX (4, 390), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8745 {"evdotp4hxgasmf", VX (4, 391), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8746 {"evdotpbaumi", VX (4, 392), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8747 {"evdotpbasmi", VX (4, 393), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8748 {"evdotpbasumi", VX (4, 394), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8749 {"evdotp4hxgssmi", VX (4, 398), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8750 {"evdotp4hxgssmf", VX (4, 399), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8751 {"evdotp4hgaumiaa3", VX (4, 400), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8752 {"evdotp4hgasmiaa3", VX (4, 401), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8753 {"evdotp4hgasumiaa3", VX (4, 402), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8754 {"evdotp4hgasmfaa3", VX (4, 403), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8755 {"evdotp4hgssmiaa3", VX (4, 404), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8756 {"evdotp4hgssmfaa3", VX (4, 405), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8757 {"evdotp4hxgasmiaa3", VX (4, 406), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8758 {"evdotp4hxgasmfaa3", VX (4, 407), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8759 {"evdotpbaumiaaw3", VX (4, 408), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8760 {"evdotpbasmiaaw3", VX (4, 409), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8761 {"evdotpbasumiaaw3", VX (4, 410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8762 {"evdotp4hxgssmiaa3", VX (4, 414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8763 {"evdotp4hxgssmfaa3", VX (4, 415), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8764 {"evdotp4hgaumia", VX (4, 416), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8765 {"evdotp4hgasmia", VX (4, 417), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8766 {"evdotp4hgasumia", VX (4, 418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8767 {"evdotp4hgasmfa", VX (4, 419), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8768 {"evdotp4hgssmia", VX (4, 420), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8769 {"evdotp4hgssmfa", VX (4, 421), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8770 {"evdotp4hxgasmia", VX (4, 422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8771 {"evdotp4hxgasmfa", VX (4, 423), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8772 {"evdotpbaumia", VX (4, 424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8773 {"evdotpbasmia", VX (4, 425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8774 {"evdotpbasumia", VX (4, 426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8775 {"evdotp4hxgssmia", VX (4, 430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8776 {"evdotp4hxgssmfa", VX (4, 431), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8777 {"evdotp4hgaumiaa", VX (4, 432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8778 {"evdotp4hgasmiaa", VX (4, 433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8779 {"evdotp4hgasumiaa", VX (4, 434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8780 {"evdotp4hgasmfaa", VX (4, 435), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8781 {"evdotp4hgssmiaa", VX (4, 436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8782 {"evdotp4hgssmfaa", VX (4, 437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8783 {"evdotp4hxgasmiaa", VX (4, 438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8784 {"evdotp4hxgasmfaa", VX (4, 439), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8785 {"evdotpbaumiaaw", VX (4, 440), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8786 {"evdotpbasmiaaw", VX (4, 441), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8787 {"evdotpbasumiaaw", VX (4, 442), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8788 {"evdotp4hxgssmiaa", VX (4, 446), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8789 {"evdotp4hxgssmfaa", VX (4, 447), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8790 {"evdotpwausi", VX (4, 448), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8791 {"evdotpwassi", VX (4, 449), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8792 {"evdotpwasusi", VX (4, 450), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8793 {"evdotpwaumi", VX (4, 456), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8794 {"evdotpwasmi", VX (4, 457), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8795 {"evdotpwasumi", VX (4, 458), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8796 {"evdotpwssmi", VX (4, 461), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8797 {"evdotpwausiaa3", VX (4, 464), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8798 {"evdotpwassiaa3", VX (4, 465), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8799 {"evdotpwasusiaa3", VX (4, 466), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8800 {"evdotpwsssiaa3", VX (4, 469), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8801 {"evdotpwaumiaa3", VX (4, 472), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8802 {"evdotpwasmiaa3", VX (4, 473), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8803 {"evdotpwasumiaa3", VX (4, 474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8804 {"evdotpwssmiaa3", VX (4, 477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8805 {"evdotpwausia", VX (4, 480), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8806 {"evdotpwassia", VX (4, 481), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8807 {"evdotpwasusia", VX (4, 482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8808 {"evdotpwaumia", VX (4, 488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8809 {"evdotpwasmia", VX (4, 489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8810 {"evdotpwasumia", VX (4, 490), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8811 {"evdotpwssmia", VX (4, 493), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8812 {"evdotpwausiaa", VX (4, 496), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8813 {"evdotpwassiaa", VX (4, 497), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8814 {"evdotpwasusiaa", VX (4, 498), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8815 {"evdotpwsssiaa", VX (4, 501), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8816 {"evdotpwaumiaa", VX (4, 504), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8817 {"evdotpwasmiaa", VX (4, 505), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8818 {"evdotpwasumiaa", VX (4, 506), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8819 {"evdotpwssmiaa", VX (4, 509), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8820 {"evaddib", VX (4, 515), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}}, 8821 {"evaddih", VX (4, 513), VX_MASK, PPCSPE2, 0, {RD, RB, UIMM}}, 8822 {"evsubifh", VX (4, 517), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}}, 8823 {"evsubifb", VX (4, 519), VX_MASK, PPCSPE2, 0, {RD, UIMM, RB}}, 8824 {"evabsb", VX_RB_CONST(4, 520, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8825 {"evabsh", VX_RB_CONST(4, 520, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8826 {"evabsd", VX_RB_CONST(4, 520, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8827 {"evabss", VX_RB_CONST(4, 520, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8828 {"evabsbs", VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8829 {"evabshs", VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8830 {"evabsds", VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8831 {"evnegwo", VX_RB_CONST(4, 521, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8832 {"evnegb", VX_RB_CONST(4, 521, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8833 {"evnegbo", VX_RB_CONST(4, 521, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8834 {"evnegh", VX_RB_CONST(4, 521, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8835 {"evnegho", VX_RB_CONST(4, 521, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8836 {"evnegd", VX_RB_CONST(4, 521, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8837 {"evnegs", VX_RB_CONST(4, 521, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8838 {"evnegwos", VX_RB_CONST(4, 521, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8839 {"evnegbs", VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8840 {"evnegbos", VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8841 {"evneghs", VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8842 {"evneghos", VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8843 {"evnegds", VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8844 {"evextzb", VX_RB_CONST(4, 522, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8845 {"evextsbh", VX_RB_CONST(4, 522, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8846 {"evextsw", VX_RB_CONST(4, 523, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8847 {"evrndwh", VX_RB_CONST(4, 524, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8848 {"evrndhb", VX_RB_CONST(4, 524, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8849 {"evrnddw", VX_RB_CONST(4, 524, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8850 {"evrndwhus", VX_RB_CONST(4, 524, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8851 {"evrndwhss", VX_RB_CONST(4, 524, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8852 {"evrndhbus", VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8853 {"evrndhbss", VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8854 {"evrnddwus", VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8855 {"evrnddwss", VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8856 {"evrndwnh", VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8857 {"evrndhnb", VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8858 {"evrnddnw", VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8859 {"evrndwnhus", VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8860 {"evrndwnhss", VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8861 {"evrndhnbus", VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8862 {"evrndhnbss", VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8863 {"evrnddnwus", VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8864 {"evrnddnwss", VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8865 {"evcntlzh", VX_RB_CONST(4, 525, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8866 {"evcntlsh", VX_RB_CONST(4, 526, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8867 {"evpopcntb", VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8868 {"circinc", VX (4, 528), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8869 {"evunpkhibui", VX_RB_CONST(4, 540, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8870 {"evunpkhibsi", VX_RB_CONST(4, 540, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8871 {"evunpkhihui", VX_RB_CONST(4, 540, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8872 {"evunpkhihsi", VX_RB_CONST(4, 540, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8873 {"evunpklobui", VX_RB_CONST(4, 540, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8874 {"evunpklobsi", VX_RB_CONST(4, 540, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8875 {"evunpklohui", VX_RB_CONST(4, 540, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8876 {"evunpklohsi", VX_RB_CONST(4, 540, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8877 {"evunpklohf", VX_RB_CONST(4, 540, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8878 {"evunpkhihf", VX_RB_CONST(4, 540, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8879 {"evunpklowgsf", VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8880 {"evunpkhiwgsf", VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8881 {"evsatsduw", VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8882 {"evsatsdsw", VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8883 {"evsatshub", VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8884 {"evsatshsb", VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8885 {"evsatuwuh", VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8886 {"evsatswsh", VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8887 {"evsatswuh", VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8888 {"evsatuhub", VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8889 {"evsatuduw", VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8890 {"evsatuwsw", VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8891 {"evsatshuh", VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8892 {"evsatuhsh", VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8893 {"evsatswuw", VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8894 {"evsatswgsdf", VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8895 {"evsatsbub", VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8896 {"evsatubsb", VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8897 {"evmaxhpuw", VX_RB_CONST(4, 541, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8898 {"evmaxhpsw", VX_RB_CONST(4, 541, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8899 {"evmaxbpuh", VX_RB_CONST(4, 541, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8900 {"evmaxbpsh", VX_RB_CONST(4, 541, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8901 {"evmaxwpud", VX_RB_CONST(4, 541, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8902 {"evmaxwpsd", VX_RB_CONST(4, 541, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8903 {"evminhpuw", VX_RB_CONST(4, 541, 8), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8904 {"evminhpsw", VX_RB_CONST(4, 541, 9), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8905 {"evminbpuh", VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8906 {"evminbpsh", VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8907 {"evminwpud", VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8908 {"evminwpsd", VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 8909 {"evmaxmagws", VX (4, 543), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8910 {"evsl", VX (4, 549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8911 {"evsli", VX (4, 551), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}}, 8912 {"evsplatie", VX_RB_CONST (4, 553, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8913 {"evsplatib", VX_RB_CONST (4, 553, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8914 {"evsplatibe", VX_RB_CONST (4, 553, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8915 {"evsplatih", VX_RB_CONST (4, 553, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8916 {"evsplatihe", VX_RB_CONST (4, 553, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8917 {"evsplatid", VX_RB_CONST (4, 553, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8918 {"evsplatia", VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8919 {"evsplatiea", VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8920 {"evsplatiba", VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8921 {"evsplatibea", VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8922 {"evsplatiha", VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8923 {"evsplatihea", VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8924 {"evsplatida", VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8925 {"evsplatfio", VX_RB_CONST (4, 555, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8926 {"evsplatfib", VX_RB_CONST (4, 555, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8927 {"evsplatfibo", VX_RB_CONST (4, 555, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8928 {"evsplatfih", VX_RB_CONST (4, 555, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8929 {"evsplatfiho", VX_RB_CONST (4, 555, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8930 {"evsplatfid", VX_RB_CONST (4, 555, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8931 {"evsplatfia", VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8932 {"evsplatfioa", VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8933 {"evsplatfiba", VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8934 {"evsplatfiboa", VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8935 {"evsplatfiha", VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8936 {"evsplatfihoa", VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8937 {"evsplatfida", VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, SIMM}}, 8938 {"evcmpgtdu", VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}}, 8939 {"evcmpgtds", VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}}, 8940 {"evcmpltdu", VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}}, 8941 {"evcmpltds", VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}}, 8942 {"evcmpeqd", VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK, PPCSPE2, 0, {CRFD, RA, RB}}, 8943 {"evswapbhilo", VX (4, 568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8944 {"evswapblohi", VX (4, 569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8945 {"evswaphhilo", VX (4, 570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8946 {"evswaphlohi", VX (4, 571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8947 {"evswaphe", VX (4, 572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8948 {"evswaphhi", VX (4, 573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8949 {"evswaphlo", VX (4, 574), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8950 {"evswapho", VX (4, 575), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8951 {"evinsb", VX (4, 584), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}}, 8952 {"evxtrb", VX (4, 586), VX_MASK_DDD, PPCSPE2, 0, {RD, RA, DDD, BBB}}, 8953 {"evsplath", VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK, PPCSPE2, 0, {RD, RA, HH}}, 8954 {"evsplatb", VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}}, 8955 {"evinsh", VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}}, 8956 {"evclrbe", VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}}, 8957 {"evclrbo", VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}}, 8958 {"evclrh", VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK, PPCSPE2, 0, {RD, RA, MMMM}}, 8959 {"evxtrh", VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK, PPCSPE2, 0, {RD, RA, DD, HH}}, 8960 {"evselbitm0", VX (4, 592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8961 {"evselbitm1", VX (4, 593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8962 {"evselbit", VX (4, 594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8963 {"evperm", VX (4, 596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8964 {"evperm2", VX (4, 597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8965 {"evperm3", VX (4, 598), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8966 {"evxtrd", VX (4, 600), VX_OFF_SPE2_MASK, PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}}, 8967 {"evsrbu", VX (4, 608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8968 {"evsrbs", VX (4, 609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8969 {"evsrbiu", VX (4, 610), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}}, 8970 {"evsrbis", VX (4, 611), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}}, 8971 {"evslb", VX (4, 612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8972 {"evrlb", VX (4, 613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8973 {"evslbi", VX (4, 614), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}}, 8974 {"evrlbi", VX (4, 615), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT8}}, 8975 {"evsrhu", VX (4, 616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8976 {"evsrhs", VX (4, 617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8977 {"evsrhiu", VX (4, 618), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}}, 8978 {"evsrhis", VX (4, 619), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}}, 8979 {"evslh", VX (4, 620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8980 {"evrlh", VX (4, 621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8981 {"evslhi", VX (4, 622), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}}, 8982 {"evrlhi", VX (4, 623), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM_LT16}}, 8983 {"evsru", VX (4, 624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8984 {"evsrs", VX (4, 625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8985 {"evsriu", VX (4, 626), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}}, 8986 {"evsris", VX (4, 627), VX_MASK, PPCSPE2, 0, {RD, RA, EVUIMM}}, 8987 {"evlvsl", VX (4, 628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8988 {"evlvsr", VX (4, 629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8989 {"evsroiu", VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}}, 8990 {"evsrois", VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}}, 8991 {"evsloi", VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}}, 8992 {"evldbx", VX (4, 774), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8993 {"evldb", VX (4, 775), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8, RA}}, 8994 {"evlhhsplathx", VX (4, 778), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8995 {"evlhhsplath", VX (4, 779), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2, RA}}, 8996 {"evlwbsplatwx", VX (4, 786), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8997 {"evlwbsplatw", VX (4, 787), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}}, 8998 {"evlwhsplatwx", VX (4, 794), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 8999 {"evlwhsplatw", VX (4, 795), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}}, 9000 {"evlbbsplatbx", VX (4, 798), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9001 {"evlbbsplatb", VX (4, 799), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1, RA}}, 9002 {"evstdbx", VX (4, 806), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9003 {"evstdb", VX (4, 807), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8, RA}}, 9004 {"evlwbex", VX (4, 810), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9005 {"evlwbe", VX (4, 811), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}}, 9006 {"evlwboux", VX (4, 812), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9007 {"evlwbou", VX (4, 813), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}}, 9008 {"evlwbosx", VX (4, 814), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9009 {"evlwbos", VX (4, 815), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4, RA}}, 9010 {"evstwbex", VX (4, 818), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9011 {"evstwbe", VX (4, 819), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}}, 9012 {"evstwbox", VX (4, 822), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9013 {"evstwbo", VX (4, 823), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}}, 9014 {"evstwbx", VX (4, 826), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9015 {"evstwb", VX (4, 827), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4, RA}}, 9016 {"evsthbx", VX (4, 830), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9017 {"evsthb", VX (4, 831), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2, RA}}, 9018 {"evlddmx", VX (4, 832), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9019 {"evlddu", VX (4, 833), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}}, 9020 {"evldwmx", VX (4, 834), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9021 {"evldwu", VX (4, 835), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}}, 9022 {"evldhmx", VX (4, 836), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9023 {"evldhu", VX (4, 837), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}}, 9024 {"evldbmx", VX (4, 838), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9025 {"evldbu", VX (4, 839), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}}, 9026 {"evlhhesplatmx", VX (4, 840), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9027 {"evlhhesplatu", VX (4, 841), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}}, 9028 {"evlhhsplathmx", VX (4, 842), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9029 {"evlhhsplathu", VX (4, 843), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}}, 9030 {"evlhhousplatmx", VX (4, 844), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9031 {"evlhhousplatu", VX (4, 845), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}}, 9032 {"evlhhossplatmx", VX (4, 846), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9033 {"evlhhossplatu", VX (4, 847), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}}, 9034 {"evlwhemx", VX (4, 848), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9035 {"evlwheu", VX (4, 849), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9036 {"evlwbsplatwmx", VX (4, 850), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9037 {"evlwbsplatwu", VX (4, 851), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9038 {"evlwhoumx", VX (4, 852), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9039 {"evlwhouu", VX (4, 853), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9040 {"evlwhosmx", VX (4, 854), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9041 {"evlwhosu", VX (4, 855), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9042 {"evlwwsplatmx", VX (4, 856), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9043 {"evlwwsplatu", VX (4, 857), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9044 {"evlwhsplatwmx", VX (4, 858), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9045 {"evlwhsplatwu", VX (4, 859), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9046 {"evlwhsplatmx", VX (4, 860), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9047 {"evlwhsplatu", VX (4, 861), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9048 {"evlbbsplatbmx", VX (4, 862), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9049 {"evlbbsplatbu", VX (4, 863), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}}, 9050 {"evstddmx", VX (4, 864), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9051 {"evstddu", VX (4, 865), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}}, 9052 {"evstdwmx", VX (4, 866), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9053 {"evstdwu", VX (4, 867), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}}, 9054 {"evstdhmx", VX (4, 868), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9055 {"evstdhu", VX (4, 869), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}}, 9056 {"evstdbmx", VX (4, 870), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9057 {"evstdbu", VX (4, 871), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}}, 9058 {"evlwbemx", VX (4, 874), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9059 {"evlwbeu", VX (4, 875), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9060 {"evlwboumx", VX (4, 876), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9061 {"evlwbouu", VX (4, 877), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9062 {"evlwbosmx", VX (4, 878), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9063 {"evlwbosu", VX (4, 879), VX_MASK, PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}}, 9064 {"evstwhemx", VX (4, 880), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9065 {"evstwheu", VX (4, 881), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9066 {"evstwbemx", VX (4, 882), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9067 {"evstwbeu", VX (4, 883), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9068 {"evstwhomx", VX (4, 884), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9069 {"evstwhou", VX (4, 885), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9070 {"evstwbomx", VX (4, 886), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9071 {"evstwbou", VX (4, 887), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9072 {"evstwwemx", VX (4, 888), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9073 {"evstwweu", VX (4, 889), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9074 {"evstwbmx", VX (4, 890), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9075 {"evstwbu", VX (4, 891), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9076 {"evstwwomx", VX (4, 892), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9077 {"evstwwou", VX (4, 893), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}}, 9078 {"evsthbmx", VX (4, 894), VX_MASK, PPCSPE2, 0, {RS, RA, RB}}, 9079 {"evsthbu", VX (4, 895), VX_MASK, PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}}, 9080 {"evmhusi", VX (4, 1024), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9081 {"evmhssi", VX (4, 1025), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9082 {"evmhsusi", VX (4, 1026), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9083 {"evmhssf", VX (4, 1028), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9084 {"evmhumi", VX (4, 1029), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9085 {"evmhssfr", VX (4, 1030), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9086 {"evmhesumi", VX (4, 1034), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9087 {"evmhosumi", VX (4, 1038), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9088 {"evmbeumi", VX (4, 1048), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9089 {"evmbesmi", VX (4, 1049), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9090 {"evmbesumi", VX (4, 1050), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9091 {"evmboumi", VX (4, 1052), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9092 {"evmbosmi", VX (4, 1053), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9093 {"evmbosumi", VX (4, 1054), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9094 {"evmhesumia", VX (4, 1066), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9095 {"evmhosumia", VX (4, 1070), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9096 {"evmbeumia", VX (4, 1080), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9097 {"evmbesmia", VX (4, 1081), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9098 {"evmbesumia", VX (4, 1082), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9099 {"evmboumia", VX (4, 1084), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9100 {"evmbosmia", VX (4, 1085), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9101 {"evmbosumia", VX (4, 1086), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9102 {"evmwusiw", VX (4, 1088), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9103 {"evmwssiw", VX (4, 1089), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9104 {"evmwhssfr", VX (4, 1094), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9105 {"evmwehgsmfr", VX (4, 1110), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9106 {"evmwehgsmf", VX (4, 1111), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9107 {"evmwohgsmfr", VX (4, 1118), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9108 {"evmwohgsmf", VX (4, 1119), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9109 {"evmwhssfra", VX (4, 1126), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9110 {"evmwehgsmfra", VX (4, 1142), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9111 {"evmwehgsmfa", VX (4, 1143), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9112 {"evmwohgsmfra", VX (4, 1150), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9113 {"evmwohgsmfa", VX (4, 1151), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9114 {"evaddusiaa", VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9115 {"evaddssiaa", VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9116 {"evsubfusiaa", VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9117 {"evsubfssiaa", VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9118 {"evaddsmiaa", VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9119 {"evsubfsmiaa", VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9120 {"evaddh", VX (4, 1160), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9121 {"evaddhss", VX (4, 1161), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9122 {"evsubfh", VX (4, 1162), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9123 {"evsubfhss", VX (4, 1163), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9124 {"evaddhx", VX (4, 1164), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9125 {"evaddhxss", VX (4, 1165), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9126 {"evsubfhx", VX (4, 1166), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9127 {"evsubfhxss", VX (4, 1167), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9128 {"evaddd", VX (4, 1168), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9129 {"evadddss", VX (4, 1169), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9130 {"evsubfd", VX (4, 1170), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9131 {"evsubfdss", VX (4, 1171), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9132 {"evaddb", VX (4, 1172), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9133 {"evaddbss", VX (4, 1173), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9134 {"evsubfb", VX (4, 1174), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9135 {"evsubfbss", VX (4, 1175), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9136 {"evaddsubfh", VX (4, 1176), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9137 {"evaddsubfhss", VX (4, 1177), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9138 {"evsubfaddh", VX (4, 1178), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9139 {"evsubfaddhss", VX (4, 1179), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9140 {"evaddsubfhx", VX (4, 1180), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9141 {"evaddsubfhxss", VX (4, 1181), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9142 {"evsubfaddhx", VX (4, 1182), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9143 {"evsubfaddhxss", VX (4, 1183), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9144 {"evadddus", VX (4, 1184), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9145 {"evaddbus", VX (4, 1185), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9146 {"evsubfdus", VX (4, 1186), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9147 {"evsubfbus", VX (4, 1187), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9148 {"evaddwus", VX (4, 1188), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9149 {"evaddwxus", VX (4, 1189), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9150 {"evsubfwus", VX (4, 1190), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9151 {"evsubfwxus", VX (4, 1191), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9152 {"evadd2subf2h", VX (4, 1192), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9153 {"evadd2subf2hss", VX (4, 1193), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9154 {"evsubf2add2h", VX (4, 1194), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9155 {"evsubf2add2hss", VX (4, 1195), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9156 {"evaddhus", VX (4, 1196), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9157 {"evaddhxus", VX (4, 1197), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9158 {"evsubfhus", VX (4, 1198), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9159 {"evsubfhxus", VX (4, 1199), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9160 {"evaddwss", VX (4, 1201), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9161 {"evsubfwss", VX (4, 1203), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9162 {"evaddwx", VX (4, 1204), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9163 {"evaddwxss", VX (4, 1205), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9164 {"evsubfwx", VX (4, 1206), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9165 {"evsubfwxss", VX (4, 1207), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9166 {"evaddsubfw", VX (4, 1208), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9167 {"evaddsubfwss", VX (4, 1209), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9168 {"evsubfaddw", VX (4, 1210), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9169 {"evsubfaddwss", VX (4, 1211), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9170 {"evaddsubfwx", VX (4, 1212), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9171 {"evaddsubfwxss", VX (4, 1213), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9172 {"evsubfaddwx", VX (4, 1214), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9173 {"evsubfaddwxss", VX (4, 1215), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9174 {"evmar", VX_SPE2_EVMAR (4, 1220), VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}}, 9175 {"evsumwu", VX_RB_CONST(4, 1221, 0), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9176 {"evsumws", VX_RB_CONST(4, 1221, 1), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9177 {"evsum4bu", VX_RB_CONST(4, 1221, 2), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9178 {"evsum4bs", VX_RB_CONST(4, 1221, 3), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9179 {"evsum2hu", VX_RB_CONST(4, 1221, 4), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9180 {"evsum2hs", VX_RB_CONST(4, 1221, 5), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9181 {"evdiff2his", VX_RB_CONST(4, 1221, 6), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9182 {"evsum2his", VX_RB_CONST(4, 1221, 7), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9183 {"evsumwua", VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9184 {"evsumwsa", VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9185 {"evsum4bua", VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9186 {"evsum4bsa", VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9187 {"evsum2hua", VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9188 {"evsum2hsa", VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9189 {"evdiff2hisa", VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9190 {"evsum2hisa", VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9191 {"evsumwuaa", VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9192 {"evsumwsaa", VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9193 {"evsum4buaaw", VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9194 {"evsum4bsaaw", VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9195 {"evsum2huaaw", VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9196 {"evsum2hsaaw", VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9197 {"evdiff2hisaaw", VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9198 {"evsum2hisaaw", VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK, PPCSPE2, 0, {RD, RA}}, 9199 {"evdivwsf", VX (4, 1228), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9200 {"evdivwuf", VX (4, 1229), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9201 {"evdivs", VX (4, 1230), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9202 {"evdivu", VX (4, 1231), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9203 {"evaddwegsi", VX (4, 1232), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9204 {"evaddwegsf", VX (4, 1233), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9205 {"evsubfwegsi", VX (4, 1234), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9206 {"evsubfwegsf", VX (4, 1235), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9207 {"evaddwogsi", VX (4, 1236), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9208 {"evaddwogsf", VX (4, 1237), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9209 {"evsubfwogsi", VX (4, 1238), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9210 {"evsubfwogsf", VX (4, 1239), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9211 {"evaddhhiuw", VX (4, 1240), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9212 {"evaddhhisw", VX (4, 1241), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9213 {"evsubfhhiuw", VX (4, 1242), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9214 {"evsubfhhisw", VX (4, 1243), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9215 {"evaddhlouw", VX (4, 1244), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9216 {"evaddhlosw", VX (4, 1245), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9217 {"evsubfhlouw", VX (4, 1246), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9218 {"evsubfhlosw", VX (4, 1247), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9219 {"evmhesusiaaw", VX (4, 1282), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9220 {"evmhosusiaaw", VX (4, 1286), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9221 {"evmhesumiaaw", VX (4, 1290), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9222 {"evmhosumiaaw", VX (4, 1294), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9223 {"evmbeusiaah", VX (4, 1296), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9224 {"evmbessiaah", VX (4, 1297), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9225 {"evmbesusiaah", VX (4, 1298), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9226 {"evmbousiaah", VX (4, 1300), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9227 {"evmbossiaah", VX (4, 1301), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9228 {"evmbosusiaah", VX (4, 1302), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9229 {"evmbeumiaah", VX (4, 1304), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9230 {"evmbesmiaah", VX (4, 1305), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9231 {"evmbesumiaah", VX (4, 1306), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9232 {"evmboumiaah", VX (4, 1308), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9233 {"evmbosmiaah", VX (4, 1309), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9234 {"evmbosumiaah", VX (4, 1310), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9235 {"evmwlusiaaw3", VX (4, 1346), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9236 {"evmwlssiaaw3", VX (4, 1347), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9237 {"evmwhssfraaw3", VX (4, 1348), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9238 {"evmwhssfaaw3", VX (4, 1349), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9239 {"evmwhssfraaw", VX (4, 1350), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9240 {"evmwhssfaaw", VX (4, 1351), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9241 {"evmwlumiaaw3", VX (4, 1354), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9242 {"evmwlsmiaaw3", VX (4, 1355), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9243 {"evmwusiaa", VX (4, 1360), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9244 {"evmwssiaa", VX (4, 1361), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9245 {"evmwehgsmfraa", VX (4, 1366), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9246 {"evmwehgsmfaa", VX (4, 1367), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9247 {"evmwohgsmfraa", VX (4, 1374), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9248 {"evmwohgsmfaa", VX (4, 1375), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9249 {"evmhesusianw", VX (4, 1410), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9250 {"evmhosusianw", VX (4, 1414), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9251 {"evmhesumianw", VX (4, 1418), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9252 {"evmhosumianw", VX (4, 1422), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9253 {"evmbeusianh", VX (4, 1424), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9254 {"evmbessianh", VX (4, 1425), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9255 {"evmbesusianh", VX (4, 1426), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9256 {"evmbousianh", VX (4, 1428), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9257 {"evmbossianh", VX (4, 1429), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9258 {"evmbosusianh", VX (4, 1430), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9259 {"evmbeumianh", VX (4, 1432), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9260 {"evmbesmianh", VX (4, 1433), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9261 {"evmbesumianh", VX (4, 1434), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9262 {"evmboumianh", VX (4, 1436), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9263 {"evmbosmianh", VX (4, 1437), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9264 {"evmbosumianh", VX (4, 1438), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9265 {"evmwlusianw3", VX (4, 1474), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9266 {"evmwlssianw3", VX (4, 1475), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9267 {"evmwhssfranw3", VX (4, 1476), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9268 {"evmwhssfanw3", VX (4, 1477), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9269 {"evmwhssfranw", VX (4, 1478), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9270 {"evmwhssfanw", VX (4, 1479), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9271 {"evmwlumianw3", VX (4, 1482), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9272 {"evmwlsmianw3", VX (4, 1483), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9273 {"evmwusian", VX (4, 1488), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9274 {"evmwssian", VX (4, 1489), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9275 {"evmwehgsmfran", VX (4, 1494), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9276 {"evmwehgsmfan", VX (4, 1495), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9277 {"evmwohgsmfran", VX (4, 1502), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9278 {"evmwohgsmfan", VX (4, 1503), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9279 {"evseteqb", VX (4, 1536), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9280 {"evseteqb.", VX (4, 1537), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9281 {"evseteqh", VX (4, 1538), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9282 {"evseteqh.", VX (4, 1539), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9283 {"evseteqw", VX (4, 1540), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9284 {"evseteqw.", VX (4, 1541), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9285 {"evsetgthu", VX (4, 1544), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9286 {"evsetgthu.", VX (4, 1545), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9287 {"evsetgths", VX (4, 1546), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9288 {"evsetgths.", VX (4, 1547), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9289 {"evsetgtwu", VX (4, 1548), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9290 {"evsetgtwu.", VX (4, 1549), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9291 {"evsetgtws", VX (4, 1550), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9292 {"evsetgtws.", VX (4, 1551), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9293 {"evsetgtbu", VX (4, 1552), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9294 {"evsetgtbu.", VX (4, 1553), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9295 {"evsetgtbs", VX (4, 1554), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9296 {"evsetgtbs.", VX (4, 1555), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9297 {"evsetltbu", VX (4, 1556), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9298 {"evsetltbu.", VX (4, 1557), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9299 {"evsetltbs", VX (4, 1558), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9300 {"evsetltbs.", VX (4, 1559), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9301 {"evsetlthu", VX (4, 1560), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9302 {"evsetlthu.", VX (4, 1561), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9303 {"evsetlths", VX (4, 1562), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9304 {"evsetlths.", VX (4, 1563), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9305 {"evsetltwu", VX (4, 1564), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9306 {"evsetltwu.", VX (4, 1565), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9307 {"evsetltws", VX (4, 1566), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9308 {"evsetltws.", VX (4, 1567), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9309 {"evsaduw", VX (4, 1568), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9310 {"evsadsw", VX (4, 1569), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9311 {"evsad4ub", VX (4, 1570), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9312 {"evsad4sb", VX (4, 1571), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9313 {"evsad2uh", VX (4, 1572), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9314 {"evsad2sh", VX (4, 1573), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9315 {"evsaduwa", VX (4, 1576), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9316 {"evsadswa", VX (4, 1577), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9317 {"evsad4uba", VX (4, 1578), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9318 {"evsad4sba", VX (4, 1579), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9319 {"evsad2uha", VX (4, 1580), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9320 {"evsad2sha", VX (4, 1581), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9321 {"evabsdifuw", VX (4, 1584), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9322 {"evabsdifsw", VX (4, 1585), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9323 {"evabsdifub", VX (4, 1586), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9324 {"evabsdifsb", VX (4, 1587), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9325 {"evabsdifuh", VX (4, 1588), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9326 {"evabsdifsh", VX (4, 1589), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9327 {"evsaduwaa", VX (4, 1592), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9328 {"evsadswaa", VX (4, 1593), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9329 {"evsad4ubaaw", VX (4, 1594), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9330 {"evsad4sbaaw", VX (4, 1595), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9331 {"evsad2uhaaw", VX (4, 1596), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9332 {"evsad2shaaw", VX (4, 1597), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9333 {"evpkshubs", VX (4, 1600), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9334 {"evpkshsbs", VX (4, 1601), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9335 {"evpkswuhs", VX (4, 1602), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9336 {"evpkswshs", VX (4, 1603), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9337 {"evpkuhubs", VX (4, 1604), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9338 {"evpkuwuhs", VX (4, 1605), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9339 {"evpkswshilvs", VX (4, 1606), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9340 {"evpkswgshefrs", VX (4, 1607), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9341 {"evpkswshfrs", VX (4, 1608), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9342 {"evpkswshilvfrs", VX (4, 1609), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9343 {"evpksdswfrs", VX (4, 1610), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9344 {"evpksdshefrs", VX (4, 1611), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9345 {"evpkuduws", VX (4, 1612), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9346 {"evpksdsws", VX (4, 1613), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9347 {"evpkswgswfrs", VX (4, 1614), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9348 {"evilveh", VX (4, 1616), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9349 {"evilveoh", VX (4, 1617), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9350 {"evilvhih", VX (4, 1618), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9351 {"evilvhiloh", VX (4, 1619), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9352 {"evilvloh", VX (4, 1620), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9353 {"evilvlohih", VX (4, 1621), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9354 {"evilvoeh", VX (4, 1622), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9355 {"evilvoh", VX (4, 1623), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9356 {"evdlveb", VX (4, 1624), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9357 {"evdlveh", VX (4, 1625), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9358 {"evdlveob", VX (4, 1626), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9359 {"evdlveoh", VX (4, 1627), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9360 {"evdlvob", VX (4, 1628), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9361 {"evdlvoh", VX (4, 1629), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9362 {"evdlvoeb", VX (4, 1630), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9363 {"evdlvoeh", VX (4, 1631), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9364 {"evmaxbu", VX (4, 1632), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9365 {"evmaxbs", VX (4, 1633), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9366 {"evmaxhu", VX (4, 1634), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9367 {"evmaxhs", VX (4, 1635), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9368 {"evmaxwu", VX (4, 1636), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9369 {"evmaxws", VX (4, 1637), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9370 {"evmaxdu", VX (4, 1638), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9371 {"evmaxds", VX (4, 1639), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9372 {"evminbu", VX (4, 1640), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9373 {"evminbs", VX (4, 1641), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9374 {"evminhu", VX (4, 1642), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9375 {"evminhs", VX (4, 1643), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9376 {"evminwu", VX (4, 1644), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9377 {"evminws", VX (4, 1645), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9378 {"evmindu", VX (4, 1646), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9379 {"evminds", VX (4, 1647), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9380 {"evavgwu", VX (4, 1648), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9381 {"evavgws", VX (4, 1649), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9382 {"evavgbu", VX (4, 1650), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9383 {"evavgbs", VX (4, 1651), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9384 {"evavghu", VX (4, 1652), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9385 {"evavghs", VX (4, 1653), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9386 {"evavgdu", VX (4, 1654), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9387 {"evavgds", VX (4, 1655), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9388 {"evavgwur", VX (4, 1656), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9389 {"evavgwsr", VX (4, 1657), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9390 {"evavgbur", VX (4, 1658), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9391 {"evavgbsr", VX (4, 1659), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9392 {"evavghur", VX (4, 1660), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9393 {"evavghsr", VX (4, 1661), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9394 {"evavgdur", VX (4, 1662), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9395 {"evavgdsr", VX (4, 1663), VX_MASK, PPCSPE2, 0, {RD, RA, RB}}, 9396 }; 9397 9398 const unsigned int spe2_num_opcodes = 9399 sizeof (spe2_opcodes) / sizeof (spe2_opcodes[0]); 9400