Home | History | Annotate | Line # | Download | only in opcodes
ppc-opc.c revision 1.9.2.1
      1 /* ppc-opc.c -- PowerPC opcode list
      2    Copyright (C) 1994-2022 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 #include "libiberty.h"
     27 
     28 /* This file holds the PowerPC opcode table.  The opcode table
     29    includes almost all of the extended instruction mnemonics.  This
     30    permits the disassembler to use them, and simplifies the assembler
     31    logic, at the cost of increasing the table size.  The table is
     32    strictly constant data, so the compiler should be able to put it in
     33    the text segment.
     34 
     35    This file also holds the operand table.  All knowledge about
     36    inserting operands into instructions and vice-versa is kept in this
     37    file.  */
     38 
     39 /* The functions used to insert and extract complicated operands.  */
     40 
     41 /* The ARX, ARY, RX and RY operands are alternate encodings of GPRs.  */
     42 
     43 static uint64_t
     44 insert_arx (uint64_t insn,
     45 	    int64_t value,
     46 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     47 	    const char **errmsg ATTRIBUTE_UNUSED)
     48 {
     49   value -= 8;
     50   if (value < 0 || value >= 16)
     51     {
     52       *errmsg = _("invalid register");
     53       value = 0xf;
     54     }
     55   return insn | value;
     56 }
     57 
     58 static int64_t
     59 extract_arx (uint64_t insn,
     60 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     61 	     int *invalid ATTRIBUTE_UNUSED)
     62 {
     63   return (insn & 0xf) + 8;
     64 }
     65 
     66 static uint64_t
     67 insert_ary (uint64_t insn,
     68 	    int64_t value,
     69 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     70 	    const char **errmsg ATTRIBUTE_UNUSED)
     71 {
     72   value -= 8;
     73   if (value < 0 || value >= 16)
     74     {
     75       *errmsg = _("invalid register");
     76       value = 0xf;
     77     }
     78   return insn | (value << 4);
     79 }
     80 
     81 static int64_t
     82 extract_ary (uint64_t insn,
     83 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     84 	     int *invalid ATTRIBUTE_UNUSED)
     85 {
     86   return ((insn >> 4) & 0xf) + 8;
     87 }
     88 
     89 static uint64_t
     90 insert_rx (uint64_t insn,
     91 	   int64_t value,
     92 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     93 	   const char **errmsg)
     94 {
     95   if (value >= 0 && value < 8)
     96     ;
     97   else if (value >= 24 && value <= 31)
     98     value -= 16;
     99   else
    100     {
    101       *errmsg = _("invalid register");
    102       value = 0xf;
    103     }
    104   return insn | value;
    105 }
    106 
    107 static int64_t
    108 extract_rx (uint64_t insn,
    109 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    110 	    int *invalid ATTRIBUTE_UNUSED)
    111 {
    112   int64_t value = insn & 0xf;
    113   if (value >= 0 && value < 8)
    114     return value;
    115   else
    116     return value + 16;
    117 }
    118 
    119 static uint64_t
    120 insert_ry (uint64_t insn,
    121 	   int64_t value,
    122 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    123 	   const char **errmsg)
    124 {
    125   if (value >= 0 && value < 8)
    126     ;
    127   else if (value >= 24 && value <= 31)
    128     value -= 16;
    129   else
    130     {
    131       *errmsg = _("invalid register");
    132       value = 0xf;
    133     }
    134   return insn | (value << 4);
    135 }
    136 
    137 static int64_t
    138 extract_ry (uint64_t insn,
    139 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    140 	    int *invalid ATTRIBUTE_UNUSED)
    141 {
    142   int64_t value = (insn >> 4) & 0xf;
    143   if (value >= 0 && value < 8)
    144     return value;
    145   else
    146     return value + 16;
    147 }
    148 
    149 /* The BA and BB fields in an XL form instruction or the RA and RB fields or
    150    VRA and VRB fields in a VX form instruction when they must be the same.
    151    This is used for extended mnemonics like crclr.  The extraction function
    152    enforces that the fields are the same.  */
    153 
    154 static uint64_t
    155 insert_bab (uint64_t insn,
    156 	    int64_t value,
    157 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    158 	    const char **errmsg ATTRIBUTE_UNUSED)
    159 {
    160   value &= 0x1f;
    161   return insn | (value << 16) | (value << 11);
    162 }
    163 
    164 static int64_t
    165 extract_bab (uint64_t insn,
    166 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    167 	     int *invalid)
    168 {
    169   int64_t ba = (insn >> 16) & 0x1f;
    170   int64_t bb = (insn >> 11) & 0x1f;
    171 
    172   if (ba != bb)
    173     *invalid = 1;
    174   return ba;
    175 }
    176 
    177 /* The BT, BA and BB fields in an XL form instruction when they must all be
    178    the same.  This is used for extended mnemonics like crclr.  The extraction
    179    function enforces that the fields are the same.  */
    180 
    181 static uint64_t
    182 insert_btab (uint64_t insn,
    183 	     int64_t value,
    184 	     ppc_cpu_t dialect,
    185 	     const char **errmsg)
    186 {
    187   value &= 0x1f;
    188   return (value << 21) | insert_bab (insn, value, dialect, errmsg);
    189 }
    190 
    191 static int64_t
    192 extract_btab (uint64_t insn,
    193 	     ppc_cpu_t dialect,
    194 	     int *invalid)
    195 {
    196   int64_t bt = (insn >> 21) & 0x1f;
    197   int64_t bab = extract_bab (insn, dialect, invalid);
    198 
    199   if (bt != bab)
    200     *invalid = 1;
    201   return bt;
    202 }
    203 
    204 /* The BD field in a B form instruction when the - modifier is used.
    205    This modifier means that the branch is not expected to be taken.
    206    For chips built to versions of the architecture prior to version 2
    207    (ie. not Power4 compatible), we set the y bit of the BO field to 1
    208    if the offset is negative.  When extracting, we require that the y
    209    bit be 1 and that the offset be positive, since if the y bit is 0
    210    we just want to print the normal form of the instruction.
    211    Power4 compatible targets use two bits, "a", and "t", instead of
    212    the "y" bit.  "at" == 00 => no hint, "at" == 01 => unpredictable,
    213    "at" == 10 => not taken, "at" == 11 => taken.  The "t" bit is 00001
    214    in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
    215    for branch on CTR.  We only handle the taken/not-taken hint here.
    216    Note that we don't relax the conditions tested here when
    217    disassembling with -Many because insns using extract_bdm and
    218    extract_bdp always occur in pairs.  One or the other will always
    219    be valid.  */
    220 
    221 #define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
    222 
    223 static uint64_t
    224 insert_bdm (uint64_t insn,
    225 	    int64_t value,
    226 	    ppc_cpu_t dialect,
    227 	    const char **errmsg ATTRIBUTE_UNUSED)
    228 {
    229   if ((dialect & ISA_V2) == 0)
    230     {
    231       if ((value & 0x8000) != 0)
    232 	insn |= 1 << 21;
    233     }
    234   else
    235     {
    236       if ((insn & (0x14 << 21)) == (0x04 << 21))
    237 	insn |= 0x02 << 21;
    238       else if ((insn & (0x14 << 21)) == (0x10 << 21))
    239 	insn |= 0x08 << 21;
    240     }
    241   return insn | (value & 0xfffc);
    242 }
    243 
    244 static int64_t
    245 extract_bdm (uint64_t insn,
    246 	     ppc_cpu_t dialect,
    247 	     int *invalid)
    248 {
    249   if ((dialect & ISA_V2) == 0)
    250     {
    251       if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
    252 	*invalid = 1;
    253     }
    254   else
    255     {
    256       if ((insn & (0x17 << 21)) != (0x06 << 21)
    257 	  && (insn & (0x1d << 21)) != (0x18 << 21))
    258 	*invalid = 1;
    259     }
    260 
    261   return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
    262 }
    263 
    264 /* The BD field in a B form instruction when the + modifier is used.
    265    This is like BDM, above, except that the branch is expected to be
    266    taken.  */
    267 
    268 static uint64_t
    269 insert_bdp (uint64_t insn,
    270 	    int64_t value,
    271 	    ppc_cpu_t dialect,
    272 	    const char **errmsg ATTRIBUTE_UNUSED)
    273 {
    274   if ((dialect & ISA_V2) == 0)
    275     {
    276       if ((value & 0x8000) == 0)
    277 	insn |= 1 << 21;
    278     }
    279   else
    280     {
    281       if ((insn & (0x14 << 21)) == (0x04 << 21))
    282 	insn |= 0x03 << 21;
    283       else if ((insn & (0x14 << 21)) == (0x10 << 21))
    284 	insn |= 0x09 << 21;
    285     }
    286   return insn | (value & 0xfffc);
    287 }
    288 
    289 static int64_t
    290 extract_bdp (uint64_t insn,
    291 	     ppc_cpu_t dialect,
    292 	     int *invalid)
    293 {
    294   if ((dialect & ISA_V2) == 0)
    295     {
    296       if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
    297 	*invalid = 1;
    298     }
    299   else
    300     {
    301       if ((insn & (0x17 << 21)) != (0x07 << 21)
    302 	  && (insn & (0x1d << 21)) != (0x19 << 21))
    303 	*invalid = 1;
    304     }
    305 
    306   return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
    307 }
    308 
    309 static inline int
    310 valid_bo_pre_v2 (int64_t value)
    311 {
    312   /* Certain encodings have bits that are required to be zero.
    313      These are (z must be zero, y may be anything):
    314 	 0000y
    315 	 0001y
    316 	 001zy
    317 	 0100y
    318 	 0101y
    319 	 011zy
    320 	 1z00y
    321 	 1z01y
    322 	 1z1zz
    323   */
    324   if ((value & 0x14) == 0)
    325     /* BO: 0000y, 0001y, 0100y, 0101y.  */
    326     return 1;
    327   else if ((value & 0x14) == 0x4)
    328     /* BO: 001zy, 011zy.  */
    329     return (value & 0x2) == 0;
    330   else if ((value & 0x14) == 0x10)
    331     /* BO: 1z00y, 1z01y.  */
    332     return (value & 0x8) == 0;
    333   else
    334     /* BO: 1z1zz.  */
    335     return value == 0x14;
    336 }
    337 
    338 static inline int
    339 valid_bo_post_v2 (int64_t value)
    340 {
    341   /* Certain encodings have bits that are required to be zero.
    342      These are (z must be zero, a & t may be anything):
    343 	 0000z
    344 	 0001z
    345 	 001at
    346 	 0100z
    347 	 0101z
    348 	 011at
    349 	 1a00t
    350 	 1a01t
    351 	 1z1zz
    352   */
    353   if ((value & 0x14) == 0)
    354     /* BO: 0000z, 0001z, 0100z, 0101z.  */
    355     return (value & 0x1) == 0;
    356   else if ((value & 0x14) == 0x14)
    357     /* BO: 1z1zz.  */
    358     return value == 0x14;
    359   else if ((value & 0x14) == 0x4)
    360     /* BO: 001at, 011at, with "at" == 0b01 being reserved.  */
    361     return (value & 0x3) != 1;
    362   else if ((value & 0x14) == 0x10)
    363     /* BO: 1a00t, 1a01t, with "at" == 0b01 being reserved.  */
    364     return (value & 0x9) != 1;
    365   else
    366     return 1;
    367 }
    368 
    369 /* Check for legal values of a BO field.  */
    370 
    371 static int
    372 valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
    373 {
    374   int valid_y = valid_bo_pre_v2 (value);
    375   int valid_at = valid_bo_post_v2 (value);
    376 
    377   /* When disassembling with -Many, accept either encoding on the
    378      second pass through opcodes.  */
    379   if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
    380     return valid_y || valid_at;
    381   if ((dialect & ISA_V2) == 0)
    382     return valid_y;
    383   else
    384     return valid_at;
    385 }
    386 
    387 /* The BO field in a B form instruction.  Warn about attempts to set
    388    the field to an illegal value.  */
    389 
    390 static uint64_t
    391 insert_bo (uint64_t insn,
    392 	   int64_t value,
    393 	   ppc_cpu_t dialect,
    394 	   const char **errmsg)
    395 {
    396   if (!valid_bo (value, dialect, 0))
    397     *errmsg = _("invalid conditional option");
    398   else if (PPC_OP (insn) == 19
    399 	   && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
    400     *errmsg = _("invalid counter access");
    401   return insn | ((value & 0x1f) << 21);
    402 }
    403 
    404 static int64_t
    405 extract_bo (uint64_t insn,
    406 	    ppc_cpu_t dialect,
    407 	    int *invalid)
    408 {
    409   int64_t value = (insn >> 21) & 0x1f;
    410   if (!valid_bo (value, dialect, 1))
    411     *invalid = 1;
    412   return value;
    413 }
    414 
    415 /* For the given BO value, return a bit mask detailing which bits
    416    define the branch hints.  */
    417 
    418 static int64_t
    419 get_bo_hint_mask (int64_t bo, ppc_cpu_t dialect)
    420 {
    421   if ((dialect & ISA_V2) == 0)
    422     {
    423       if ((bo & 0x14) != 0x14)
    424 	/* BO: 0000y, 0001y, 001zy, 0100y, 0101y, 011zy, 1z00y, 1z01y .  */
    425 	return 1;
    426       else
    427 	/* BO: 1z1zz.  */
    428 	return 0;
    429     }
    430   else
    431     {
    432       if ((bo & 0x14) == 0x4)
    433 	/* BO: 001at, 011at.  */
    434 	return 0x3;
    435       else if ((bo & 0x14) == 0x10)
    436 	/* BO: 1a00t, 1a01t.  */
    437 	return 0x9;
    438       else
    439 	/* BO: 0000z, 0001z, 0100z, 0101z, 1z1zz.  */
    440 	return 0;
    441     }
    442 }
    443 
    444 /* The BO field in a B form instruction when the + or - modifier is used.  */
    445 
    446 static uint64_t
    447 insert_boe (uint64_t insn,
    448 	    int64_t value,
    449 	    ppc_cpu_t dialect,
    450 	    const char **errmsg,
    451 	    int branch_taken)
    452 {
    453   int64_t implied_hint;
    454   int64_t hint_mask = get_bo_hint_mask (value, dialect);
    455 
    456   if (branch_taken)
    457     implied_hint = hint_mask;
    458   else
    459     implied_hint = hint_mask & ~1;
    460 
    461   /* The branch hint bit(s) in the BO field must either be zero or exactly
    462      match the branch hint bits implied by the '+' or '-' modifier.  */
    463   if (implied_hint == 0)
    464     *errmsg = _("BO value implies no branch hint, when using + or - modifier");
    465   else if ((value & hint_mask) != 0
    466 	   && (value & hint_mask) != implied_hint)
    467     {
    468       if ((dialect & ISA_V2) == 0)
    469 	*errmsg = _("attempt to set y bit when using + or - modifier");
    470       else
    471 	*errmsg = _("attempt to set 'at' bits when using + or - modifier");
    472     }
    473 
    474   value |= implied_hint;
    475 
    476   return insert_bo (insn, value, dialect, errmsg);
    477 }
    478 
    479 static int64_t
    480 extract_boe (uint64_t insn,
    481 	     ppc_cpu_t dialect,
    482 	     int *invalid,
    483 	     int branch_taken)
    484 {
    485   int64_t value = (insn >> 21) & 0x1f;
    486   int64_t implied_hint;
    487   int64_t hint_mask = get_bo_hint_mask (value, dialect);
    488 
    489   if (branch_taken)
    490     implied_hint = hint_mask;
    491   else
    492     implied_hint = hint_mask & ~1;
    493 
    494   if (!valid_bo (value, dialect, 1)
    495       || implied_hint == 0
    496       || (value & hint_mask) != implied_hint)
    497     *invalid = 1;
    498   return value;
    499 }
    500 
    501 /* The BO field in a B form instruction when the - modifier is used.  */
    502 
    503 static uint64_t
    504 insert_bom (uint64_t insn,
    505 	    int64_t value,
    506 	    ppc_cpu_t dialect,
    507 	    const char **errmsg)
    508 {
    509   return insert_boe (insn, value, dialect, errmsg, 0);
    510 }
    511 
    512 static int64_t
    513 extract_bom (uint64_t insn,
    514 	     ppc_cpu_t dialect,
    515 	     int *invalid)
    516 {
    517   return extract_boe (insn, dialect, invalid, 0);
    518 }
    519 
    520 /* The BO field in a B form instruction when the + modifier is used.  */
    521 
    522 static uint64_t
    523 insert_bop (uint64_t insn,
    524 	    int64_t value,
    525 	    ppc_cpu_t dialect,
    526 	    const char **errmsg)
    527 {
    528   return insert_boe (insn, value, dialect, errmsg, 1);
    529 }
    530 
    531 static int64_t
    532 extract_bop (uint64_t insn,
    533 	     ppc_cpu_t dialect,
    534 	     int *invalid)
    535 {
    536   return extract_boe (insn, dialect, invalid, 1);
    537 }
    538 
    539 /* The DCMX field in a X form instruction when the field is split
    540    into separate DC, DM and DX fields.  */
    541 
    542 static uint64_t
    543 insert_dcmxs (uint64_t insn,
    544 	      int64_t value,
    545 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    546 	      const char **errmsg ATTRIBUTE_UNUSED)
    547 {
    548   return (insn
    549 	  | ((value & 0x1f) << 16)
    550 	  | ((value & 0x20) >> 3)
    551 	  | (value & 0x40));
    552 }
    553 
    554 static int64_t
    555 extract_dcmxs (uint64_t insn,
    556 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    557 	       int *invalid ATTRIBUTE_UNUSED)
    558 {
    559   return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
    560 }
    561 
    562 /* The DW field in a X form instruction when the field is split
    563    into separate D and DX fields.  */
    564 
    565 static uint64_t
    566 insert_dw (uint64_t insn,
    567 	   int64_t value,
    568 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    569 	   const char **errmsg ATTRIBUTE_UNUSED)
    570 {
    571   /* DW offsets must be in the range [-512, -8] and be a multiple of 8.  */
    572   if (value < -512
    573       || value > -8
    574       || (value & 0x7) != 0)
    575     *errmsg = _("invalid offset: must be in the range [-512, -8] "
    576 		"and be a multiple of 8");
    577 
    578   return insn | ((value & 0xf8) << 18) | ((value >> 8) & 1);
    579 }
    580 
    581 static int64_t
    582 extract_dw (uint64_t insn,
    583 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    584 	     int *invalid ATTRIBUTE_UNUSED)
    585 {
    586   int64_t dw = ((insn & 1) << 8) | ((insn >> 18) & 0xf8);
    587   return dw - 512;
    588 }
    589 
    590 /* The D field in a DX form instruction when the field is split
    591    into separate D0, D1 and D2 fields.  */
    592 
    593 static uint64_t
    594 insert_dxd (uint64_t insn,
    595 	    int64_t value,
    596 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    597 	    const char **errmsg ATTRIBUTE_UNUSED)
    598 {
    599   return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
    600 }
    601 
    602 static int64_t
    603 extract_dxd (uint64_t insn,
    604 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    605 	     int *invalid ATTRIBUTE_UNUSED)
    606 {
    607   uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
    608   return (dxd ^ 0x8000) - 0x8000;
    609 }
    610 
    611 static uint64_t
    612 insert_dxdn (uint64_t insn,
    613 	     int64_t value,
    614 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    615 	     const char **errmsg ATTRIBUTE_UNUSED)
    616 {
    617   return insert_dxd (insn, -value, dialect, errmsg);
    618 }
    619 
    620 static int64_t
    621 extract_dxdn (uint64_t insn,
    622 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    623 	      int *invalid)
    624 {
    625   return -extract_dxd (insn, dialect, invalid);
    626 }
    627 
    628 /* The D field in a 64-bit D form prefix instruction when the field is split
    629    into separate D0 and D1 fields.  */
    630 
    631 static uint64_t
    632 insert_d34 (uint64_t insn,
    633 	    int64_t value,
    634 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    635 	    const char **errmsg ATTRIBUTE_UNUSED)
    636 {
    637   return insn | ((value & 0x3ffff0000ULL) << 16) | (value & 0xffff);
    638 }
    639 
    640 static int64_t
    641 extract_d34 (uint64_t insn,
    642 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    643 	     int *invalid ATTRIBUTE_UNUSED)
    644 {
    645   int64_t mask = 1ULL << 33;
    646   int64_t value = ((insn >> 16) & 0x3ffff0000ULL) | (insn & 0xffff);
    647   value = (value ^ mask) - mask;
    648   return value;
    649 }
    650 
    651 /* The NSI34 field in an 8-byte D form prefix instruction.  This is the same
    652    as the SI34 field, only negated.  The extraction function always marks it
    653    as invalid, since we never want to recognize an instruction which uses
    654    a field of this type.  */
    655 
    656 static uint64_t
    657 insert_nsi34 (uint64_t insn,
    658 	      int64_t value,
    659 	      ppc_cpu_t dialect,
    660 	      const char **errmsg)
    661 {
    662   return insert_d34 (insn, -value, dialect, errmsg);
    663 }
    664 
    665 static int64_t
    666 extract_nsi34 (uint64_t insn,
    667 	       ppc_cpu_t dialect,
    668 	       int *invalid)
    669 {
    670   int64_t value = extract_d34 (insn, dialect, invalid);
    671   *invalid = 1;
    672   return -value;
    673 }
    674 
    675 /* The split IMM32 field in a vector splat insn.  */
    676 
    677 static uint64_t
    678 insert_imm32 (uint64_t insn,
    679 	      int64_t value,
    680 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    681 	      const char **errmsg ATTRIBUTE_UNUSED)
    682 {
    683   return insn | ((value & 0xffff0000) << 16) | (value & 0xffff);
    684 }
    685 
    686 static int64_t
    687 extract_imm32 (uint64_t insn,
    688 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    689 	       int *invalid ATTRIBUTE_UNUSED)
    690 {
    691   return (insn & 0xffff) | ((insn >> 16) & 0xffff0000);
    692 }
    693 
    694 /* The R field in an 8-byte prefix instruction when there are restrictions
    695    between R's value and the RA value (ie, they cannot both be non zero).  */
    696 
    697 static uint64_t
    698 insert_pcrel (uint64_t insn,
    699 	      int64_t value,
    700 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    701 	      const char **errmsg)
    702 {
    703   value &= 0x1;
    704   int64_t ra = (insn >> 16) & 0x1f;
    705   if (ra != 0 && value != 0)
    706     *errmsg = _("invalid R operand");
    707 
    708   return insn | (value << 52);
    709 }
    710 
    711 static int64_t
    712 extract_pcrel (uint64_t insn,
    713 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    714 	       int *invalid)
    715 {
    716   /* If called with *invalid < 0 to return the value for missing
    717      operands, *invalid will be the negative count of missing operands
    718      including this one.  Return a default value of 1 if the PRA0/PRAQ
    719      operand was also omitted (ie. *invalid is -2).  Return a default
    720      value of 0 if the PRA0/PRAQ operand was not omitted
    721      (ie. *invalid is -1).  */
    722   if (*invalid < 0)
    723     return ~ *invalid & 1;
    724 
    725   int64_t ra = (insn >> 16) & 0x1f;
    726   int64_t pcrel = (insn >> 52) & 0x1;
    727   if (ra != 0 && pcrel != 0)
    728     *invalid = 1;
    729 
    730   return pcrel;
    731 }
    732 
    733 /* Variant of extract_pcrel that sets invalid for R bit clear.  Used
    734    to disassemble "paddi rt,0,offset,1" as "pla rt,offset".  */
    735 
    736 static int64_t
    737 extract_pcrel1 (uint64_t insn,
    738 		ppc_cpu_t dialect,
    739 		int *invalid)
    740 {
    741   int64_t pcrel = extract_pcrel (insn, dialect, invalid);
    742   if (!pcrel)
    743     *invalid = 1;
    744   return pcrel;
    745 }
    746 
    747 /* FXM mask in mfcr and mtcrf instructions.  */
    748 
    749 static uint64_t
    750 insert_fxm (uint64_t insn,
    751 	    int64_t value,
    752 	    ppc_cpu_t dialect,
    753 	    const char **errmsg)
    754 {
    755   /* If we're handling the mfocrf and mtocrf insns ensure that exactly
    756      one bit of the mask field is set.  */
    757   if ((insn & (1 << 20)) != 0)
    758     {
    759       if (value == 0 || (value & -value) != value)
    760 	{
    761 	  *errmsg = _("invalid mask field");
    762 	  value = 0;
    763 	}
    764     }
    765 
    766   /* If only one bit of the FXM field is set, we can use the new form
    767      of the instruction, which is faster.  Unlike the Power4 branch hint
    768      encoding, this is not backward compatible.  Do not generate the
    769      new form unless -mpower4 has been given, or -many and the two
    770      operand form of mfcr was used.  */
    771   else if (value > 0
    772 	   && (value & -value) == value
    773 	   && ((dialect & PPC_OPCODE_POWER4) != 0
    774 	       || ((dialect & PPC_OPCODE_ANY) != 0
    775 		   && (insn & (0x3ff << 1)) == 19 << 1)))
    776     insn |= 1 << 20;
    777 
    778   /* Any other value on mfcr is an error.  */
    779   else if ((insn & (0x3ff << 1)) == 19 << 1)
    780     {
    781       /* A value of -1 means we used the one operand form of
    782 	 mfcr which is valid.  */
    783       if (value != -1)
    784 	*errmsg = _("invalid mfcr mask");
    785       value = 0;
    786     }
    787 
    788   return insn | ((value & 0xff) << 12);
    789 }
    790 
    791 static int64_t
    792 extract_fxm (uint64_t insn,
    793 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    794 	     int *invalid)
    795 {
    796   /* Return a value of -1 for a missing optional operand, which is
    797      used as a flag by insert_fxm.  */
    798   if (*invalid < 0)
    799     return -1;
    800 
    801   int64_t mask = (insn >> 12) & 0xff;
    802   /* Is this a Power4 insn?  */
    803   if ((insn & (1 << 20)) != 0)
    804     {
    805       /* Exactly one bit of MASK should be set.  */
    806       if (mask == 0 || (mask & -mask) != mask)
    807 	*invalid = 1;
    808     }
    809 
    810   /* Check that non-power4 form of mfcr has a zero MASK.  */
    811   else if ((insn & (0x3ff << 1)) == 19 << 1)
    812     {
    813       if (mask != 0)
    814 	*invalid = 1;
    815       else
    816 	mask = -1;
    817     }
    818 
    819   return mask;
    820 }
    821 
    822 /* L field in the paste. instruction.  */
    823 
    824 static uint64_t
    825 insert_l1opt (uint64_t insn,
    826 	    int64_t value,
    827 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    828 	    const char **errmsg ATTRIBUTE_UNUSED)
    829 {
    830   return insn | ((value & 1) << 21);
    831 }
    832 
    833 static int64_t
    834 extract_l1opt (uint64_t insn,
    835 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    836 	     int *invalid)
    837 {
    838   /* Return a value of 1 for a missing optional operand.  */
    839   if (*invalid < 0)
    840     return 1;
    841 
    842   return (insn >> 21) & 1;
    843 }
    844 
    845 static uint64_t
    846 insert_li20 (uint64_t insn,
    847 	     int64_t value,
    848 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    849 	     const char **errmsg ATTRIBUTE_UNUSED)
    850 {
    851   return (insn
    852 	  | ((value & 0xf0000) >> 5)
    853 	  | ((value & 0x0f800) << 5)
    854 	  | (value & 0x7ff));
    855 }
    856 
    857 static int64_t
    858 extract_li20 (uint64_t insn,
    859 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    860 	      int *invalid ATTRIBUTE_UNUSED)
    861 {
    862   return ((((insn << 5) & 0xf0000)
    863 	   | ((insn >> 5) & 0xf800)
    864 	   | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
    865 }
    866 
    867 /* The 2-bit/3-bit L or 2-bit WC field in a SYNC, DCBF or WAIT instruction.
    868    For SYNC, some L values are reserved:
    869      * Values 6 and 7 are reserved on newer server cpus.
    870      * Value 3 is reserved on all server cpus.
    871      * Value 2 is reserved on all other cpus.
    872    For DCBF, some L values are reserved:
    873      * Values 2, 5 and 7 are reserved on all cpus.
    874    For WAIT, some WC values are reserved:
    875      * Value 3 is reserved on all server cpus.
    876      * Values 1 and 2 are reserved on older server cpus.  */
    877 
    878 static uint64_t
    879 insert_ls (uint64_t insn,
    880 	   int64_t value,
    881 	   ppc_cpu_t dialect,
    882 	   const char **errmsg)
    883 {
    884   int64_t mask;
    885 
    886   if (((insn >> 1) & 0x3ff) == 598)
    887     {
    888       /* For SYNC, some L values are illegal.  */
    889       mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
    890 
    891       /* If the value is within range, check for other illegal values.  */
    892       if ((value & mask) == value)
    893 	switch (value)
    894 	  {
    895 	  case 2:
    896 	    if (dialect & PPC_OPCODE_POWER4)
    897 	      break;
    898 	    /* Fall through.  */
    899 	  case 3:
    900 	  case 6:
    901 	  case 7:
    902 	    *errmsg = _("illegal L operand value");
    903 	    break;
    904 	  default:
    905 	    break;
    906 	  }
    907     }
    908   else if (((insn >> 1) & 0x3ff) == 86)
    909     {
    910       /* For DCBF, some L values are illegal.  */
    911       mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
    912 
    913       /* If the value is within range, check for other illegal values.  */
    914       if ((value & mask) == value)
    915 	switch (value)
    916 	  {
    917 	  case 2:
    918 	  case 5:
    919 	  case 7:
    920 	    *errmsg = _("illegal L operand value");
    921 	    break;
    922 	  default:
    923 	    break;
    924 	  }
    925     }
    926   else
    927     {
    928       /* For WAIT, some WC values are illegal.  */
    929       mask = 0x3;
    930 
    931       /* If the value is within range, check for other illegal values.  */
    932       if ((dialect & PPC_OPCODE_A2) == 0
    933 	  && (dialect & PPC_OPCODE_E500MC) == 0
    934 	  && (value & mask) == value)
    935 	switch (value)
    936 	  {
    937 	  case 1:
    938 	  case 2:
    939 	    if (dialect & PPC_OPCODE_POWER10)
    940 	      break;
    941 	    /* Fall through.  */
    942 	  case 3:
    943 	    *errmsg = _("illegal WC operand value");
    944 	    break;
    945 	  default:
    946 	    break;
    947 	  }
    948     }
    949 
    950   return insn | ((value & mask) << 21);
    951 }
    952 
    953 static int64_t
    954 extract_ls (uint64_t insn,
    955 	    ppc_cpu_t dialect,
    956 	    int *invalid)
    957 {
    958   uint64_t value;
    959 
    960   /* Missing optional operands have a value of zero.  */
    961   if (*invalid < 0)
    962     return 0;
    963 
    964   if (((insn >> 1) & 0x3ff) == 598)
    965     {
    966       /* For SYNC, some L values are illegal.  */
    967       int64_t mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
    968 
    969       value = (insn >> 21) & mask;
    970       switch (value)
    971 	{
    972 	case 2:
    973 	  if (dialect & PPC_OPCODE_POWER4)
    974 	    break;
    975 	  /* Fall through.  */
    976 	case 3:
    977 	case 6:
    978 	case 7:
    979 	  *invalid = 1;
    980 	  break;
    981 	default:
    982 	  break;
    983 	}
    984     }
    985   else if (((insn >> 1) & 0x3ff) == 86)
    986     {
    987       /* For DCBF, some L values are illegal.  */
    988       int64_t mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
    989 
    990       value = (insn >> 21) & mask;
    991       switch (value)
    992 	{
    993 	case 2:
    994 	case 5:
    995 	case 7:
    996 	  *invalid = 1;
    997 	  break;
    998 	default:
    999 	  break;
   1000 	}
   1001     }
   1002   else
   1003     {
   1004       /* For WAIT, some WC values are illegal.  */
   1005       value = (insn >> 21) & 0x3;
   1006       if ((dialect & PPC_OPCODE_A2) == 0
   1007 	  && (dialect & PPC_OPCODE_E500MC) == 0)
   1008 	switch (value)
   1009 	  {
   1010 	  case 1:
   1011 	  case 2:
   1012 	    if (dialect & PPC_OPCODE_POWER10)
   1013 	      break;
   1014 	    /* Fall through.  */
   1015 	  case 3:
   1016 	    *invalid = 1;
   1017 	    break;
   1018 	  default:
   1019 	    break;
   1020 	  }
   1021     }
   1022 
   1023   return value;
   1024 }
   1025 
   1026 /* The 4-bit E field in a sync instruction that accepts 2 operands.
   1027    If ESYNC is non-zero, then the L field must be either 0 or 1 and
   1028    the complement of ESYNC-bit2.  */
   1029 
   1030 static uint64_t
   1031 insert_esync (uint64_t insn,
   1032 	      int64_t value,
   1033 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1034 	      const char **errmsg)
   1035 {
   1036   uint64_t ls = (insn >> 21) & 0x03;
   1037 
   1038   if (value != 0
   1039       && ((~value >> 1) & 0x1) != ls)
   1040     *errmsg = _("incompatible L operand value");
   1041 
   1042   return insn | ((value & 0xf) << 16);
   1043 }
   1044 
   1045 static int64_t
   1046 extract_esync (uint64_t insn,
   1047 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1048 	       int *invalid)
   1049 {
   1050   /* Missing optional operands have a value of zero.  */
   1051   if (*invalid < 0)
   1052     return 0;
   1053 
   1054   uint64_t ls = (insn >> 21) & 0x3;
   1055   uint64_t value = (insn >> 16) & 0xf;
   1056   if (value != 0
   1057       && ((~value >> 1) & 0x1) != ls)
   1058     *invalid = 1;
   1059   return value;
   1060 }
   1061 
   1062 /* The n operand of clrrwi, which sets the ME field to 31 - n.  */
   1063 
   1064 static uint64_t
   1065 insert_crwn (uint64_t insn,
   1066 	    int64_t value,
   1067 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1068 	    const char **errmsg ATTRIBUTE_UNUSED)
   1069 {
   1070   return insn | ((~value & 0x1f) << 1);
   1071 }
   1072 
   1073 static int64_t
   1074 extract_crwn (uint64_t insn,
   1075 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1076 	     int *invalid ATTRIBUTE_UNUSED)
   1077 {
   1078   return ~(insn >> 1) & 0x1f;
   1079 }
   1080 
   1081 /* The n operand of extlwi, which sets the ME field to n - 1.  */
   1082 
   1083 static uint64_t
   1084 insert_elwn (uint64_t insn,
   1085 	     int64_t value,
   1086 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1087 	     const char **errmsg ATTRIBUTE_UNUSED)
   1088 {
   1089   return insn | (((value - 1) & 0x1f) << 1);
   1090 }
   1091 
   1092 static int64_t
   1093 extract_elwn (uint64_t insn,
   1094 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1095 	      int *invalid ATTRIBUTE_UNUSED)
   1096 {
   1097   return ((insn >> 1) & 0x1f) + 1;
   1098 }
   1099 
   1100 /* The n operand of extrwi, sets MB = 32 - n.  */
   1101 
   1102 static uint64_t
   1103 insert_erwn (uint64_t insn,
   1104 	     int64_t value,
   1105 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1106 	     const char **errmsg ATTRIBUTE_UNUSED)
   1107 {
   1108   return insn | ((-value & 0x1f) << 6);
   1109 }
   1110 
   1111 static int64_t
   1112 extract_erwn (uint64_t insn,
   1113 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1114 	      int *invalid ATTRIBUTE_UNUSED)
   1115 {
   1116   return (~(insn >> 6) & 0x1f) + 1;
   1117 }
   1118 
   1119 /* The b operand of extrwi, sets SH = b + n.  */
   1120 
   1121 static uint64_t
   1122 insert_erwb (uint64_t insn,
   1123 	     int64_t value,
   1124 	     ppc_cpu_t dialect,
   1125 	     const char **errmsg ATTRIBUTE_UNUSED)
   1126 {
   1127   int64_t n = extract_erwn (insn, dialect, NULL);
   1128   return insn | (((n + value) & 0x1f) << 11);
   1129 }
   1130 
   1131 static int64_t
   1132 extract_erwb (uint64_t insn,
   1133 	      ppc_cpu_t dialect,
   1134 	      int *invalid ATTRIBUTE_UNUSED)
   1135 {
   1136   int64_t n = extract_erwn (insn, dialect, NULL);
   1137   return ((insn >> 11) - n) & 0x1f;
   1138 }
   1139 
   1140 /* The n and b operands of clrlslwi.  */
   1141 
   1142 static uint64_t
   1143 insert_cslwn (uint64_t insn,
   1144 	      int64_t value,
   1145 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1146 	      const char **errmsg ATTRIBUTE_UNUSED)
   1147 {
   1148   uint64_t mb = 0x1f << 6;
   1149   int64_t b = (insn >> 6) & 0x1f;
   1150   return ((insn & ~mb) | ((value & 0x1f) << 11) | (((b - value) & 0x1f) << 6)
   1151 	  | ((~value & 0x1f) << 1));
   1152 }
   1153 
   1154 static int64_t
   1155 extract_cslwb (uint64_t insn,
   1156 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1157 	       int *invalid)
   1158 {
   1159   int64_t sh = (insn >> 11) & 0x1f;
   1160   int64_t mb = (insn >> 6) & 0x1f;
   1161   int64_t me = (insn >> 1) & 0x1f;
   1162   if (sh != 31 - me)
   1163     *invalid = 1;
   1164   return (mb + sh) & 0x1f;
   1165 }
   1166 
   1167 /* The n and b operands of inslwi.  */
   1168 
   1169 static uint64_t
   1170 insert_ilwb (uint64_t insn,
   1171 	     int64_t value,
   1172 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1173 	     const char **errmsg ATTRIBUTE_UNUSED)
   1174 {
   1175   uint64_t me = 0x1f << 1;
   1176   int64_t n = (insn >> 1) & 0x1f;
   1177   return ((insn & ~me) | ((-value & 0x1f) << 11) | ((value & 0x1f) << 6)
   1178 	  | (((value + n - 1) & 0x1f) << 1));
   1179 }
   1180 
   1181 static int64_t
   1182 extract_ilwn (uint64_t insn,
   1183 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1184 	      int *invalid)
   1185 {
   1186   int64_t sh = (insn >> 11) & 0x1f;
   1187   int64_t mb = (insn >> 6) & 0x1f;
   1188   int64_t me = (insn >> 1) & 0x1f;
   1189   if (((sh + mb) & 0x1f) != 0)
   1190     *invalid = 1;
   1191   return ((me - mb) & 0x1f) + 1;
   1192 }
   1193 
   1194 /* The n and b operands of insrwi.  */
   1195 
   1196 static uint64_t
   1197 insert_irwb (uint64_t insn,
   1198 	     int64_t value,
   1199 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1200 	     const char **errmsg ATTRIBUTE_UNUSED)
   1201 {
   1202   uint64_t me = 0x1f << 1;
   1203   int64_t n = (insn >> 1) & 0x1f;
   1204   return ((insn & ~me) | ((-(value + n) & 0x1f) << 11) | ((value & 0x1f) << 6)
   1205 	  | (((value + n - 1) & 0x1f) << 1));
   1206 }
   1207 
   1208 static int64_t
   1209 extract_irwn (uint64_t insn,
   1210 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1211 	      int *invalid)
   1212 {
   1213   int64_t sh = (insn >> 11) & 0x1f;
   1214   int64_t mb = (insn >> 6) & 0x1f;
   1215   int64_t me = (insn >> 1) & 0x1f;
   1216   if (((sh + me + 1) & 0x1f) != 0)
   1217     *invalid = 1;
   1218   return ((me - mb) & 0x1f) + 1;
   1219 }
   1220 
   1221 /* The MB and ME fields in an M form instruction expressed as a single
   1222    operand which is itself a bitmask.  The extraction function always
   1223    marks it as invalid, since we never want to recognize an
   1224    instruction which uses a field of this type.  */
   1225 
   1226 static uint64_t
   1227 insert_mbe (uint64_t insn,
   1228 	    int64_t value,
   1229 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1230 	    const char **errmsg)
   1231 {
   1232   uint64_t uval, mask;
   1233   long mb, me, mx, count, last;
   1234 
   1235   uval = value;
   1236 
   1237   if (uval == 0)
   1238     {
   1239       *errmsg = _("illegal bitmask");
   1240       return insn;
   1241     }
   1242 
   1243   mb = 0;
   1244   me = 32;
   1245   if ((uval & 1) != 0)
   1246     last = 1;
   1247   else
   1248     last = 0;
   1249   count = 0;
   1250 
   1251   /* mb: location of last 0->1 transition */
   1252   /* me: location of last 1->0 transition */
   1253   /* count: # transitions */
   1254 
   1255   for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
   1256     {
   1257       if ((uval & mask) && !last)
   1258 	{
   1259 	  ++count;
   1260 	  mb = mx;
   1261 	  last = 1;
   1262 	}
   1263       else if (!(uval & mask) && last)
   1264 	{
   1265 	  ++count;
   1266 	  me = mx;
   1267 	  last = 0;
   1268 	}
   1269     }
   1270   if (me == 0)
   1271     me = 32;
   1272 
   1273   if (count != 2 && (count != 0 || ! last))
   1274     *errmsg = _("illegal bitmask");
   1275 
   1276   return insn | (mb << 6) | ((me - 1) << 1);
   1277 }
   1278 
   1279 static int64_t
   1280 extract_mbe (uint64_t insn,
   1281 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1282 	     int *invalid)
   1283 {
   1284   int64_t ret;
   1285   long mb, me;
   1286   long i;
   1287 
   1288   *invalid = 1;
   1289 
   1290   mb = (insn >> 6) & 0x1f;
   1291   me = (insn >> 1) & 0x1f;
   1292   if (mb < me + 1)
   1293     {
   1294       ret = 0;
   1295       for (i = mb; i <= me; i++)
   1296 	ret |= (uint64_t) 1 << (31 - i);
   1297     }
   1298   else if (mb == me + 1)
   1299     ret = ~0;
   1300   else /* (mb > me + 1) */
   1301     {
   1302       ret = ~0;
   1303       for (i = me + 1; i < mb; i++)
   1304 	ret &= ~((uint64_t) 1 << (31 - i));
   1305     }
   1306   return ret;
   1307 }
   1308 
   1309 /* The MB or ME field in an MD or MDS form instruction.  The high bit
   1310    is wrapped to the low end.  */
   1311 
   1312 static uint64_t
   1313 insert_mb6 (uint64_t insn,
   1314 	    int64_t value,
   1315 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1316 	    const char **errmsg ATTRIBUTE_UNUSED)
   1317 {
   1318   return insn | ((value & 0x1f) << 6) | (value & 0x20);
   1319 }
   1320 
   1321 static int64_t
   1322 extract_mb6 (uint64_t insn,
   1323 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1324 	     int *invalid ATTRIBUTE_UNUSED)
   1325 {
   1326   return ((insn >> 6) & 0x1f) | (insn & 0x20);
   1327 }
   1328 
   1329 /* The n operand of extrdi, which sets MB field.  */
   1330 
   1331 static uint64_t
   1332 insert_erdn (uint64_t insn,
   1333 	     int64_t value,
   1334 	     ppc_cpu_t dialect,
   1335 	     const char **errmsg)
   1336 {
   1337   return insert_mb6 (insn, -value, dialect, errmsg);
   1338 }
   1339 
   1340 static int64_t
   1341 extract_erdn (uint64_t insn,
   1342 	      ppc_cpu_t dialect,
   1343 	      int *invalid)
   1344 {
   1345   return (~extract_mb6 (insn, dialect, invalid) & 63) + 1;
   1346 }
   1347 
   1348 /* The n operand of extldi, which sets ME field.  */
   1349 
   1350 static uint64_t
   1351 insert_eldn (uint64_t insn,
   1352 	     int64_t value,
   1353 	     ppc_cpu_t dialect,
   1354 	     const char **errmsg)
   1355 {
   1356   return insert_mb6 (insn, value - 1, dialect, errmsg);
   1357 }
   1358 
   1359 static int64_t
   1360 extract_eldn (uint64_t insn,
   1361 	      ppc_cpu_t dialect,
   1362 	      int *invalid)
   1363 {
   1364   return extract_mb6 (insn, dialect, invalid) + 1;
   1365 }
   1366 
   1367 /* The n operand of clrrdi, which set ME field.  */
   1368 
   1369 static uint64_t
   1370 insert_crdn (uint64_t insn,
   1371 	     int64_t value,
   1372 	     ppc_cpu_t dialect,
   1373 	     const char **errmsg)
   1374 {
   1375   return insert_mb6 (insn, 63 - value, dialect, errmsg);
   1376 }
   1377 
   1378 static int64_t
   1379 extract_crdn (uint64_t insn,
   1380 	      ppc_cpu_t dialect,
   1381 	      int *invalid)
   1382 {
   1383   return 63 - extract_mb6 (insn, dialect, invalid);
   1384 }
   1385 
   1386 /* The NB field in an X form instruction.  The value 32 is stored as
   1387    0.  */
   1388 
   1389 static int64_t
   1390 extract_nb (uint64_t insn,
   1391 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1392 	    int *invalid ATTRIBUTE_UNUSED)
   1393 {
   1394   int64_t ret;
   1395 
   1396   ret = (insn >> 11) & 0x1f;
   1397   if (ret == 0)
   1398     ret = 32;
   1399   return ret;
   1400 }
   1401 
   1402 /* The NB field in an lswi instruction, which has special value
   1403    restrictions.  The value 32 is stored as 0.  */
   1404 
   1405 static uint64_t
   1406 insert_nbi (uint64_t insn,
   1407 	    int64_t value,
   1408 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1409 	    const char **errmsg ATTRIBUTE_UNUSED)
   1410 {
   1411   int64_t rtvalue = (insn >> 21) & 0x1f;
   1412   int64_t ravalue = (insn >> 16) & 0x1f;
   1413 
   1414   if (value == 0)
   1415     value = 32;
   1416   if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
   1417 						     : ravalue))
   1418     *errmsg = _("address register in load range");
   1419   return insn | ((value & 0x1f) << 11);
   1420 }
   1421 
   1422 /* The NSI field in a D form instruction.  This is the same as the SI
   1423    field, only negated.  The extraction function always marks it as
   1424    invalid, since we never want to recognize an instruction which uses
   1425    a field of this type.  */
   1426 
   1427 static uint64_t
   1428 insert_nsi (uint64_t insn,
   1429 	    int64_t value,
   1430 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1431 	    const char **errmsg ATTRIBUTE_UNUSED)
   1432 {
   1433   return insn | (-value & 0xffff);
   1434 }
   1435 
   1436 static int64_t
   1437 extract_nsi (uint64_t insn,
   1438 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1439 	     int *invalid)
   1440 {
   1441   *invalid = 1;
   1442   return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
   1443 }
   1444 
   1445 /* The 2-bit SC field in a SYNC or PL field in a WAIT instruction.
   1446    For WAIT, some PL values are reserved:
   1447      * Values 1, 2 and 3 are reserved.  */
   1448 
   1449 static uint64_t
   1450 insert_pl (uint64_t insn,
   1451 	   int64_t value,
   1452 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1453 	   const char **errmsg)
   1454 {
   1455   /* For WAIT, some PL values are illegal.  */
   1456   if (((insn >> 1) & 0x3ff) == 30
   1457       && value != 0)
   1458     *errmsg = _("illegal PL operand value");
   1459   return insn | ((value & 0x3) << 16);
   1460 }
   1461 
   1462 static int64_t
   1463 extract_pl (uint64_t insn,
   1464 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1465 	    int *invalid)
   1466 {
   1467   /* Missing optional operands have a value of zero.  */
   1468   if (*invalid < 0)
   1469     return 0;
   1470 
   1471   uint64_t value = (insn >> 16) & 0x3;
   1472 
   1473   /* For WAIT, some PL values are illegal.  */
   1474   if (((insn >> 1) & 0x3ff) == 30
   1475       && value != 0)
   1476     *invalid = 1;
   1477   return value;
   1478 }
   1479 
   1480 /* The 2-bit P field in a MMA XX2-form instruction.  This is split.  */
   1481 
   1482 static uint64_t
   1483 insert_p2 (uint64_t insn,
   1484 	   int64_t value,
   1485 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1486 	   const char **errmsg ATTRIBUTE_UNUSED)
   1487 {
   1488   return insn | ((value & 0x2) << 15) | ((value & 0x1) << 11);
   1489 }
   1490 
   1491 static int64_t
   1492 extract_p2 (uint64_t insn,
   1493 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1494 	    int *invalid ATTRIBUTE_UNUSED)
   1495 {
   1496   uint64_t value = ((insn >> 15) & 0x2) | ((insn >> 11) & 0x1);
   1497   return value;
   1498 }
   1499 
   1500 /* The RA field in a D or X form instruction which is an updating
   1501    load, which means that the RA field may not be zero and may not
   1502    equal the RT field.  */
   1503 
   1504 static uint64_t
   1505 insert_ral (uint64_t insn,
   1506 	    int64_t value,
   1507 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1508 	    const char **errmsg)
   1509 {
   1510   if (value == 0
   1511       || (uint64_t) value == ((insn >> 21) & 0x1f))
   1512     *errmsg = "invalid register operand when updating";
   1513   return insn | ((value & 0x1f) << 16);
   1514 }
   1515 
   1516 static int64_t
   1517 extract_ral (uint64_t insn,
   1518 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1519 	     int *invalid)
   1520 {
   1521   int64_t rtvalue = (insn >> 21) & 0x1f;
   1522   int64_t ravalue = (insn >> 16) & 0x1f;
   1523 
   1524   if (rtvalue == ravalue || ravalue == 0)
   1525     *invalid = 1;
   1526   return ravalue;
   1527 }
   1528 
   1529 /* The RA field in an lmw instruction, which has special value
   1530    restrictions.  */
   1531 
   1532 static uint64_t
   1533 insert_ram (uint64_t insn,
   1534 	    int64_t value,
   1535 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1536 	    const char **errmsg)
   1537 {
   1538   if ((uint64_t) value >= ((insn >> 21) & 0x1f))
   1539     *errmsg = _("index register in load range");
   1540   return insn | ((value & 0x1f) << 16);
   1541 }
   1542 
   1543 static int64_t
   1544 extract_ram (uint64_t insn,
   1545 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1546 	     int *invalid)
   1547 {
   1548   uint64_t rtvalue = (insn >> 21) & 0x1f;
   1549   uint64_t ravalue = (insn >> 16) & 0x1f;
   1550 
   1551   if (ravalue >= rtvalue)
   1552     *invalid = 1;
   1553   return ravalue;
   1554 }
   1555 
   1556 /* The RA field in the DQ form lq or an lswx instruction, which have special
   1557    value restrictions.  */
   1558 
   1559 static uint64_t
   1560 insert_raq (uint64_t insn,
   1561 	    int64_t value,
   1562 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1563 	    const char **errmsg)
   1564 {
   1565   int64_t rtvalue = (insn >> 21) & 0x1f;
   1566 
   1567   if (value == rtvalue)
   1568     *errmsg = _("source and target register operands must be different");
   1569   return insn | ((value & 0x1f) << 16);
   1570 }
   1571 
   1572 static int64_t
   1573 extract_raq (uint64_t insn,
   1574 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1575 	     int *invalid)
   1576 {
   1577   /* Missing optional operands have a value of zero.  */
   1578   if (*invalid < 0)
   1579     return 0;
   1580 
   1581   uint64_t rtvalue = (insn >> 21) & 0x1f;
   1582   uint64_t ravalue = (insn >> 16) & 0x1f;
   1583   if (ravalue == rtvalue)
   1584     *invalid = 1;
   1585   return ravalue;
   1586 }
   1587 
   1588 /* The RA field in a D or X form instruction which is an updating
   1589    store or an updating floating point load, which means that the RA
   1590    field may not be zero.  */
   1591 
   1592 static uint64_t
   1593 insert_ras (uint64_t insn,
   1594 	    int64_t value,
   1595 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1596 	    const char **errmsg)
   1597 {
   1598   if (value == 0)
   1599     *errmsg = _("invalid register operand when updating");
   1600   return insn | ((value & 0x1f) << 16);
   1601 }
   1602 
   1603 static int64_t
   1604 extract_ras (uint64_t insn,
   1605 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1606 	     int *invalid)
   1607 {
   1608   uint64_t ravalue = (insn >> 16) & 0x1f;
   1609 
   1610   if (ravalue == 0)
   1611     *invalid = 1;
   1612   return ravalue;
   1613 }
   1614 
   1615 /* The RS and RB fields in an X form instruction when they must be the same.
   1616    This is used for extended mnemonics like mr.  The extraction function
   1617    enforces that the fields are the same.  */
   1618 
   1619 static uint64_t
   1620 insert_rsb (uint64_t insn,
   1621 	    int64_t value,
   1622 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1623 	    const char **errmsg ATTRIBUTE_UNUSED)
   1624 {
   1625   value &= 0x1f;
   1626   return insn | (value << 21) | (value << 11);
   1627 }
   1628 
   1629 static int64_t
   1630 extract_rsb (uint64_t insn,
   1631 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1632 	     int *invalid)
   1633 {
   1634   int64_t rs = (insn >> 21) & 0x1f;
   1635   int64_t rb = (insn >> 11) & 0x1f;
   1636 
   1637   if (rs != rb)
   1638     *invalid = 1;
   1639   return rs;
   1640 }
   1641 
   1642 /* The RB field in an lswx instruction, which has special value
   1643    restrictions.  */
   1644 
   1645 static uint64_t
   1646 insert_rbx (uint64_t insn,
   1647 	    int64_t value,
   1648 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1649 	    const char **errmsg)
   1650 {
   1651   int64_t rtvalue = (insn >> 21) & 0x1f;
   1652 
   1653   if (value == rtvalue)
   1654     *errmsg = _("source and target register operands must be different");
   1655   return insn | ((value & 0x1f) << 11);
   1656 }
   1657 
   1658 static int64_t
   1659 extract_rbx (uint64_t insn,
   1660 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1661 	     int *invalid)
   1662 {
   1663   uint64_t rtvalue = (insn >> 21) & 0x1f;
   1664   uint64_t rbvalue = (insn >> 11) & 0x1f;
   1665 
   1666   if (rbvalue == rtvalue)
   1667     *invalid = 1;
   1668   return rbvalue;
   1669 }
   1670 
   1671 /* The SCI8 field is made up of SCL and {U,N}I8 fields.  */
   1672 static uint64_t
   1673 insert_sci8 (uint64_t insn,
   1674 	     int64_t value,
   1675 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1676 	     const char **errmsg)
   1677 {
   1678   uint64_t fill_scale = 0;
   1679   uint64_t ui8 = value;
   1680 
   1681   if ((ui8 & 0xffffff00) == 0)
   1682     ;
   1683   else if ((ui8 & 0xffffff00) == 0xffffff00)
   1684     fill_scale = 0x400;
   1685   else if ((ui8 & 0xffff00ff) == 0)
   1686     {
   1687       fill_scale = 1 << 8;
   1688       ui8 >>= 8;
   1689     }
   1690   else if ((ui8 & 0xffff00ff) == 0xffff00ff)
   1691     {
   1692       fill_scale = 0x400 | (1 << 8);
   1693       ui8 >>= 8;
   1694     }
   1695   else if ((ui8 & 0xff00ffff) == 0)
   1696     {
   1697       fill_scale = 2 << 8;
   1698       ui8 >>= 16;
   1699     }
   1700   else if ((ui8 & 0xff00ffff) == 0xff00ffff)
   1701     {
   1702       fill_scale = 0x400 | (2 << 8);
   1703       ui8 >>= 16;
   1704     }
   1705   else if ((ui8 & 0x00ffffff) == 0)
   1706     {
   1707       fill_scale = 3 << 8;
   1708       ui8 >>= 24;
   1709     }
   1710   else if ((ui8 & 0x00ffffff) == 0x00ffffff)
   1711     {
   1712       fill_scale = 0x400 | (3 << 8);
   1713       ui8 >>= 24;
   1714     }
   1715   else
   1716     {
   1717       *errmsg = _("illegal immediate value");
   1718       ui8 = 0;
   1719     }
   1720 
   1721   return insn | fill_scale | (ui8 & 0xff);
   1722 }
   1723 
   1724 static int64_t
   1725 extract_sci8 (uint64_t insn,
   1726 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1727 	      int *invalid ATTRIBUTE_UNUSED)
   1728 {
   1729   int64_t fill = insn & 0x400;
   1730   int64_t scale_factor = (insn & 0x300) >> 5;
   1731   int64_t value = (insn & 0xff) << scale_factor;
   1732 
   1733   if (fill != 0)
   1734     value |= ~((int64_t) 0xff << scale_factor);
   1735   return value;
   1736 }
   1737 
   1738 static uint64_t
   1739 insert_sci8n (uint64_t insn,
   1740 	      int64_t value,
   1741 	      ppc_cpu_t dialect,
   1742 	      const char **errmsg)
   1743 {
   1744   return insert_sci8 (insn, -value, dialect, errmsg);
   1745 }
   1746 
   1747 static int64_t
   1748 extract_sci8n (uint64_t insn,
   1749 	       ppc_cpu_t dialect,
   1750 	       int *invalid)
   1751 {
   1752   return -extract_sci8 (insn, dialect, invalid);
   1753 }
   1754 
   1755 static uint64_t
   1756 insert_oimm (uint64_t insn,
   1757 	     int64_t value,
   1758 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1759 	     const char **errmsg ATTRIBUTE_UNUSED)
   1760 {
   1761   return insn | (((value - 1) & 0x1f) << 4);
   1762 }
   1763 
   1764 static int64_t
   1765 extract_oimm (uint64_t insn,
   1766 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1767 	      int *invalid ATTRIBUTE_UNUSED)
   1768 {
   1769   return ((insn >> 4) & 0x1f) + 1;
   1770 }
   1771 
   1772 /* The n operand of rotrwi, sets SH = 32 - n.  */
   1773 
   1774 static uint64_t
   1775 insert_rrwn (uint64_t insn,
   1776 	     int64_t value,
   1777 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1778 	     const char **errmsg ATTRIBUTE_UNUSED)
   1779 {
   1780   return insn | ((-value & 0x1f) << 11);
   1781 }
   1782 
   1783 static int64_t
   1784 extract_rrwn (uint64_t insn,
   1785 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1786 	      int *invalid ATTRIBUTE_UNUSED)
   1787 {
   1788   return 31 & -(insn >> 11);
   1789 }
   1790 
   1791 /* The n operand of slwi, sets SH = n and ME = 31 - n.  */
   1792 
   1793 static uint64_t
   1794 insert_slwn (uint64_t insn,
   1795 	     int64_t value,
   1796 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1797 	     const char **errmsg ATTRIBUTE_UNUSED)
   1798 {
   1799   return insn | ((value & 0x1f) << 11) | ((~value & 0x1f) << 1);
   1800 }
   1801 
   1802 static int64_t
   1803 extract_slwn (uint64_t insn,
   1804 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1805 	      int *invalid)
   1806 {
   1807   int64_t sh = (insn >> 11) & 0x1f;
   1808   int64_t nme = ~(insn >> 1) & 0x1f;
   1809   if (sh != nme)
   1810     *invalid = 1;
   1811   return sh;
   1812 }
   1813 
   1814 /* The n operand of srwi, sets SH = 32 - n and MB = n.  */
   1815 
   1816 static uint64_t
   1817 insert_srwn (uint64_t insn,
   1818 	     int64_t value,
   1819 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1820 	     const char **errmsg ATTRIBUTE_UNUSED)
   1821 {
   1822   return insn | ((-value & 0x1f) << 11) | ((value & 0x1f) << 6);
   1823 }
   1824 
   1825 static int64_t
   1826 extract_srwn (uint64_t insn,
   1827 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1828 	      int *invalid)
   1829 {
   1830   int64_t nsh = -(insn >> 11) & 0x1f;
   1831   int64_t mb = (insn >> 6) & 0x1f;
   1832   if (nsh != mb)
   1833     *invalid = 1;
   1834   return nsh;
   1835 }
   1836 
   1837 /* The SH field in an MD form instruction.  This is split.  */
   1838 
   1839 static uint64_t
   1840 insert_sh6 (uint64_t insn,
   1841 	    int64_t value,
   1842 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1843 	    const char **errmsg ATTRIBUTE_UNUSED)
   1844 {
   1845   return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
   1846 }
   1847 
   1848 static int64_t
   1849 extract_sh6 (uint64_t insn,
   1850 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1851 	     int *invalid ATTRIBUTE_UNUSED)
   1852 {
   1853   return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
   1854 }
   1855 
   1856 /* The n operand of rotrdi, which writes to SH field.  */
   1857 
   1858 static uint64_t
   1859 insert_rrdn (uint64_t insn,
   1860 	     int64_t value,
   1861 	     ppc_cpu_t dialect,
   1862 	     const char **errmsg)
   1863 {
   1864   return insert_sh6 (insn, -value, dialect, errmsg);
   1865 }
   1866 
   1867 static int64_t
   1868 extract_rrdn (uint64_t insn,
   1869 	      ppc_cpu_t dialect,
   1870 	      int *invalid)
   1871 {
   1872   return -extract_sh6 (insn, dialect, invalid) & 63;
   1873 }
   1874 
   1875 /* The n operand of sldi, which writes to SH and ME fields.  */
   1876 
   1877 static uint64_t
   1878 insert_sldn (uint64_t insn,
   1879 	     int64_t value,
   1880 	     ppc_cpu_t dialect,
   1881 	     const char **errmsg)
   1882 {
   1883   insn = insert_sh6 (insn, value, dialect, errmsg);
   1884   return insert_crdn (insn, value, dialect, errmsg);
   1885 }
   1886 
   1887 static int64_t
   1888 extract_sldn (uint64_t insn,
   1889 	      ppc_cpu_t dialect,
   1890 	      int *invalid)
   1891 {
   1892   int64_t sh = extract_sh6 (insn, dialect, invalid);
   1893   int64_t me = extract_crdn (insn, dialect, invalid);
   1894   if (me != sh)
   1895     *invalid = 1;
   1896   return sh;
   1897 }
   1898 
   1899 /* The n operand of srdi, which writes to SH and MB fields.  */
   1900 
   1901 static uint64_t
   1902 insert_srdn (uint64_t insn,
   1903 	     int64_t value,
   1904 	     ppc_cpu_t dialect,
   1905 	     const char **errmsg)
   1906 {
   1907   insn = insert_rrdn (insn, value, dialect, errmsg);
   1908   return insert_mb6 (insn, value, dialect, errmsg);
   1909 }
   1910 
   1911 static int64_t
   1912 extract_srdn (uint64_t insn,
   1913 	      ppc_cpu_t dialect,
   1914 	      int *invalid)
   1915 {
   1916   int64_t sh = extract_rrdn (insn, dialect, invalid);
   1917   int64_t mb = extract_mb6 (insn, dialect, invalid);
   1918   if (mb != sh)
   1919     *invalid = 1;
   1920   return sh;
   1921 }
   1922 
   1923 /* The b operand of extrdi, which sets SH field.  */
   1924 
   1925 static uint64_t
   1926 insert_erdb (uint64_t insn,
   1927 	     int64_t value,
   1928 	     ppc_cpu_t dialect,
   1929 	     const char **errmsg)
   1930 {
   1931   int64_t n = extract_erdn (insn, dialect, NULL);
   1932   return insert_sh6 (insn, value + n, dialect, errmsg);
   1933 }
   1934 
   1935 static int64_t
   1936 extract_erdb (uint64_t insn,
   1937 	      ppc_cpu_t dialect,
   1938 	      int *invalid)
   1939 {
   1940   int64_t sh = extract_sh6 (insn, dialect, invalid);
   1941   int64_t n = extract_erdn (insn, dialect, invalid);
   1942   return (sh - n) & 63;
   1943 }
   1944 
   1945 /* The b and n operands of clrlsldi.  */
   1946 
   1947 static uint64_t
   1948 insert_csldn (uint64_t insn,
   1949 	      int64_t value,
   1950 	      ppc_cpu_t dialect,
   1951 	      const char **errmsg)
   1952 {
   1953   uint64_t mb6 = 0x3f << 5;
   1954   int64_t b = extract_mb6 (insn, dialect, NULL);
   1955   insn = insert_mb6 (insn & ~mb6, b - value, dialect, errmsg);
   1956   return insert_sh6 (insn, value, dialect, errmsg);
   1957 }
   1958 
   1959 static int64_t
   1960 extract_csldb (uint64_t insn,
   1961 	       ppc_cpu_t dialect,
   1962 	       int *invalid)
   1963 {
   1964   int64_t sh = extract_sh6 (insn, dialect, invalid);
   1965   int64_t mb = extract_mb6 (insn, dialect, invalid);
   1966   return (mb + sh) & 63;
   1967 }
   1968 
   1969 /* The b and n operands of insrdi.  */
   1970 
   1971 static uint64_t
   1972 insert_irdb (uint64_t insn,
   1973 	     int64_t value,
   1974 	     ppc_cpu_t dialect,
   1975 	     const char **errmsg)
   1976 {
   1977   uint64_t sh6 = (0x1f << 11) | 2;
   1978   int64_t n = extract_sh6 (insn, dialect, NULL);
   1979   insn = insert_sh6 (insn & ~sh6, -(value + n), dialect, errmsg);
   1980   return insert_mb6 (insn, value, dialect, errmsg);
   1981 }
   1982 
   1983 static int64_t
   1984 extract_irdn (uint64_t insn,
   1985 	      ppc_cpu_t dialect,
   1986 	      int *invalid)
   1987 {
   1988   int64_t sh = extract_sh6 (insn, dialect, invalid);
   1989   int64_t mb = extract_mb6 (insn, dialect, invalid);
   1990   return (~(mb + sh) & 63) + 1;
   1991 }
   1992 
   1993 /* The SPR field in an XFX form instruction.  This is flipped--the
   1994    lower 5 bits are stored in the upper 5 and vice- versa.  */
   1995 
   1996 static uint64_t
   1997 insert_spr (uint64_t insn,
   1998 	    int64_t value,
   1999 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2000 	    const char **errmsg ATTRIBUTE_UNUSED)
   2001 {
   2002   return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
   2003 }
   2004 
   2005 static int64_t
   2006 extract_spr (uint64_t insn,
   2007 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2008 	     int *invalid ATTRIBUTE_UNUSED)
   2009 {
   2010   return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
   2011 }
   2012 
   2013 /* Some dialects have 8 [DI]BAT registers instead of the standard 4.  */
   2014 #define ALLOW8_BAT (PPC_OPCODE_750)
   2015 
   2016 static uint64_t
   2017 insert_sprbat (uint64_t insn,
   2018 	       int64_t value,
   2019 	       ppc_cpu_t dialect,
   2020 	       const char **errmsg)
   2021 {
   2022   if ((uint64_t) value > 7
   2023       || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
   2024     *errmsg = _("invalid bat number");
   2025 
   2026   /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543.  */
   2027   if ((uint64_t) value > 3)
   2028     value = ((value & 3) << 6) | 1;
   2029   else
   2030     value = value << 6;
   2031 
   2032   return insn | (value << 11);
   2033 }
   2034 
   2035 static int64_t
   2036 extract_sprbat (uint64_t insn,
   2037 		ppc_cpu_t dialect,
   2038 		int *invalid)
   2039 {
   2040   uint64_t val = (insn >> 17) & 0x3;
   2041 
   2042   val = val + ((insn >> 9) & 0x4);
   2043   if (val > 3 && (dialect & ALLOW8_BAT) == 0)
   2044     *invalid = 1;
   2045   return val;
   2046 }
   2047 
   2048 /* Some dialects have 8 SPRG registers instead of the standard 4.  */
   2049 #define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
   2050 
   2051 static uint64_t
   2052 insert_sprg (uint64_t insn,
   2053 	     int64_t value,
   2054 	     ppc_cpu_t dialect,
   2055 	     const char **errmsg)
   2056 {
   2057   if ((uint64_t) value > 7
   2058       || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
   2059     *errmsg = _("invalid sprg number");
   2060 
   2061   /* If this is mfsprg4..7 then use spr 260..263 which can be read in
   2062      user mode.  Anything else must use spr 272..279.  */
   2063   if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
   2064     value |= 0x10;
   2065 
   2066   return insn | ((value & 0x17) << 16);
   2067 }
   2068 
   2069 static int64_t
   2070 extract_sprg (uint64_t insn,
   2071 	      ppc_cpu_t dialect,
   2072 	      int *invalid)
   2073 {
   2074   uint64_t val = (insn >> 16) & 0x1f;
   2075 
   2076   /* mfsprg can use 260..263 and 272..279.  mtsprg only uses spr 272..279
   2077      If not BOOKE, 405 or VLE, then both use only 272..275.  */
   2078   if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
   2079       || (val - 0x10 > 7 && (insn & 0x100) != 0)
   2080       || val <= 3
   2081       || (val & 8) != 0)
   2082     *invalid = 1;
   2083   return val & 7;
   2084 }
   2085 
   2086 /* The TBR field in an XFX instruction.  This is just like SPR, but it
   2087    is optional.  */
   2088 
   2089 static uint64_t
   2090 insert_tbr (uint64_t insn,
   2091 	    int64_t value,
   2092 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2093 	    const char **errmsg)
   2094 {
   2095   if (value != 268 && value != 269)
   2096     *errmsg = _("invalid tbr number");
   2097   return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
   2098 }
   2099 
   2100 static int64_t
   2101 extract_tbr (uint64_t insn,
   2102 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2103 	     int *invalid)
   2104 {
   2105   /* Missing optional operands have a value of 268.  */
   2106   if (*invalid < 0)
   2107     return 268;
   2108 
   2109   int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
   2110   if (ret != 268 && ret != 269)
   2111     *invalid = 1;
   2112   return ret;
   2113 }
   2114 
   2115 /* The XT and XS fields in an XX1 or XX3 form instruction.  This is split.  */
   2116 
   2117 static uint64_t
   2118 insert_xt6 (uint64_t insn,
   2119 	    int64_t value,
   2120 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2121 	    const char **errmsg ATTRIBUTE_UNUSED)
   2122 {
   2123   return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
   2124 }
   2125 
   2126 static int64_t
   2127 extract_xt6 (uint64_t insn,
   2128 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2129 	     int *invalid ATTRIBUTE_UNUSED)
   2130 {
   2131   return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
   2132 }
   2133 
   2134 /* The XT and XS fields in an DQ form VSX instruction.  This is split.  */
   2135 static uint64_t
   2136 insert_xtq6 (uint64_t insn,
   2137 	     int64_t value,
   2138 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2139 	     const char **errmsg ATTRIBUTE_UNUSED)
   2140 {
   2141   return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
   2142 }
   2143 
   2144 static int64_t
   2145 extract_xtq6 (uint64_t insn,
   2146 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2147 	      int *invalid ATTRIBUTE_UNUSED)
   2148 {
   2149   return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
   2150 }
   2151 
   2152 /* The 5-bit XAp field in an XX3 form instruction.  This is split.  */
   2153 
   2154 static uint64_t
   2155 insert_xa5 (uint64_t insn,
   2156 	    int64_t value,
   2157 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2158 	    const char **errmsg ATTRIBUTE_UNUSED)
   2159 {
   2160   return insn | ((value & 0x1e) << 16) | ((value & 0x20) >> 3);
   2161 }
   2162 
   2163 static int64_t
   2164 extract_xa5 (uint64_t insn,
   2165 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2166 	     int *invalid ATTRIBUTE_UNUSED)
   2167 {
   2168   return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1e);
   2169 }
   2170 
   2171 /* The XA field in an XX3 form instruction.  This is split.  */
   2172 
   2173 static uint64_t
   2174 insert_xa6 (uint64_t insn,
   2175 	    int64_t value,
   2176 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2177 	    const char **errmsg ATTRIBUTE_UNUSED)
   2178 {
   2179   return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
   2180 }
   2181 
   2182 static int64_t
   2183 extract_xa6 (uint64_t insn,
   2184 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2185 	     int *invalid ATTRIBUTE_UNUSED)
   2186 {
   2187   return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
   2188 }
   2189 
   2190 /* The XA field in an MMA XX3 form instruction.  This is split
   2191    and must not overlap with the ACC operand.  */
   2192 
   2193 static uint64_t
   2194 insert_xa6a (uint64_t insn,
   2195 	     int64_t value,
   2196 	     ppc_cpu_t dialect,
   2197 	     const char **errmsg)
   2198 {
   2199   int64_t acc = (insn >> 23) & 0x7;
   2200   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2201   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2202       && (value >> 2) == acc)
   2203     *errmsg = _("VSR overlaps ACC operand");
   2204   return insert_xa6 (insn, value, dialect, errmsg);
   2205 }
   2206 
   2207 static int64_t
   2208 extract_xa6a (uint64_t insn,
   2209 	      ppc_cpu_t dialect,
   2210 	      int *invalid)
   2211 {
   2212   int64_t acc = (insn >> 23) & 0x7;
   2213   int64_t value = extract_xa6 (insn, dialect, invalid);
   2214   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2215   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2216       && (value >> 2) == acc)
   2217     *invalid = 1;
   2218   return value;
   2219 }
   2220 
   2221 /* The 5-bit XB field in an XX3 form instruction.  This is split.  */
   2222 
   2223 static uint64_t
   2224 insert_xb5 (uint64_t insn,
   2225 	    int64_t value,
   2226 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2227 	    const char **errmsg ATTRIBUTE_UNUSED)
   2228 {
   2229   return insn | ((value & 0x1e) << 11) | ((value & 0x20) >> 4);
   2230 }
   2231 
   2232 static int64_t
   2233 extract_xb5 (uint64_t insn,
   2234 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2235 	     int *invalid ATTRIBUTE_UNUSED)
   2236 {
   2237   return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1e);
   2238 }
   2239 /* The XB field in an XX3 form instruction.  This is split.  */
   2240 
   2241 static uint64_t
   2242 insert_xb6 (uint64_t insn,
   2243 	    int64_t value,
   2244 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2245 	    const char **errmsg ATTRIBUTE_UNUSED)
   2246 {
   2247   return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
   2248 }
   2249 
   2250 static int64_t
   2251 extract_xb6 (uint64_t insn,
   2252 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2253 	     int *invalid ATTRIBUTE_UNUSED)
   2254 {
   2255   return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
   2256 }
   2257 
   2258 /* The XB field in an MMA XX3 form instruction.  This is split
   2259    and must not overlap with the ACC operand.  */
   2260 
   2261 static uint64_t
   2262 insert_xb6a (uint64_t insn,
   2263 	     int64_t value,
   2264 	     ppc_cpu_t dialect,
   2265 	     const char **errmsg)
   2266 {
   2267   int64_t acc = (insn >> 23) & 0x7;
   2268   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2269   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2270       && (value >> 2) == acc)
   2271     *errmsg = _("VSR overlaps ACC operand");
   2272   return insert_xb6 (insn, value, dialect, errmsg);
   2273 }
   2274 
   2275 static int64_t
   2276 extract_xb6a (uint64_t insn,
   2277 	      ppc_cpu_t dialect,
   2278 	      int *invalid)
   2279 {
   2280   int64_t acc = (insn >> 23) & 0x7;
   2281   int64_t value = extract_xb6 (insn, dialect, invalid);
   2282   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2283   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2284       && (value >> 2) == acc)
   2285     *invalid = 1;
   2286   return value;
   2287 }
   2288 
   2289 /* The XA and XB fields in an XX3 form instruction when they must be the same.
   2290    This is used for extended mnemonics like xvmovdp.  The extraction function
   2291    enforces that the fields are the same.  */
   2292 
   2293 static uint64_t
   2294 insert_xab6 (uint64_t insn,
   2295 	     int64_t value,
   2296 	     ppc_cpu_t dialect,
   2297 	     const char **errmsg)
   2298 {
   2299   return insert_xa6 (insn, value, dialect, errmsg)
   2300 	 | insert_xb6 (insn, value, dialect, errmsg);
   2301 }
   2302 
   2303 static int64_t
   2304 extract_xab6 (uint64_t insn,
   2305 	      ppc_cpu_t dialect,
   2306 	      int *invalid)
   2307 {
   2308   int64_t xa6 = extract_xa6 (insn, dialect, invalid);
   2309   int64_t xb6 = extract_xb6 (insn, dialect, invalid);
   2310 
   2311   if (xa6 != xb6)
   2312     *invalid = 1;
   2313   return xa6;
   2314 }
   2315 
   2316 /* The XC field in an XX4 form instruction.  This is split.  */
   2317 
   2318 static uint64_t
   2319 insert_xc6 (uint64_t insn,
   2320 	    int64_t value,
   2321 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2322 	    const char **errmsg ATTRIBUTE_UNUSED)
   2323 {
   2324   return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
   2325 }
   2326 
   2327 static int64_t
   2328 extract_xc6 (uint64_t insn,
   2329 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2330 	     int *invalid ATTRIBUTE_UNUSED)
   2331 {
   2332   return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
   2333 }
   2334 
   2335 /* The split XTp and XSp field in a vector paired insn.  */
   2336 
   2337 static uint64_t
   2338 insert_xtp (uint64_t insn,
   2339 	    int64_t value,
   2340 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2341 	    const char **errmsg ATTRIBUTE_UNUSED)
   2342 {
   2343   return insn | ((value & 0x1e) << 21) | ((value & 0x20) << (21 - 5));
   2344 }
   2345 
   2346 static int64_t
   2347 extract_xtp (uint64_t insn,
   2348 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2349 	     int *invalid ATTRIBUTE_UNUSED)
   2350 {
   2351   return ((insn >> (21 - 5)) & 0x20) | ((insn >> 21) & 0x1e);
   2352 }
   2353 
   2354 /* The split XT field in a vector splat insn.  */
   2355 
   2356 static uint64_t
   2357 insert_xts (uint64_t insn,
   2358 	    int64_t value,
   2359 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2360 	    const char **errmsg ATTRIBUTE_UNUSED)
   2361 {
   2362   return insn | ((value & 0x1f) << 21) | ((value & 0x20) << (16 - 5));
   2363 }
   2364 
   2365 static int64_t
   2366 extract_xts (uint64_t insn,
   2367 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2368 	     int *invalid ATTRIBUTE_UNUSED)
   2369 {
   2370   return ((insn >> (16 - 5)) & 0x20) | ((insn >> 21) & 0x1f);
   2371 }
   2372 
   2373 static uint64_t
   2374 insert_dm (uint64_t insn,
   2375 	   int64_t value,
   2376 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2377 	   const char **errmsg)
   2378 {
   2379   if (value != 0 && value != 1)
   2380     *errmsg = _("invalid constant");
   2381   return insn | (((value) ? 3 : 0) << 8);
   2382 }
   2383 
   2384 static int64_t
   2385 extract_dm (uint64_t insn,
   2386 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2387 	    int *invalid)
   2388 {
   2389   int64_t value = (insn >> 8) & 3;
   2390   if (value != 0 && value != 3)
   2391     *invalid = 1;
   2392   return (value) ? 1 : 0;
   2393 }
   2394 
   2395 /* The VLESIMM field in an I16A form instruction.  This is split.  */
   2396 
   2397 static uint64_t
   2398 insert_vlesi (uint64_t insn,
   2399 	      int64_t value,
   2400 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2401 	      const char **errmsg ATTRIBUTE_UNUSED)
   2402 {
   2403   return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
   2404 }
   2405 
   2406 static int64_t
   2407 extract_vlesi (uint64_t insn,
   2408 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2409 	       int *invalid ATTRIBUTE_UNUSED)
   2410 {
   2411   int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
   2412   value = (value ^ 0x8000) - 0x8000;
   2413   return value;
   2414 }
   2415 
   2416 static uint64_t
   2417 insert_vlensi (uint64_t insn,
   2418 	       int64_t value,
   2419 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2420 	       const char **errmsg ATTRIBUTE_UNUSED)
   2421 {
   2422   value = -value;
   2423   return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
   2424 }
   2425 static int64_t
   2426 extract_vlensi (uint64_t insn,
   2427 		ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2428 		int *invalid)
   2429 {
   2430   int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
   2431   value = (value ^ 0x8000) - 0x8000;
   2432   /* Don't use for disassembly.  */
   2433   *invalid = 1;
   2434   return -value;
   2435 }
   2436 
   2437 /* The VLEUIMM field in an I16A form instruction.  This is split.  */
   2438 
   2439 static uint64_t
   2440 insert_vleui (uint64_t insn,
   2441 	      int64_t value,
   2442 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2443 	      const char **errmsg ATTRIBUTE_UNUSED)
   2444 {
   2445   return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
   2446 }
   2447 
   2448 static int64_t
   2449 extract_vleui (uint64_t insn,
   2450 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2451 	       int *invalid ATTRIBUTE_UNUSED)
   2452 {
   2453   return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
   2454 }
   2455 
   2456 /* The VLEUIMML field in an I16L form instruction.  This is split.  */
   2457 
   2458 static uint64_t
   2459 insert_vleil (uint64_t insn,
   2460 	      int64_t value,
   2461 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2462 	      const char **errmsg ATTRIBUTE_UNUSED)
   2463 {
   2464   return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
   2465 }
   2466 
   2467 static int64_t
   2468 extract_vleil (uint64_t insn,
   2469 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2470 	       int *invalid ATTRIBUTE_UNUSED)
   2471 {
   2472   return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
   2473 }
   2474 
   2475 static uint64_t
   2476 insert_evuimm1_ex0 (uint64_t insn,
   2477 		    int64_t value,
   2478 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2479 		    const char **errmsg)
   2480 {
   2481   if (value <= 0 || value > 0x1f)
   2482     *errmsg = _("UIMM = 00000 is illegal");
   2483   return insn | ((value & 0x1f) << 11);
   2484 }
   2485 
   2486 static int64_t
   2487 extract_evuimm1_ex0 (uint64_t insn,
   2488 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2489 		     int *invalid)
   2490 {
   2491   int64_t value = ((insn >> 11) & 0x1f);
   2492   if (value == 0)
   2493     *invalid = 1;
   2494 
   2495   return value;
   2496 }
   2497 
   2498 static uint64_t
   2499 insert_evuimm2_ex0 (uint64_t insn,
   2500 		    int64_t value,
   2501 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2502 		    const char **errmsg)
   2503 {
   2504   if (value <= 0 || value > 0x3e)
   2505     *errmsg = _("UIMM = 00000 is illegal");
   2506   return insn | ((value & 0x3e) << 10);
   2507 }
   2508 
   2509 static int64_t
   2510 extract_evuimm2_ex0 (uint64_t insn,
   2511 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2512 		     int *invalid)
   2513 {
   2514   int64_t value = ((insn >> 10) & 0x3e);
   2515   if (value == 0)
   2516     *invalid = 1;
   2517 
   2518   return value;
   2519 }
   2520 
   2521 static uint64_t
   2522 insert_evuimm4_ex0 (uint64_t insn,
   2523 		    int64_t value,
   2524 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2525 		    const char **errmsg)
   2526 {
   2527   if (value <= 0 || value > 0x7c)
   2528     *errmsg = _("UIMM = 00000 is illegal");
   2529   return insn | ((value & 0x7c) << 9);
   2530 }
   2531 
   2532 static int64_t
   2533 extract_evuimm4_ex0 (uint64_t insn,
   2534 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2535 		     int *invalid)
   2536 {
   2537   int64_t value = ((insn >> 9) & 0x7c);
   2538   if (value == 0)
   2539     *invalid = 1;
   2540 
   2541   return value;
   2542 }
   2543 
   2544 static uint64_t
   2545 insert_evuimm8_ex0 (uint64_t insn,
   2546 		    int64_t value,
   2547 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2548 		    const char **errmsg)
   2549 {
   2550   if (value <= 0 || value > 0xf8)
   2551     *errmsg = _("UIMM = 00000 is illegal");
   2552   return insn | ((value & 0xf8) << 8);
   2553 }
   2554 
   2555 static int64_t
   2556 extract_evuimm8_ex0 (uint64_t insn,
   2557 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2558 		     int *invalid)
   2559 {
   2560   int64_t value = ((insn >> 8) & 0xf8);
   2561   if (value == 0)
   2562     *invalid = 1;
   2563 
   2564   return value;
   2565 }
   2566 
   2567 static uint64_t
   2568 insert_evuimm_lt8 (uint64_t insn,
   2569 		   int64_t value,
   2570 		   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2571 		   const char **errmsg)
   2572 {
   2573   if (value < 0 || value > 7)
   2574     *errmsg = _("UIMM values >7 are illegal");
   2575   return insn | ((value & 0x7) << 11);
   2576 }
   2577 
   2578 static int64_t
   2579 extract_evuimm_lt8 (uint64_t insn,
   2580 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2581 		    int *invalid)
   2582 {
   2583   int64_t value = ((insn >> 11) & 0x1f);
   2584   if (value > 7)
   2585     *invalid = 1;
   2586 
   2587   return value;
   2588 }
   2589 
   2590 static uint64_t
   2591 insert_evuimm_lt16 (uint64_t insn,
   2592 		    int64_t value,
   2593 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2594 		    const char **errmsg)
   2595 {
   2596   if (value < 0 || value > 15)
   2597     *errmsg = _("UIMM values >15 are illegal");
   2598   return insn | ((value & 0xf) << 11);
   2599 }
   2600 
   2601 static int64_t
   2602 extract_evuimm_lt16 (uint64_t insn,
   2603 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2604 		     int *invalid)
   2605 {
   2606   int64_t value = ((insn >> 11) & 0x1f);
   2607   if (value > 15)
   2608     *invalid = 1;
   2609 
   2610   return value;
   2611 }
   2612 
   2613 static uint64_t
   2614 insert_rD_rS_even (uint64_t insn,
   2615 		   int64_t value,
   2616 		   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2617 		   const char **errmsg)
   2618 {
   2619   if ((value & 0x1) != 0)
   2620     *errmsg = _("GPR odd is illegal");
   2621   return insn | ((value & 0x1e) << 21);
   2622 }
   2623 
   2624 static int64_t
   2625 extract_rD_rS_even (uint64_t insn,
   2626 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2627 		    int *invalid)
   2628 {
   2629   int64_t value = ((insn >> 21) & 0x1f);
   2630   if ((value & 0x1) != 0)
   2631     *invalid = 1;
   2632 
   2633   return value;
   2634 }
   2635 
   2636 static uint64_t
   2637 insert_off_lsp (uint64_t insn,
   2638 		int64_t value,
   2639 		ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2640 		const char **errmsg)
   2641 {
   2642   if (value <= 0 || value > 0x3)
   2643     *errmsg = _("invalid offset");
   2644   return insn | (value & 0x3);
   2645 }
   2646 
   2647 static int64_t
   2648 extract_off_lsp (uint64_t insn,
   2649 		 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2650 		 int *invalid)
   2651 {
   2652   int64_t value = (insn & 0x3);
   2653   if (value == 0)
   2654     *invalid = 1;
   2655 
   2656   return value;
   2657 }
   2658 
   2659 static uint64_t
   2660 insert_off_spe2 (uint64_t insn,
   2661 		 int64_t value,
   2662 		 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2663 		 const char **errmsg)
   2664 {
   2665   if (value <= 0 || value > 0x7)
   2666     *errmsg = _("invalid offset");
   2667   return insn | (value & 0x7);
   2668 }
   2669 
   2670 static int64_t
   2671 extract_off_spe2 (uint64_t insn,
   2672 		  ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2673 		  int *invalid)
   2674 {
   2675   int64_t value = (insn & 0x7);
   2676   if (value == 0)
   2677     *invalid = 1;
   2678 
   2679   return value;
   2680 }
   2681 
   2682 static uint64_t
   2683 insert_Ddd (uint64_t insn,
   2684 	    int64_t value,
   2685 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2686 	    const char **errmsg)
   2687 {
   2688   if (value < 0 || value > 0x7)
   2689     *errmsg = _("invalid Ddd value");
   2690   return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
   2691 }
   2692 
   2693 static int64_t
   2694 extract_Ddd (uint64_t insn,
   2695 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2696 	     int *invalid ATTRIBUTE_UNUSED)
   2697 {
   2698   return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
   2699 }
   2700 
   2701 static uint64_t
   2702 insert_sxl (uint64_t insn,
   2703 	    int64_t value,
   2704 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2705 	    const char **errmsg ATTRIBUTE_UNUSED)
   2706 {
   2707   return insn | ((value & 0x1) << 11);
   2708 }
   2709 
   2710 static int64_t
   2711 extract_sxl (uint64_t insn,
   2712 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2713 	     int *invalid)
   2714 {
   2715   /* Missing optional operands have a value of one.  */
   2716   if (*invalid < 0)
   2717     return 1;
   2718   return (insn >> 11) & 0x1;
   2719 }
   2720 
   2721 /* The list of embedded processors that use the embedded operand ordering
   2722    for the 3 operand dcbt and dcbtst instructions.  */
   2723 #define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
   2724 		 | PPC_OPCODE_A2)
   2725 
   2726 /* ISA 2.03 and later specify extended mnemonics dcbtct, dcbtds, and
   2727    dcbtstct, dcbtstds with a note saying these should be used in new
   2728    programs rather than the base mnemonics "so that it can be coded
   2729    with TH as the last operand for all categories".  For that reason
   2730    the extended mnemonics are enabled in the assembler for the
   2731    embedded processors, but not for the disassembler so as to display
   2732    the embedded dcbt or dcbtst expected form with TH first for
   2733    embedded programmers.  */
   2734 
   2735 static uint64_t
   2736 insert_thct (uint64_t insn,
   2737 	    int64_t value,
   2738 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2739 	    const char **errmsg)
   2740 {
   2741   if ((uint64_t) value > 7)
   2742     *errmsg = _("invalid TH value");
   2743   return insn | ((value & 7) << 21);
   2744 }
   2745 
   2746 static int64_t
   2747 extract_thct (uint64_t insn,
   2748 	      ppc_cpu_t dialect,
   2749 	      int *invalid)
   2750 {
   2751   /* Missing optional operands have a value of 0.  */
   2752   if (*invalid < 0)
   2753     return 0;
   2754 
   2755   int64_t value = (insn >> 21) & 0x1f;
   2756   if (value > 7 || (dialect & DCBT_EO) != 0)
   2757     *invalid = 1;
   2758 
   2759   return value;
   2760 }
   2761 
   2762 static uint64_t
   2763 insert_thds (uint64_t insn,
   2764 	     int64_t value,
   2765 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2766 	     const char **errmsg)
   2767 {
   2768   if (value < 8 || value > 15)
   2769     *errmsg = _("invalid TH value");
   2770   return insn | ((value & 0x1f) << 21);
   2771 }
   2772 
   2773 static int64_t
   2774 extract_thds (uint64_t insn,
   2775 	      ppc_cpu_t dialect,
   2776 	      int *invalid)
   2777 {
   2778   /* Missing optional operands have a value of 8.  */
   2779   if (*invalid < 0)
   2780     return 8;
   2781 
   2782   int64_t value = (insn >> 21) & 0x1f;
   2783   if (value < 8 || value > 15 || (dialect & DCBT_EO) != 0)
   2784     *invalid = 1;
   2785 
   2786   return value;
   2787 }
   2788 
   2789 /* The operands table.
   2791 
   2792    The fields are bitm, shift, insert, extract, flags.
   2793 
   2794    We used to put parens around the various additions, like the one
   2795    for BA just below.  However, that caused trouble with feeble
   2796    compilers with a limit on depth of a parenthesized expression, like
   2797    (reportedly) the compiler in Microsoft Developer Studio 5.  So we
   2798    omit the parens, since the macros are never used in a context where
   2799    the addition will be ambiguous.  */
   2800 
   2801 const struct powerpc_operand powerpc_operands[] =
   2802 {
   2803   /* The zero index is used to indicate the end of the list of
   2804      operands.  */
   2805 #define UNUSED 0
   2806   { 0, 0, NULL, NULL, 0 },
   2807 
   2808   /* The BA field in an XL form instruction.  */
   2809 #define BA UNUSED + 1
   2810   /* The BI field in a B form or XL form instruction.  */
   2811 #define BI BA
   2812 #define BI_MASK (0x1f << 16)
   2813   { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
   2814 
   2815   /* The BT, BA and BB fields in a XL form instruction when they must all
   2816      be the same.  */
   2817 #define BTAB BA + 1
   2818   { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
   2819 
   2820   /* The BB field in an XL form instruction.  */
   2821 #define BB BTAB + 1
   2822 #define BB_MASK (0x1f << 11)
   2823   { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
   2824 
   2825   /* The BA and BB fields in a XL form instruction when they must be
   2826      the same.  */
   2827 #define BAB BB + 1
   2828   { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
   2829 
   2830   /* The VRA and VRB fields in a VX form instruction when they must be the same.
   2831      This is used for extended mnemonics like vmr.  */
   2832 #define VAB BAB + 1
   2833   { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
   2834 
   2835   /* The RA and RB fields in a VX form instruction when they must be the same.
   2836      This is used for extended mnemonics like evmr.  */
   2837 #define RAB VAB + 1
   2838   { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
   2839 
   2840 #define BC RAB + 1
   2841   { 0x1f, 6, NULL, NULL, PPC_OPERAND_CR_BIT },
   2842 
   2843   /* The BD field in a B form instruction.  The lower two bits are
   2844      forced to zero.  */
   2845 #define BD BC + 1
   2846   { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2847 
   2848   /* The BD field in a B form instruction when absolute addressing is
   2849      used.  */
   2850 #define BDA BD + 1
   2851   { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   2852 
   2853   /* The BD field in a B form instruction when the - modifier is used.
   2854      This sets the y bit of the BO field appropriately.  */
   2855 #define BDM BDA + 1
   2856   { 0xfffc, 0, insert_bdm, extract_bdm,
   2857     PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2858 
   2859   /* The BD field in a B form instruction when the - modifier is used
   2860      and absolute address is used.  */
   2861 #define BDMA BDM + 1
   2862   { 0xfffc, 0, insert_bdm, extract_bdm,
   2863     PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   2864 
   2865   /* The BD field in a B form instruction when the + modifier is used.
   2866      This sets the y bit of the BO field appropriately.  */
   2867 #define BDP BDMA + 1
   2868   { 0xfffc, 0, insert_bdp, extract_bdp,
   2869     PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2870 
   2871   /* The BD field in a B form instruction when the + modifier is used
   2872      and absolute addressing is used.  */
   2873 #define BDPA BDP + 1
   2874   { 0xfffc, 0, insert_bdp, extract_bdp,
   2875     PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   2876 
   2877   /* The BF field in an X or XL form instruction.  */
   2878 #define BF BDPA + 1
   2879   /* The CRFD field in an X form instruction.  */
   2880 #define CRFD BF
   2881   /* The CRD field in an XL form instruction.  */
   2882 #define CRD BF
   2883   { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
   2884 
   2885   /* The BF field in an X or XL form instruction.  */
   2886 #define BFF BF + 1
   2887   { 0x7, 23, NULL, NULL, 0 },
   2888 
   2889   /* The ACC field in a VSX ACC 8LS:D-form instruction.  */
   2890 #define ACC BFF + 1
   2891   { 0x7, 23, NULL, NULL, PPC_OPERAND_ACC },
   2892 
   2893   /* The DMR field in a MMA instruction.  */
   2894 #define DMR ACC + 1
   2895   { 0x7, 23, NULL, NULL, PPC_OPERAND_DMR },
   2896 
   2897   /* The second DMR field in a two DMR operand MMA instruction.  */
   2898 #define DMRAB DMR + 1
   2899   { 0x7, 13, NULL, NULL, PPC_OPERAND_DMR },
   2900 
   2901   /* An optional BF field.  This is used for comparison instructions,
   2902      in which an omitted BF field is taken as zero.  */
   2903 #define OBF DMRAB + 1
   2904   { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
   2905 
   2906   /* The BFA field in an X or XL form instruction.  */
   2907 #define BFA OBF + 1
   2908   { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
   2909 
   2910   /* The BO field in a B form instruction.  Certain values are
   2911      illegal.  */
   2912 #define BO BFA + 1
   2913 #define BO_MASK (0x1f << 21)
   2914   { 0x1f, 21, insert_bo, extract_bo, 0 },
   2915 
   2916   /* The BO field in a B form instruction when the - modifier is used.  */
   2917 #define BOM BO + 1
   2918   { 0x1f, 21, insert_bom, extract_bom, 0 },
   2919 
   2920   /* The BO field in a B form instruction when the + modifier is used.  */
   2921 #define BOP BOM + 1
   2922   { 0x1f, 21, insert_bop, extract_bop, 0 },
   2923 
   2924   /* The RM field in an X form instruction.  */
   2925 #define RM BOP + 1
   2926 #define DD RM
   2927 #define mo1 RM
   2928   { 0x3, 11, NULL, NULL, 0 },
   2929 
   2930 #define BH RM + 1
   2931   { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
   2932 
   2933   /* The BT field in an X or XL form instruction.  */
   2934 #define BT BH + 1
   2935   { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
   2936 
   2937   /* The BT field in a mtfsb0 or mtfsb1 instruction.  */
   2938 #define BTF BT + 1
   2939   { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
   2940 
   2941   /* The BI16 field in a BD8 form instruction.  */
   2942 #define BI16 BTF + 1
   2943   { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
   2944 
   2945   /* The BI32 field in a BD15 form instruction.  */
   2946 #define BI32 BI16 + 1
   2947   { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
   2948 
   2949   /* The BO32 field in a BD15 form instruction.  */
   2950 #define BO32 BI32 + 1
   2951   { 0x3, 20, NULL, NULL, 0 },
   2952 
   2953   /* The B8 field in a BD8 form instruction.  */
   2954 #define B8 BO32 + 1
   2955   { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2956 
   2957   /* The B15 field in a BD15 form instruction.  The lowest bit is
   2958      forced to zero.  */
   2959 #define B15 B8 + 1
   2960   { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2961 
   2962   /* The B24 field in a BD24 form instruction.  The lowest bit is
   2963      forced to zero.  */
   2964 #define B24 B15 + 1
   2965   { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2966 
   2967   /* The condition register number portion of the BI field in a B form
   2968      or XL form instruction.  This is used for the extended
   2969      conditional branch mnemonics, which set the lower two bits of the
   2970      BI field.  This field is optional.  */
   2971 #define CR B24 + 1
   2972   { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
   2973 
   2974   /* The CRB field in an X form instruction.  */
   2975 #define CRB CR + 1
   2976   /* The MB field in an M form instruction.  */
   2977 #define MB CRB
   2978 #define MB_MASK (0x1f << 6)
   2979   { 0x1f, 6, NULL, NULL, 0 },
   2980 
   2981   /* The CRD32 field in an XL form instruction.  */
   2982 #define CRD32 CRB + 1
   2983   { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
   2984 
   2985   /* The CRFS field in an X form instruction.  */
   2986 #define CRFS CRD32 + 1
   2987   { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
   2988 
   2989 #define CRS CRFS + 1
   2990   { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
   2991 
   2992   /* The CT field in an X form instruction.  */
   2993 #define CT CRS + 1
   2994   /* The MO field in an mbar instruction.  */
   2995 #define MO CT
   2996   { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
   2997 
   2998   /* The TH field in dcbtct.  */
   2999 #define THCT CT + 1
   3000   { 0x1f, 21, insert_thct, extract_thct, PPC_OPERAND_OPTIONAL },
   3001 
   3002   /* The TH field in dcbtds.  */
   3003 #define THDS THCT + 1
   3004   { 0x1f, 21, insert_thds, extract_thds, PPC_OPERAND_OPTIONAL },
   3005 
   3006   /* The D field in a D form instruction.  This is a displacement off
   3007      a register, and implies that the next operand is a register in
   3008      parentheses.  */
   3009 #define D THDS + 1
   3010   { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3011 
   3012   /* The D8 field in a D form instruction.  This is a displacement off
   3013      a register, and implies that the next operand is a register in
   3014      parentheses.  */
   3015 #define D8 D + 1
   3016   { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3017 
   3018   /* The DCMX field in an X form instruction.  */
   3019 #define DCMX D8 + 1
   3020   { 0x7f, 16, NULL, NULL, 0 },
   3021 
   3022   /* The split DCMX field in an X form instruction.  */
   3023 #define DCMXS DCMX + 1
   3024   { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
   3025 
   3026   /* The DQ field in a DQ form instruction.  This is like D, but the
   3027      lower four bits are forced to zero. */
   3028 #define DQ DCMXS + 1
   3029   { 0xfff0, 0, NULL, NULL,
   3030     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
   3031 
   3032   /* The DS field in a DS form instruction.  This is like D, but the
   3033      lower two bits are forced to zero.  */
   3034 #define DS DQ + 1
   3035   { 0xfffc, 0, NULL, NULL,
   3036     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
   3037 
   3038   /* The D field in an 8-byte D form prefix instruction.  This is a displacement
   3039      off a register, and implies that the next operand is a register in
   3040      parentheses.  */
   3041 #define D34 DS + 1
   3042   { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34,
   3043     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3044 
   3045   /* The SI field in an 8-byte D form prefix instruction.  */
   3046 #define SI34 D34 + 1
   3047   { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34, PPC_OPERAND_SIGNED },
   3048 
   3049   /* The NSI field in an 8-byte D form prefix instruction.  This is the
   3050      same as the SI34 field, only negated.  */
   3051 #define NSI34 SI34 + 1
   3052   { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
   3053     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3054 
   3055   /* The IMM32 field in a vector splat immediate prefix instruction.  */
   3056 #define IMM32 NSI34 + 1
   3057   { 0xffffffff, PPC_OPSHIFT_INV, insert_imm32, extract_imm32, 0},
   3058 
   3059   /* The UIM field in a vector permute extended prefix instruction.  */
   3060 #define UIM3 IMM32 + 1
   3061   { 0x7, 32, NULL, NULL, 0},
   3062 
   3063   /* The UIM field in a vector eval prefix instruction.  */
   3064 #define UIM8 UIM3 + 1
   3065   { 0xff, 32, NULL, NULL, 0},
   3066 
   3067   /* The IX field in xxsplti32dx.  */
   3068 #define IX UIM8 + 1
   3069   { 0x1, 17, NULL, NULL, 0 },
   3070 
   3071   /* The PMSK field in GER rank 8 prefix instructions.  */
   3072 #define PMSK8 IX + 1
   3073   { 0xff, 40, NULL, NULL, 0 },
   3074 
   3075   /* The PMSK field in GER rank 4 prefix instructions.  */
   3076 #define PMSK4 PMSK8 + 1
   3077   { 0xf, 44, NULL, NULL, 0 },
   3078 
   3079   /* The PMSK field in GER rank 2 prefix instructions.  */
   3080 #define PMSK2 PMSK4 + 1
   3081   { 0x3, 46, NULL, NULL, 0 },
   3082 
   3083   /* The XMSK field in GER prefix instructions.  */
   3084 #define XMSK PMSK2 + 1
   3085   { 0xf, 36, NULL, NULL, 0 },
   3086 
   3087   /* The XMSK field in GERX prefix instructions.  */
   3088 #define XMSK8 XMSK + 1
   3089   { 0xff, 36, NULL, NULL, 0 },
   3090 
   3091   /* The YMSK field in GER prefix instructions.  */
   3092 #define YMSK XMSK8 + 1
   3093   { 0xf, 32, NULL, NULL, 0 },
   3094 
   3095   /* The YMSK field in 64-bit GER prefix instructions.  */
   3096 #define YMSK2 YMSK + 1
   3097   { 0x3, 34, NULL, NULL, 0 },
   3098 
   3099   /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
   3100      unsigned imediate */
   3101 #define DUIS YMSK2 + 1
   3102 #define BHRBE DUIS
   3103   { 0x3ff, 11, NULL, NULL, 0 },
   3104 
   3105   /* The split DW field in a X form instruction.  */
   3106 #define DW DUIS + 1
   3107   { -1, PPC_OPSHIFT_INV, insert_dw, extract_dw,
   3108     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED},
   3109 
   3110   /* The split D field in a DX form instruction.  */
   3111 #define DXD DW + 1
   3112   { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
   3113     PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
   3114 
   3115   /* The split ND field in a DX form instruction.
   3116      This is the same as the DX field, only negated.  */
   3117 #define NDXD DXD + 1
   3118   { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
   3119     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
   3120 
   3121   /* The E field in a wrteei instruction.  */
   3122   /* And the W bit in the pair singles instructions.  */
   3123   /* And the ST field in a VX form instruction.  */
   3124 #define E NDXD + 1
   3125 #define PSW E
   3126 #define ST E
   3127   { 0x1, 15, NULL, NULL, 0 },
   3128 
   3129   /* The FL1 field in a POWER SC form instruction.  */
   3130 #define FL1 E + 1
   3131   /* The U field in an X form instruction.  */
   3132 #define U FL1
   3133   { 0xf, 12, NULL, NULL, 0 },
   3134 
   3135   /* The FL2 field in a POWER SC form instruction.  */
   3136 #define FL2 FL1 + 1
   3137   { 0x7, 2, NULL, NULL, 0 },
   3138 
   3139   /* The FLM field in an XFL form instruction.  */
   3140 #define FLM FL2 + 1
   3141   { 0xff, 17, NULL, NULL, 0 },
   3142 
   3143   /* The FRA field in an X or A form instruction.  */
   3144 #define FRA FLM + 1
   3145 #define FRA_MASK (0x1f << 16)
   3146   { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
   3147 
   3148   /* The FRAp field of DFP instructions.  */
   3149 #define FRAp FRA + 1
   3150   { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
   3151 
   3152   /* The FRB field in an X or A form instruction.  */
   3153 #define FRB FRAp + 1
   3154 #define FRB_MASK (0x1f << 11)
   3155   { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
   3156 
   3157   /* The FRBp field of DFP instructions.  */
   3158 #define FRBp FRB + 1
   3159   { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
   3160 
   3161   /* The FRC field in an A form instruction.  */
   3162 #define FRC FRBp + 1
   3163 #define FRC_MASK (0x1f << 6)
   3164   { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
   3165 
   3166   /* The FRS field in an X form instruction or the FRT field in a D, X
   3167      or A form instruction.  */
   3168 #define FRS FRC + 1
   3169 #define FRT FRS
   3170   { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
   3171 
   3172   /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
   3173      instructions.  */
   3174 #define FRSp FRS + 1
   3175 #define FRTp FRSp
   3176   { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
   3177 
   3178   /* The FXM field in an XFX instruction.  */
   3179 #define FXM FRSp + 1
   3180   { 0xff, 12, insert_fxm, extract_fxm, 0 },
   3181 
   3182   /* Power4 version for mfcr.  */
   3183 #define FXM4 FXM + 1
   3184   { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
   3185 
   3186   /* The IMM20 field in an LI instruction.  */
   3187 #define IMM20 FXM4 + 1
   3188   { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
   3189 
   3190   /* The L field in a D or X form instruction.  */
   3191 #define L IMM20 + 1
   3192   { 0x1, 21, NULL, NULL, 0 },
   3193 
   3194   /* The optional L field in tlbie and tlbiel instructions.  */
   3195 #define LOPT L + 1
   3196   /* The R field in a HTM X form instruction.  */
   3197 #define HTM_R LOPT
   3198   { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3199 
   3200   /* The optional L field in the paste. instruction. This is similar to LOPT
   3201      above, but with a default value of 1.  */
   3202 #define L1OPT LOPT + 1
   3203   { 0x1, 21, insert_l1opt, extract_l1opt, PPC_OPERAND_OPTIONAL },
   3204 
   3205   /* The optional (for 32-bit) L field in cmp[l][i] instructions.  */
   3206 #define L32OPT L1OPT + 1
   3207   { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
   3208 
   3209   /* The 2-bit L or WC field in an X (sync, dcbf or wait) form instruction.  */
   3210 #define L2OPT L32OPT + 1
   3211 #define LS L2OPT
   3212 #define WC L2OPT
   3213   { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
   3214 
   3215   /* The LEV field in a POWER SVC / POWER9 SCV form instruction.  */
   3216 #define SVC_LEV L2OPT + 1
   3217   { 0x7f, 5, NULL, NULL, 0 },
   3218 
   3219   /* The LEV field in an SC form instruction.  */
   3220 #define LEV SVC_LEV + 1
   3221   { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3222 
   3223   /* The LI field in an I form instruction.  The lower two bits are
   3224      forced to zero.  */
   3225 #define LI LEV + 1
   3226   { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   3227 
   3228   /* The LI field in an I form instruction when used as an absolute
   3229      address.  */
   3230 #define LIA LI + 1
   3231   { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   3232 
   3233   /* The 3-bit L field in a sync or dcbf instruction.  */
   3234 #define LS3 LIA + 1
   3235 #define L3OPT LS3
   3236   { 0x7, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
   3237 
   3238   /* The ME field in an M form instruction.  */
   3239 #define ME LS3 + 1
   3240 #define ME_MASK (0x1f << 1)
   3241   { 0x1f, 1, NULL, NULL, 0 },
   3242 
   3243 #define CRWn ME + 1
   3244   { 0x1f, 1, insert_crwn, extract_crwn, 0 },
   3245 
   3246 #define ELWn CRWn + 1
   3247   { 0x1f, 1, insert_elwn, extract_elwn, PPC_OPERAND_PLUS1 },
   3248 
   3249 #define ERWn ELWn + 1
   3250   { 0x1f, 6, insert_erwn, extract_erwn, 0 },
   3251 
   3252 #define ERWb ERWn + 1
   3253   { 0x1f, 11, insert_erwb, extract_erwb, 0 },
   3254 
   3255 #define CSLWb ERWb + 1
   3256   { 0x1f, 6, NULL, extract_cslwb, 0 },
   3257 
   3258 #define CSLWn CSLWb + 1
   3259   { 0x1f, 11, insert_cslwn, NULL, 0 },
   3260 
   3261 #define ILWn CSLWn + 1
   3262   { 0x1f, 1, NULL, extract_ilwn, PPC_OPERAND_PLUS1 },
   3263 
   3264 #define ILWb ILWn + 1
   3265   { 0x1f, 6, insert_ilwb, NULL, 0 },
   3266 
   3267 #define IRWn ILWb + 1
   3268   { 0x1f, 1, NULL, extract_irwn, PPC_OPERAND_PLUS1 },
   3269 
   3270 #define IRWb IRWn + 1
   3271   { 0x1f, 6, insert_irwb, NULL, 0 },
   3272 
   3273   /* The MB and ME fields in an M form instruction expressed a single
   3274      operand which is a bitmask indicating which bits to select.  This
   3275      is a two operand form using PPC_OPERAND_NEXT.  See the
   3276      description in opcode/ppc.h for what this means.  */
   3277 #define MBE IRWb + 1
   3278   { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
   3279   { -1, 0, insert_mbe, extract_mbe, 0 },
   3280 
   3281   /* The MB or ME field in an MD or MDS form instruction.  The high
   3282      bit is wrapped to the low end.  */
   3283 #define MB6 MBE + 2
   3284 #define ME6 MB6
   3285 #define MB6_MASK (0x3f << 5)
   3286   { 0x3f, 5, insert_mb6, extract_mb6, 0 },
   3287 
   3288 #define ELDn MB6 + 1
   3289   { 0x3f, 5, insert_eldn, extract_eldn, PPC_OPERAND_PLUS1 },
   3290 
   3291 #define ERDn ELDn + 1
   3292   { 0x3f, 5, insert_erdn, extract_erdn, 0 },
   3293 
   3294 #define CRDn ERDn + 1
   3295   { 0x3f, 5, insert_crdn, extract_crdn, 0 },
   3296 
   3297   /* The NB field in an X form instruction.  The value 32 is stored as
   3298      0.  */
   3299 #define NB CRDn + 1
   3300   { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
   3301 
   3302   /* The NBI field in an lswi instruction, which has special value
   3303      restrictions.  The value 32 is stored as 0.  */
   3304 #define NBI NB + 1
   3305   { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
   3306 
   3307   /* The NSI field in a D form instruction.  This is the same as the
   3308      SI field, only negated.  */
   3309 #define NSI NBI + 1
   3310   { 0xffff, 0, insert_nsi, extract_nsi,
   3311     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3312 
   3313   /* The NSI field in a D form instruction when we accept a wide range
   3314      of positive values.  */
   3315 #define NSISIGNOPT NSI + 1
   3316   { 0xffff, 0, insert_nsi, extract_nsi,
   3317     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3318 
   3319   /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction.  */
   3320 #define RA NSISIGNOPT + 1
   3321 #define RA_MASK (0x1f << 16)
   3322   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
   3323 
   3324   /* As above, but 0 in the RA field means zero, not r0.  */
   3325 #define RA0 RA + 1
   3326   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
   3327 
   3328   /* Similar to above, but optional.  */
   3329 #define PRA0 RA0 + 1
   3330   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
   3331 
   3332   /* The RA field in the DQ form lq or an lswx instruction, which have
   3333      special value restrictions.  */
   3334 #define RAQ PRA0 + 1
   3335 #define RAX RAQ
   3336   { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
   3337 
   3338   /* Similar to above, but optional.  */
   3339 #define PRAQ RAQ + 1
   3340   { 0x1f, 16, insert_raq, extract_raq,
   3341     PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
   3342 
   3343   /* The R field in an 8-byte D, DS, DQ or X form prefix instruction.  */
   3344 #define PCREL PRAQ + 1
   3345 #define PCREL_MASK (1ULL << 52)
   3346   { 0x1, 52, insert_pcrel, extract_pcrel, PPC_OPERAND_OPTIONAL },
   3347 
   3348 #define PCREL1 PCREL + 1
   3349   { 0x1, 52, insert_pcrel, extract_pcrel1, PPC_OPERAND_OPTIONAL },
   3350 
   3351   /* The RA field in a D or X form instruction which is an updating
   3352      load, which means that the RA field may not be zero and may not
   3353      equal the RT field.  */
   3354 #define RAL PCREL1 + 1
   3355   { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
   3356 
   3357   /* The RA field in an lmw instruction, which has special value
   3358      restrictions.  */
   3359 #define RAM RAL + 1
   3360   { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
   3361 
   3362   /* The RA field in a D or X form instruction which is an updating
   3363      store or an updating floating point load, which means that the RA
   3364      field may not be zero.  */
   3365 #define RAS RAM + 1
   3366   { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
   3367 
   3368   /* The RA field of the tlbwe, dccci and iccci instructions,
   3369      which are optional.  */
   3370 #define RAOPT RAS + 1
   3371   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
   3372 
   3373   /* The RB field in an X, XO, M, or MDS form instruction.  */
   3374 #define RB RAOPT + 1
   3375 #define RB_MASK (0x1f << 11)
   3376   { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
   3377 
   3378   /* The RS and RB fields in an X form instruction when they must be the same.
   3379      This is used for extended mnemonics like mr.  */
   3380 #define RSB RB + 1
   3381   { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
   3382 
   3383   /* The RB field in an lswx instruction, which has special value
   3384      restrictions.  */
   3385 #define RBX RSB + 1
   3386   { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
   3387 
   3388   /* The RB field of the dccci and iccci instructions, which are optional.  */
   3389 #define RBOPT RBX + 1
   3390   { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
   3391 
   3392   /* The RC register field in an maddld, maddhd or maddhdu instruction.  */
   3393 #define RC RBOPT + 1
   3394   { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
   3395 
   3396   /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
   3397      instruction or the RT field in a D, DS, X, XFX or XO form
   3398      instruction.  */
   3399 #define RS RC + 1
   3400 #define RT RS
   3401 #define RT_MASK (0x1f << 21)
   3402 #define RD RS
   3403   { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
   3404 
   3405 #define RD_EVEN RS + 1
   3406 #define RS_EVEN RD_EVEN
   3407   { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
   3408 
   3409   /* The RS and RT fields of the DS form stq and DQ form lq instructions,
   3410      which have special value restrictions.  */
   3411 #define RSQ RS_EVEN + 1
   3412 #define RTQ RSQ
   3413 #define Q_MASK (1 << 21)
   3414   { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
   3415 
   3416   /* The RS field of the tlbwe instruction, which is optional.  */
   3417 #define RSO RSQ + 1
   3418 #define RTO RSO
   3419   { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
   3420 
   3421   /* The RX field of the SE_RR form instruction.  */
   3422 #define RX RSO + 1
   3423   { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
   3424 
   3425   /* The ARX field of the SE_RR form instruction.  */
   3426 #define ARX RX + 1
   3427   { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
   3428 
   3429   /* The RY field of the SE_RR form instruction.  */
   3430 #define RY ARX + 1
   3431 #define RZ RY
   3432   { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
   3433 
   3434   /* The ARY field of the SE_RR form instruction.  */
   3435 #define ARY RY + 1
   3436   { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
   3437 
   3438   /* The SCLSCI8 field in a D form instruction.  */
   3439 #define SCLSCI8 ARY + 1
   3440   { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
   3441 
   3442   /* The SCLSCI8N field in a D form instruction.  This is the same as the
   3443      SCLSCI8 field, only negated.  */
   3444 #define SCLSCI8N SCLSCI8 + 1
   3445   { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
   3446     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3447 
   3448   /* The SD field of the SD4 form instruction.  */
   3449 #define SE_SD SCLSCI8N + 1
   3450   { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
   3451 
   3452   /* The SD field of the SD4 form instruction, for halfword.  */
   3453 #define SE_SDH SE_SD + 1
   3454   { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
   3455 
   3456   /* The SD field of the SD4 form instruction, for word.  */
   3457 #define SE_SDW SE_SDH + 1
   3458   { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
   3459 
   3460   /* The SH field in an X or M form instruction.  */
   3461 #define SH SE_SDW + 1
   3462 #define SH_MASK (0x1f << 11)
   3463   /* The other UIMM field in a EVX form instruction.  */
   3464 #define EVUIMM SH
   3465   /* The FC field in an atomic X form instruction.  */
   3466 #define FC SH
   3467 #define UIM5 SH
   3468   { 0x1f, 11, NULL, NULL, 0 },
   3469 
   3470 #define RRWn SH + 1
   3471   { 0x1f, 11, insert_rrwn, extract_rrwn, 0 },
   3472 
   3473 #define SLWn RRWn + 1
   3474   { 0x1f, 11, insert_slwn, extract_slwn, 0 },
   3475 
   3476 #define SRWn SLWn + 1
   3477   { 0x1f, 11, insert_srwn, extract_srwn, 0 },
   3478 
   3479 #define EVUIMM_LT8 SRWn + 1
   3480   { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
   3481 
   3482 #define EVUIMM_LT16 EVUIMM_LT8 + 1
   3483   { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
   3484 
   3485   /* The SI field in a HTM X form instruction.  */
   3486 #define HTM_SI EVUIMM_LT16 + 1
   3487   { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
   3488 
   3489   /* The SH field in an MD form instruction.  This is split.  */
   3490 #define SH6 HTM_SI + 1
   3491 #define SH6_MASK ((0x1f << 11) | (1 << 1))
   3492   { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
   3493 
   3494 #define RRDn SH6 + 1
   3495   { 0x3f, PPC_OPSHIFT_INV, insert_rrdn, extract_rrdn, 0 },
   3496 
   3497 #define SLDn RRDn + 1
   3498   { 0x3f, PPC_OPSHIFT_INV, insert_sldn, extract_sldn, 0 },
   3499 
   3500 #define SRDn SLDn + 1
   3501   { 0x3f, PPC_OPSHIFT_INV, insert_srdn, extract_srdn, 0 },
   3502 
   3503 #define ERDb SRDn + 1
   3504   { 0x3f, PPC_OPSHIFT_INV, insert_erdb, extract_erdb, 0 },
   3505 
   3506 #define CSLDn ERDb + 1
   3507   { 0x3f, PPC_OPSHIFT_SH6, insert_csldn, extract_sh6, 0 },
   3508 
   3509 #define CSLDb CSLDn + 1
   3510   { 0x3f, 5, insert_mb6, extract_csldb, 0 },
   3511 
   3512 #define IRDn CSLDb + 1
   3513   { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_irdn, PPC_OPERAND_PLUS1 },
   3514 
   3515 #define IRDb IRDn + 1
   3516   { 0x3f, 5, insert_irdb, extract_mb6, 0 },
   3517 
   3518   /* The SH field of some variants of the tlbre and tlbwe
   3519      instructions, and the ELEV field of the e_sc instruction.  */
   3520 #define SHO IRDb + 1
   3521 #define ELEV SHO
   3522   { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3523 
   3524   /* The SI field in a D form instruction.  */
   3525 #define SI SHO + 1
   3526   { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
   3527 
   3528   /* The SI field in a D form instruction when we accept a wide range
   3529      of positive values.  */
   3530 #define SISIGNOPT SI + 1
   3531   { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3532 
   3533   /* The SI8 field in a D form instruction.  */
   3534 #define SI8 SISIGNOPT + 1
   3535   { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
   3536 
   3537   /* The SPR field in an XFX form instruction.  This is flipped--the
   3538      lower 5 bits are stored in the upper 5 and vice- versa.  */
   3539 #define SPR SI8 + 1
   3540 #define PMR SPR
   3541 #define TMR SPR
   3542 #define SPR_MASK (0x3ff << 11)
   3543   { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
   3544 
   3545   /* The BAT index number in an XFX form m[ft]ibat[lu] instruction.  */
   3546 #define SPRBAT SPR + 1
   3547 #define SPRBAT_MASK (0xc1 << 11)
   3548   { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
   3549 
   3550   /* The GQR index number in an XFX form m[ft]gqr instruction.  */
   3551 #define SPRGQR SPRBAT + 1
   3552 #define SPRGQR_MASK (0x7 << 16)
   3553   { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
   3554 
   3555   /* The SPRG register number in an XFX form m[ft]sprg instruction.  */
   3556 #define SPRG SPRGQR + 1
   3557   { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
   3558 
   3559   /* The SR field in an X form instruction.  */
   3560 #define SR SPRG + 1
   3561   /* The 4-bit UIMM field in a VX form instruction.  */
   3562 #define UIMM4 SR
   3563   { 0xf, 16, NULL, NULL, 0 },
   3564 
   3565   /* The STRM field in an X AltiVec form instruction.  */
   3566 #define STRM SR + 1
   3567   /* The T field in a tlbilx form instruction.  */
   3568 #define T STRM
   3569   /* The L field in wclr instructions.  */
   3570 #define L2 STRM
   3571   { 0x3, 21, NULL, NULL, 0 },
   3572 
   3573   /* The ESYNC field in an X (sync) form instruction.  */
   3574 #define ESYNC STRM + 1
   3575   { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
   3576 
   3577   /* The SV field in a POWER SC form instruction.  */
   3578 #define SV ESYNC + 1
   3579   { 0x3fff, 2, NULL, NULL, 0 },
   3580 
   3581   /* The TBR field in an XFX form instruction.  This is like the SPR
   3582      field, but it is optional.  */
   3583 #define TBR SV + 1
   3584   { 0x3ff, 11, insert_tbr, extract_tbr,
   3585     PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
   3586 
   3587   /* The TO field in a D or X form instruction.  */
   3588 #define TO TBR + 1
   3589 #define DUI TO
   3590 #define SVme TO
   3591 #define SVG TO
   3592 #define TO_MASK (0x1f << 21)
   3593   { 0x1f, 21, NULL, NULL, 0 },
   3594 
   3595   /* The UI field in a D form instruction.  */
   3596 #define UI TO + 1
   3597   { 0xffff, 0, NULL, NULL, 0 },
   3598 
   3599 #define UISIGNOPT UI + 1
   3600   { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
   3601 
   3602   /* The IMM field in an SE_IM5 instruction.  */
   3603 #define UI5 UISIGNOPT + 1
   3604   { 0x1f, 4, NULL, NULL, 0 },
   3605 
   3606   /* The OIMM field in an SE_OIM5 instruction.  */
   3607 #define OIMM5 UI5 + 1
   3608   { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
   3609 
   3610   /* The UI7 field in an SE_LI instruction.  */
   3611 #define UI7 OIMM5 + 1
   3612   { 0x7f, 4, NULL, NULL, 0 },
   3613 
   3614   /* The VA field in a VA, VX or VXR form instruction.  */
   3615 #define VA UI7 + 1
   3616   { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
   3617 
   3618   /* The VB field in a VA, VX or VXR form instruction.  */
   3619 #define VB VA + 1
   3620   { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
   3621 
   3622   /* The VC field in a VA form instruction.  */
   3623 #define VC VB + 1
   3624   { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
   3625 
   3626   /* The VD or VS field in a VA, VX, VXR or X form instruction.  */
   3627 #define VD VC + 1
   3628 #define VS VD
   3629   { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
   3630 
   3631   /* The SIMM field in a VX form instruction, and TE in Z form.  */
   3632 #define SIMM VD + 1
   3633 #define TE SIMM
   3634   { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
   3635 
   3636   /* The UIMM field in a VX form instruction.  */
   3637 #define UIMM SIMM + 1
   3638 #define DCTL UIMM
   3639 #define rmm UIMM
   3640   { 0x1f, 16, NULL, NULL, 0 },
   3641 
   3642   /* The 3-bit UIMM field in a VX form instruction.  */
   3643 #define UIMM3 UIMM + 1
   3644   { 0x7, 16, NULL, NULL, 0 },
   3645 
   3646   /* The 6-bit UIM field in a X form instruction.  */
   3647 #define UIM6 UIMM3 + 1
   3648   { 0x3f, 16, NULL, NULL, 0 },
   3649 
   3650   /* The SIX field in a VX form instruction.  */
   3651 #define SIX UIM6 + 1
   3652 #define MMMM SIX
   3653   { 0xf, 11, NULL, NULL, 0 },
   3654 
   3655   /* The PS field in a VX form instruction.  */
   3656 #define PS SIX + 1
   3657   { 0x1, 9, NULL, NULL, 0 },
   3658 
   3659   /* The SH field in a vector shift double by bit immediate instruction.  */
   3660 #define SH3 PS + 1
   3661   { 0x7, 6, NULL, NULL, 0 },
   3662 
   3663   /* The SHB field in a VA form instruction.  */
   3664 #define SHB SH3 + 1
   3665   { 0xf, 6, NULL, NULL, 0 },
   3666 
   3667   /* The other UIMM field in a half word EVX form instruction.  */
   3668 #define EVUIMM_1 SHB + 1
   3669   { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
   3670 
   3671 #define EVUIMM_1_EX0 EVUIMM_1 + 1
   3672   { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
   3673 
   3674 #define EVUIMM_2 EVUIMM_1_EX0 + 1
   3675   { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
   3676 
   3677 #define EVUIMM_2_EX0 EVUIMM_2 + 1
   3678   { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
   3679 
   3680   /* The other UIMM field in a word EVX form instruction.  */
   3681 #define EVUIMM_4 EVUIMM_2_EX0 + 1
   3682   { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
   3683 
   3684 #define EVUIMM_4_EX0 EVUIMM_4 + 1
   3685   { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
   3686 
   3687   /* The other UIMM field in a double EVX form instruction.  */
   3688 #define EVUIMM_8 EVUIMM_4_EX0 + 1
   3689   { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
   3690 
   3691 #define EVUIMM_8_EX0 EVUIMM_8 + 1
   3692   { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
   3693 
   3694   /* The WS or DRM field in an X form instruction.  */
   3695 #define WS EVUIMM_8_EX0 + 1
   3696 #define DRM WS
   3697   /* The NNN field in a VX form instruction for SPE2  */
   3698 #define NNN WS
   3699   { 0x7, 11, NULL, NULL, 0 },
   3700 
   3701   /* PowerPC paired singles extensions.  */
   3702   /* W bit in the pair singles instructions for x type instructions.  */
   3703 #define PSWM WS + 1
   3704   /* The BO16 field in a BD8 form instruction.  */
   3705 #define BO16 PSWM
   3706   /* The pst field in a SVRM form instruction.  */
   3707 #define pst PSWM
   3708   /* The L field in a XO form instruction.  */
   3709 #define XOL PSWM
   3710   {  0x1, 10, 0, 0, 0 },
   3711 
   3712   /* IDX bits for quantization in the pair singles instructions.  */
   3713 #define PSQ PSWM + 1
   3714   {  0x7, 12, 0, 0, PPC_OPERAND_GQR },
   3715 
   3716   /* IDX bits for quantization in the pair singles x-type instructions.  */
   3717 #define PSQM PSQ + 1
   3718   {  0x7, 7, 0, 0, PPC_OPERAND_GQR },
   3719 
   3720   /* Smaller D field for quantization in the pair singles instructions.  */
   3721 #define PSD PSQM + 1
   3722   {  0xfff, 0, 0, 0,  PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3723 
   3724   /* The L field in an mtmsrd or A form instruction or R or W in an
   3725      X form.  */
   3726 #define A_L PSD + 1
   3727 #define W A_L
   3728 #define X_R A_L
   3729   { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3730 
   3731   /* The RMC or CY field in a Z23 form instruction.  */
   3732 #define RMC A_L + 1
   3733 #define CY RMC
   3734 #define ew RMC
   3735   { 0x3, 9, NULL, NULL, 0 },
   3736 
   3737 #define R RMC + 1
   3738 #define MP R
   3739 #define P1 R
   3740   { 0x1, 16, NULL, NULL, 0 },
   3741 
   3742 #define RIC R + 1
   3743   { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3744 
   3745 #define PRS RIC + 1
   3746   { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3747 
   3748 #define SP PRS + 1
   3749 #define mi0 SP
   3750   { 0x3, 19, NULL, NULL, 0 },
   3751 
   3752 #define S SP + 1
   3753   { 0x1, 20, NULL, NULL, 0 },
   3754 
   3755   /* The S field in a XL form instruction.  */
   3756 #define SXL S + 1
   3757   { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
   3758 
   3759   /* SH field starting at bit position 16.  */
   3760 #define SH16 SXL + 1
   3761   /* The DCM and DGM fields in a Z form instruction.  */
   3762 #define DCM SH16
   3763 #define DGM DCM
   3764   { 0x3f, 10, NULL, NULL, 0 },
   3765 
   3766   /* The EH field in larx instruction.  */
   3767 #define EH SH16 + 1
   3768   { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3769 
   3770   /* The L field in an mtfsf or XFL form instruction.  */
   3771   /* The A field in a HTM X form instruction.  */
   3772 #define XFL_L EH + 1
   3773 #define HTM_A XFL_L
   3774   { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
   3775 
   3776   /* Xilinx APU related masks and macros */
   3777 #define FCRT XFL_L + 1
   3778 #define FCRT_MASK (0x1f << 21)
   3779   { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
   3780 
   3781   /* Xilinx FSL related masks and macros */
   3782 #define FSL FCRT + 1
   3783 #define FSL_MASK (0x1f << 11)
   3784   { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
   3785 
   3786   /* Xilinx UDI related masks and macros */
   3787 #define URT FSL + 1
   3788   { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
   3789 
   3790 #define URA URT + 1
   3791   { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
   3792 
   3793 #define URB URA + 1
   3794   { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
   3795 
   3796 #define URC URB + 1
   3797   { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
   3798 
   3799   /* The VLESIMM field in a D form instruction.  */
   3800 #define VLESIMM URC + 1
   3801   { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
   3802     PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3803 
   3804   /* The VLENSIMM field in a D form instruction.  */
   3805 #define VLENSIMM VLESIMM + 1
   3806   { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
   3807     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3808 
   3809   /* The VLEUIMM field in a D form instruction.  */
   3810 #define VLEUIMM VLENSIMM + 1
   3811   { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
   3812 
   3813   /* The VLEUIMML field in a D form instruction.  */
   3814 #define VLEUIMML VLEUIMM + 1
   3815   { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
   3816 
   3817   /* The XT and XS fields in an XX1 or XX3 form instruction.  This is
   3818      split.  */
   3819 #define XS6 VLEUIMML + 1
   3820 #define XT6 XS6
   3821   { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
   3822 
   3823   /* The XT and XS fields in an DQ form VSX instruction.  This is split.  */
   3824 #define XSQ6 XT6 + 1
   3825 #define XTQ6 XSQ6
   3826   { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
   3827 
   3828   /* The split XTp and XSp field in a vector paired instruction.  */
   3829 #define XTP XSQ6 + 1
   3830 #define XSP XTP
   3831   { 0x3e, PPC_OPSHIFT_INV, insert_xtp, extract_xtp, PPC_OPERAND_VSR },
   3832 
   3833 #define XTS XTP + 1
   3834   { 0x3f, PPC_OPSHIFT_INV, insert_xts, extract_xts, PPC_OPERAND_VSR },
   3835 
   3836   /* The XT field in a plxv instruction.  Runs into the OP field.  */
   3837 #define XTOP XTS + 1
   3838   { 0x3f, 21, NULL, NULL, PPC_OPERAND_VSR },
   3839 
   3840   /* The XA field in an XX3 form instruction.  This is split.  */
   3841 #define XA6 XTOP + 1
   3842   { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
   3843 
   3844   /* The XA field in an MMA XX3 form instruction.  This is split and
   3845      must not overlap with the ACC operand.  */
   3846 #define XA6a XA6 + 1
   3847   { 0x3f, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
   3848 
   3849   /* The XAp field in an MMA XX3 form instruction.  This is split.
   3850      This is like XA6a, but must be even.  */
   3851 #define XA6ap XA6a + 1
   3852   { 0x3e, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
   3853 
   3854   /* The 5-bit XAp field in an MMA XX3 form instruction.  This is split.
   3855      This is like XA6, but must be even.  */
   3856 #define XA5p XA6ap + 1
   3857   { 0x3e, PPC_OPSHIFT_INV, insert_xa5, extract_xa5, PPC_OPERAND_VSR },
   3858 
   3859   /* The XB field in an XX2 or XX3 form instruction.  This is split.  */
   3860 #define XB6 XA5p + 1
   3861   { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
   3862 
   3863   /* The XB field in an XX3 form instruction.  This is split and
   3864      must not overlap with the ACC operand.  */
   3865 #define XB6a XB6 + 1
   3866   { 0x3f, PPC_OPSHIFT_INV, insert_xb6a, extract_xb6a, PPC_OPERAND_VSR },
   3867 
   3868   /* The 5-bit XBp field in an MMA XX3 form instruction.  This is split.
   3869      This is like XB6, but must be even.  */
   3870 #define XB5p XB6a + 1
   3871   { 0x3e, PPC_OPSHIFT_INV, insert_xb5, extract_xb5, PPC_OPERAND_VSR },
   3872 
   3873   /* The XA and XB fields in an XX3 form instruction when they must be the same.
   3874      This is used in extended mnemonics like xvmovdp.  This is split.  */
   3875 #define XAB6 XB5p + 1
   3876   { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
   3877 
   3878   /* The XC field in an XX4 form instruction.  This is split.  */
   3879 #define XC6 XAB6 + 1
   3880   { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
   3881 
   3882   /* The DM or SHW field in an XX3 form instruction.  */
   3883 #define DM XC6 + 1
   3884 #define SHW DM
   3885   { 0x3, 8, NULL, NULL, 0 },
   3886 
   3887   /* The DM field in an extended mnemonic XX3 form instruction.  */
   3888 #define DMEX DM + 1
   3889   { 0x3, 8, insert_dm, extract_dm, 0 },
   3890 
   3891   /* The UIM field in an XX2 form instruction.  */
   3892 #define UIM DMEX + 1
   3893   /* The 2-bit UIMM field in a VX form instruction.  */
   3894 #define UIMM2 UIM
   3895   /* The 2-bit L field in a darn instruction.  */
   3896 #define LRAND UIM
   3897   { 0x3, 16, NULL, NULL, 0 },
   3898 
   3899 #define ERAT_T UIM + 1
   3900   { 0x7, 21, NULL, NULL, 0 },
   3901 
   3902 #define IH ERAT_T + 1
   3903   { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3904 
   3905   /* The 2-bit SC or PL field in an X form instruction.  */
   3906 #define SC2 IH + 1
   3907 #define PL SC2
   3908   { 0x3, 16, insert_pl, extract_pl, PPC_OPERAND_OPTIONAL },
   3909 
   3910 #define P2 PL + 1
   3911   { 0x3, PPC_OPSHIFT_INV, insert_p2, extract_p2, 0 },
   3912 
   3913   /* The 8-bit IMM8 field in a XX1 form instruction.  */
   3914 #define IMM8 P2 + 1
   3915   { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
   3916 
   3917 #define VX_OFF IMM8 + 1
   3918   { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
   3919 
   3920 #define VX_OFF_SPE2 VX_OFF + 1
   3921   { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
   3922 
   3923 #define BBB VX_OFF_SPE2 + 1
   3924   { 0x7, 13, NULL, NULL, 0 },
   3925 
   3926 #define DDD BBB + 1
   3927 #define VX_MASK_DDD  (VX_MASK & ~0x1)
   3928   { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
   3929 
   3930 #define HH DDD + 1
   3931 #define mo0 HH
   3932   { 0x3, 13, NULL, NULL, 0 },
   3933 
   3934 #define SVi HH + 1
   3935   { 0x3f, 9, NULL, NULL, PPC_OPERAND_NONZERO },
   3936 
   3937 #define vf SVi + 1
   3938 #define sk vf
   3939   { 0x1, 6, NULL, NULL, 0 },
   3940 
   3941 #define vs vf + 1
   3942 #define mm vs
   3943   { 0x1, 7, NULL, NULL, 0 },
   3944 
   3945 #define ms vs + 1
   3946 #define yx ms
   3947   { 0x1, 8, NULL, NULL, 0 },
   3948 
   3949 #define SVLcr ms + 1
   3950   { 0x1, 5, NULL, NULL, 0 },
   3951 
   3952 #define SVxd SVLcr + 1
   3953   { 0x1f, 21, NULL, NULL, PPC_OPERAND_NONZERO },
   3954 
   3955 #define SVyd SVxd + 1
   3956   { 0x1f, 16, NULL, NULL, PPC_OPERAND_NONZERO },
   3957 
   3958 #define SVzd SVyd + 1
   3959 #define SVd SVzd
   3960   { 0x1f, 11, NULL, NULL, PPC_OPERAND_NONZERO },
   3961 
   3962 #define SVrm SVzd + 1
   3963   { 0xf, 7, NULL, NULL, 0 },
   3964 
   3965 #define mi1 SVrm + 1
   3966   { 0x3, 17, NULL, NULL, 0 },
   3967 
   3968 #define mi2 mi1 + 1
   3969   { 0x3, 15, NULL, NULL, 0 },
   3970 };
   3971 
   3972 const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
   3973 
   3974 /* Macros used to form opcodes.  */
   3976 
   3977 /* The main opcode.  */
   3978 #define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
   3979 #define OP_MASK OP (0x3f)
   3980 
   3981 /* The prefix opcode.  */
   3982 #define PREFIX_OP (1ULL << 58)
   3983 
   3984 /* The 2-bit prefix form.  */
   3985 #define PREFIX_FORM(x) ((x & 3ULL) << 56)
   3986 
   3987 #define SUFFIX_MASK ((1ULL << 32) - 1)
   3988 #define PREFIX_MASK (SUFFIX_MASK << 32)
   3989 
   3990 /* Prefix insn, eight byte load/store form 8LS.  */
   3991 #define P8LS (PREFIX_OP | PREFIX_FORM (0))
   3992 
   3993 /* Prefix insn, eight byte register to register form 8RR.  */
   3994 #define P8RR (PREFIX_OP | PREFIX_FORM (1))
   3995 
   3996 /* Prefix insn, modified load/store form MLS.  */
   3997 #define PMLS (PREFIX_OP | PREFIX_FORM (2))
   3998 
   3999 /* Prefix insn, modified register to register form MRR.  */
   4000 #define PMRR (PREFIX_OP | PREFIX_FORM (3))
   4001 
   4002 /* Prefix insn, modified masked immediate register to register form MMIRR.  */
   4003 #define PMMIRR (PREFIX_OP | PREFIX_FORM (3) | (9ULL << 52))
   4004 
   4005 /* An 8-byte D form prefix instruction.  */
   4006 #define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
   4007 
   4008 /* The same as P_D_MASK, but with the RA and PCREL fields specified.  */
   4009 #define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
   4010 
   4011 /* Mask for prefix X form instructions.  */
   4012 #define P_X_MASK (PREFIX_MASK | X_MASK)
   4013 #define P_XX1_MASK (PREFIX_MASK | XX1_MASK)
   4014 
   4015 /* Mask for prefix vector permute insns.  */
   4016 #define P_XX4_MASK (PREFIX_MASK | XX4_MASK)
   4017 #define P_UXX4_MASK (P_XX4_MASK & ~(7ULL << 32))
   4018 #define P_U8XX4_MASK (P_XX4_MASK & ~(0xffULL << 32))
   4019 
   4020 /* MMIRR:XX3-form 8-byte outer product instructions.  */
   4021 #define P_GER_MASK ((-1ULL << 40) | XX3ACC_MASK)
   4022 #define P_GER2_MASK (P_GER_MASK & ~(3ULL << 46))
   4023 #define P_GER4_MASK (P_GER_MASK & ~(15ULL << 44))
   4024 #define P_GER8_MASK (P_GER_MASK & ~(255ULL << 40))
   4025 #define P_GER64_MASK (P_GER_MASK | (3ULL << 32))
   4026 #define P_GERX4_MASK ((-1ULL << 48) | XX3GERX_MASK)
   4027 #define P_GERX2_MASK (P_GERX4_MASK & ~(3ULL << 46))
   4028 
   4029 /* Vector splat immediate op.  */
   4030 #define VSOP(op, xop) (OP (op) | (xop << 17))
   4031 #define P_VS_MASK ((-1ULL << 48) | VSOP (0x3f, 0xf))
   4032 #define P_VSI_MASK ((-1ULL << 48) | VSOP (0x3f, 0xe))
   4033 
   4034 /* The main opcode combined with a trap code in the TO field of a D
   4035    form instruction.  Used for extended mnemonics for the trap
   4036    instructions.  */
   4037 #define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
   4038 #define OPTO_MASK (OP_MASK | TO_MASK)
   4039 
   4040 /* The main opcode combined with a comparison size bit in the L field
   4041    of a D form or X form instruction.  Used for extended mnemonics for
   4042    the comparison instructions.  */
   4043 #define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
   4044 #define OPL_MASK OPL (0x3f,1)
   4045 
   4046 /* The main opcode combined with an update code in D form instruction.
   4047    Used for extended mnemonics for VLE memory instructions.  */
   4048 #define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
   4049 #define OPVUP_MASK OPVUP (0x3f,  0xff)
   4050 
   4051 /* The main opcode combined with an update code and the RT fields
   4052    specified in D form instruction.  Used for VLE volatile context
   4053    save/restore instructions.  */
   4054 #define OPVUPRT(x,vup,rt)			\
   4055   (OPVUP (x, vup)				\
   4056    | ((((uint64_t)(rt)) & 0x1f) << 21))
   4057 #define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
   4058 
   4059 /* An A form instruction.  */
   4060 #define A(op, xop, rc)				\
   4061   (OP (op)					\
   4062    | ((((uint64_t)(xop)) & 0x1f) << 1)	\
   4063    | (((uint64_t)(rc)) & 1))
   4064 #define A_MASK A (0x3f, 0x1f, 1)
   4065 
   4066 /* An A_MASK with the FRB field fixed.  */
   4067 #define AFRB_MASK (A_MASK | FRB_MASK)
   4068 
   4069 /* An A_MASK with the FRC field fixed.  */
   4070 #define AFRC_MASK (A_MASK | FRC_MASK)
   4071 
   4072 /* An A_MASK with the FRA and FRC fields fixed.  */
   4073 #define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
   4074 
   4075 /* An AFRAFRC_MASK, but with L bit clear.  */
   4076 #define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
   4077 
   4078 /* A B form instruction.  */
   4079 #define B(op, aa, lk)				\
   4080   (OP (op)					\
   4081    | ((((uint64_t)(aa)) & 1) << 1)		\
   4082    | ((lk) & 1))
   4083 #define B_MASK B (0x3f, 1, 1)
   4084 
   4085 /* A BD8 form instruction.  This is a 16-bit instruction.  */
   4086 #define BD8(op, aa, lk)				\
   4087   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4088    | (((aa) & 1) << 9)				\
   4089    | (((lk) & 1) << 8))
   4090 #define BD8_MASK BD8 (0x3f, 1, 1)
   4091 
   4092 /* Another BD8 form instruction.  This is a 16-bit instruction.  */
   4093 #define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
   4094 #define BD8IO_MASK BD8IO (0x1f)
   4095 
   4096 /* A BD8 form instruction for simplified mnemonics.  */
   4097 #define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
   4098 /* A mask that excludes BO32 and BI32.  */
   4099 #define EBD8IO1_MASK 0xf800
   4100 /* A mask that includes BO32 and excludes BI32.  */
   4101 #define EBD8IO2_MASK 0xfc00
   4102 /* A mask that include BO32 AND BI32.  */
   4103 #define EBD8IO3_MASK 0xff00
   4104 
   4105 /* A BD15 form instruction.  */
   4106 #define BD15(op, aa, lk)			\
   4107   (OP (op)					\
   4108    | ((((uint64_t)(aa)) & 0xf) << 22)	\
   4109    | ((lk) & 1))
   4110 #define BD15_MASK BD15 (0x3f, 0xf, 1)
   4111 
   4112 /* A BD15 form instruction for extended conditional branch mnemonics.  */
   4113 #define EBD15(op, aa, bo, lk)			\
   4114   (((op) & 0x3fu) << 26)			\
   4115   | (((aa) & 0xf) << 22)			\
   4116   | (((bo) & 0x3) << 20)			\
   4117   | ((lk) & 1)
   4118 #define EBD15_MASK 0xfff00001
   4119 
   4120 /* A BD15 form instruction for extended conditional branch mnemonics
   4121    with BI.  */
   4122 #define EBD15BI(op, aa, bo, bi, lk)		\
   4123   ((((op) & 0x3fu) << 26)			\
   4124    | (((aa) & 0xf) << 22)			\
   4125    | (((bo) & 0x3) << 20)			\
   4126    | (((bi) & 0x3) << 16)			\
   4127    | ((lk) & 1))
   4128 
   4129 #define EBD15BI_MASK  0xfff30001
   4130 
   4131 /* A BD24 form instruction.  */
   4132 #define BD24(op, aa, lk)			\
   4133   (OP (op)					\
   4134    | ((((uint64_t)(aa)) & 1) << 25)	\
   4135    | ((lk) & 1))
   4136 #define BD24_MASK BD24 (0x3f, 1, 1)
   4137 
   4138 /* A B form instruction setting the BO field.  */
   4139 #define BBO(op, bo, aa, lk)			\
   4140   (B ((op), (aa), (lk))				\
   4141    | ((((uint64_t)(bo)) & 0x1f) << 21))
   4142 #define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
   4143 
   4144 /* A BBO_MASK with the y bit of the BO field removed.  This permits
   4145    matching a conditional branch regardless of the setting of the y
   4146    bit.  Similarly for the 'at' bits used for power4 branch hints.  */
   4147 #define Y_MASK	 (((uint64_t) 1) << 21)
   4148 #define AT1_MASK (((uint64_t) 3) << 21)
   4149 #define AT2_MASK (((uint64_t) 9) << 21)
   4150 #define BBOY_MASK  (BBO_MASK &~ Y_MASK)
   4151 #define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
   4152 
   4153 /* A B form instruction setting the BO field and the condition bits of
   4154    the BI field.  */
   4155 #define BBOCB(op, bo, cb, aa, lk) \
   4156   (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
   4157 #define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
   4158 
   4159 /* A BBOCB_MASK with the y bit of the BO field removed.  */
   4160 #define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
   4161 #define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
   4162 #define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
   4163 
   4164 /* A BBOYCB_MASK in which the BI field is fixed.  */
   4165 #define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
   4166 #define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
   4167 
   4168 /* A VLE C form instruction.  */
   4169 #define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
   4170 #define C_LK_MASK C_LK(0x7fff, 1)
   4171 #define C(x) ((((uint64_t)(x)) & 0xffff))
   4172 #define C_MASK C(0xffff)
   4173 
   4174 /* An Context form instruction.  */
   4175 #define CTX(op, xop)   (OP (op) | (((uint64_t)(xop)) & 0x7))
   4176 #define CTX_MASK CTX(0x3f, 0x7)
   4177 
   4178 /* An User Context form instruction.  */
   4179 #define UCTX(op, xop)  (OP (op) | (((uint64_t)(xop)) & 0x1f))
   4180 #define UCTX_MASK UCTX(0x3f, 0x1f)
   4181 
   4182 /* The main opcode mask with the RA field clear.  */
   4183 #define DRA_MASK (OP_MASK | RA_MASK)
   4184 
   4185 /* A DQ form VSX instruction.  */
   4186 #define DQX(op, xop) (OP (op) | ((xop) & 0x7))
   4187 #define DQX_MASK DQX (0x3f, 7)
   4188 
   4189 /* A DQ form VSX vector paired instruction.  */
   4190 #define DQXP(op, xop) (OP (op) | ((xop) & 0xf))
   4191 #define DQXP_MASK DQXP (0x3f, 0xf)
   4192 
   4193 /* A DS form instruction.  */
   4194 #define DSO(op, xop) (OP (op) | ((xop) & 0x3))
   4195 #define DS_MASK DSO (0x3f, 3)
   4196 
   4197 /* An DX form instruction.  */
   4198 #define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
   4199 #define DX_MASK DX (0x3f, 0x1f)
   4200 /* An DX form instruction with the D bits specified.  */
   4201 #define NODX_MASK (DX_MASK | 0x1fffc1)
   4202 
   4203 /* An EVSEL form instruction.  */
   4204 #define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
   4205 #define EVSEL_MASK EVSEL(0x3f, 0xff)
   4206 
   4207 /* An IA16 form instruction.  */
   4208 #define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
   4209 #define IA16_MASK IA16(0x3f, 0x1f)
   4210 
   4211 /* An I16A form instruction.  */
   4212 #define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
   4213 #define I16A_MASK I16A(0x3f, 0x1f)
   4214 
   4215 /* An I16L form instruction.  */
   4216 #define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
   4217 #define I16L_MASK I16L(0x3f, 0x1f)
   4218 
   4219 /* An IM7 form instruction.  */
   4220 #define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
   4221 #define IM7_MASK IM7(0x1f)
   4222 
   4223 /* An M form instruction.  */
   4224 #define M(op, rc) (OP (op) | ((rc) & 1))
   4225 #define M_MASK M (0x3f, 1)
   4226 
   4227 /* An LI20 form instruction.  */
   4228 #define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
   4229 #define LI20_MASK LI20(0x3f, 0x1)
   4230 
   4231 /* An M form instruction with the ME field specified.  */
   4232 #define MME(op, me, rc)				\
   4233   (M ((op), (rc))				\
   4234    | ((((uint64_t)(me)) & 0x1f) << 1))
   4235 
   4236 /* An M_MASK with the MB field fixed.  */
   4237 #define MMB_MASK (M_MASK | MB_MASK)
   4238 
   4239 /* An M_MASK with the ME field fixed.  */
   4240 #define MME_MASK (M_MASK | ME_MASK)
   4241 
   4242 /* An M_MASK with the MB and ME fields fixed.  */
   4243 #define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
   4244 
   4245 /* An M_MASK with the SH and ME fields fixed.  */
   4246 #define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
   4247 
   4248 /* An M_MASK with the SH and MB fields fixed.  */
   4249 #define MSHMB_MASK (M_MASK | SH_MASK | MB_MASK)
   4250 
   4251 /* An MD form instruction.  */
   4252 #define MD(op, xop, rc)				\
   4253   (OP (op)					\
   4254    | ((((uint64_t)(xop)) & 0x7) << 2)	\
   4255    | ((rc) & 1))
   4256 #define MD_MASK MD (0x3f, 0x7, 1)
   4257 
   4258 /* An MD_MASK with the MB field fixed.  */
   4259 #define MDMB_MASK (MD_MASK | MB6_MASK)
   4260 
   4261 /* An MD_MASK with the SH field fixed.  */
   4262 #define MDSH_MASK (MD_MASK | SH6_MASK)
   4263 
   4264 /* An MDS form instruction.  */
   4265 #define MDS(op, xop, rc)			\
   4266   (OP (op)					\
   4267    | ((((uint64_t)(xop)) & 0xf) << 1)	\
   4268    | ((rc) & 1))
   4269 #define MDS_MASK MDS (0x3f, 0xf, 1)
   4270 
   4271 /* An MDS_MASK with the MB field fixed.  */
   4272 #define MDSMB_MASK (MDS_MASK | MB6_MASK)
   4273 
   4274 /* An SC form instruction.  */
   4275 #define SC(op, sa, lk)				\
   4276   (OP (op)					\
   4277    | ((((uint64_t)(sa)) & 1) << 1)		\
   4278    | ((lk) & 1))
   4279 #define SC_MASK					\
   4280   (OP_MASK					\
   4281    | (((uint64_t) 0x3ff) << 16)		\
   4282    | (((uint64_t) 1) << 1)			\
   4283    | 1)
   4284 
   4285 /* An SCI8 form instruction.  */
   4286 #define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
   4287 #define SCI8_MASK SCI8(0x3f, 0x1f)
   4288 
   4289 /* An SCI8 form instruction.  */
   4290 #define SCI8BF(op, fop, xop)			\
   4291   (OP (op)					\
   4292    | ((((uint64_t)(xop)) & 0x1f) << 11)	\
   4293    | (((fop) & 7) << 23))
   4294 #define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
   4295 
   4296 /* An SD4 form instruction.  This is a 16-bit instruction.  */
   4297 #define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
   4298 #define SD4_MASK SD4(0xf)
   4299 
   4300 /* An SE_IM5 form instruction.  This is a 16-bit instruction.  */
   4301 #define SE_IM5(op, xop)				\
   4302   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4303    | (((xop) & 0x1) << 9))
   4304 #define SE_IM5_MASK SE_IM5(0x3f, 1)
   4305 
   4306 /* An SE_R form instruction.  This is a 16-bit instruction.  */
   4307 #define SE_R(op, xop)				\
   4308   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4309    | (((xop) & 0x3f) << 4))
   4310 #define SE_R_MASK SE_R(0x3f, 0x3f)
   4311 
   4312 /* An SE_RR form instruction.  This is a 16-bit instruction.  */
   4313 #define SE_RR(op, xop)				\
   4314   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4315    | (((xop) & 0x3) << 8))
   4316 #define SE_RR_MASK SE_RR(0x3f, 3)
   4317 
   4318 /* A VX form instruction.  */
   4319 #define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
   4320 
   4321 /* The mask for an VX form instruction.  */
   4322 #define VX_MASK	VX(0x3f, 0x7ff)
   4323 
   4324 /* A VX LSP form instruction.  */
   4325 #define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
   4326 
   4327 /* The mask for an VX LSP form instruction.  */
   4328 #define VX_LSP_MASK	VX_LSP(0x3f, 0xffff)
   4329 #define VX_LSP_OFF_MASK	VX_LSP(0x3f, 0x7fc)
   4330 
   4331 /* Additional format of VX SPE2 form instruction.   */
   4332 #define VX_RA_CONST(op, xop, bits11_15)			\
   4333   (OP (op)						\
   4334    | (((uint64_t)(bits11_15) & 0x1f) << 16)	\
   4335    | (((uint64_t)(xop)) & 0x7ff))
   4336 #define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
   4337 
   4338 #define VX_RB_CONST(op, xop, bits16_20)			\
   4339   (OP (op)						\
   4340    | (((uint64_t)(bits16_20) & 0x1f) << 11)	\
   4341    | (((uint64_t)(xop)) & 0x7ff))
   4342 #define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
   4343 
   4344 #define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
   4345 
   4346 #define VX_SPE_CRFD(op, xop, bits9_10)			\
   4347   (OP (op)						\
   4348    | (((uint64_t)(bits9_10) & 0x3) << 21)		\
   4349    | (((uint64_t)(xop)) & 0x7ff))
   4350 #define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
   4351 
   4352 #define VX_SPE2_CLR(op, xop, bit16)			\
   4353   (OP (op)						\
   4354    | (((uint64_t)(bit16) & 0x1) << 15)		\
   4355    | (((uint64_t)(xop)) & 0x7ff))
   4356 #define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
   4357 
   4358 #define VX_SPE2_SPLATB(op, xop, bits19_20)		\
   4359   (OP (op)						\
   4360    | (((uint64_t)(bits19_20) & 0x3) << 11)		\
   4361    | (((uint64_t)(xop)) & 0x7ff))
   4362 #define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
   4363 
   4364 #define VX_SPE2_OCTET(op, xop, bits16_17)		\
   4365   (OP (op)						\
   4366    | (((uint64_t)(bits16_17) & 0x3) << 14)		\
   4367    | (((uint64_t)(xop)) & 0x7ff))
   4368 #define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
   4369 
   4370 #define VX_SPE2_DDHH(op, xop, bit16) 			\
   4371   (OP (op)						\
   4372    | (((uint64_t)(bit16) & 0x1) << 15)		\
   4373    | (((uint64_t)(xop)) & 0x7ff))
   4374 #define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
   4375 
   4376 #define VX_SPE2_HH(op, xop, bit16, bits19_20)		\
   4377   (OP (op)						\
   4378    | (((uint64_t)(bit16) & 0x1) << 15)		\
   4379    | (((uint64_t)(bits19_20) & 0x3) << 11)	\
   4380    | (((uint64_t)(xop)) & 0x7ff))
   4381 #define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
   4382 
   4383 #define VX_SPE2_EVMAR(op, xop)				\
   4384   (OP (op)						\
   4385    | ((uint64_t)(0x1) << 11)			\
   4386    | (((uint64_t)(xop)) & 0x7ff))
   4387 #define VX_SPE2_EVMAR_MASK				\
   4388   (VX_SPE2_EVMAR(0x3f, 0x7ff)				\
   4389    | ((uint64_t)(0x1) << 11))
   4390 
   4391 /* A VX_MASK with the VA field fixed.  */
   4392 #define VXVA_MASK (VX_MASK | (0x1f << 16))
   4393 
   4394 /* A VX_MASK with the VB field fixed.  */
   4395 #define VXVB_MASK (VX_MASK | (0x1f << 11))
   4396 
   4397 /* A VX_MASK with the VA and VB fields fixed.  */
   4398 #define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
   4399 
   4400 /* A VX_MASK with the VD and VA fields fixed.  */
   4401 #define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
   4402 
   4403 /* A VX_MASK with a UIMM4 field.  */
   4404 #define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
   4405 
   4406 /* A VX_MASK with a UIMM3 field.  */
   4407 #define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
   4408 
   4409 /* A VX_MASK with a UIMM2 field.  */
   4410 #define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
   4411 
   4412 /* A VX_MASK with a PS field.  */
   4413 #define VXPS_MASK (VX_MASK & ~(0x1 << 9))
   4414 
   4415 /* A VX_MASK with the VA field fixed with a PS field.  */
   4416 #define VXVAPS_MASK (VXVA_MASK & ~(0x1 << 9))
   4417 
   4418 /* A VX_MASK with the VA field fixed with a MP field.  */
   4419 #define VXVAM_MASK (VXVA_MASK & ~(0x1 << 16))
   4420 
   4421 /* A VX_MASK for instructions using a BF field.  */
   4422 #define VXBF_MASK (VX_MASK | (3 << 21))
   4423 
   4424 /* A VX_MASK for instructions with an RC field.  */
   4425 #define VXRC_MASK (VX_MASK & ~(0x1f << 6))
   4426 
   4427 /* A VX_MASK for instructions with a SH field.  */
   4428 #define VXSH_MASK (VX_MASK & ~(0x7 << 6))
   4429 
   4430 /* A VA form instruction.  */
   4431 #define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
   4432 
   4433 /* The mask for an VA form instruction.  */
   4434 #define VXA_MASK VXA(0x3f, 0x3f)
   4435 
   4436 /* A VXA_MASK with a SHB field.  */
   4437 #define VXASHB_MASK (VXA_MASK | (1 << 10))
   4438 
   4439 /* A VXR form instruction.  */
   4440 #define VXR(op, xop, rc)			\
   4441   (OP (op)					\
   4442    | (((uint64_t)(rc) & 1) << 10)		\
   4443    | (((uint64_t)(xop)) & 0x3ff))
   4444 
   4445 /* The mask for a VXR form instruction.  */
   4446 #define VXR_MASK VXR(0x3f, 0x3ff, 1)
   4447 
   4448 /* A VX form instruction with a VA tertiary opcode.  */
   4449 #define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
   4450 
   4451 #define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
   4452 #define VXASH_MASK VXASH (0x3f, 0x1f)
   4453 
   4454 /* An X form instruction.  */
   4455 #define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
   4456 
   4457 /* A X form instruction for Quad-Precision FP Instructions.  */
   4458 #define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
   4459 
   4460 /* An EX form instruction.  */
   4461 #define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
   4462 
   4463 /* The mask for an EX form instruction.  */
   4464 #define EX_MASK EX (0x3f, 0x7ff)
   4465 
   4466 /* An XX2 form instruction.  */
   4467 #define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
   4468 
   4469 /* A XX2 form instruction with the VA bits specified.  */
   4470 #define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
   4471 
   4472 /* An XX3 form instruction.  */
   4473 #define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
   4474 
   4475 /* An XX3 form instruction with the RC bit specified.  */
   4476 #define XX3RC(op, xop, rc)			\
   4477   (OP (op)					\
   4478    | (((uint64_t)(rc) & 1) << 10)		\
   4479    | ((((uint64_t)(xop)) & 0x7f) << 3))
   4480 
   4481 /* An XX4 form instruction.  */
   4482 #define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
   4483 
   4484 /* A Z form instruction.  */
   4485 #define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
   4486 
   4487 /* An X form instruction with the RC bit specified.  */
   4488 #define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
   4489 
   4490 /* A X form instruction for Quad-Precision FP Instructions with RC bit.  */
   4491 #define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
   4492 
   4493 /* An X form instruction with the RA bits specified as two ops.  */
   4494 #define XMMF(op, xop, mop0, mop1)		\
   4495   (X ((op), (xop))				\
   4496    | ((mop0) & 3) << 19				\
   4497    | ((mop1) & 7) << 16)
   4498 
   4499 /* A Z form instruction with the RC bit specified.  */
   4500 #define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
   4501 
   4502 /* The mask for an X form instruction.  */
   4503 #define X_MASK XRC (0x3f, 0x3ff, 1)
   4504 
   4505 /* The mask for an X form instruction with the BF bits specified.  */
   4506 #define XBF_MASK (X_MASK | (3 << 21))
   4507 
   4508 /* An X form instruction without the RC field specified.  */
   4509 #define XRC_MASK XRC (0x3f, 0x3ff, 0)
   4510 
   4511 /* An X form wait instruction with everything filled in except the WC
   4512    field.  */
   4513 #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
   4514 
   4515 /* An X form wait instruction with everything filled in except the WC
   4516    and PL fields.  */
   4517 #define XWCPL_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | (3 << 18) | RB_MASK)
   4518 
   4519 /* The mask for an XX1 form instruction.  */
   4520 #define XX1_MASK X (0x3f, 0x3ff)
   4521 
   4522 /* An XX1_MASK with the RB field fixed.  */
   4523 #define XX1RB_MASK (XX1_MASK | RB_MASK)
   4524 
   4525 /* The mask for an XX2 form instruction.  */
   4526 #define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
   4527 
   4528 /* The mask for an XX2 form instruction with the UIM bits specified.  */
   4529 #define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
   4530 
   4531 /* The mask for an XX2 form instruction with the 4 UIM bits specified.  */
   4532 #define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
   4533 
   4534 /* The mask for an XX2 form instruction with the BF bits specified.  */
   4535 #define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
   4536 
   4537 /* The mask for an XX2 form instruction with the BF and DCMX bits
   4538    specified.  */
   4539 #define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
   4540 
   4541 /* The mask for an XX2 form instruction with a split DCMX bits
   4542    specified.  */
   4543 #define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
   4544 
   4545 /* The mask for an XX3 form instruction.  */
   4546 #define XX3_MASK XX3 (0x3f, 0xff)
   4547 
   4548 /* The mask for an XX3 form instruction with the BF bits specified.  */
   4549 #define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
   4550 
   4551 /* An X_MASK with an accumulator register and the RA and RB fields fixed.  */
   4552 #define XACC_MASK (X_MASK | RA_MASK | RB_MASK | (3 << 21))
   4553 #define XDMR_MASK XACC_MASK
   4554 
   4555 /* An X_MASK with two dense math register.  */
   4556 #define XDMRDMR_MASK (X_MASK | RA_MASK | (3 << 21) | (3 << 11))
   4557 
   4558 /* The mask for an XX3 form instruction with the DM or SHW bits
   4559    specified.  */
   4560 #define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
   4561 #define XX3SHW_MASK XX3DM_MASK
   4562 
   4563 /* The masks for X* form instructions with an ACC/DMR register.  */
   4564 #define XX2ACC_MASK (XX2 (0x3f, 0x1ff) | (3 << 21) | 1)
   4565 #define XX3ACC_MASK (XX3_MASK | (3 << 21) | 1)
   4566 #define XX3DMR_MASK (XX3ACC_MASK | (1 << 11))
   4567 #define XX2DMR_MASK (XX2ACC_MASK | (0xf << 17))
   4568 #define XX3GERX_MASK (XX3ACC_MASK | (1 << 16))
   4569 
   4570 /* The mask for an XX4 form instruction.  */
   4571 #define XX4_MASK XX4 (0x3f, 0x3)
   4572 
   4573 /* An X form wait instruction with everything filled in except the WC
   4574    field.  */
   4575 #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
   4576 
   4577 /* The mask for an XMMF form instruction.  */
   4578 #define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
   4579 
   4580 /* The mask for a Z form instruction.  */
   4581 #define Z_MASK ZRC (0x3f, 0x1ff, 1)
   4582 #define Z2_MASK ZRC (0x3f, 0xff, 1)
   4583 
   4584 /* An X_MASK with the RA/VA field fixed.  */
   4585 #define XRA_MASK (X_MASK | RA_MASK)
   4586 #define XVA_MASK XRA_MASK
   4587 
   4588 /* An XRA_MASK with the A_L/W field clear.  */
   4589 #define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
   4590 #define XRLA_MASK XWRA_MASK
   4591 
   4592 /* An X_MASK with the RB field fixed.  */
   4593 #define XRB_MASK (X_MASK | RB_MASK)
   4594 
   4595 /* An X_MASK with the RT field fixed.  */
   4596 #define XRT_MASK (X_MASK | RT_MASK)
   4597 
   4598 /* An XRT_MASK mask with the 2 L bits clear.  */
   4599 #define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
   4600 
   4601 /* An XRT_MASK mask with the 3 L bits clear.  */
   4602 #define XL3RT_MASK (XRT_MASK & ~((uint64_t) 0x7 << 21))
   4603 
   4604 /* An X_MASK with the RA and RB fields fixed.  */
   4605 #define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
   4606 
   4607 /* An XBF_MASK with the RA and RB fields fixed.  */
   4608 #define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
   4609 
   4610 /* An XRARB_MASK, but with the L bit clear.  */
   4611 #define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
   4612 
   4613 /* An XRARB_MASK, but with the L bits in a darn instruction clear.  */
   4614 #define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
   4615 
   4616 /* An X_MASK with the RT and RA fields fixed.  */
   4617 #define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
   4618 
   4619 /* An X_MASK with the RT and RB fields fixed.  */
   4620 #define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
   4621 
   4622 /* An XRTRA_MASK, but with L bit clear.  */
   4623 #define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
   4624 
   4625 /* An X_MASK with the RT, RA and RB fields fixed.  */
   4626 #define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
   4627 
   4628 /* An XRTRARB_MASK, but with L bit clear.  */
   4629 #define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
   4630 
   4631 /* An XRTRARB_MASK, but with A bit clear.  */
   4632 #define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
   4633 
   4634 /* An XRTRARB_MASK, but with BF bits clear.  */
   4635 #define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
   4636 
   4637 /* An X form instruction with the L bit specified.  */
   4638 #define XOPL(op, xop, l)			\
   4639   (X ((op), (xop))				\
   4640    | ((((uint64_t)(l)) & 1) << 21))
   4641 
   4642 /* An X form instruction with the 2 L bits specified.  */
   4643 #define XOPL2(op, xop, l)			\
   4644   (X ((op), (xop))				\
   4645    | ((((uint64_t)(l)) & 3) << 21))
   4646 
   4647 /* An X form instruction with the 3 L bits specified.  */
   4648 #define XOPL3(op, xop, l)			\
   4649   (X ((op), (xop))				\
   4650    | ((((uint64_t)(l)) & 7) << 21))
   4651 
   4652 /* An X form instruction with the WC and PL bits specified.  */
   4653 #define XWCPL(op, xop, wc, pl)			\
   4654   (XOPL3 ((op), (xop), (wc))			\
   4655    | ((((uint64_t)(pl)) & 3) << 16))
   4656 
   4657 /* An X form instruction with the L bit and RC bit specified.  */
   4658 #define XRCL(op, xop, l, rc)			\
   4659   (XRC ((op), (xop), (rc))			\
   4660    | ((((uint64_t)(l)) & 1) << 21))
   4661 
   4662 /* An X form instruction with RT fields specified */
   4663 #define XRT(op, xop, rt)			\
   4664   (X ((op), (xop))				\
   4665    | ((((uint64_t)(rt)) & 0x1f) << 21))
   4666 
   4667 /* An X form instruction with RT and RA fields specified */
   4668 #define XRTRA(op, xop, rt, ra)			\
   4669   (X ((op), (xop))				\
   4670    | ((((uint64_t)(rt)) & 0x1f) << 21)	\
   4671    | ((((uint64_t)(ra)) & 0x1f) << 16))
   4672 
   4673 /* The mask for an X form comparison instruction.  */
   4674 #define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
   4675 
   4676 /* The mask for an X form comparison instruction with the L field
   4677    fixed.  */
   4678 #define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
   4679 
   4680 /* An X form trap instruction with the TO field specified.  */
   4681 #define XTO(op, xop, to)			\
   4682   (X ((op), (xop))				\
   4683    | ((((uint64_t)(to)) & 0x1f) << 21))
   4684 #define XTO_MASK (X_MASK | TO_MASK)
   4685 
   4686 /* An X form tlb instruction with the SH field specified.  */
   4687 #define XTLB(op, xop, sh)			\
   4688   (X ((op), (xop))				\
   4689    | ((((uint64_t)(sh)) & 0x1f) << 11))
   4690 #define XTLB_MASK (X_MASK | SH_MASK)
   4691 
   4692 /* An X form sync instruction.  */
   4693 #define XSYNC(op, xop, l)			\
   4694   (X ((op), (xop))				\
   4695    | ((((uint64_t)(l)) & 3) << 21))
   4696 
   4697 /* An X form sync instruction with everything filled in except the LS
   4698    field.  */
   4699 #define XSYNC_MASK (0xff9fffff)
   4700 
   4701 /* An X form sync instruction with everything filled in except the L
   4702    and E fields.  */
   4703 #define XSYNCLE_MASK (0xff90ffff)
   4704 
   4705 /* An X form sync instruction.  */
   4706 #define XSYNCLS(op, xop, l, s)			\
   4707   (X ((op), (xop))				\
   4708    | ((((uint64_t)(l)) & 7) << 21)		\
   4709    | ((((uint64_t)(s)) & 3) << 16))
   4710 
   4711 /* An X form sync instruction with everything filled in except the
   4712    L and SC fields.  */
   4713 #define XSYNCLS_MASK (0xff1cffff)
   4714 
   4715 /* An X_MASK, but with the EH bit clear.  */
   4716 #define XEH_MASK (X_MASK & ~((uint64_t )1))
   4717 
   4718 /* An X form AltiVec dss instruction.  */
   4719 #define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
   4720 #define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
   4721 
   4722 /* An XFL form instruction.  */
   4723 #define XFL(op, xop, rc)			\
   4724   (OP (op)					\
   4725    | ((((uint64_t)(xop)) & 0x3ff) << 1)	\
   4726    | (((uint64_t)(rc)) & 1))
   4727 #define XFL_MASK XFL (0x3f, 0x3ff, 1)
   4728 
   4729 /* An X form isel instruction.  */
   4730 #define XISEL(op, xop, cr)	(OP (op) | ((xop) << 1) | ((cr) << 6))
   4731 #define XISEL_MASK	XISEL(0x3f, 0x1f, 0)
   4732 
   4733 /* An XL form instruction with the LK field set to 0.  */
   4734 #define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
   4735 
   4736 /* An XL form instruction which uses the LK field.  */
   4737 #define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
   4738 
   4739 /* The mask for an XL form instruction.  */
   4740 #define XL_MASK XLLK (0x3f, 0x3ff, 1)
   4741 
   4742 /* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear.  */
   4743 #define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
   4744 
   4745 /* An XL form instruction which explicitly sets the BO field.  */
   4746 #define XLO(op, bo, xop, lk) \
   4747   (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
   4748 #define XLO_MASK (XL_MASK | BO_MASK)
   4749 
   4750 /* An XL form instruction which sets the BO field and the condition
   4751    bits of the BI field.  */
   4752 #define XLOCB(op, bo, cb, xop, lk) \
   4753   (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
   4754 
   4755 /* An XL_MASK with the BB field fixed.  */
   4756 #define XLBB_MASK (XL_MASK | BB_MASK)
   4757 
   4758 /* A mask for branch instructions using the BH field.  */
   4759 #define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
   4760 
   4761 /* An XLBH_MASK with the BO field fixed.  */
   4762 #define XLBOBB_MASK (XLBH_MASK | BO_MASK)
   4763 
   4764 /* An XLBH_MASK with the BO and BI fields fixed.  */
   4765 #define XLBOBIBB_MASK (XLBOBB_MASK | BI_MASK)
   4766 
   4767 /* An XLBH_MASK with the BO and condition bits of the BI fields fixed.  */
   4768 #define XLBOCBBB_MASK (XLBOBB_MASK | (3 << 16))
   4769 
   4770 /* An X form mbar instruction with MO field.  */
   4771 #define XMBAR(op, xop, mo)			\
   4772   (X ((op), (xop))				\
   4773    | ((((uint64_t)(mo)) & 1) << 21))
   4774 
   4775 /* An XO form instruction.  */
   4776 #define XO(op, xop, oe, rc)			\
   4777   (OP (op)					\
   4778    | ((((uint64_t)(xop)) & 0x1ff) << 1)	\
   4779    | ((((uint64_t)(oe)) & 1) << 10)	\
   4780    | (((unsigned long)(rc)) & 1))
   4781 #define XO_MASK XO (0x3f, 0x1ff, 1, 1)
   4782 #define XOL_MASK XO (0x3f, 0x1ff, 0, 1)
   4783 
   4784 /* An XO_MASK with the RB field fixed.  */
   4785 #define XORB_MASK (XO_MASK | RB_MASK)
   4786 
   4787 /* An XOPS form instruction for paired singles.  */
   4788 #define XOPS(op, xop, rc)			\
   4789   (OP (op)					\
   4790    | ((((uint64_t)(xop)) & 0x3ff) << 1)	\
   4791    | (((uint64_t)(rc)) & 1))
   4792 #define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
   4793 
   4794 
   4795 /* An XS form instruction.  */
   4796 #define XS(op, xop, rc)				\
   4797   (OP (op)					\
   4798    | ((((uint64_t)(xop)) & 0x1ff) << 2)	\
   4799    | (((uint64_t)(rc)) & 1))
   4800 #define XS_MASK XS (0x3f, 0x1ff, 1)
   4801 
   4802 /* A mask for the FXM version of an XFX form instruction.  */
   4803 #define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
   4804 
   4805 /* An XFX form instruction with the FXM field filled in.  */
   4806 #define XFXM(op, xop, fxm, p4)			\
   4807   (X ((op), (xop))				\
   4808    | ((((uint64_t)(fxm)) & 0xff) << 12)	\
   4809    | ((uint64_t)(p4) << 20))
   4810 
   4811 /* An XFX form instruction with the SPR field filled in.  */
   4812 #define XSPR(op, xop, spr)			\
   4813   (X ((op), (xop))				\
   4814    | ((((uint64_t)(spr)) & 0x1f) << 16)	\
   4815    | ((((uint64_t)(spr)) & 0x3e0) << 6))
   4816 #define XSPR_MASK (X_MASK | SPR_MASK)
   4817 
   4818 /* An XFX form instruction with the SPR field filled in except for the
   4819    SPRBAT field.  */
   4820 #define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
   4821 
   4822 /* An XFX form instruction with the SPR field filled in except for the
   4823    SPRGQR field.  */
   4824 #define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
   4825 
   4826 /* An XFX form instruction with the SPR field filled in except for the
   4827    SPRG field.  */
   4828 #define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
   4829 
   4830 /* An X form instruction with everything filled in except the E field.  */
   4831 #define XE_MASK (0xffff7fff)
   4832 
   4833 /* An X form user context instruction.  */
   4834 #define XUC(op, xop)  (OP (op) | (((uint64_t)(xop)) & 0x1f))
   4835 #define XUC_MASK      XUC(0x3f, 0x1f)
   4836 
   4837 /* An XW form instruction.  */
   4838 #define XW(op, xop, rc)				\
   4839   (OP (op)					\
   4840    | ((((uint64_t)(xop)) & 0x3f) << 1)	\
   4841    | ((rc) & 1))
   4842 /* The mask for a G form instruction. rc not supported at present.  */
   4843 #define XW_MASK XW (0x3f, 0x3f, 0)
   4844 
   4845 /* An APU form instruction.  */
   4846 #define APU(op, xop, rc)			\
   4847   (OP (op)					\
   4848    | (((uint64_t)(xop)) & 0x3ff) << 1	\
   4849    | ((rc) & 1))
   4850 
   4851 /* The mask for an APU form instruction.  */
   4852 #define APU_MASK APU (0x3f, 0x3ff, 1)
   4853 #define APU_RT_MASK (APU_MASK | RT_MASK)
   4854 #define APU_RA_MASK (APU_MASK | RA_MASK)
   4855 
   4856 /* An SVL form instruction. */
   4857 #define SVL(op, xop, rc)			\
   4858   (OP (op)					\
   4859    | ((((uint64_t)(xop)) & 0x1f) << 1)		\
   4860    | (((uint64_t)(rc)) & 1))
   4861 #define SVL_MASK	SVL (0x3f, 0x1f, 1)
   4862 
   4863 /* An SVM form instruction. */
   4864 #define SVM(op, xop)				\
   4865   (OP (op)					\
   4866    | (((uint64_t)(xop)) & 0x3f))
   4867 #define SVM_MASK	SVM (0x3f, 0x3f)
   4868 
   4869 /* An SVRM form instruction. */
   4870 #define SVRM(op, xop)				\
   4871   (OP (op)					\
   4872    | (((uint64_t)(xop)) & 0x3f))
   4873 #define SVRM_MASK	SVRM (0x3f, 0x3f)
   4874 
   4875 /* An SVI form instruction. */
   4876 #define SVI(op, xop)				\
   4877   (OP (op)					\
   4878    | (((uint64_t)(xop)) & 0x3f))
   4879 #define SVI_MASK	SVI (0x3f, 0x3f)
   4880 
   4881 /* The BO encodings used in extended conditional branch mnemonics.  */
   4882 #define BODNZF	(0x0)
   4883 #define BODNZFP	(0x1)
   4884 #define BODZF	(0x2)
   4885 #define BODZFP	(0x3)
   4886 #define BODNZT	(0x8)
   4887 #define BODNZTP	(0x9)
   4888 #define BODZT	(0xa)
   4889 #define BODZTP	(0xb)
   4890 
   4891 #define BOF	(0x4)
   4892 #define BOFP	(0x5)
   4893 #define BOFM4	(0x6)
   4894 #define BOFP4	(0x7)
   4895 #define BOT	(0xc)
   4896 #define BOTP	(0xd)
   4897 #define BOTM4	(0xe)
   4898 #define BOTP4	(0xf)
   4899 
   4900 #define BODNZ	(0x10)
   4901 #define BODNZP	(0x11)
   4902 #define BODZ	(0x12)
   4903 #define BODZP	(0x13)
   4904 #define BODNZM4 (0x18)
   4905 #define BODNZP4 (0x19)
   4906 #define BODZM4	(0x1a)
   4907 #define BODZP4	(0x1b)
   4908 
   4909 #define BOU	(0x14)
   4910 
   4911 /* The BO16 encodings used in extended VLE conditional branch mnemonics.  */
   4912 #define BO16F   (0x0)
   4913 #define BO16T   (0x1)
   4914 
   4915 /* The BO32 encodings used in extended VLE conditional branch mnemonics.  */
   4916 #define BO32F   (0x0)
   4917 #define BO32T   (0x1)
   4918 #define BO32DNZ (0x2)
   4919 #define BO32DZ  (0x3)
   4920 
   4921 /* The BI condition bit encodings used in extended conditional branch
   4922    mnemonics.  */
   4923 #define CBLT	(0)
   4924 #define CBGT	(1)
   4925 #define CBEQ	(2)
   4926 #define CBSO	(3)
   4927 
   4928 /* The TO encodings used in extended trap mnemonics.  */
   4929 #define TOLGT	(0x1)
   4930 #define TOLLT	(0x2)
   4931 #define TOEQ	(0x4)
   4932 #define TOLGE	(0x5)
   4933 #define TOLNL	(0x5)
   4934 #define TOLLE	(0x6)
   4935 #define TOLNG	(0x6)
   4936 #define TOGT	(0x8)
   4937 #define TOGE	(0xc)
   4938 #define TONL	(0xc)
   4939 #define TOLT	(0x10)
   4940 #define TOLE	(0x14)
   4941 #define TONG	(0x14)
   4942 #define TONE	(0x18)
   4943 #define TOU	(0x1f)
   4944 
   4945 /* Smaller names for the flags so each entry in the opcodes table will
   4947    fit on a single line.  */
   4948 #undef	PPC
   4949 #define PPC	PPC_OPCODE_PPC
   4950 #define PPCCOM	PPC_OPCODE_PPC | PPC_OPCODE_COMMON
   4951 #define POWER4	PPC_OPCODE_POWER4
   4952 #define POWER5	PPC_OPCODE_POWER5
   4953 #define POWER6	PPC_OPCODE_POWER6
   4954 #define POWER7	PPC_OPCODE_POWER7
   4955 #define POWER8	PPC_OPCODE_POWER8
   4956 #define POWER9	PPC_OPCODE_POWER9
   4957 #define POWER10 PPC_OPCODE_POWER10
   4958 #define FUTURE	PPC_OPCODE_FUTURE
   4959 #define CELL	PPC_OPCODE_CELL
   4960 #define PPC64	PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
   4961 #define NON32	(PPC_OPCODE_64 | PPC_OPCODE_POWER4	\
   4962 		 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
   4963 #define PPC403	PPC_OPCODE_403
   4964 #define PPC405	PPC_OPCODE_405
   4965 #define PPC440	PPC_OPCODE_440
   4966 #define PPC464	PPC440
   4967 #define PPC476	PPC_OPCODE_476
   4968 #define PPC750	PPC_OPCODE_750
   4969 #define GEKKO	PPC_OPCODE_750
   4970 #define BROADWAY PPC_OPCODE_750
   4971 #define PPC7450 PPC_OPCODE_7450
   4972 #define PPC860	PPC_OPCODE_860
   4973 #define PPCPS	PPC_OPCODE_PPCPS
   4974 #define PPCVEC	PPC_OPCODE_ALTIVEC
   4975 #define PPCVEC2	(PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
   4976 #define PPCVEC3	PPC_OPCODE_POWER9
   4977 #define PPCVSX	PPC_OPCODE_VSX
   4978 #define PPCVSX2	PPC_OPCODE_POWER8
   4979 #define PPCVSX3	PPC_OPCODE_POWER9
   4980 #define PPCVSX4	PPC_OPCODE_POWER10
   4981 #define PPCVSXF	PPC_OPCODE_FUTURE
   4982 #define POWER	PPC_OPCODE_POWER
   4983 #define POWER2	PPC_OPCODE_POWER | PPC_OPCODE_POWER2
   4984 #define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
   4985 #define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
   4986 		 | PPC_OPCODE_COMMON)
   4987 #define COM	PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
   4988 #define M601	PPC_OPCODE_POWER | PPC_OPCODE_601
   4989 #define PWRCOM	PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
   4990 #define MFDEC1	PPC_OPCODE_POWER
   4991 #define MFDEC2	(PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
   4992 		 | PPC_OPCODE_TITAN)
   4993 #define BOOKE	PPC_OPCODE_BOOKE
   4994 #define NO371	PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
   4995 #define PPCE300 PPC_OPCODE_E300
   4996 #define PPCSPE	PPC_OPCODE_SPE
   4997 #define PPCSPE2 PPC_OPCODE_SPE2
   4998 #define PPCISEL PPC_OPCODE_ISEL
   4999 #define PPCEFS	PPC_OPCODE_EFS
   5000 #define PPCEFS2	PPC_OPCODE_EFS2
   5001 #define PPCBRLK PPC_OPCODE_BRLOCK
   5002 #define PPCPMR	PPC_OPCODE_PMR
   5003 #define PPCTMR	PPC_OPCODE_TMR
   5004 #define PPCCHLK PPC_OPCODE_CACHELCK
   5005 #define PPCRFMCI PPC_OPCODE_RFMCI
   5006 #define E500MC	PPC_OPCODE_E500MC
   5007 #define PPCA2	PPC_OPCODE_A2
   5008 #define TITAN	PPC_OPCODE_TITAN
   5009 #define MULHW	PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
   5010 #define E500	PPC_OPCODE_E500
   5011 #define E6500	PPC_OPCODE_E6500
   5012 #define PPCVLE	PPC_OPCODE_VLE
   5013 #define PPCHTM	PPC_OPCODE_POWER8
   5014 #define E200Z4	PPC_OPCODE_E200Z4
   5015 #define PPCLSP	PPC_OPCODE_LSP
   5016 #define SVP64	PPC_OPCODE_SVP64
   5017 /* Used to mark extended mnemonic in deprecated field so that -Mraw
   5018    won't use this variant in disassembly.  */
   5019 #define EXT	PPC_OPCODE_RAW
   5020 
   5021 /* The opcode table.
   5023 
   5024    The format of the opcode table is:
   5025 
   5026    NAME		OPCODE		MASK	     FLAGS	ANTI		{OPERANDS}
   5027 
   5028    NAME is the name of the instruction.
   5029    OPCODE is the instruction opcode.
   5030    MASK is the opcode mask; this is used to tell the disassembler
   5031      which bits in the actual opcode must match OPCODE.
   5032    FLAGS are flags indicating which processors support the instruction.
   5033    ANTI indicates which processors don't support the instruction.
   5034    OPERANDS is the list of operands.
   5035 
   5036    The disassembler reads the table in order and prints the first
   5037    instruction which matches, so this table is sorted to put more
   5038    specific instructions before more general instructions.
   5039 
   5040    This table must be sorted by major opcode.  Please try to keep it
   5041    vaguely sorted within major opcode too, except of course where
   5042    constrained otherwise by disassembler operation.  */
   5043 
   5044 const struct powerpc_opcode powerpc_opcodes[] = {
   5045 {"attn",	X(0,256),	X_MASK,	  POWER4|PPCA2,	PPC476|PPCVLE,	{0}},
   5046 {"tdlgti",	OPTO(2,TOLGT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5047 {"tdllti",	OPTO(2,TOLLT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5048 {"tdeqi",	OPTO(2,TOEQ),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5049 {"tdlgei",	OPTO(2,TOLGE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5050 {"tdlnli",	OPTO(2,TOLNL),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5051 {"tdllei",	OPTO(2,TOLLE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5052 {"tdlngi",	OPTO(2,TOLNG),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5053 {"tdgti",	OPTO(2,TOGT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5054 {"tdgei",	OPTO(2,TOGE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5055 {"tdnli",	OPTO(2,TONL),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5056 {"tdlti",	OPTO(2,TOLT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5057 {"tdlei",	OPTO(2,TOLE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5058 {"tdngi",	OPTO(2,TONG),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5059 {"tdnei",	OPTO(2,TONE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5060 {"tdui",	OPTO(2,TOU),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5061 {"tdi",		OP(2),		OP_MASK,     PPC64,	PPCVLE,		{TO, RA, SI}},
   5062 
   5063 {"twlgti",	OPTO(3,TOLGT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5064 {"tlgti",	OPTO(3,TOLGT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5065 {"twllti",	OPTO(3,TOLLT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5066 {"tllti",	OPTO(3,TOLLT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5067 {"tweqi",	OPTO(3,TOEQ),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5068 {"teqi",	OPTO(3,TOEQ),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5069 {"twlgei",	OPTO(3,TOLGE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5070 {"tlgei",	OPTO(3,TOLGE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5071 {"twlnli",	OPTO(3,TOLNL),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5072 {"tlnli",	OPTO(3,TOLNL),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5073 {"twllei",	OPTO(3,TOLLE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5074 {"tllei",	OPTO(3,TOLLE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5075 {"twlngi",	OPTO(3,TOLNG),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5076 {"tlngi",	OPTO(3,TOLNG),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5077 {"twgti",	OPTO(3,TOGT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5078 {"tgti",	OPTO(3,TOGT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5079 {"twgei",	OPTO(3,TOGE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5080 {"tgei",	OPTO(3,TOGE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5081 {"twnli",	OPTO(3,TONL),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5082 {"tnli",	OPTO(3,TONL),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5083 {"twlti",	OPTO(3,TOLT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5084 {"tlti",	OPTO(3,TOLT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5085 {"twlei",	OPTO(3,TOLE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5086 {"tlei",	OPTO(3,TOLE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5087 {"twngi",	OPTO(3,TONG),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5088 {"tngi",	OPTO(3,TONG),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5089 {"twnei",	OPTO(3,TONE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5090 {"tnei",	OPTO(3,TONE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5091 {"twui",	OPTO(3,TOU),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5092 {"tui",		OPTO(3,TOU),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5093 {"twi",		OP(3),		OP_MASK,     PPCCOM,	PPCVLE,		{TO, RA, SI}},
   5094 {"ti",		OP(3),		OP_MASK,     PWRCOM,	PPCVLE,		{TO, RA, SI}},
   5095 
   5096 {"ps_cmpu0",	X  (4,	 0),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5097 {"vaddubm",	VX (4,	 0),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5098 {"vmul10cuq",	VX (4,	 1),	VXVB_MASK,   PPCVEC3,	0,		{VD, VA}},
   5099 {"vmaxub",	VX (4,	 2),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5100 {"vrlb",	VX (4,	 4),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5101 {"vrlq",	VX (4,	 5),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5102 {"vcmpequb",	VXR(4,	 6,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5103 {"vcmpneb",	VXR(4,	 7,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5104 {"vmuloub",	VX (4,	 8),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5105 {"vaddfp",	VX (4,	10),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5106 {"vdivuq",	VX (4,  11),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5107 {"psq_lx",	XW (4,	 6,0),	XW_MASK,     PPCPS,	0,		{FRT,RA,RB,PSWM,PSQM}},
   5108 {"vmrghb",	VX (4,	12),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5109 {"vstribl",	VXVA(4,13,0),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5110 {"vstribr",	VXVA(4,13,1),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5111 {"vstrihl",	VXVA(4,13,2),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5112 {"vstrihr",	VXVA(4,13,3),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5113 {"psq_stx",	XW (4,	 7,0),	XW_MASK,     PPCPS,	0,		{FRS,RA,RB,PSWM,PSQM}},
   5114 {"vpkuhum",	VX (4,	14),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5115 {"vinsbvlx",	VX (4,  15),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5116 {"mulhhwu",	XRC(4,	 8,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5117 {"mulhhwu.",	XRC(4,	 8,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5118 {"mtvsrbmi",	DX (4,10),	DX_MASK,     POWER10,	0,		{VD, DXD}},
   5119 {"ps_sum0",	A  (4,	10,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5120 {"ps_sum0.",	A  (4,	10,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5121 {"vsldbi",	VX (4,  22),	VXSH_MASK,   POWER10,	0,		{VD, VA, VB, SH3}},
   5122 {"ps_sum1",	A  (4,	11,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5123 {"ps_sum1.",	A  (4,	11,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5124 {"vextdubvlx",	VX (4,  24),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5125 {"ps_muls0",	A  (4,	12,0),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5126 {"machhwu",	XO (4,	12,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5127 {"vextdubvrx",	VX (4,  25),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5128 {"ps_muls0.",	A  (4,	12,1),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5129 {"machhwu.",	XO (4,	12,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5130 {"vextduhvlx",	VX (4,  26),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5131 {"ps_muls1",	A  (4,	13,0),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5132 {"vextduhvrx",	VX (4,  27),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5133 {"ps_muls1.",	A  (4,	13,1),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5134 {"vextduwvlx",	VX (4,  28),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5135 {"ps_madds0",	A  (4,	14,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5136 {"vextduwvrx",	VX (4,  29),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5137 {"ps_madds0.",	A  (4,	14,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5138 {"vextddvlx",	VX (4,  30),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5139 {"ps_madds1",	A  (4,	15,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5140 {"vextddvrx",	VX (4,  31),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5141 {"ps_madds1.",	A  (4,	15,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5142 {"vmhaddshs",	VXA(4,	32),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5143 {"vmhraddshs",	VXA(4,	33),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5144 {"vmladduhm",	VXA(4,	34),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5145 {"vmsumudm",	VXA(4,	35),	VXA_MASK,    PPCVEC3,	0,		{VD, VA, VB, VC}},
   5146 {"ps_div",	A  (4,	18,0),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5147 {"vmsumcud",	VXA(4,  23),	VXA_MASK,    POWER10,	0,		{VD, VA, VB, VC}},
   5148 {"vmsumubm",	VXA(4,	36),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5149 {"ps_div.",	A  (4,	18,1),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5150 {"vmsummbm",	VXA(4,	37),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5151 {"vmsumuhm",	VXA(4,	38),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5152 {"vmsumuhs",	VXA(4,	39),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5153 {"ps_sub",	A  (4,	20,0),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5154 {"vmsumshm",	VXA(4,	40),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5155 {"ps_sub.",	A  (4,	20,1),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5156 {"vmsumshs",	VXA(4,	41),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5157 {"ps_add",	A  (4,	21,0),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5158 {"vsel",	VXA(4,	42),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5159 {"ps_add.",	A  (4,	21,1),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5160 {"vperm",	VXA(4,	43),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5161 {"vsldoi",	VXA(4,	44),	VXASHB_MASK, PPCVEC,	0,		{VD, VA, VB, SHB}},
   5162 {"vpermxor",	VXA(4,	45),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5163 {"ps_sel",	A  (4,	23,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5164 {"vmaddfp",	VXA(4,	46),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VC, VB}},
   5165 {"ps_sel.",	A  (4,	23,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5166 {"vnmsubfp",	VXA(4,	47),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VC, VB}},
   5167 {"ps_res",	A  (4,	24,0), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5168 {"maddhd",	VXA(4,	48),	VXA_MASK,    POWER9,	0,		{RT, RA, RB, RC}},
   5169 {"ps_res.",	A  (4,	24,1), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5170 {"maddhdu",	VXA(4,	49),	VXA_MASK,    POWER9,	0,		{RT, RA, RB, RC}},
   5171 {"ps_mul",	A  (4,	25,0),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5172 {"ps_mul.",	A  (4,	25,1),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5173 {"maddld",	VXA(4,	51),	VXA_MASK,    POWER9,	0,		{RT, RA, RB, RC}},
   5174 {"ps_rsqrte",	A  (4,	26,0), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5175 {"ps_rsqrte.",	A  (4,	26,1), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5176 {"ps_msub",	A  (4,	28,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5177 {"ps_msub.",	A  (4,	28,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5178 {"ps_madd",	A  (4,	29,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5179 {"ps_madd.",	A  (4,	29,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5180 {"vpermr",	VXA(4,	59),	VXA_MASK,    PPCVEC3,	0,		{VD, VA, VB, VC}},
   5181 {"ps_nmsub",	A  (4,	30,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5182 {"vaddeuqm",	VXA(4,	60),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5183 {"ps_nmsub.",	A  (4,	30,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5184 {"vaddecuq",	VXA(4,	61),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5185 {"ps_nmadd",	A  (4,	31,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5186 {"vsubeuqm",	VXA(4,	62),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5187 {"ps_nmadd.",	A  (4,	31,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5188 {"vsubecuq",	VXA(4,	63),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5189 {"ps_cmpo0",	X  (4,	32),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5190 {"vadduhm",	VX (4,	64),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5191 {"vmul10ecuq",	VX (4,	65),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5192 {"vmaxuh",	VX (4,	66),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5193 {"vrlh",	VX (4,	68),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5194 {"vrlqmi",	VX (4,	69),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5195 {"vcmpequh",	VXR(4,	70,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5196 {"vcmpneh",	VXR(4,	71,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5197 {"vmulouh",	VX (4,	72),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5198 {"vsubfp",	VX (4,	74),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5199 {"psq_lux",	XW (4,	38,0),	XW_MASK,     PPCPS,	0,		{FRT,RA,RB,PSWM,PSQM}},
   5200 {"vmrghh",	VX (4,	76),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5201 {"psq_stux",	XW (4,	39,0),	XW_MASK,     PPCPS,	0,		{FRS,RA,RB,PSWM,PSQM}},
   5202 {"vpkuwum",	VX (4,	78),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5203 {"vinshvlx",	VX (4,  79),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5204 {"ps_neg",	XRC(4,	40,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5205 {"mulhhw",	XRC(4,	40,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5206 {"ps_neg.",	XRC(4,	40,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5207 {"mulhhw.",	XRC(4,	40,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5208 {"machhw",	XO (4,	44,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5209 {"machhw.",	XO (4,	44,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5210 {"nmachhw",	XO (4,	46,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5211 {"nmachhw.",	XO (4,	46,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5212 {"ps_cmpu1",	X  (4,	64),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5213 {"vadduwm",	VX (4,	128),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5214 {"vmaxuw",	VX (4,	130),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5215 {"vrlw",	VX (4,	132),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5216 {"vrlwmi",	VX (4,	133),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5217 {"vcmpequw",	VXR(4,	134,0), VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5218 {"vcmpnew",	VXR(4,	135,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5219 {"vmulouw",	VX (4,	136),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5220 {"vmuluwm",	VX (4,	137),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5221 {"vdivuw",	VX (4,  139),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5222 {"vmrghw",	VX (4,	140),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5223 {"vpkuhus",	VX (4,	142),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5224 {"vinswvlx",	VX (4,  143),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5225 {"ps_mr",	XRC(4,	72,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5226 {"ps_mr.",	XRC(4,	72,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5227 {"machhwsu",	XO (4,	76,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5228 {"machhwsu.",	XO (4,	76,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5229 {"ps_cmpo1",	X  (4,	96),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5230 {"vaddudm",	VX (4, 192),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5231 {"vmaxud",	VX (4, 194),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5232 {"vrld",	VX (4, 196),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5233 {"vrldmi",	VX (4, 197),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5234 {"vcmpeqfp",	VXR(4, 198,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5235 {"vcmpequd",	VXR(4, 199,0),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5236 {"vmuloud",	VX (4, 200),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5237 {"vdivud",	VX (4, 203),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5238 {"vpkuwus",	VX (4, 206),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5239 {"vinsw",	VX (4, 207),   VXUIMM4_MASK, POWER10,	0,		{VD, RB, UIMM4}},
   5240 {"machhws",	XO (4, 108,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5241 {"machhws.",	XO (4, 108,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5242 {"nmachhws",	XO (4, 110,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5243 {"nmachhws.",	XO (4, 110,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5244 {"vadduqm",	VX (4, 256),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5245 {"vcmpuq",	VX (4, 257),	VXBF_MASK,   POWER10,	0,		{BF, VA, VB}},
   5246 {"vmaxsb",	VX (4, 258),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5247 {"vslb",	VX (4, 260),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5248 {"vslq",	VX (4, 261),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5249 {"vcmpnezb",	VXR(4, 263,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5250 {"vmulosb",	VX (4, 264),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5251 {"vrefp",	VX (4, 266),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5252 {"vdivsq",	VX (4, 267),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5253 {"vmrglb",	VX (4, 268),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5254 {"vpkshus",	VX (4, 270),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5255 {"vinsbvrx",	VX (4, 271),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5256 {"ps_nabs",	XRC(4, 136,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5257 {"mulchwu",	XRC(4, 136,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5258 {"ps_nabs.",	XRC(4, 136,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5259 {"mulchwu.",	XRC(4, 136,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5260 {"macchwu",	XO (4, 140,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5261 {"macchwu.",	XO (4, 140,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5262 {"vaddcuq",	VX (4, 320),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5263 {"vcmpsq",	VX (4, 321),	VXBF_MASK,   POWER10,	0,		{BF, VA, VB}},
   5264 {"vmaxsh",	VX (4, 322),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5265 {"vslh",	VX (4, 324),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5266 {"vrlqnm",	VX (4, 325),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5267 {"vcmpnezh",	VXR(4, 327,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5268 {"vmulosh",	VX (4, 328),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5269 {"vrsqrtefp",	VX (4, 330),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5270 {"vmrglh",	VX (4, 332),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5271 {"vpkswus",	VX (4, 334),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5272 {"vinshvrx",	VX (4, 335),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5273 {"mulchw",	XRC(4, 168,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5274 {"mulchw.",	XRC(4, 168,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5275 {"macchw",	XO (4, 172,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5276 {"macchw.",	XO (4, 172,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5277 {"nmacchw",	XO (4, 174,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5278 {"nmacchw.",	XO (4, 174,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5279 {"vaddcuw",	VX (4, 384),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5280 {"vmaxsw",	VX (4, 386),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5281 {"vslw",	VX (4, 388),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5282 {"vrlwnm",	VX (4, 389),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5283 {"vcmpnezw",	VXR(4, 391,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5284 {"vmulosw",	VX (4, 392),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5285 {"vexptefp",	VX (4, 394),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5286 {"vdivsw",	VX (4, 395),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5287 {"vmrglw",	VX (4, 396),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5288 {"vclrlb",	VX (4, 397),	VX_MASK,     POWER10,	0,		{VD, VA, RB}},
   5289 {"vpkshss",	VX (4, 398),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5290 {"vinswvrx",	VX (4, 399),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5291 {"macchwsu",	XO (4, 204,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5292 {"macchwsu.",	XO (4, 204,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5293 {"vmaxsd",	VX (4, 450),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5294 {"vsl",		VX (4, 452),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5295 {"vrldnm",	VX (4, 453),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5296 {"vcmpgefp",	VXR(4, 454,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5297 {"vcmpequq",	VXR(4, 455,0),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5298 {"vmulosd",	VX (4, 456),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5299 {"vmulld",	VX (4, 457),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5300 {"vlogefp",	VX (4, 458),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5301 {"vdivsd",	VX (4, 459),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5302 {"vclrrb",	VX (4, 461),	VX_MASK,     POWER10,	0,		{VD, VA, RB}},
   5303 {"vpkswss",	VX (4, 462),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5304 {"vinsd",	VX (4, 463),   VXUIMM4_MASK, POWER10,	0,		{VD, RB, UIMM4}},
   5305 {"macchws",	XO (4, 236,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5306 {"macchws.",	XO (4, 236,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5307 {"nmacchws",	XO (4, 238,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5308 {"nmacchws.",	XO (4, 238,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5309 {"evaddw",	VX (4, 512),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5310 {"vaddubs",	VX (4, 512),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5311 {"vmul10uq",	VX (4, 513),	VXVB_MASK,   PPCVEC3,	0,		{VD, VA}},
   5312 {"evaddiw",	VX (4, 514),	VX_MASK,     PPCSPE,	0,		{RS, RB, UIMM}},
   5313 {"vminub",	VX (4, 514),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5314 {"evsubw",	VX (4, 516),	VX_MASK,     PPCSPE,	EXT,		{RS, RB, RA}},
   5315 {"evsubfw",	VX (4, 516),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5316 {"vsrb",	VX (4, 516),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5317 {"vsrq",	VX (4, 517),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5318 {"evsubiw",	VX (4, 518),	VX_MASK,     PPCSPE,	EXT,		{RS, RB, UIMM}},
   5319 {"evsubifw",	VX (4, 518),	VX_MASK,     PPCSPE,	0,		{RS, UIMM, RB}},
   5320 {"vcmpgtub",	VXR(4, 518,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5321 {"evabs",	VX (4, 520),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5322 {"vmuleub",	VX (4, 520),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5323 {"evneg",	VX (4, 521),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5324 {"evextsb",	VX (4, 522),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5325 {"vrfin",	VX (4, 522),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5326 {"vdiveuq",	VX (4, 523),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5327 {"evextsh",	VX (4, 523),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5328 {"evrndw",	VX (4, 524),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5329 {"vspltb",	VX (4, 524),   VXUIMM4_MASK, PPCVEC,	0,		{VD, VB, UIMM4}},
   5330 {"vextractub",	VX (4, 525),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5331 {"evcntlzw",	VX (4, 525),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5332 {"evcntlsw",	VX (4, 526),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5333 {"vupkhsb",	VX (4, 526),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5334 {"vinsblx",	VX (4, 527),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5335 {"brinc",	VX (4, 527),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5336 {"ps_abs",	XRC(4, 264,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5337 {"ps_abs.",	XRC(4, 264,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5338 {"evand",	VX (4, 529),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5339 {"evandc",	VX (4, 530),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5340 {"vsrdbi",	VX (4, 534),	VXSH_MASK,   POWER10,	0,		{VD, VA, VB, SH3}},
   5341 {"evxor",	VX (4, 534),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5342 {"evmr",	VX (4, 535),	VX_MASK,     PPCSPE,	EXT,		{RS, RAB}},
   5343 {"evor",	VX (4, 535),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5344 {"evnot",	VX (4, 536),	VX_MASK,     PPCSPE,	EXT,		{RS, RAB}},
   5345 {"evnor",	VX (4, 536),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5346 {"get",		APU(4, 268,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5347 {"eveqv",	VX (4, 537),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5348 {"evorc",	VX (4, 539),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5349 {"evnand",	VX (4, 542),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5350 {"evsrwu",	VX (4, 544),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5351 {"evsrws",	VX (4, 545),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5352 {"evsrwiu",	VX (4, 546),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5353 {"evsrwis",	VX (4, 547),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5354 {"evslw",	VX (4, 548),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5355 {"evslwi",	VX (4, 550),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5356 {"evrlw",	VX (4, 552),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5357 {"evsplati",	VX (4, 553),	VX_MASK,     PPCSPE,	0,		{RS, SIMM}},
   5358 {"evrlwi",	VX (4, 554),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5359 {"evsplatfi",	VX (4, 555),	VX_MASK,     PPCSPE,	0,		{RS, SIMM}},
   5360 {"evmergehi",	VX (4, 556),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5361 {"evmergelo",	VX (4, 557),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5362 {"evmergehilo",	VX (4, 558),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5363 {"evmergelohi",	VX (4, 559),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5364 {"evcmpgtu",	VX (4, 560),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5365 {"evcmpgts",	VX (4, 561),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5366 {"evcmpltu",	VX (4, 562),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5367 {"evcmplts",	VX (4, 563),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5368 {"evcmpeq",	VX (4, 564),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5369 {"cget",	APU(4, 284,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5370 {"vadduhs",	VX (4, 576),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5371 {"vmul10euq",	VX (4, 577),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5372 {"vminuh",	VX (4, 578),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5373 {"vsrh",	VX (4, 580),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5374 {"vcmpgtuh",	VXR(4, 582,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5375 {"vmuleuh",	VX (4, 584),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5376 {"vrfiz",	VX (4, 586),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5377 {"vsplth",	VX (4, 588),   VXUIMM3_MASK, PPCVEC,	0,		{VD, VB, UIMM3}},
   5378 {"vextractuh",	VX (4, 589),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5379 {"vupkhsh",	VX (4, 590),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5380 {"vinshlx",	VX (4, 591),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5381 {"nget",	APU(4, 300,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5382 {"evsel",	EVSEL(4,79),	EVSEL_MASK,  PPCSPE,	0,		{RS, RA, RB, CRFS}},
   5383 {"ncget",	APU(4, 316,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5384 {"evfsadd",	VX (4, 640),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5385 {"vadduws",	VX (4, 640),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5386 {"evfssub",	VX (4, 641),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5387 {"evfsmadd",	VX (4, 642),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5388 {"vminuw",	VX (4, 642),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5389 {"evfsmsub",	VX (4, 643),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5390 {"evfsabs",	VX (4, 644),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5391 {"vsrw",	VX (4, 644),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5392 {"evfsnabs",	VX (4, 645),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5393 {"evfsneg",	VX (4, 646),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5394 {"vcmpgtuw",	VXR(4, 646,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5395 {"vcmpgtuq",	VXR(4, 647,0),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5396 {"evfssqrt",	VX_RB_CONST(4, 647, 0),  VX_RB_CONST_MASK,	PPCEFS2,	0,		{RD, RA}},
   5397 {"vmuleuw",	VX (4, 648),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5398 {"evfsmul",	VX (4, 648),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5399 {"vmulhuw",	VX (4, 649),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5400 {"evfsdiv",	VX (4, 649),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5401 {"evfsnmadd",	VX (4, 650),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5402 {"vrfip",	VX (4, 650),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5403 {"vdiveuw",	VX (4, 651),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5404 {"evfsnmsub",	VX (4, 651),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5405 {"evfscmpgt",	VX (4, 652),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5406 {"vspltw",	VX (4, 652),   VXUIMM2_MASK, PPCVEC,	0,		{VD, VB, UIMM2}},
   5407 {"vextractuw",	VX (4, 653),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5408 {"evfscmplt",	VX (4, 653),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5409 {"evfscmpeq",	VX (4, 654),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5410 {"vupklsb",	VX (4, 654),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5411 {"vinswlx",	VX (4, 655),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5412 {"evfscfui",	VX (4, 656),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5413 {"evfscfh",	VX_RA_CONST(4, 657, 4),  VX_RA_CONST_MASK,	PPCEFS2,	0,		{RD, RB}},
   5414 {"evfscfsi",	VX (4, 657),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5415 {"evfscfuf",	VX (4, 658),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5416 {"evfscfsf",	VX (4, 659),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5417 {"evfsctui",	VX (4, 660),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5418 {"evfscth",	VX_RA_CONST(4, 661, 4),  VX_RA_CONST_MASK,	PPCEFS2,	0,		{RD, RB}},
   5419 {"evfsctsi",	VX (4, 661),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5420 {"evfsctuf",	VX (4, 662),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5421 {"evfsctsf",	VX (4, 663),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5422 {"evfsctuiz",	VX (4, 664),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5423 {"put",		APU(4, 332,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5424 {"evfsctsiz",	VX (4, 666),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5425 {"evfststgt",	VX (4, 668),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5426 {"evfststlt",	VX (4, 669),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5427 {"evfststeq",	VX (4, 670),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5428 {"evfsmax",	VX (4, 672),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5429 {"evfsmin",	VX (4, 673),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5430 {"evfsaddsub",	VX (4, 674),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5431 {"evfssubadd",	VX (4, 675),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5432 {"evfssum",	VX (4, 676),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5433 {"evfsdiff",	VX (4, 677),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5434 {"evfssumdiff",	VX (4, 678),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5435 {"evfsdiffsum",	VX (4, 679),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5436 {"evfsaddx",	VX (4, 680),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5437 {"evfssubx",	VX (4, 681),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5438 {"evfsaddsubx",	VX (4, 682),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5439 {"evfssubaddx",	VX (4, 683),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5440 {"evfsmulx",	VX (4, 684),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5441 {"evfsmule",	VX (4, 686),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5442 {"evfsmulo",	VX (4, 687),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5443 {"efsmax",	VX (4, 688),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5444 {"efsmin",	VX (4, 689),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5445 {"efdmax",	VX (4, 696),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5446 {"cput",	APU(4, 348,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5447 {"efdmin",	VX (4, 697),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5448 {"efsadd",	VX (4, 704),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5449 {"evsadd",	VX (4, 704),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5450 {"efssub",	VX (4, 705),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5451 {"evssub",	VX (4, 705),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5452 {"efsmadd",	VX (4, 706),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5453 {"vminud",	VX (4, 706),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5454 {"efsmsub",	VX (4, 707),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5455 {"efsabs",	VX (4, 708),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5456 {"evsabs",	VX (4, 708),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5457 {"vsr",		VX (4, 708),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5458 {"efsnabs",	VX (4, 709),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5459 {"evsnabs",	VX (4, 709),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5460 {"efsneg",	VX (4, 710),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5461 {"evsneg",	VX (4, 710),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5462 {"vcmpgtfp",	VXR(4, 710,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5463 {"efssqrt",	VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0,	{RD, RA}},
   5464 {"vcmpgtud",	VXR(4, 711,0),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5465 {"vmuleud",	VX (4, 712),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5466 {"efsmul",	VX (4, 712),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5467 {"evsmul",	VX (4, 712),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5468 {"vmulhud",	VX (4, 713),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5469 {"efsdiv",	VX (4, 713),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5470 {"evsdiv",	VX (4, 713),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5471 {"efsnmadd",	VX (4, 714),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5472 {"vrfim",	VX (4, 714),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5473 {"vdiveud",	VX (4, 715),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5474 {"efsnmsub",	VX (4, 715),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5475 {"efscmpgt",	VX (4, 716),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5476 {"evscmpgt",	VX (4, 716),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5477 {"vextractd",	VX (4, 717),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5478 {"efscmplt",	VX (4, 717),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5479 {"evsgmplt",	VX (4, 717),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5480 {"efscmpeq",	VX (4, 718),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5481 {"evsgmpeq",	VX (4, 718),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5482 {"vupklsh",	VX (4, 718),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5483 {"vinsdlx",	VX (4, 719),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5484 {"efscfd",	VX (4, 719),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5485 {"efscfui",	VX (4, 720),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5486 {"evscfui",	VX (4, 720),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5487 {"efscfh",	VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5488 {"efscfsi",	VX (4, 721),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5489 {"evscfsi",	VX (4, 721),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5490 {"efscfuf",	VX (4, 722),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5491 {"evscfuf",	VX (4, 722),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5492 {"efscfsf",	VX (4, 723),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5493 {"evscfsf",	VX (4, 723),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5494 {"efsctui",	VX (4, 724),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5495 {"evsctui",	VX (4, 724),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5496 {"efscth",	VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5497 {"efsctsi",	VX (4, 725),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5498 {"evsctsi",	VX (4, 725),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5499 {"efsctuf",	VX (4, 726),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5500 {"evsctuf",	VX (4, 726),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5501 {"efsctsf",	VX (4, 727),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5502 {"evsctsf",	VX (4, 727),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5503 {"efsctuiz",	VX (4, 728),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5504 {"evsctuiz",	VX (4, 728),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5505 {"nput",	APU(4, 364,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5506 {"efsctsiz",	VX (4, 730),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5507 {"evsctsiz",	VX (4, 730),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5508 {"efststgt",	VX (4, 732),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5509 {"evststgt",	VX (4, 732),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5510 {"efststlt",	VX (4, 733),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5511 {"evststlt",	VX (4, 733),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5512 {"efststeq",	VX (4, 734),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5513 {"evststeq",	VX (4, 734),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5514 {"efdadd",	VX (4, 736),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5515 {"efdsub",	VX (4, 737),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5516 {"efdmadd",	VX (4, 738),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5517 {"efdcfuid",	VX (4, 738),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5518 {"efdmsub",	VX (4, 739),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5519 {"efdcfsid",	VX (4, 739),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5520 {"efdabs",	VX (4, 740),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5521 {"efdnabs",	VX (4, 741),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5522 {"efdneg",	VX (4, 742),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5523 {"efdsqrt",	VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0,	{RD, RA}},
   5524 {"efdmul",	VX (4, 744),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5525 {"efddiv",	VX (4, 745),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5526 {"efdnmadd",	VX (4, 746),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5527 {"efdctuidz",	VX (4, 746),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5528 {"efdnmsub",	VX (4, 747),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5529 {"efdctsidz",	VX (4, 747),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5530 {"efdcmpgt",	VX (4, 748),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5531 {"efdcmplt",	VX (4, 749),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5532 {"efdcmpeq",	VX (4, 750),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5533 {"efdcfs",	VX (4, 751),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5534 {"efdcfui",	VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5535 {"efdcfuid",	VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5536 {"efdcfsi",	VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5537 {"efdcfsid",	VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5538 {"efdcfh",	VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5539 {"efdcfuf",	VX (4, 754),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5540 {"efdcfsf",	VX (4, 755),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5541 {"efdctui",	VX (4, 756),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5542 {"efdcth",	VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5543 {"efdctsi",	VX (4, 757),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5544 {"efdctuf",	VX (4, 758),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5545 {"efdctsf",	VX (4, 759),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5546 {"efdctuiz",	VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5547 {"efdctuidz",	VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5548 {"ncput",	APU(4, 380,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5549 {"efdctsiz",	VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5550 {"efdctsidz",	VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5551 {"efdtstgt",	VX (4, 764),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5552 {"efdtstlt",	VX (4, 765),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5553 {"efdtsteq",	VX (4, 766),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5554 {"evlddx",	VX (4, 768),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5555 {"vaddsbs",	VX (4, 768),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5556 {"evldd",	VX (4, 769),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5557 {"evldwx",	VX (4, 770),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5558 {"vminsb",	VX (4, 770),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5559 {"evldw",	VX (4, 771),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5560 {"evldhx",	VX (4, 772),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5561 {"vsrab",	VX (4, 772),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5562 {"vsraq",	VX (4, 773),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5563 {"evldh",	VX (4, 773),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5564 {"vcmpgtsb",	VXR(4, 774,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5565 {"evlhhesplatx",VX (4, 776),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5566 {"vmulesb",	VX (4, 776),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5567 {"evlhhesplat",	VX (4, 777),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_2, RA}},
   5568 {"vcfux",	VX (4, 778),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5569 {"vcuxwfp",	VX (4, 778),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5570 {"vdivesq",	VX (4, 779),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5571 {"evlhhousplatx",VX(4, 780),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5572 {"vspltisb",	VX (4, 780),	VXVB_MASK,   PPCVEC,	0,		{VD, SIMM}},
   5573 {"vinsertb",	VX (4, 781),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5574 {"evlhhousplat",VX (4, 781),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_2, RA}},
   5575 {"evlhhossplatx",VX(4, 782),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5576 {"vpkpx",	VX (4, 782),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5577 {"vinsbrx",	VX (4, 783),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5578 {"evlhhossplat",VX (4, 783),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_2, RA}},
   5579 {"mullhwu",	XRC(4, 392,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5580 {"evlwhex",	VX (4, 784),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5581 {"mullhwu.",	XRC(4, 392,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5582 {"evlwhe",	VX (4, 785),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5583 {"evlwhoux",	VX (4, 788),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5584 {"evlwhou",	VX (4, 789),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5585 {"evlwhosx",	VX (4, 790),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5586 {"evlwhos",	VX (4, 791),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5587 {"maclhwu",	XO (4, 396,0,0),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5588 {"evlwwsplatx",	VX (4, 792),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5589 {"maclhwu.",	XO (4, 396,0,1),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5590 {"evlwwsplat",	VX (4, 793),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5591 {"evlwhsplatx",	VX (4, 796),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5592 {"evlwhsplat",	VX (4, 797),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5593 {"evstddx",	VX (4, 800),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5594 {"evstdd",	VX (4, 801),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5595 {"evstdwx",	VX (4, 802),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5596 {"evstdw",	VX (4, 803),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5597 {"evstdhx",	VX (4, 804),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5598 {"evstdh",	VX (4, 805),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5599 {"evstwhex",	VX (4, 816),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5600 {"evstwhe",	VX (4, 817),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5601 {"evstwhox",	VX (4, 820),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5602 {"evstwho",	VX (4, 821),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5603 {"evstwwex",	VX (4, 824),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5604 {"evstwwe",	VX (4, 825),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5605 {"evstwwox",	VX (4, 828),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5606 {"evstwwo",	VX (4, 829),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5607 {"vaddshs",	VX (4, 832),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5608 {"bcdcpsgn.",	VX (4, 833),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5609 {"vminsh",	VX (4, 834),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5610 {"vsrah",	VX (4, 836),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5611 {"vcmpgtsh",	VXR(4, 838,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5612 {"vmulesh",	VX (4, 840),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5613 {"vcfsx",	VX (4, 842),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5614 {"vcsxwfp",	VX (4, 842),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5615 {"vspltish",	VX (4, 844),	VXVB_MASK,   PPCVEC,	0,		{VD, SIMM}},
   5616 {"vinserth",	VX (4, 845),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5617 {"vupkhpx",	VX (4, 846),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5618 {"vinshrx",	VX (4, 847),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5619 {"mullhw",	XRC(4, 424,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5620 {"mullhw.",	XRC(4, 424,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5621 {"maclhw",	XO (4, 428,0,0),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5622 {"maclhw.",	XO (4, 428,0,1),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5623 {"nmaclhw",	XO (4, 430,0,0),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5624 {"nmaclhw.",	XO (4, 430,0,1),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5625 {"vaddsws",	VX (4, 896),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5626 {"vminsw",	VX (4, 898),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5627 {"vsraw",	VX (4, 900),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5628 {"vcmpgtsw",	VXR(4, 902,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5629 {"vcmpgtsq",	VXR(4, 903,0),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5630 {"vmulesw",	VX (4, 904),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5631 {"vmulhsw",	VX (4, 905),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5632 {"vctuxs",	VX (4, 906),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5633 {"vcfpuxws",	VX (4, 906),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5634 {"vdivesw",	VX (4, 907),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5635 {"vspltisw",	VX (4, 908),	VXVB_MASK,   PPCVEC,	0,		{VD, SIMM}},
   5636 {"vinsertw",	VX (4, 909),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5637 {"vinswrx",	VX (4, 911),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5638 {"maclhwsu",	XO (4, 460,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5639 {"maclhwsu.",	XO (4, 460,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5640 {"vminsd",	VX (4, 962),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5641 {"vsrad",	VX (4, 964),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5642 {"vcmpbfp",	VXR(4, 966,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5643 {"vcmpgtsd",	VXR(4, 967,0),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5644 {"vmulesd",	VX (4, 968),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5645 {"vmulhsd",	VX (4, 969),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5646 {"vctsxs",	VX (4, 970),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5647 {"vcfpsxws",	VX (4, 970),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5648 {"vdivesd",	VX (4, 971),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5649 {"vinsertd",	VX (4, 973),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5650 {"vupklpx",	VX (4, 974),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5651 {"vinsdrx",	VX (4, 975),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5652 {"maclhws",	XO (4, 492,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5653 {"maclhws.",	XO (4, 492,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5654 {"nmaclhws",	XO (4, 494,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5655 {"nmaclhws.",	XO (4, 494,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5656 {"vsububm",	VX (4,1024),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5657 {"bcdadd.",	VX (4,1025),	VXPS_MASK,   PPCVEC2,	0,		{VD, VA, VB, PS}},
   5658 {"vavgub",	VX (4,1026),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5659 {"vabsdub",	VX (4,1027),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5660 {"evmhessf",	VX (4,1027),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5661 {"vand",	VX (4,1028),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5662 {"vcmpequb.",	VXR(4,	 6,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5663 {"vcmpneb.",	VXR(4,	 7,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5664 {"udi0fcm.",	APU(4, 515,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5665 {"udi0fcm",	APU(4, 515,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5666 {"evmhossf",	VX (4,1031),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5667 {"vpmsumb",	VX (4,1032),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5668 {"evmheumi",	VX (4,1032),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5669 {"evmhesmi",	VX (4,1033),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5670 {"vmaxfp",	VX (4,1034),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5671 {"evmhesmf",	VX (4,1035),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5672 {"evmhoumi",	VX (4,1036),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5673 {"vslo",	VX (4,1036),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5674 {"vstribl.",	VXVA(4,1037,0),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5675 {"vstribr.",	VXVA(4,1037,1),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5676 {"vstrihl.",	VXVA(4,1037,2),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5677 {"vstrihr.",	VXVA(4,1037,3),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5678 {"evmhosmi",	VX (4,1037),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5679 {"evmhosmf",	VX (4,1039),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5680 {"machhwuo",	XO (4,	12,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5681 {"machhwuo.",	XO (4,	12,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5682 {"ps_merge00",	XOPS(4,528,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5683 {"ps_merge00.",	XOPS(4,528,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5684 {"evmhessfa",	VX (4,1059),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5685 {"evmhossfa",	VX (4,1063),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5686 {"evmheumia",	VX (4,1064),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5687 {"evmhesmia",	VX (4,1065),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5688 {"evmhesmfa",	VX (4,1067),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5689 {"evmhoumia",	VX (4,1068),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5690 {"evmhosmia",	VX (4,1069),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5691 {"evmhosmfa",	VX (4,1071),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5692 {"vsubuhm",	VX (4,1088),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5693 {"bcdsub.",	VX (4,1089),	VXPS_MASK,   PPCVEC2,	0,		{VD, VA, VB, PS}},
   5694 {"vavguh",	VX (4,1090),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5695 {"evmwlssf",	VX (4,1091),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5696 {"vabsduh",	VX (4,1091),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5697 {"vandc",	VX (4,1092),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5698 {"vcmpequh.",	VXR(4,	70,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5699 {"udi1fcm.",	APU(4, 547,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5700 {"udi1fcm",	APU(4, 547,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5701 {"vcmpneh.",	VXR(4,	71,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5702 {"evmwhssf",	VX (4,1095),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5703 {"vpmsumh",	VX (4,1096),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5704 {"evmwlumi",	VX (4,1096),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5705 {"vminfp",	VX (4,1098),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5706 {"evmwlsmf",	VX (4,1099),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5707 {"evmwhumi",	VX (4,1100),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5708 {"vsro",	VX (4,1100),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5709 {"evmwhsmi",	VX (4,1101),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5710 {"vpkudum",	VX (4,1102),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5711 {"evmwhsmf",	VX (4,1103),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5712 {"evmwssf",	VX (4,1107),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5713 {"machhwo",	XO (4,	44,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5714 {"evmwumi",	VX (4,1112),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5715 {"machhwo.",	XO (4,	44,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5716 {"evmwsmi",	VX (4,1113),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5717 {"evmwsmf",	VX (4,1115),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5718 {"nmachhwo",	XO (4,	46,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5719 {"nmachhwo.",	XO (4,	46,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5720 {"ps_merge01",	XOPS(4,560,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5721 {"ps_merge01.",	XOPS(4,560,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5722 {"evmwlssfa",	VX (4,1123),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5723 {"evmwhssfa",	VX (4,1127),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5724 {"evmwlumia",	VX (4,1128),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5725 {"evmwlsmfa",	VX (4,1131),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5726 {"evmwhumia",	VX (4,1132),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5727 {"evmwhsmia",	VX (4,1133),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5728 {"evmwhsmfa",	VX (4,1135),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5729 {"evmwssfa",	VX (4,1139),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5730 {"evmwumia",	VX (4,1144),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5731 {"evmwsmia",	VX (4,1145),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5732 {"evmwsmfa",	VX (4,1147),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5733 {"vsubuwm",	VX (4,1152),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5734 {"bcdus.",	VX (4,1153),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5735 {"vavguw",	VX (4,1154),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5736 {"vabsduw",	VX (4,1155),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5737 {"vmr",		VX (4,1156),	VX_MASK,     PPCVEC,	EXT,		{VD, VAB}},
   5738 {"vor",		VX (4,1156),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5739 {"vcmpnew.",	VXR(4, 135,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5740 {"vpmsumw",	VX (4,1160),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5741 {"vcmpequw.",	VXR(4, 134,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5742 {"udi2fcm.",	APU(4, 579,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5743 {"udi2fcm",	APU(4, 579,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5744 {"machhwsuo",	XO (4,	76,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5745 {"machhwsuo.",	XO (4,	76,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5746 {"ps_merge10",	XOPS(4,592,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5747 {"ps_merge10.",	XOPS(4,592,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5748 {"vsubudm",	VX (4,1216),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5749 {"evaddusiaaw",	VX (4,1216),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5750 {"bcds.",	VX (4,1217),	VXPS_MASK,   PPCVEC3,	0,		{VD, VA, VB, PS}},
   5751 {"evaddssiaaw",	VX (4,1217),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5752 {"evsubfusiaaw",VX (4,1218),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5753 {"evsubfssiaaw",VX (4,1219),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5754 {"evmra",	VX (4,1220),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5755 {"vxor",	VX (4,1220),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5756 {"evdivws",	VX (4,1222),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5757 {"vcmpeqfp.",	VXR(4, 198,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5758 {"udi3fcm.",	APU(4, 611,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5759 {"vcmpequd.",	VXR(4, 199,1),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5760 {"udi3fcm",	APU(4, 611,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5761 {"evdivwu",	VX (4,1223),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5762 {"vpmsumd",	VX (4,1224),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5763 {"evaddumiaaw",	VX (4,1224),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5764 {"evaddsmiaaw",	VX (4,1225),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5765 {"evsubfumiaaw",VX (4,1226),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5766 {"evsubfsmiaaw",VX (4,1227),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5767 {"vgnb",	VX (4,1228),	VX_MASK,     POWER10,	0,		{RT, VB, UIMM3}},
   5768 {"vpkudus",	VX (4,1230),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5769 {"machhwso",	XO (4, 108,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5770 {"machhwso.",	XO (4, 108,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5771 {"nmachhwso",	XO (4, 110,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5772 {"nmachhwso.",	XO (4, 110,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5773 {"ps_merge11",	XOPS(4,624,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5774 {"ps_merge11.",	XOPS(4,624,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5775 {"vsubuqm",	VX (4,1280),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5776 {"evmheusiaaw",	VX (4,1280),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5777 {"bcdtrunc.",	VX (4,1281),	VXPS_MASK,   PPCVEC3,	0,		{VD, VA, VB, PS}},
   5778 {"evmhessiaaw",	VX (4,1281),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5779 {"vavgsb",	VX (4,1282),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5780 {"evmhessfaaw",	VX (4,1283),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5781 {"evmhousiaaw",	VX (4,1284),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5782 {"vnot",	VX (4,1284),	VX_MASK,     PPCVEC,	EXT,		{VD, VAB}},
   5783 {"vnor",	VX (4,1284),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5784 {"evmhossiaaw",	VX (4,1285),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5785 {"udi4fcm.",	APU(4, 643,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5786 {"udi4fcm",	APU(4, 643,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5787 {"vcmpnezb.",	VXR(4, 263,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5788 {"evmhossfaaw",	VX (4,1287),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5789 {"evmheumiaaw",	VX (4,1288),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5790 {"vcipher",	VX (4,1288),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5791 {"vcipherlast",	VX (4,1289),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5792 {"evmhesmiaaw",	VX (4,1289),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5793 {"evmhesmfaaw",	VX (4,1291),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5794 {"vgbbd",	VX (4,1292),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5795 {"evmhoumiaaw",	VX (4,1292),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5796 {"evmhosmiaaw",	VX (4,1293),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5797 {"evmhosmfaaw",	VX (4,1295),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5798 {"macchwuo",	XO (4, 140,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5799 {"macchwuo.",	XO (4, 140,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5800 {"evmhegumiaa",	VX (4,1320),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5801 {"evmhegsmiaa",	VX (4,1321),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5802 {"evmhegsmfaa",	VX (4,1323),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5803 {"evmhogumiaa",	VX (4,1324),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5804 {"evmhogsmiaa",	VX (4,1325),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5805 {"evmhogsmfaa",	VX (4,1327),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5806 {"vsubcuq",	VX (4,1344),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5807 {"evmwlusiaaw",	VX (4,1344),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5808 {"bcdutrunc.",	VX (4,1345),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5809 {"evmwlssiaaw",	VX (4,1345),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5810 {"vavgsh",	VX (4,1346),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5811 {"evmwlssfaaw",	VX (4,1347),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5812 {"evmwhusiaa",	VX (4,1348),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5813 {"vorc",	VX (4,1348),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5814 {"evmwhssmaa",	VX (4,1349),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5815 {"udi5fcm.",	APU(4, 675,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5816 {"udi5fcm",	APU(4, 675,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5817 {"vcmpnezh.",	VXR(4, 327,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5818 {"evmwhssfaa",	VX (4,1351),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5819 {"vncipher",	VX (4,1352),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5820 {"evmwlumiaaw",	VX (4,1352),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5821 {"vncipherlast",VX (4,1353),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5822 {"evmwlsmiaaw",	VX (4,1353),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5823 {"evmwlsmfaaw",	VX (4,1355),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5824 {"evmwhumiaa",	VX (4,1356),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5825 {"vbpermq",	VX (4,1356),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5826 {"vcfuged",	VX (4,1357),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5827 {"evmwhsmiaa",	VX (4,1357),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5828 {"vpksdus",	VX (4,1358),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5829 {"evmwhsmfaa",	VX (4,1359),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5830 {"evmwssfaa",	VX (4,1363),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5831 {"macchwo",	XO (4, 172,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5832 {"evmwumiaa",	VX (4,1368),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5833 {"macchwo.",	XO (4, 172,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5834 {"evmwsmiaa",	VX (4,1369),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5835 {"evmwsmfaa",	VX (4,1371),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5836 {"nmacchwo",	XO (4, 174,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5837 {"nmacchwo.",	XO (4, 174,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5838 {"evmwhgumiaa",	VX (4,1380),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5839 {"evmwhgsmiaa",	VX (4,1381),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5840 {"evmwhgssfaa",	VX (4,1383),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5841 {"evmwhgsmfaa",	VX (4,1391),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5842 {"evmheusianw",	VX (4,1408),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5843 {"vsubcuw",	VX (4,1408),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5844 {"evmhessianw",	VX (4,1409),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5845 {"bcdctsq.",	VXVA(4,1409,0),	VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5846 {"bcdcfsq.",	VXVA(4,1409,2),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5847 {"bcdctz.",	VXVA(4,1409,4),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5848 {"bcdctn.",	VXVA(4,1409,5),	VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5849 {"bcdcfz.",	VXVA(4,1409,6),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5850 {"bcdcfn.",	VXVA(4,1409,7),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5851 {"bcdsetsgn.",	VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5852 {"vavgsw",	VX (4,1410),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5853 {"evmhessfanw",	VX (4,1411),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5854 {"vnand",	VX (4,1412),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5855 {"evmhousianw",	VX (4,1412),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5856 {"evmhossianw",	VX (4,1413),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5857 {"udi6fcm.",	APU(4, 707,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5858 {"udi6fcm",	APU(4, 707,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5859 {"vcmpnezw.",	VXR(4, 391,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5860 {"evmhossfanw",	VX (4,1415),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5861 {"evmheumianw",	VX (4,1416),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5862 {"evmhesmianw",	VX (4,1417),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5863 {"evmhesmfanw",	VX (4,1419),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5864 {"evmhoumianw",	VX (4,1420),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5865 {"vpextd",	VX (4,1421),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5866 {"evmhosmianw",	VX (4,1421),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5867 {"evmhosmfanw",	VX (4,1423),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5868 {"macchwsuo",	XO (4, 204,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5869 {"macchwsuo.",	XO (4, 204,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5870 {"evmhegumian",	VX (4,1448),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5871 {"evmhegsmian",	VX (4,1449),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5872 {"evmhegsmfan",	VX (4,1451),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5873 {"evmhogumian",	VX (4,1452),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5874 {"evmhogsmian",	VX (4,1453),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5875 {"evmhogsmfan",	VX (4,1455),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5876 {"evmwlusianw",	VX (4,1472),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5877 {"bcdsr.",	VX (4,1473),	VXPS_MASK,   PPCVEC3,	0,		{VD, VA, VB, PS}},
   5878 {"evmwlssianw",	VX (4,1473),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5879 {"evmwlssfanw",	VX (4,1475),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5880 {"evmwhusian",	VX (4,1476),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5881 {"vsld",	VX (4,1476),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5882 {"evmwhssian",	VX (4,1477),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5883 {"vcmpgefp.",	VXR(4, 454,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5884 {"udi7fcm.",	APU(4, 739,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5885 {"udi7fcm",	APU(4, 739,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5886 {"vcmpequq.",	VXR(4, 455,1),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5887 {"evmwhssfan",	VX (4,1479),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5888 {"vsbox",	VX (4,1480),	VXVB_MASK,   PPCVEC2,	0,		{VD, VA}},
   5889 {"evmwlumianw",	VX (4,1480),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5890 {"evmwlsmianw",	VX (4,1481),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5891 {"evmwlsmfanw",	VX (4,1483),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5892 {"evmwhumian",	VX (4,1484),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5893 {"vbpermd",	VX (4,1484),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5894 {"vpdepd",	VX (4,1485),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5895 {"evmwhsmian",	VX (4,1485),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5896 {"vpksdss",	VX (4,1486),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5897 {"evmwhsmfan",	VX (4,1487),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5898 {"evmwssfan",	VX (4,1491),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5899 {"macchwso",	XO (4, 236,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5900 {"evmwumian",	VX (4,1496),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5901 {"macchwso.",	XO (4, 236,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5902 {"evmwsmian",	VX (4,1497),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5903 {"evmwsmfan",	VX (4,1499),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5904 {"evmwhgumian",	VX (4,1508),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5905 {"evmwhgsmian",	VX (4,1509),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5906 {"evmwhgssfan",	VX (4,1511),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5907 {"evmwhgsmfan",	VX (4,1519),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5908 {"nmacchwso",	XO (4, 238,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5909 {"nmacchwso.",	XO (4, 238,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5910 {"vsububs",	VX (4,1536),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5911 {"vclzlsbb",	VXVA(4,1538,0), VXVA_MASK,   PPCVEC3,	0,		{RT, VB}},
   5912 {"vctzlsbb",	VXVA(4,1538,1), VXVA_MASK,   PPCVEC3,	0,		{RT, VB}},
   5913 {"vnegw",	VXVA(4,1538,6), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5914 {"vnegd",	VXVA(4,1538,7), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5915 {"vprtybw",	VXVA(4,1538,8), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5916 {"vprtybd",	VXVA(4,1538,9), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5917 {"vprtybq",	VXVA(4,1538,10), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5918 {"vextsb2w",	VXVA(4,1538,16), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5919 {"vextsh2w",	VXVA(4,1538,17), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5920 {"vextsb2d",	VXVA(4,1538,24), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5921 {"vextsh2d",	VXVA(4,1538,25), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5922 {"vextsw2d",	VXVA(4,1538,26), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5923 {"vextsd2q",	VXVA(4,1538,27), VXVA_MASK,  POWER10,	0,		{VD, VB}},
   5924 {"vctzb",	VXVA(4,1538,28), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5925 {"vctzh",	VXVA(4,1538,29), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5926 {"vctzw",	VXVA(4,1538,30), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5927 {"vctzd",	VXVA(4,1538,31), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   5928 {"mfvscr",	VX (4,1540),	VXVAVB_MASK, PPCVEC,	0,		{VD}},
   5929 {"vcmpgtub.",	VXR(4, 518,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5930 {"udi8fcm.",	APU(4, 771,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5931 {"udi8fcm",	APU(4, 771,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5932 {"vsum4ubs",	VX (4,1544),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5933 {"vmoduq",	VX (4,1547),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5934 {"vextublx",	VX (4,1549),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   5935 {"vsubuhs",	VX (4,1600),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5936 
   5937 {"vexpandbm",	VXVA(4,1602,0),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   5938 {"vexpandhm",	VXVA(4,1602,1),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   5939 {"vexpandwm",	VXVA(4,1602,2),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   5940 {"vexpanddm",	VXVA(4,1602,3),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   5941 {"vexpandqm",	VXVA(4,1602,4),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   5942 {"vextractbm",	VXVA(4,1602,8),  VXVA_MASK,  POWER10,	0,		{RT, VB}},
   5943 {"vextracthm",	VXVA(4,1602,9),  VXVA_MASK,  POWER10,	0,		{RT, VB}},
   5944 {"vextractwm",	VXVA(4,1602,10), VXVA_MASK,  POWER10,	0,		{RT, VB}},
   5945 {"vextractdm",	VXVA(4,1602,11), VXVA_MASK,  POWER10,	0,		{RT, VB}},
   5946 {"vextractqm",	VXVA(4,1602,12), VXVA_MASK,  POWER10,	0,		{RT, VB}},
   5947 {"mtvsrbm",	VXVA(4,1602,16), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   5948 {"mtvsrhm",	VXVA(4,1602,17), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   5949 {"mtvsrwm",	VXVA(4,1602,18), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   5950 {"mtvsrdm",	VXVA(4,1602,19), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   5951 {"mtvsrqm",	VXVA(4,1602,20), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   5952 {"vcntmbb",	VXVA(4,1602,24), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   5953 {"vcntmbh",	VXVA(4,1602,26), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   5954 {"vcntmbw",	VXVA(4,1602,28), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   5955 {"vcntmbd",	VXVA(4,1602,30), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   5956 
   5957 {"mtvscr",	VX (4,1604),	VXVDVA_MASK, PPCVEC,	0,		{VB}},
   5958 {"vcmpgtuh.",	VXR(4, 582,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5959 {"vsum4shs",	VX (4,1608),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5960 {"udi9fcm.",	APU(4, 804,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5961 {"udi9fcm",	APU(4, 804,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5962 {"vextuhlx",	VX (4,1613),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   5963 {"vupkhsw",	VX (4,1614),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5964 {"vsubuws",	VX (4,1664),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5965 {"vshasigmaw",	VX (4,1666),	VX_MASK,     PPCVEC2,	0,		{VD, VA, ST, SIX}},
   5966 {"veqv",	VX (4,1668),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5967 {"vcmpgtuw.",	VXR(4, 646,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5968 {"udi10fcm.",	APU(4, 835,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5969 {"vcmpgtuq.",	VXR(4, 647,1),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5970 {"udi10fcm",	APU(4, 835,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5971 {"vsum2sws",	VX (4,1672),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5972 {"vmoduw",	VX (4,1675),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5973 {"vmrgow",	VX (4,1676),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5974 {"vextuwlx",	VX (4,1677),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   5975 {"vshasigmad",	VX (4,1730),	VX_MASK,     PPCVEC2,	0,		{VD, VA, ST, SIX}},
   5976 {"vsrd",	VX (4,1732),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5977 {"vcmpgtfp.",	VXR(4, 710,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5978 {"udi11fcm.",	APU(4, 867,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5979 {"vcmpgtud.",	VXR(4, 711,1),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5980 {"udi11fcm",	APU(4, 867,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5981 {"vmodud",	VX (4,1739),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5982 {"vupklsw",	VX (4,1742),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5983 {"vsubsbs",	VX (4,1792),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5984 {"vclzb",	VX (4,1794),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5985 {"vpopcntb",	VX (4,1795),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5986 {"vsrv",	VX (4,1796),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5987 {"vcmpgtsb.",	VXR(4, 774,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5988 {"udi12fcm.",	APU(4, 899,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5989 {"udi12fcm",	APU(4, 899,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   5990 {"vsum4sbs",	VX (4,1800),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5991 {"vmodsq",	VX (4,1803),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5992 {"vextubrx",	VX (4,1805),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   5993 {"maclhwuo",	XO (4, 396,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5994 {"maclhwuo.",	XO (4, 396,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5995 {"vsubshs",	VX (4,1856),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5996 {"vclzh",	VX (4,1858),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5997 {"vpopcnth",	VX (4,1859),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5998 {"vslv",	VX (4,1860),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5999 {"vcmpgtsh.",	VXR(4, 838,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6000 {"vextuhrx",	VX (4,1869),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6001 {"udi13fcm.",	APU(4, 931,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6002 {"udi13fcm",	APU(4, 931,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6003 {"maclhwo",	XO (4, 428,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6004 {"maclhwo.",	XO (4, 428,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6005 {"nmaclhwo",	XO (4, 430,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6006 {"nmaclhwo.",	XO (4, 430,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6007 {"vsubsws",	VX (4,1920),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6008 {"vclzw",	VX (4,1922),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6009 {"vpopcntw",	VX (4,1923),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6010 {"vclzdm",	VX (4,1924),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6011 {"vcmpgtsw.",	VXR(4, 902,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6012 {"udi14fcm.",	APU(4, 963,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6013 {"vcmpgtsq.",	VXR(4, 903,1),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   6014 {"udi14fcm",	APU(4, 963,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6015 {"vsumsws",	VX (4,1928),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6016 {"vmodsw",	VX (4,1931),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6017 {"vmrgew",	VX (4,1932),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6018 {"vextuwrx",	VX (4,1933),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6019 {"maclhwsuo",	XO (4, 460,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6020 {"maclhwsuo.",	XO (4, 460,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6021 {"vclzd",	VX (4,1986),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6022 {"vpopcntd",	VX (4,1987),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6023 {"vctzdm",	VX (4,1988),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6024 {"vcmpbfp.",	VXR(4, 966,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6025 {"udi15fcm.",	APU(4, 995,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6026 {"vcmpgtsd.",	VXR(4, 967,1),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   6027 {"udi15fcm",	APU(4, 995,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6028 {"vmodsd",	VX (4,1995),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6029 {"maclhwso",	XO (4, 492,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6030 {"maclhwso.",	XO (4, 492,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6031 {"nmaclhwso",	XO (4, 494,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6032 {"nmaclhwso.",	XO (4, 494,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6033 {"dcbz_l",	X  (4,1014),	XRT_MASK,    PPCPS,	0,		{RA, RB}},
   6034 
   6035 {"lxvp",	DQXP(6,0),	DQXP_MASK,   POWER10,	PPCVLE,		{XTP, DQ, RA0}},
   6036 {"stxvp",	DQXP(6,1),	DQXP_MASK,   POWER10,	PPCVLE,		{XSP, DQ, RA0}},
   6037 
   6038 {"mulli",	OP(7),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6039 {"muli",	OP(7),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6040 
   6041 {"subfic",	OP(8),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6042 {"sfi",		OP(8),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6043 
   6044 {"dozi",	OP(9),		OP_MASK,     M601,	PPCVLE,		{RT, RA, SI}},
   6045 
   6046 {"cmplwi",	OPL(10,0),	OPL_MASK,    PPCCOM,	PPCVLE|EXT,	{OBF, RA, UISIGNOPT}},
   6047 {"cmpldi",	OPL(10,1),	OPL_MASK,    PPC64,	PPCVLE|EXT,	{OBF, RA, UISIGNOPT}},
   6048 {"cmpli",	OP(10),		OP_MASK,     PPC,	PPCVLE,		{BF, L32OPT, RA, UISIGNOPT}},
   6049 {"cmpli",	OP(10),		OP_MASK,     PWRCOM,	PPC|PPCVLE,	{BF, RA, UISIGNOPT}},
   6050 
   6051 {"cmpwi",	OPL(11,0),	OPL_MASK,    PPCCOM,	PPCVLE|EXT,	{OBF, RA, SI}},
   6052 {"cmpdi",	OPL(11,1),	OPL_MASK,    PPC64,	PPCVLE|EXT,	{OBF, RA, SI}},
   6053 {"cmpi",	OP(11),		OP_MASK,     PPC,	PPCVLE,		{BF, L32OPT, RA, SI}},
   6054 {"cmpi",	OP(11),		OP_MASK,     PWRCOM,	PPC|PPCVLE,	{BF, RA, SI}},
   6055 
   6056 {"addic",	OP(12),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6057 {"ai",		OP(12),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6058 {"subic",	OP(12),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA, NSI}},
   6059 
   6060 {"addic.",	OP(13),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6061 {"ai.",		OP(13),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6062 {"subic.",	OP(13),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA, NSI}},
   6063 
   6064 {"li",		OP(14),		DRA_MASK,    PPCCOM,	PPCVLE|EXT,	{RT, SI}},
   6065 {"lil",		OP(14),		DRA_MASK,    PWRCOM,	PPCVLE|EXT,	{RT, SI}},
   6066 {"addi",	OP(14),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA0, SI}},
   6067 {"cal",		OP(14),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   6068 {"subi",	OP(14),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA0, NSI}},
   6069 {"la",		OP(14),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, D, RA0}},
   6070 
   6071 {"lis",		OP(15),		DRA_MASK,    PPCCOM,	PPCVLE|EXT,	{RT, SISIGNOPT}},
   6072 {"liu",		OP(15),		DRA_MASK,    PWRCOM,	PPCVLE|EXT,	{RT, SISIGNOPT}},
   6073 {"addis",	OP(15),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA0, SISIGNOPT}},
   6074 {"cau",		OP(15),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA0, SISIGNOPT}},
   6075 {"subis",	OP(15),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA0, NSISIGNOPT}},
   6076 
   6077 {"bdnz-",    BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6078 {"bdnz+",    BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6079 {"bdnz",     BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BD}},
   6080 {"bdn",	     BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BD}},
   6081 {"bdnzl-",   BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6082 {"bdnzl+",   BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6083 {"bdnzl",    BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BD}},
   6084 {"bdnl",     BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BD}},
   6085 {"bdnza-",   BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6086 {"bdnza+",   BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6087 {"bdnza",    BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDA}},
   6088 {"bdna",     BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BDA}},
   6089 {"bdnzla-",  BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6090 {"bdnzla+",  BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6091 {"bdnzla",   BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDA}},
   6092 {"bdnla",    BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BDA}},
   6093 {"bdz-",     BBO(16,BODZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6094 {"bdz+",     BBO(16,BODZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6095 {"bdz",	     BBO(16,BODZ,0,0),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BD}},
   6096 {"bdzl-",    BBO(16,BODZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6097 {"bdzl+",    BBO(16,BODZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6098 {"bdzl",     BBO(16,BODZ,0,1),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BD}},
   6099 {"bdza-",    BBO(16,BODZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6100 {"bdza+",    BBO(16,BODZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6101 {"bdza",     BBO(16,BODZ,1,0),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BDA}},
   6102 {"bdzla-",   BBO(16,BODZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6103 {"bdzla+",   BBO(16,BODZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6104 {"bdzla",    BBO(16,BODZ,1,1),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BDA}},
   6105 
   6106 {"bge-",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6107 {"bge+",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6108 {"bge",	     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6109 {"bnl-",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6110 {"bnl+",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6111 {"bnl",	     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6112 {"bgel-",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6113 {"bgel+",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6114 {"bgel",     BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6115 {"bnll-",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6116 {"bnll+",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6117 {"bnll",     BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6118 {"bgea-",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6119 {"bgea+",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6120 {"bgea",     BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6121 {"bnla-",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6122 {"bnla+",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6123 {"bnla",     BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6124 {"bgela-",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6125 {"bgela+",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6126 {"bgela",    BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6127 {"bnlla-",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6128 {"bnlla+",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6129 {"bnlla",    BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6130 {"ble-",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6131 {"ble+",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6132 {"ble",	     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6133 {"bng-",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6134 {"bng+",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6135 {"bng",	     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6136 {"blel-",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6137 {"blel+",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6138 {"blel",     BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6139 {"bngl-",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6140 {"bngl+",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6141 {"bngl",     BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6142 {"blea-",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6143 {"blea+",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6144 {"blea",     BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6145 {"bnga-",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6146 {"bnga+",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6147 {"bnga",     BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6148 {"blela-",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6149 {"blela+",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6150 {"blela",    BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6151 {"bngla-",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6152 {"bngla+",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6153 {"bngla",    BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6154 {"bne-",     BBOCB(16,BOF,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6155 {"bne+",     BBOCB(16,BOF,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6156 {"bne",	     BBOCB(16,BOF,CBEQ,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6157 {"bnel-",    BBOCB(16,BOF,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6158 {"bnel+",    BBOCB(16,BOF,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6159 {"bnel",     BBOCB(16,BOF,CBEQ,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6160 {"bnea-",    BBOCB(16,BOF,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6161 {"bnea+",    BBOCB(16,BOF,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6162 {"bnea",     BBOCB(16,BOF,CBEQ,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6163 {"bnela-",   BBOCB(16,BOF,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6164 {"bnela+",   BBOCB(16,BOF,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6165 {"bnela",    BBOCB(16,BOF,CBEQ,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6166 {"bns-",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6167 {"bns+",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6168 {"bns",	     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6169 {"bnu-",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6170 {"bnu+",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6171 {"bnu",	     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6172 {"bnsl-",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6173 {"bnsl+",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6174 {"bnsl",     BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6175 {"bnul-",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6176 {"bnul+",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6177 {"bnul",     BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6178 {"bnsa-",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6179 {"bnsa+",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6180 {"bnsa",     BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6181 {"bnua-",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6182 {"bnua+",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6183 {"bnua",     BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6184 {"bnsla-",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6185 {"bnsla+",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6186 {"bnsla",    BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6187 {"bnula-",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6188 {"bnula+",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6189 {"bnula",    BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6190 
   6191 {"blt-",     BBOCB(16,BOT,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6192 {"blt+",     BBOCB(16,BOT,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6193 {"blt",	     BBOCB(16,BOT,CBLT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6194 {"bltl-",    BBOCB(16,BOT,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6195 {"bltl+",    BBOCB(16,BOT,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6196 {"bltl",     BBOCB(16,BOT,CBLT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6197 {"blta-",    BBOCB(16,BOT,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6198 {"blta+",    BBOCB(16,BOT,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6199 {"blta",     BBOCB(16,BOT,CBLT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6200 {"bltla-",   BBOCB(16,BOT,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6201 {"bltla+",   BBOCB(16,BOT,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6202 {"bltla",    BBOCB(16,BOT,CBLT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6203 {"bgt-",     BBOCB(16,BOT,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6204 {"bgt+",     BBOCB(16,BOT,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6205 {"bgt",	     BBOCB(16,BOT,CBGT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6206 {"bgtl-",    BBOCB(16,BOT,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6207 {"bgtl+",    BBOCB(16,BOT,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6208 {"bgtl",     BBOCB(16,BOT,CBGT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6209 {"bgta-",    BBOCB(16,BOT,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6210 {"bgta+",    BBOCB(16,BOT,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6211 {"bgta",     BBOCB(16,BOT,CBGT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6212 {"bgtla-",   BBOCB(16,BOT,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6213 {"bgtla+",   BBOCB(16,BOT,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6214 {"bgtla",    BBOCB(16,BOT,CBGT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6215 {"beq-",     BBOCB(16,BOT,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6216 {"beq+",     BBOCB(16,BOT,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6217 {"beq",	     BBOCB(16,BOT,CBEQ,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6218 {"beql-",    BBOCB(16,BOT,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6219 {"beql+",    BBOCB(16,BOT,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6220 {"beql",     BBOCB(16,BOT,CBEQ,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6221 {"beqa-",    BBOCB(16,BOT,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6222 {"beqa+",    BBOCB(16,BOT,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6223 {"beqa",     BBOCB(16,BOT,CBEQ,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6224 {"beqla-",   BBOCB(16,BOT,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6225 {"beqla+",   BBOCB(16,BOT,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6226 {"beqla",    BBOCB(16,BOT,CBEQ,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6227 {"bso-",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6228 {"bso+",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6229 {"bso",	     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6230 {"bun-",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6231 {"bun+",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6232 {"bun",	     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6233 {"bsol-",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6234 {"bsol+",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6235 {"bsol",     BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6236 {"bunl-",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6237 {"bunl+",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6238 {"bunl",     BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6239 {"bsoa-",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6240 {"bsoa+",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6241 {"bsoa",     BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6242 {"buna-",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6243 {"buna+",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6244 {"buna",     BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6245 {"bsola-",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6246 {"bsola+",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6247 {"bsola",    BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6248 {"bunla-",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6249 {"bunla+",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6250 {"bunla",    BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6251 
   6252 {"bdnzf-",   BBO(16,BODNZF,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6253 {"bdnzf+",   BBO(16,BODNZF,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6254 {"bdnzf",    BBO(16,BODNZF,0,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6255 {"bdnzfl-",  BBO(16,BODNZF,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6256 {"bdnzfl+",  BBO(16,BODNZF,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6257 {"bdnzfl",   BBO(16,BODNZF,0,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6258 {"bdnzfa-",  BBO(16,BODNZF,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6259 {"bdnzfa+",  BBO(16,BODNZF,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6260 {"bdnzfa",   BBO(16,BODNZF,1,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6261 {"bdnzfla-", BBO(16,BODNZF,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6262 {"bdnzfla+", BBO(16,BODNZF,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6263 {"bdnzfla",  BBO(16,BODNZF,1,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6264 {"bdzf-",    BBO(16,BODZF,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6265 {"bdzf+",    BBO(16,BODZF,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6266 {"bdzf",     BBO(16,BODZF,0,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6267 {"bdzfl-",   BBO(16,BODZF,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6268 {"bdzfl+",   BBO(16,BODZF,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6269 {"bdzfl",    BBO(16,BODZF,0,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6270 {"bdzfa-",   BBO(16,BODZF,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6271 {"bdzfa+",   BBO(16,BODZF,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6272 {"bdzfa",    BBO(16,BODZF,1,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6273 {"bdzfla-",  BBO(16,BODZF,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6274 {"bdzfla+",  BBO(16,BODZF,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6275 {"bdzfla",   BBO(16,BODZF,1,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6276 
   6277 {"bf-",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6278 {"bf+",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6279 {"bf",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6280 {"bbf",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6281 {"bfl-",     BBO(16,BOF,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6282 {"bfl+",     BBO(16,BOF,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6283 {"bfl",	     BBO(16,BOF,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6284 {"bbfl",     BBO(16,BOF,0,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6285 {"bfa-",     BBO(16,BOF,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6286 {"bfa+",     BBO(16,BOF,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6287 {"bfa",	     BBO(16,BOF,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6288 {"bbfa",     BBO(16,BOF,1,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6289 {"bfla-",    BBO(16,BOF,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6290 {"bfla+",    BBO(16,BOF,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6291 {"bfla",     BBO(16,BOF,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6292 {"bbfla",    BBO(16,BOF,1,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6293 
   6294 {"bdnzt-",   BBO(16,BODNZT,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6295 {"bdnzt+",   BBO(16,BODNZT,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6296 {"bdnzt",    BBO(16,BODNZT,0,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6297 {"bdnztl-",  BBO(16,BODNZT,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6298 {"bdnztl+",  BBO(16,BODNZT,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6299 {"bdnztl",   BBO(16,BODNZT,0,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6300 {"bdnzta-",  BBO(16,BODNZT,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6301 {"bdnzta+",  BBO(16,BODNZT,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6302 {"bdnzta",   BBO(16,BODNZT,1,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6303 {"bdnztla-", BBO(16,BODNZT,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6304 {"bdnztla+", BBO(16,BODNZT,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6305 {"bdnztla",  BBO(16,BODNZT,1,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6306 {"bdzt-",    BBO(16,BODZT,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6307 {"bdzt+",    BBO(16,BODZT,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6308 {"bdzt",     BBO(16,BODZT,0,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6309 {"bdztl-",   BBO(16,BODZT,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6310 {"bdztl+",   BBO(16,BODZT,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6311 {"bdztl",    BBO(16,BODZT,0,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6312 {"bdzta-",   BBO(16,BODZT,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6313 {"bdzta+",   BBO(16,BODZT,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6314 {"bdzta",    BBO(16,BODZT,1,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6315 {"bdztla-",  BBO(16,BODZT,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6316 {"bdztla+",  BBO(16,BODZT,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6317 {"bdztla",   BBO(16,BODZT,1,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6318 
   6319 {"bt-",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6320 {"bt+",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6321 {"bt",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6322 {"bbt",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6323 {"btl-",     BBO(16,BOT,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6324 {"btl+",     BBO(16,BOT,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6325 {"btl",	     BBO(16,BOT,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6326 {"bbtl",     BBO(16,BOT,0,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6327 {"bta-",     BBO(16,BOT,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6328 {"bta+",     BBO(16,BOT,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6329 {"bta",	     BBO(16,BOT,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6330 {"bbta",     BBO(16,BOT,1,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6331 {"btla-",    BBO(16,BOT,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6332 {"btla+",    BBO(16,BOT,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6333 {"btla",     BBO(16,BOT,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6334 {"bbtla",    BBO(16,BOT,1,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6335 
   6336 {"bc-",		B(16,0,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDM}},
   6337 {"bc+",		B(16,0,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDP}},
   6338 {"bc",		B(16,0,0),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BD}},
   6339 {"bcl-",	B(16,0,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDM}},
   6340 {"bcl+",	B(16,0,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDP}},
   6341 {"bcl",		B(16,0,1),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BD}},
   6342 {"bca-",	B(16,1,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDMA}},
   6343 {"bca+",	B(16,1,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDPA}},
   6344 {"bca",		B(16,1,0),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BDA}},
   6345 {"bcla-",	B(16,1,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDMA}},
   6346 {"bcla+",	B(16,1,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDPA}},
   6347 {"bcla",	B(16,1,1),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BDA}},
   6348 
   6349 {"svc",		SC(17,0,0),	SC_MASK,     POWER,	PPCVLE,		{SVC_LEV, FL1, FL2}},
   6350 {"scv",		SC(17,0,1),	SC_MASK,     POWER9,	PPCVLE,		{SVC_LEV}},
   6351 {"svcl",	SC(17,0,1),	SC_MASK,     POWER,	PPCVLE,		{SVC_LEV, FL1, FL2}},
   6352 {"sc",		SC(17,1,0),	SC_MASK,     PPC,	PPCVLE,		{LEV}},
   6353 {"svca",	SC(17,1,0),	SC_MASK,     PWRCOM,	PPCVLE,		{SV}},
   6354 {"svcla",	SC(17,1,1),	SC_MASK,     POWER,	PPCVLE,		{SV}},
   6355 
   6356 {"b",		B(18,0,0),	B_MASK,	     COM,	PPCVLE,		{LI}},
   6357 {"bl",		B(18,0,1),	B_MASK,	     COM,	PPCVLE,		{LI}},
   6358 {"ba",		B(18,1,0),	B_MASK,	     COM,	PPCVLE,		{LIA}},
   6359 {"bla",		B(18,1,1),	B_MASK,	     COM,	PPCVLE,		{LIA}},
   6360 
   6361 {"mcrf",     XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM,	PPCVLE,		{BF, BFA}},
   6362 
   6363 {"lnia",     DX(19,2),		NODX_MASK,   POWER9,	PPCVLE|EXT,	{RT}},
   6364 {"addpcis",  DX(19,2),		DX_MASK,     POWER9,	PPCVLE,		{RT, DXD}},
   6365 {"subpcis",  DX(19,2),		DX_MASK,     POWER9,	PPCVLE|EXT,	{RT, NDXD}},
   6366 
   6367 {"bdnzlr-",  XLO(19,BODNZ,16,0),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6368 {"bdnzlr+",  XLO(19,BODNZP,16,0),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6369 {"bdnzlr",   XLO(19,BODNZ,16,0),	XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6370 {"bdnzlrl-", XLO(19,BODNZ,16,1),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6371 {"bdnzlrl+", XLO(19,BODNZP,16,1),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6372 {"bdnzlrl",  XLO(19,BODNZ,16,1),	XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6373 {"bdzlr-",   XLO(19,BODZ,16,0),		XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6374 {"bdzlr+",   XLO(19,BODZP,16,0),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6375 {"bdzlr",    XLO(19,BODZ,16,0),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6376 {"bdzlrl-",  XLO(19,BODZ,16,1),		XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6377 {"bdzlrl+",  XLO(19,BODZP,16,1),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6378 {"bdzlrl",   XLO(19,BODZ,16,1),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6379 {"blr",	     XLO(19,BOU,16,0),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6380 {"br",	     XLO(19,BOU,16,0),		XLBOBIBB_MASK, PWRCOM,	 PPCVLE|EXT,		{BH}},
   6381 {"blrl",     XLO(19,BOU,16,1),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6382 {"brl",	     XLO(19,BOU,16,1),		XLBOBIBB_MASK, PWRCOM,	 PPCVLE|EXT,		{BH}},
   6383 {"bdnzlr-",  XLO(19,BODNZM4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6384 {"bdnzlrl-", XLO(19,BODNZM4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6385 {"bdnzlr+",  XLO(19,BODNZP4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6386 {"bdnzlrl+", XLO(19,BODNZP4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6387 {"bdzlr-",   XLO(19,BODZM4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6388 {"bdzlrl-",  XLO(19,BODZM4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6389 {"bdzlr+",   XLO(19,BODZP4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6390 {"bdzlrl+",  XLO(19,BODZP4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6391 
   6392 {"bgelr-",   XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6393 {"bgelr+",   XLOCB(19,BOFP,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6394 {"bgelr",    XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6395 {"bger",     XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6396 {"bnllr-",   XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6397 {"bnllr+",   XLOCB(19,BOFP,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6398 {"bnllr",    XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6399 {"bnlr",     XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6400 {"bgelrl-",  XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6401 {"bgelrl+",  XLOCB(19,BOFP,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6402 {"bgelrl",   XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6403 {"bgerl",    XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6404 {"bnllrl-",  XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6405 {"bnllrl+",  XLOCB(19,BOFP,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6406 {"bnllrl",   XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6407 {"bnlrl",    XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6408 {"blelr-",   XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6409 {"blelr+",   XLOCB(19,BOFP,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6410 {"blelr",    XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6411 {"bler",     XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6412 {"bnglr-",   XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6413 {"bnglr+",   XLOCB(19,BOFP,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6414 {"bnglr",    XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6415 {"bngr",     XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6416 {"blelrl-",  XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6417 {"blelrl+",  XLOCB(19,BOFP,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6418 {"blelrl",   XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6419 {"blerl",    XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6420 {"bnglrl-",  XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6421 {"bnglrl+",  XLOCB(19,BOFP,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6422 {"bnglrl",   XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6423 {"bngrl",    XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6424 {"bnelr-",   XLOCB(19,BOF,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6425 {"bnelr+",   XLOCB(19,BOFP,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6426 {"bnelr",    XLOCB(19,BOF,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6427 {"bner",     XLOCB(19,BOF,CBEQ,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6428 {"bnelrl-",  XLOCB(19,BOF,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6429 {"bnelrl+",  XLOCB(19,BOFP,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6430 {"bnelrl",   XLOCB(19,BOF,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6431 {"bnerl",    XLOCB(19,BOF,CBEQ,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6432 {"bnslr-",   XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6433 {"bnslr+",   XLOCB(19,BOFP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6434 {"bnslr",    XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6435 {"bnsr",     XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6436 {"bnulr-",   XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6437 {"bnulr+",   XLOCB(19,BOFP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6438 {"bnulr",    XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6439 {"bnslrl-",  XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6440 {"bnslrl+",  XLOCB(19,BOFP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6441 {"bnslrl",   XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6442 {"bnsrl",    XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6443 {"bnulrl-",  XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6444 {"bnulrl+",  XLOCB(19,BOFP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6445 {"bnulrl",   XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6446 {"bgelr-",   XLOCB(19,BOFM4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6447 {"bnllr-",   XLOCB(19,BOFM4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6448 {"bgelrl-",  XLOCB(19,BOFM4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6449 {"bnllrl-",  XLOCB(19,BOFM4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6450 {"blelr-",   XLOCB(19,BOFM4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6451 {"bnglr-",   XLOCB(19,BOFM4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6452 {"blelrl-",  XLOCB(19,BOFM4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6453 {"bnglrl-",  XLOCB(19,BOFM4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6454 {"bnelr-",   XLOCB(19,BOFM4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6455 {"bnelrl-",  XLOCB(19,BOFM4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6456 {"bnslr-",   XLOCB(19,BOFM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6457 {"bnulr-",   XLOCB(19,BOFM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6458 {"bnslrl-",  XLOCB(19,BOFM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6459 {"bnulrl-",  XLOCB(19,BOFM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6460 {"bgelr+",   XLOCB(19,BOFP4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6461 {"bnllr+",   XLOCB(19,BOFP4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6462 {"bgelrl+",  XLOCB(19,BOFP4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6463 {"bnllrl+",  XLOCB(19,BOFP4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6464 {"blelr+",   XLOCB(19,BOFP4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6465 {"bnglr+",   XLOCB(19,BOFP4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6466 {"blelrl+",  XLOCB(19,BOFP4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6467 {"bnglrl+",  XLOCB(19,BOFP4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6468 {"bnelr+",   XLOCB(19,BOFP4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6469 {"bnelrl+",  XLOCB(19,BOFP4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6470 {"bnslr+",   XLOCB(19,BOFP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6471 {"bnulr+",   XLOCB(19,BOFP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6472 {"bnslrl+",  XLOCB(19,BOFP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6473 {"bnulrl+",  XLOCB(19,BOFP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6474 {"bltlr-",   XLOCB(19,BOT,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6475 {"bltlr+",   XLOCB(19,BOTP,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6476 {"bltlr",    XLOCB(19,BOT,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6477 {"bltr",     XLOCB(19,BOT,CBLT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6478 {"bltlrl-",  XLOCB(19,BOT,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6479 {"bltlrl+",  XLOCB(19,BOTP,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6480 {"bltlrl",   XLOCB(19,BOT,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6481 {"bltrl",    XLOCB(19,BOT,CBLT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6482 {"bgtlr-",   XLOCB(19,BOT,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6483 {"bgtlr+",   XLOCB(19,BOTP,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6484 {"bgtlr",    XLOCB(19,BOT,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6485 {"bgtr",     XLOCB(19,BOT,CBGT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6486 {"bgtlrl-",  XLOCB(19,BOT,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6487 {"bgtlrl+",  XLOCB(19,BOTP,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6488 {"bgtlrl",   XLOCB(19,BOT,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6489 {"bgtrl",    XLOCB(19,BOT,CBGT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6490 {"beqlr-",   XLOCB(19,BOT,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6491 {"beqlr+",   XLOCB(19,BOTP,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6492 {"beqlr",    XLOCB(19,BOT,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6493 {"beqr",     XLOCB(19,BOT,CBEQ,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6494 {"beqlrl-",  XLOCB(19,BOT,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6495 {"beqlrl+",  XLOCB(19,BOTP,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6496 {"beqlrl",   XLOCB(19,BOT,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6497 {"beqrl",    XLOCB(19,BOT,CBEQ,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6498 {"bsolr-",   XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6499 {"bsolr+",   XLOCB(19,BOTP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6500 {"bsolr",    XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6501 {"bsor",     XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6502 {"bunlr-",   XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6503 {"bunlr+",   XLOCB(19,BOTP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6504 {"bunlr",    XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6505 {"bsolrl-",  XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6506 {"bsolrl+",  XLOCB(19,BOTP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6507 {"bsolrl",   XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6508 {"bsorl",    XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6509 {"bunlrl-",  XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6510 {"bunlrl+",  XLOCB(19,BOTP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6511 {"bunlrl",   XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6512 {"bltlr-",   XLOCB(19,BOTM4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6513 {"bltlrl-",  XLOCB(19,BOTM4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6514 {"bgtlr-",   XLOCB(19,BOTM4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6515 {"bgtlrl-",  XLOCB(19,BOTM4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6516 {"beqlr-",   XLOCB(19,BOTM4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6517 {"beqlrl-",  XLOCB(19,BOTM4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6518 {"bsolr-",   XLOCB(19,BOTM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6519 {"bunlr-",   XLOCB(19,BOTM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6520 {"bsolrl-",  XLOCB(19,BOTM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6521 {"bunlrl-",  XLOCB(19,BOTM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6522 {"bltlr+",   XLOCB(19,BOTP4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6523 {"bltlrl+",  XLOCB(19,BOTP4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6524 {"bgtlr+",   XLOCB(19,BOTP4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6525 {"bgtlrl+",  XLOCB(19,BOTP4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6526 {"beqlr+",   XLOCB(19,BOTP4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6527 {"beqlrl+",  XLOCB(19,BOTP4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6528 {"bsolr+",   XLOCB(19,BOTP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6529 {"bunlr+",   XLOCB(19,BOTP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6530 {"bsolrl+",  XLOCB(19,BOTP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6531 {"bunlrl+",  XLOCB(19,BOTP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6532 
   6533 {"bdnzflr-", XLO(19,BODNZF,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6534 {"bdnzflr+", XLO(19,BODNZFP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6535 {"bdnzflr",  XLO(19,BODNZF,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6536 {"bdnzflrl-",XLO(19,BODNZF,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6537 {"bdnzflrl+",XLO(19,BODNZFP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6538 {"bdnzflrl", XLO(19,BODNZF,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6539 {"bdzflr-",  XLO(19,BODZF,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6540 {"bdzflr+",  XLO(19,BODZFP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6541 {"bdzflr",   XLO(19,BODZF,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6542 {"bdzflrl-", XLO(19,BODZF,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6543 {"bdzflrl+", XLO(19,BODZFP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6544 {"bdzflrl",  XLO(19,BODZF,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6545 {"bflr-",    XLO(19,BOF,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6546 {"bflr+",    XLO(19,BOFP,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6547 {"bflr",     XLO(19,BOF,16,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6548 {"bbfr",     XLO(19,BOF,16,0),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6549 {"bflrl-",   XLO(19,BOF,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6550 {"bflrl+",   XLO(19,BOFP,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6551 {"bflrl",    XLO(19,BOF,16,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6552 {"bbfrl",    XLO(19,BOF,16,1),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6553 {"bflr-",    XLO(19,BOFM4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6554 {"bflrl-",   XLO(19,BOFM4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6555 {"bflr+",    XLO(19,BOFP4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6556 {"bflrl+",   XLO(19,BOFP4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6557 {"bdnztlr-", XLO(19,BODNZT,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6558 {"bdnztlr+", XLO(19,BODNZTP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6559 {"bdnztlr",  XLO(19,BODNZT,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6560 {"bdnztlrl-", XLO(19,BODNZT,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6561 {"bdnztlrl+", XLO(19,BODNZTP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6562 {"bdnztlrl", XLO(19,BODNZT,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6563 {"bdztlr-",  XLO(19,BODZT,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6564 {"bdztlr+",  XLO(19,BODZTP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6565 {"bdztlr",   XLO(19,BODZT,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6566 {"bdztlrl-", XLO(19,BODZT,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6567 {"bdztlrl+", XLO(19,BODZTP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6568 {"bdztlrl",  XLO(19,BODZT,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6569 {"btlr-",    XLO(19,BOT,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6570 {"btlr+",    XLO(19,BOTP,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6571 {"btlr",     XLO(19,BOT,16,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6572 {"bbtr",     XLO(19,BOT,16,0),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6573 {"btlrl-",   XLO(19,BOT,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6574 {"btlrl+",   XLO(19,BOTP,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6575 {"btlrl",    XLO(19,BOT,16,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6576 {"bbtrl",    XLO(19,BOT,16,1),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6577 {"btlr-",    XLO(19,BOTM4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6578 {"btlrl-",   XLO(19,BOTM4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6579 {"btlr+",    XLO(19,BOTP4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6580 {"btlrl+",   XLO(19,BOTP4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6581 
   6582 {"bclr-",    XLLK(19,16,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6583 {"bclr+",    XLLK(19,16,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6584 {"bclr",     XLLK(19,16,0),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6585 {"bcr",	     XLLK(19,16,0),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6586 {"bclrl-",   XLLK(19,16,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6587 {"bclrl+",   XLLK(19,16,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6588 {"bclrl",    XLLK(19,16,1),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6589 {"bcrl",     XLLK(19,16,1),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6590 
   6591 {"rfid",	XL(19,18),	0xffffffff,  PPC64,	PPCVLE,	{0}},
   6592 
   6593 {"crnot",	XL(19,33),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BT, BAB}},
   6594 {"crnor",	XL(19,33),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6595 
   6596 {"rfmci",	X(19,38),    0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE,	{0}},
   6597 {"rfdi",	XL(19,39),	0xffffffff,  E500MC,	PPCVLE,		{0}},
   6598 {"rfi",		XL(19,50),	0xffffffff,  COM,	PPCVLE,		{0}},
   6599 {"rfci",	XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
   6600 
   6601 {"rfscv",	XL(19,82),	0xffffffff,  POWER9,	PPCVLE,		{0}},
   6602 {"rfsvc",	XL(19,82),	0xffffffff,  POWER,	PPCVLE,		{0}},
   6603 
   6604 {"rfgi",	XL(19,102),   0xffffffff, E500MC|PPCA2,	PPCVLE,		{0}},
   6605 
   6606 {"crandc",	XL(19,129),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6607 
   6608 {"rfebb",	XL(19,146),	XLS_MASK,    POWER8,	PPCVLE,		{SXL}},
   6609 
   6610 {"isync",	XL(19,150),	0xffffffff,  PPCCOM,	PPCVLE,		{0}},
   6611 {"ics",		XL(19,150),	0xffffffff,  PWRCOM,	PPCVLE,		{0}},
   6612 
   6613 {"crclr",	XL(19,193),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BTAB}},
   6614 {"crxor",	XL(19,193),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6615 
   6616 {"dnh",		X(19,198),	X_MASK,	     E500MC,	PPCVLE,		{DUI, DUIS}},
   6617 
   6618 {"crnand",	XL(19,225),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6619 
   6620 {"crand",	XL(19,257),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6621 
   6622 {"hrfid",	XL(19,274),    0xffffffff, POWER5|CELL, PPC476|PPCVLE,	{0}},
   6623 
   6624 {"crset",	XL(19,289),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BTAB}},
   6625 {"creqv",	XL(19,289),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6626 
   6627 {"urfid",	XL(19,306),	0xffffffff,  POWER9,	PPCVLE,		{0}},
   6628 {"stop",	XL(19,370),	0xffffffff,  POWER9,	PPCVLE,		{0}},
   6629 
   6630 {"doze",	XL(19,402),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6631 
   6632 {"crorc",	XL(19,417),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6633 
   6634 {"nap",		XL(19,434),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6635 
   6636 {"crmove",	XL(19,449),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BT, BAB}},
   6637 {"cror",	XL(19,449),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6638 
   6639 {"sleep",	XL(19,466),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6640 {"rvwinkle",	XL(19,498),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6641 
   6642 {"bctr",    XLO(19,BOU,528,0),		XLBOBIBB_MASK, COM,	 PPCVLE|EXT,		{BH}},
   6643 {"bctrl",   XLO(19,BOU,528,1),		XLBOBIBB_MASK, COM,	 PPCVLE|EXT,		{BH}},
   6644 {"bgectr-", XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6645 {"bgectr+", XLOCB(19,BOFP,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6646 {"bgectr",  XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6647 {"bnlctr-", XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6648 {"bnlctr+", XLOCB(19,BOFP,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6649 {"bnlctr",  XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6650 {"bgectrl-",XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6651 {"bgectrl+",XLOCB(19,BOFP,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6652 {"bgectrl", XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6653 {"bnlctrl-",XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6654 {"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6655 {"bnlctrl", XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6656 {"blectr-", XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6657 {"blectr+", XLOCB(19,BOFP,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6658 {"blectr",  XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6659 {"bngctr-", XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6660 {"bngctr+", XLOCB(19,BOFP,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6661 {"bngctr",  XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6662 {"blectrl-",XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6663 {"blectrl+",XLOCB(19,BOFP,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6664 {"blectrl", XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6665 {"bngctrl-",XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6666 {"bngctrl+",XLOCB(19,BOFP,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6667 {"bngctrl", XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6668 {"bnectr-", XLOCB(19,BOF,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6669 {"bnectr+", XLOCB(19,BOFP,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6670 {"bnectr",  XLOCB(19,BOF,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6671 {"bnectrl-",XLOCB(19,BOF,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6672 {"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6673 {"bnectrl", XLOCB(19,BOF,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6674 {"bnsctr-", XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6675 {"bnsctr+", XLOCB(19,BOFP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6676 {"bnsctr",  XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6677 {"bnuctr-", XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6678 {"bnuctr+", XLOCB(19,BOFP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6679 {"bnuctr",  XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6680 {"bnsctrl-",XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6681 {"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6682 {"bnsctrl", XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6683 {"bnuctrl-",XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6684 {"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6685 {"bnuctrl", XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6686 {"bgectr-", XLOCB(19,BOFM4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6687 {"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6688 {"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6689 {"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6690 {"blectr-", XLOCB(19,BOFM4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6691 {"bngctr-", XLOCB(19,BOFM4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6692 {"blectrl-",XLOCB(19,BOFM4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6693 {"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6694 {"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6695 {"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6696 {"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6697 {"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6698 {"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6699 {"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6700 {"bgectr+", XLOCB(19,BOFP4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6701 {"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6702 {"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6703 {"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6704 {"blectr+", XLOCB(19,BOFP4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6705 {"bngctr+", XLOCB(19,BOFP4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6706 {"blectrl+",XLOCB(19,BOFP4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6707 {"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6708 {"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6709 {"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6710 {"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6711 {"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6712 {"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6713 {"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6714 {"bltctr-", XLOCB(19,BOT,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6715 {"bltctr+", XLOCB(19,BOTP,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6716 {"bltctr",  XLOCB(19,BOT,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6717 {"bltctrl-",XLOCB(19,BOT,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6718 {"bltctrl+",XLOCB(19,BOTP,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6719 {"bltctrl", XLOCB(19,BOT,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6720 {"bgtctr-", XLOCB(19,BOT,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6721 {"bgtctr+", XLOCB(19,BOTP,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6722 {"bgtctr",  XLOCB(19,BOT,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6723 {"bgtctrl-",XLOCB(19,BOT,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6724 {"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6725 {"bgtctrl", XLOCB(19,BOT,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6726 {"beqctr-", XLOCB(19,BOT,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6727 {"beqctr+", XLOCB(19,BOTP,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6728 {"beqctr",  XLOCB(19,BOT,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6729 {"beqctrl-",XLOCB(19,BOT,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6730 {"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6731 {"beqctrl", XLOCB(19,BOT,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6732 {"bsoctr-", XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6733 {"bsoctr+", XLOCB(19,BOTP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6734 {"bsoctr",  XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6735 {"bunctr-", XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6736 {"bunctr+", XLOCB(19,BOTP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6737 {"bunctr",  XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6738 {"bsoctrl-",XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6739 {"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6740 {"bsoctrl", XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6741 {"bunctrl-",XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6742 {"bunctrl+",XLOCB(19,BOTP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6743 {"bunctrl", XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6744 {"bltctr-", XLOCB(19,BOTM4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6745 {"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6746 {"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6747 {"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6748 {"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6749 {"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6750 {"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6751 {"bunctr-", XLOCB(19,BOTM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6752 {"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6753 {"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6754 {"bltctr+", XLOCB(19,BOTP4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6755 {"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6756 {"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6757 {"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6758 {"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6759 {"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6760 {"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6761 {"bunctr+", XLOCB(19,BOTP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6762 {"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6763 {"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6764 
   6765 {"bfctr-",  XLO(19,BOF,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6766 {"bfctr+",  XLO(19,BOFP,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6767 {"bfctr",   XLO(19,BOF,528,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6768 {"bfctrl-", XLO(19,BOF,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6769 {"bfctrl+", XLO(19,BOFP,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6770 {"bfctrl",  XLO(19,BOF,528,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6771 {"bfctr-",  XLO(19,BOFM4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6772 {"bfctrl-", XLO(19,BOFM4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6773 {"bfctr+",  XLO(19,BOFP4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6774 {"bfctrl+", XLO(19,BOFP4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6775 {"btctr-",  XLO(19,BOT,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6776 {"btctr+",  XLO(19,BOTP,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6777 {"btctr",   XLO(19,BOT,528,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6778 {"btctrl-", XLO(19,BOT,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6779 {"btctrl+", XLO(19,BOTP,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6780 {"btctrl",  XLO(19,BOT,528,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6781 {"btctr-",  XLO(19,BOTM4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6782 {"btctrl-", XLO(19,BOTM4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6783 {"btctr+",  XLO(19,BOTP4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6784 {"btctrl+", XLO(19,BOTP4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6785 
   6786 {"bcctr-",  XLLK(19,528,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6787 {"bcctr+",  XLLK(19,528,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6788 {"bcctr",   XLLK(19,528,0),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6789 {"bcc",	    XLLK(19,528,0),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6790 {"bcctrl-", XLLK(19,528,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6791 {"bcctrl+", XLLK(19,528,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6792 {"bcctrl",  XLLK(19,528,1),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6793 {"bccl",    XLLK(19,528,1),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6794 
   6795 {"bdnztar",   XLO(19,BODNZ,560,0),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6796 {"bdnztarl",  XLO(19,BODNZ,560,1),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6797 {"bdztar",    XLO(19,BODZ,560,0),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6798 {"bdztarl",   XLO(19,BODZ,560,1),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6799 {"btar",      XLO(19,BOU,560,0),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6800 {"btarl",     XLO(19,BOU,560,1),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6801 {"bdnztar-",  XLO(19,BODNZM4,560,0),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6802 {"bdnztarl-", XLO(19,BODNZM4,560,1),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6803 {"bdnztar+",  XLO(19,BODNZP4,560,0),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6804 {"bdnztarl+", XLO(19,BODNZP4,560,1),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6805 {"bdztar-",   XLO(19,BODZM4,560,0),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6806 {"bdztarl-",  XLO(19,BODZM4,560,1),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6807 {"bdztar+",   XLO(19,BODZP4,560,0),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6808 {"bdztarl+",  XLO(19,BODZP4,560,1),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6809 
   6810 {"bgetar",  XLOCB(19,BOF,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6811 {"bnltar",  XLOCB(19,BOF,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6812 {"bgetarl", XLOCB(19,BOF,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6813 {"bnltarl", XLOCB(19,BOF,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6814 {"bletar",  XLOCB(19,BOF,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6815 {"bngtar",  XLOCB(19,BOF,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6816 {"bletarl", XLOCB(19,BOF,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6817 {"bngtarl", XLOCB(19,BOF,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6818 {"bnetar",  XLOCB(19,BOF,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6819 {"bnetarl", XLOCB(19,BOF,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6820 {"bnstar",  XLOCB(19,BOF,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6821 {"bnutar",  XLOCB(19,BOF,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6822 {"bnstarl", XLOCB(19,BOF,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6823 {"bnutarl", XLOCB(19,BOF,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6824 {"bgetar-", XLOCB(19,BOFM4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6825 {"bnltar-", XLOCB(19,BOFM4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6826 {"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6827 {"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6828 {"bletar-", XLOCB(19,BOFM4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6829 {"bngtar-", XLOCB(19,BOFM4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6830 {"bletarl-",XLOCB(19,BOFM4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6831 {"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6832 {"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6833 {"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6834 {"bnstar-", XLOCB(19,BOFM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6835 {"bnutar-", XLOCB(19,BOFM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6836 {"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6837 {"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6838 {"bgetar+", XLOCB(19,BOFP4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6839 {"bnltar+", XLOCB(19,BOFP4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6840 {"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6841 {"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6842 {"bletar+", XLOCB(19,BOFP4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6843 {"bngtar+", XLOCB(19,BOFP4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6844 {"bletarl+",XLOCB(19,BOFP4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6845 {"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6846 {"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6847 {"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6848 {"bnstar+", XLOCB(19,BOFP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6849 {"bnutar+", XLOCB(19,BOFP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6850 {"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6851 {"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6852 {"blttar",  XLOCB(19,BOT,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6853 {"blttarl", XLOCB(19,BOT,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6854 {"bgttar",  XLOCB(19,BOT,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6855 {"bgttarl", XLOCB(19,BOT,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6856 {"beqtar",  XLOCB(19,BOT,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6857 {"beqtarl", XLOCB(19,BOT,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6858 {"bsotar",  XLOCB(19,BOT,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6859 {"buntar",  XLOCB(19,BOT,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6860 {"bsotarl", XLOCB(19,BOT,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6861 {"buntarl", XLOCB(19,BOT,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6862 {"blttar-", XLOCB(19,BOTM4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6863 {"blttarl-",XLOCB(19,BOTM4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6864 {"bgttar-", XLOCB(19,BOTM4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6865 {"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6866 {"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6867 {"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6868 {"bsotar-", XLOCB(19,BOTM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6869 {"buntar-", XLOCB(19,BOTM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6870 {"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6871 {"buntarl-",XLOCB(19,BOTM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6872 {"blttar+", XLOCB(19,BOTP4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6873 {"blttarl+",XLOCB(19,BOTP4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6874 {"bgttar+", XLOCB(19,BOTP4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6875 {"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6876 {"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6877 {"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6878 {"bsotar+", XLOCB(19,BOTP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6879 {"buntar+", XLOCB(19,BOTP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6880 {"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6881 {"buntarl+",XLOCB(19,BOTP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6882 
   6883 {"bdnzftar",  XLO(19,BODNZF,560,0),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6884 {"bdnzftarl", XLO(19,BODNZF,560,1),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6885 {"bdzftar",   XLO(19,BODZF,560,0),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6886 {"bdzftarl",  XLO(19,BODZF,560,1),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6887 
   6888 {"bftar",     XLO(19,BOF,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6889 {"bftarl",    XLO(19,BOF,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6890 {"bftar-",    XLO(19,BOFM4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6891 {"bftarl-",   XLO(19,BOFM4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6892 {"bftar+",    XLO(19,BOFP4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6893 {"bftarl+",   XLO(19,BOFP4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6894 
   6895 {"bdnzttar",  XLO(19,BODNZT,560,0),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6896 {"bdnzttarl", XLO(19,BODNZT,560,1),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6897 {"bdzttar",   XLO(19,BODZT,560,0),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6898 {"bdzttarl",  XLO(19,BODZT,560,1),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   6899 
   6900 {"bttar",     XLO(19,BOT,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6901 {"bttarl",    XLO(19,BOT,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6902 {"bttar-",    XLO(19,BOTM4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6903 {"bttarl-",   XLO(19,BOTM4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6904 {"bttar+",    XLO(19,BOTP4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6905 {"bttarl+",   XLO(19,BOTP4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   6906 
   6907 {"bctar-",  XLLK(19,560,0),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6908 {"bctar+",  XLLK(19,560,0),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6909 {"bctar",   XLLK(19,560,0),		XLBH_MASK,     POWER8,	 PPCVLE,	{BO, BI, BH}},
   6910 {"bctarl-", XLLK(19,560,1),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6911 {"bctarl+", XLLK(19,560,1),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6912 {"bctarl",  XLLK(19,560,1),		XLBH_MASK,     POWER8,	 PPCVLE,	{BO, BI, BH}},
   6913 
   6914 {"rlwimi",	M(20,0),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6915 {"inslwi",	M(20,0),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, ILWn, ILWb}},
   6916 {"insrwi",	M(20,0),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, IRWn, IRWb}},
   6917 {"rlimi",	M(20,0),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6918 
   6919 {"rlwimi.",	M(20,1),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6920 {"inslwi.",	M(20,1),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, ILWn, ILWb}},
   6921 {"insrwi.",	M(20,1),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, IRWn, IRWb}},
   6922 {"rlimi.",	M(20,1),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6923 
   6924 {"rotlwi",	MME(21,31,0),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, SH}},
   6925 {"rotrwi",	MME(21,31,0),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RRWn}},
   6926 {"clrlwi",	MME(21,31,0),	MSHME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, MB}},
   6927 {"clrrwi",	M(21,0),	MSHMB_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, CRWn}},
   6928 {"slwi",	M(21,0),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   6929 {"srwi",	MME(21,31,0),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   6930 {"rlwinm",	M(21,0),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6931 {"extlwi",	M(21,0),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ELWn, SH}},
   6932 {"extrwi",	MME(21,31,0),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ERWn, ERWb}},
   6933 {"clrlslwi",	M(21,0),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, CSLWb, CSLWn}},
   6934 {"sli",		M(21,0),	MMB_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   6935 {"sri",		MME(21,31,0),	MME_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   6936 {"rlinm",	M(21,0),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6937 {"rotlwi.",	MME(21,31,1),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, SH}},
   6938 {"rotrwi.",	MME(21,31,1),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RRWn}},
   6939 {"clrlwi.",	MME(21,31,1),	MSHME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, MB}},
   6940 {"clrrwi.",	M(21,1),	MSHMB_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, CRWn}},
   6941 {"slwi.",	M(21,1),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   6942 {"srwi.",	MME(21,31,1),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   6943 {"rlwinm.",	M(21,1),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6944 {"extlwi.",	M(21,1),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ELWn, SH}},
   6945 {"extrwi.",	MME(21,31,1),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ERWn, ERWb}},
   6946 {"clrlslwi.",	M(21,1),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, CSLWb, CSLWn}},
   6947 {"sli.",	M(21,1),	MMB_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   6948 {"sri.",	MME(21,31,1),	MME_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   6949 {"rlinm.",	M(21,1),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   6950 
   6951 {"rlmi",	M(22,0),	M_MASK,	     M601,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   6952 {"rlmi.",	M(22,1),	M_MASK,	     M601,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   6953 
   6954 {"svstep",	SVL(22,19,0),	SVL_MASK,	SVP64,	PPCVLE,	{RT, SVi, vf}},
   6955 {"svstep.",	SVL(22,19,1),	SVL_MASK,	SVP64,	PPCVLE,	{RT, SVi, vf}},
   6956 
   6957 {"svshape",	SVM(22,25),	SVM_MASK,	SVP64,	PPCVLE,	{SVxd, SVyd, SVzd, SVrm, vf}},
   6958 
   6959 {"setvl",	SVL(22,27,0),	SVL_MASK,	SVP64,	PPCVLE,	{RT, RA, SVi, vf, vs, ms}},
   6960 {"setvl.",	SVL(22,27,1),	SVL_MASK,	SVP64,	PPCVLE,	{RT, RA, SVi, vf, vs, ms}},
   6961 
   6962 {"svindex",	SVI(22,41),	SVI_MASK,	SVP64,	PPCVLE,	{SVG, rmm, SVd, ew, yx, mm, sk}},
   6963 
   6964 {"svremap",	SVRM(22,57),	SVRM_MASK,	SVP64,	PPCVLE,	{SVme, mi0, mi1, mi2, mo0, mo1, pst}},
   6965 
   6966 {"rotlw",	MME(23,31,0),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RB}},
   6967 {"rlwnm",	M(23,0),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   6968 {"rlnm",	M(23,0),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   6969 {"rotlw.",	MME(23,31,1),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RB}},
   6970 {"rlwnm.",	M(23,1),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   6971 {"rlnm.",	M(23,1),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   6972 
   6973 {"nop",		OP(24),		0xffffffff,  PPCCOM,	PPCVLE|EXT,	{0}},
   6974 {"exser",	0x63ff0000,	0xffffffff,  POWER9,	PPCVLE|EXT,	{0}},
   6975 {"ori",		OP(24),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   6976 {"oril",	OP(24),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   6977 
   6978 {"oris",	OP(25),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   6979 {"oriu",	OP(25),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   6980 
   6981 {"xnop",	OP(26),		0xffffffff,  PPCCOM,	PPCVLE|EXT,	{0}},
   6982 {"xori",	OP(26),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   6983 {"xoril",	OP(26),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   6984 
   6985 {"xoris",	OP(27),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   6986 {"xoriu",	OP(27),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   6987 
   6988 {"andi.",	OP(28),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   6989 {"andil.",	OP(28),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   6990 
   6991 {"andis.",	OP(29),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   6992 {"andiu.",	OP(29),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   6993 
   6994 {"rotldi",	MD(30,0,0),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, SH6}},
   6995 {"rotrdi",	MD(30,0,0),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, RRDn}},
   6996 {"clrldi",	MD(30,0,0),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, MB6}},
   6997 {"srdi",	MD(30,0,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SRDn}},
   6998 {"rldicl",	MD(30,0,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   6999 {"extrdi",	MD(30,0,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, ERDn, ERDb}},
   7000 {"rotldi.",	MD(30,0,1),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, SH6}},
   7001 {"rotrdi.",	MD(30,0,1),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, RRDn}},
   7002 {"clrldi.",	MD(30,0,1),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, MB6}},
   7003 {"srdi.",	MD(30,0,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SRDn}},
   7004 {"rldicl.",	MD(30,0,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7005 {"extrdi.",	MD(30,0,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, ERDn, ERDb}},
   7006 
   7007 {"clrrdi",	MD(30,1,0),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, CRDn}},
   7008 {"sldi",	MD(30,1,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SLDn}},
   7009 {"rldicr",	MD(30,1,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, ME6}},
   7010 {"extldi",	MD(30,1,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, ELDn, SH6}},
   7011 {"clrrdi.",	MD(30,1,1),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, CRDn}},
   7012 {"sldi.",	MD(30,1,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SLDn}},
   7013 {"rldicr.",	MD(30,1,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, ME6}},
   7014 {"extldi.",	MD(30,1,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, ELDn, SH6}},
   7015 
   7016 {"rldic",	MD(30,2,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7017 {"clrlsldi",	MD(30,2,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, CSLDb, CSLDn}},
   7018 {"rldic.",	MD(30,2,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7019 {"clrlsldi.",	MD(30,2,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, CSLDb, CSLDn}},
   7020 
   7021 {"rldimi",	MD(30,3,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7022 {"insrdi",	MD(30,3,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, IRDn, IRDb}},
   7023 {"rldimi.",	MD(30,3,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7024 {"insrdi.",	MD(30,3,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, IRDn, IRDb}},
   7025 
   7026 {"rotld",	MDS(30,8,0),	MDSMB_MASK,  PPC64,	PPCVLE|EXT,	{RA, RS, RB}},
   7027 {"rldcl",	MDS(30,8,0),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, MB6}},
   7028 {"rotld.",	MDS(30,8,1),	MDSMB_MASK,  PPC64,	PPCVLE|EXT,	{RA, RS, RB}},
   7029 {"rldcl.",	MDS(30,8,1),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, MB6}},
   7030 
   7031 {"rldcr",	MDS(30,9,0),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, ME6}},
   7032 {"rldcr.",	MDS(30,9,1),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, ME6}},
   7033 
   7034 {"cmpw",	XOPL(31,0,0),	XCMPL_MASK,  PPCCOM,	EXT,		{OBF, RA, RB}},
   7035 {"cmpd",	XOPL(31,0,1),	XCMPL_MASK,  PPC64,	EXT,		{OBF, RA, RB}},
   7036 {"cmp",		X(31,0),	XCMP_MASK,   PPC,	0,		{BF, L32OPT, RA, RB}},
   7037 {"cmp",		X(31,0),	XCMPL_MASK,  PWRCOM,	PPC,		{BF, RA, RB}},
   7038 
   7039 {"twlgt",	XTO(31,4,TOLGT), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7040 {"tlgt",	XTO(31,4,TOLGT), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7041 {"twllt",	XTO(31,4,TOLLT), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7042 {"tllt",	XTO(31,4,TOLLT), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7043 {"tweq",	XTO(31,4,TOEQ),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7044 {"teq",		XTO(31,4,TOEQ),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7045 {"twlge",	XTO(31,4,TOLGE), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7046 {"tlge",	XTO(31,4,TOLGE), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7047 {"twlnl",	XTO(31,4,TOLNL), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7048 {"tlnl",	XTO(31,4,TOLNL), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7049 {"twlle",	XTO(31,4,TOLLE), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7050 {"tlle",	XTO(31,4,TOLLE), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7051 {"twlng",	XTO(31,4,TOLNG), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7052 {"tlng",	XTO(31,4,TOLNG), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7053 {"twgt",	XTO(31,4,TOGT),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7054 {"tgt",		XTO(31,4,TOGT),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7055 {"twge",	XTO(31,4,TOGE),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7056 {"tge",		XTO(31,4,TOGE),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7057 {"twnl",	XTO(31,4,TONL),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7058 {"tnl",		XTO(31,4,TONL),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7059 {"twlt",	XTO(31,4,TOLT),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7060 {"tlt",		XTO(31,4,TOLT),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7061 {"twle",	XTO(31,4,TOLE),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7062 {"tle",		XTO(31,4,TOLE),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7063 {"twng",	XTO(31,4,TONG),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7064 {"tng",		XTO(31,4,TONG),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7065 {"twne",	XTO(31,4,TONE),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7066 {"tne",		XTO(31,4,TONE),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7067 {"trap",	XTO(31,4,TOU),	 0xffffffff, PPCCOM,	EXT,		{0}},
   7068 {"twu",		XTO(31,4,TOU),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7069 {"tu",		XTO(31,4,TOU),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7070 {"tw",		X(31,4),	 X_MASK,     PPCCOM,	0,		{TO, RA, RB}},
   7071 {"t",		X(31,4),	 X_MASK,     PWRCOM,	0,		{TO, RA, RB}},
   7072 
   7073 {"lvsl",	X(31,6),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7074 {"lvebx",	X(31,7),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7075 {"lbfcmx",	APU(31,7,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7076 
   7077 {"subfc",	XO(31,8,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7078 {"sf",		XO(31,8,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7079 {"subc",	XO(31,8,0,0),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   7080 {"subfc.",	XO(31,8,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7081 {"sf.",		XO(31,8,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7082 {"subc.",	XO(31,8,0,1),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   7083 
   7084 {"mulhdu",	XO(31,9,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7085 {"mulhdu.",	XO(31,9,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7086 
   7087 {"addc",	XO(31,10,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7088 {"a",		XO(31,10,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7089 {"addc.",	XO(31,10,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7090 {"a.",		XO(31,10,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7091 
   7092 {"mulhwu",	XO(31,11,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7093 {"mulhwu.",	XO(31,11,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7094 
   7095 {"lxsiwzx",	X(31,12),	XX1_MASK,    PPCVSX2,	0,		{XT6, RA0, RB}},
   7096 
   7097 {"lxvrbx",	X(31,13),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7098 
   7099 {"isellt",	XISEL(31,15,0),	X_MASK,	     PPCISEL,	EXT,		{RT, RA0, RB}},
   7100 {"iselgt",	XISEL(31,15,1),	X_MASK,	     PPCISEL,	EXT,		{RT, RA0, RB}},
   7101 {"iseleq",	XISEL(31,15,2),	X_MASK,	     PPCISEL,	EXT,		{RT, RA0, RB}},
   7102 {"isel",	XISEL(31,15,0), XISEL_MASK, PPCISEL|TITAN, 0,		{RT, RA0, RB, BC}},
   7103 
   7104 {"tlbilxlpid",	XTO(31,18,0),	XTO_MASK, E500MC|PPCA2,	0,		{0}},
   7105 {"tlbilxpid",	XTO(31,18,1),	XTO_MASK, E500MC|PPCA2,	0,		{0}},
   7106 {"tlbilxva",	XTO(31,18,3),	XTO_MASK, E500MC|PPCA2,	0,		{RA0, RB}},
   7107 {"tlbilx",	X(31,18),	X_MASK,	  E500MC|PPCA2,	0,		{T, RA0, RB}},
   7108 
   7109 {"mfcr",	XFXM(31,19,0,0), XFXFXM_MASK, COM,	0,		{RT, FXM4}},
   7110 {"mfocrf",	XFXM(31,19,0,1), XFXFXM_MASK, COM,	0,		{RT, FXM}},
   7111 
   7112 {"lwarx",	X(31,20),	XEH_MASK,    PPC,	0,		{RT, RA0, RB, EH}},
   7113 
   7114 {"ldx",		X(31,21),	X_MASK,	     PPC64,	0,		{RT, RA0, RB}},
   7115 
   7116 {"icbt",	X(31,22), X_MASK, POWER5|BOOKE|PPCE300, 0,		{CT, RA0, RB}},
   7117 
   7118 {"lwzx",	X(31,23),	X_MASK,	     PPCCOM,	0,		{RT, RA0, RB}},
   7119 {"lx",		X(31,23),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   7120 
   7121 {"slw",		XRC(31,24,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   7122 {"sl",		XRC(31,24,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   7123 {"slw.",	XRC(31,24,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   7124 {"sl.",		XRC(31,24,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   7125 
   7126 {"cntlzw",	XRC(31,26,0),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   7127 {"cntlz",	XRC(31,26,0),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   7128 {"cntlzw.",	XRC(31,26,1),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   7129 {"cntlz.",	XRC(31,26,1),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   7130 
   7131 {"sld",		XRC(31,27,0),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   7132 {"sld.",	XRC(31,27,1),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   7133 
   7134 {"and",		XRC(31,28,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7135 {"and.",	XRC(31,28,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7136 
   7137 {"maskg",	XRC(31,29,0),	X_MASK,	     M601,	PPCA2,		{RA, RS, RB}},
   7138 {"maskg.",	XRC(31,29,1),	X_MASK,	     M601,	PPCA2,		{RA, RS, RB}},
   7139 
   7140 {"ldepx",	X(31,29),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7141 
   7142 {"waitasec",	X(31,30),      XRTRARB_MASK, POWER8,	POWER9,		{0}},
   7143 {"waitrsv",	XWCPL(31,30,1,0),0xffffffff, POWER10,	EXT,		{0}},
   7144 {"pause_short",	XWCPL(31,30,2,0),0xffffffff, POWER10,	EXT,		{0}},
   7145 {"wait",	X(31,30),	XWCPL_MASK,  POWER10,	0,		{WC, PL}},
   7146 {"wait",	X(31,30),	XWC_MASK,    POWER9,	POWER10,	{WC}},
   7147 
   7148 {"lwepx",	X(31,31),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7149 
   7150 {"cmplw",	XOPL(31,32,0),	XCMPL_MASK,  PPCCOM,	EXT,		{OBF, RA, RB}},
   7151 {"cmpld",	XOPL(31,32,1),	XCMPL_MASK,  PPC64,	EXT,		{OBF, RA, RB}},
   7152 {"cmpl",	X(31,32),	XCMP_MASK,   PPC,	0,		{BF, L32OPT, RA, RB}},
   7153 {"cmpl",	X(31,32),	XCMPL_MASK,  PWRCOM,	PPC,		{BF, RA, RB}},
   7154 
   7155 {"lvsr",	X(31,38),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7156 {"lvehx",	X(31,39),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7157 {"lhfcmx",	APU(31,39,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7158 
   7159 {"lxvrhx",	X(31,45),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7160 
   7161 {"mviwsplt",	X(31,46),	X_MASK,	     E6500,	0,		{VD, RA, RB}},
   7162 
   7163 {"lvewx",	X(31,71),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7164 
   7165 {"addg6s",	XO(31,74,0,0),	XO_MASK,     POWER6,	0,		{RT, RA, RB}},
   7166 
   7167 {"lxsiwax",	X(31,76),	XX1_MASK,    PPCVSX2,	0,		{XT6, RA0, RB}},
   7168 
   7169 {"lxvrwx",	X(31,77),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7170 
   7171 {"subf",	XO(31,40,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7172 {"sub",		XO(31,40,0,0),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   7173 {"subf.",	XO(31,40,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7174 {"sub.",	XO(31,40,0,1),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   7175 
   7176 {"mffprd",	X(31,51),	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, FRS}},
   7177 {"mfvrd",	X(31,51)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, VS}},
   7178 {"mfvsrd",	X(31,51),	XX1RB_MASK,   PPCVSX2,	0,		{RA, XS6}},
   7179 {"eratilx",	X(31,51),	X_MASK,	     PPCA2,	0,		{ERAT_T, RA, RB}},
   7180 
   7181 {"lbarx",	X(31,52),	XEH_MASK, POWER8|E6500, 0,		{RT, RA0, RB, EH}},
   7182 
   7183 {"ldux",	X(31,53),	X_MASK,	     PPC64,	0,		{RT, RAL, RB}},
   7184 
   7185 {"dcbst",	X(31,54),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   7186 
   7187 {"lwzux",	X(31,55),	X_MASK,	     PPCCOM,	0,		{RT, RAL, RB}},
   7188 {"lux",		X(31,55),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   7189 
   7190 {"cntlzd",	XRC(31,58,0),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   7191 {"cntlzd.",	XRC(31,58,1),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   7192 
   7193 {"cntlzdm",	X(31,59),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7194 
   7195 {"andc",	XRC(31,60,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7196 {"andc.",	XRC(31,60,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7197 
   7198 {"waitrsv",	X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, EXT,	{0}},
   7199 {"waitimpl",	X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, EXT,	{0}},
   7200 {"wait",	X(31,62),	XWC_MASK,    E500MC|PPCA2, 0,		{WC}},
   7201 
   7202 {"dcbstep",	XRT(31,63,0),	XRT_MASK,    E500MC|PPCA2, 0,		{RA0, RB}},
   7203 
   7204 {"tdlgt",	XTO(31,68,TOLGT), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7205 {"tdllt",	XTO(31,68,TOLLT), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7206 {"tdeq",	XTO(31,68,TOEQ),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7207 {"tdlge",	XTO(31,68,TOLGE), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7208 {"tdlnl",	XTO(31,68,TOLNL), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7209 {"tdlle",	XTO(31,68,TOLLE), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7210 {"tdlng",	XTO(31,68,TOLNG), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7211 {"tdgt",	XTO(31,68,TOGT),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7212 {"tdge",	XTO(31,68,TOGE),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7213 {"tdnl",	XTO(31,68,TONL),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7214 {"tdlt",	XTO(31,68,TOLT),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7215 {"tdle",	XTO(31,68,TOLE),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7216 {"tdng",	XTO(31,68,TONG),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7217 {"tdne",	XTO(31,68,TONE),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7218 {"tdu",		XTO(31,68,TOU),	  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7219 {"td",		X(31,68),	X_MASK,	     PPC64,	0,		{TO, RA, RB}},
   7220 
   7221 {"lwfcmx",	APU(31,71,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7222 {"subwus",	XO(31,72,0,0),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7223 {"subwus.",	XO(31,72,0,1),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7224 {"subdus",	XO(31,72,1,0),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7225 {"subdus.",	XO(31,72,1,1),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7226 {"subfus",	XO(31,72,0,0),	XOL_MASK,    FUTURE,	0,		{RT, XOL, RA, RB}},
   7227 {"subfus.",	XO(31,72,0,1),	XOL_MASK,    FUTURE,	0,		{RT, XOL, RA, RB}},
   7228 {"mulhd",	XO(31,73,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7229 {"mulhd.",	XO(31,73,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7230 
   7231 {"mulhw",	XO(31,75,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7232 {"mulhw.",	XO(31,75,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7233 
   7234 {"msgsndu",	XRTRA(31,78,0,0), XRTRA_MASK, POWER9,	0,		{RB}},
   7235 {"dlmzb",	XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0,	{RA, RS, RB}},
   7236 {"dlmzb.",	XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0,	{RA, RS, RB}},
   7237 
   7238 {"mtsrd",	X(31,82),  XRB_MASK|(1<<20), PPC64,	0,		{SR, RS}},
   7239 
   7240 {"mfmsr",	X(31,83),	XRARB_MASK,  COM,	0,		{RT}},
   7241 
   7242 {"ldarx",	X(31,84),	XEH_MASK,    PPC64,	0,		{RT, RA0, RB, EH}},
   7243 
   7244 {"dcbfl",	XOPL(31,86,1),	XRT_MASK,    POWER5,	PPC476|EXT,	{RA0, RB}},
   7245 {"dcbflp",	XOPL2(31,86,3), XRT_MASK,    POWER9,	PPC476|EXT,	{RA0, RB}},
   7246 {"dcbfps",	XOPL3(31,86,4), XRT_MASK,    POWER10,   PPC476|EXT,	{RA0, RB}},
   7247 {"dcbstps",	XOPL3(31,86,6), XRT_MASK,    POWER10,   PPC476|EXT,	{RA0, RB}},
   7248 {"dcbf",	X(31,86),	XL3RT_MASK,  POWER10,	PPC476,		{RA0, RB, L3OPT}},
   7249 {"dcbf",	X(31,86),	XLRT_MASK,   PPC,	POWER10,	{RA0, RB, L2OPT}},
   7250 
   7251 {"lbzx",	X(31,87),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   7252 
   7253 {"lbepx",	X(31,95),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7254 
   7255 {"dni",		XRC(31,97,1),	XRB_MASK,    E6500,	0,		{DUI, DCTL}},
   7256 
   7257 {"lvx",		X(31,103),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7258 {"lqfcmx",	APU(31,103,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7259 
   7260 {"neg",		XO(31,104,0,0),	XORB_MASK,   COM,	0,		{RT, RA}},
   7261 {"neg.",	XO(31,104,0,1),	XORB_MASK,   COM,	0,		{RT, RA}},
   7262 
   7263 {"mul",		XO(31,107,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7264 {"mul.",	XO(31,107,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7265 
   7266 {"lxvrdx",	X(31,109),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7267 
   7268 {"msgclru",	XRTRA(31,110,0,0), XRTRA_MASK, POWER9,	0,		{RB}},
   7269 {"mvidsplt",	X(31,110),	X_MASK,	     E6500,	0,		{VD, RA, RB}},
   7270 
   7271 {"mtsrdin",	X(31,114),	XRA_MASK,    PPC64,	0,		{RS, RB}},
   7272 
   7273 {"mffprwz",	X(31,115),	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, FRS}},
   7274 {"mfvrwz",	X(31,115)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, VS}},
   7275 {"mfvsrwz",	X(31,115),	XX1RB_MASK,   PPCVSX2,	0,		{RA, XS6}},
   7276 
   7277 {"lharx",	X(31,116),	XEH_MASK, POWER8|E6500, 0,		{RT, RA0, RB, EH}},
   7278 
   7279 {"clf",		X(31,118),	XTO_MASK,    POWER,	0,		{RA, RB}},
   7280 
   7281 {"lbzux",	X(31,119),	X_MASK,	     COM,	0,		{RT, RAL, RB}},
   7282 
   7283 {"popcntb",	X(31,122),	XRB_MASK,    POWER5,	0,		{RA, RS}},
   7284 
   7285 {"not",		XRC(31,124,0),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   7286 {"nor",		XRC(31,124,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7287 {"not.",	XRC(31,124,1),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   7288 {"nor.",	XRC(31,124,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7289 
   7290 {"dcbfep",	XRT(31,127,0),	XRT_MASK, E500MC|PPCA2, 0,		{RA0, RB}},
   7291 
   7292 {"setb",	X(31,128),	XRB_MASK|(3<<16), POWER9, 0,		{RT, BFA}},
   7293 
   7294 {"wrtee",	X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RS}},
   7295 
   7296 {"dcbtstls",	X(31,134),	X_MASK, PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7297 
   7298 {"stvebx",	X(31,135),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7299 {"stbfcmx",	APU(31,135,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7300 
   7301 {"subfe",	XO(31,136,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7302 {"sfe",		XO(31,136,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7303 {"subfe.",	XO(31,136,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7304 {"sfe.",	XO(31,136,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7305 
   7306 {"adde",	XO(31,138,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7307 {"ae",		XO(31,138,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7308 {"adde.",	XO(31,138,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7309 {"ae.",		XO(31,138,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7310 
   7311 {"stxsiwx",	X(31,140),	XX1_MASK,    PPCVSX2,	0,		{XS6, RA0, RB}},
   7312 
   7313 {"stxvrbx",	X(31,141),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7314 
   7315 {"msgsndp",	XRTRA(31,142,0,0), XRTRA_MASK, POWER8,	0,		{RB}},
   7316 {"dcbtstlse",	X(31,142),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA0, RB}},
   7317 
   7318 {"mtcr",	XFXM(31,144,0xff,0), XRARB_MASK, COM,	EXT,		{RS}},
   7319 {"mtcrf",	XFXM(31,144,0,0), XFXFXM_MASK, COM,	0,		{FXM, RS}},
   7320 {"mtocrf",	XFXM(31,144,0,1), XFXFXM_MASK, COM,	0,		{FXM, RS}},
   7321 
   7322 {"mtmsr",	X(31,146),	XRLARB_MASK, COM,	0,		{RS, A_L}},
   7323 
   7324 {"mtsle",	X(31,147),    XRTLRARB_MASK, POWER8,	0,		{L}},
   7325 {"eratsx",	XRC(31,147,0),	X_MASK,	     PPCA2,	0,		{RT, RA0, RB}},
   7326 {"eratsx.",	XRC(31,147,1),	X_MASK,	     PPCA2,	0,		{RT, RA0, RB}},
   7327 
   7328 {"stdx",	X(31,149),	X_MASK,	     PPC64,	0,		{RS, RA0, RB}},
   7329 
   7330 {"stwcx.",	XRC(31,150,1),	X_MASK,	     PPC,	0,		{RS, RA0, RB}},
   7331 
   7332 {"stwx",	X(31,151),	X_MASK,	     PPCCOM,	0,		{RS, RA0, RB}},
   7333 {"stx",		X(31,151),	X_MASK,	     PWRCOM,	0,		{RS, RA, RB}},
   7334 
   7335 {"slq",		XRC(31,152,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7336 {"slq.",	XRC(31,152,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7337 
   7338 {"sle",		XRC(31,153,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7339 {"sle.",	XRC(31,153,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7340 
   7341 {"prtyw",	X(31,154),    XRB_MASK, POWER6|PPCA2|PPC476, 0,		{RA, RS}},
   7342 
   7343 {"brw",		X(31,155),	XRB_MASK,    POWER10,	0,		{RA, RS}},
   7344 {"pdepd",	X(31,156),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7345 
   7346 {"stdepx",	X(31,157),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7347 
   7348 {"stwepx",	X(31,159),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7349 
   7350 {"wrteei",	X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{E}},
   7351 
   7352 {"dcbtls",	X(31,166),	X_MASK,	 PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7353 
   7354 {"stvehx",	X(31,167),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7355 {"sthfcmx",	APU(31,167,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7356 
   7357 {"addex",	ZRC(31,170,0),	Z2_MASK,     POWER9,	0,		{RT, RA, RB, CY}},
   7358 
   7359 {"stxvrhx",	X(31,173),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7360 
   7361 {"msgclrp",	XRTRA(31,174,0,0), XRTRA_MASK, POWER8,	0,		{RB}},
   7362 {"dcbtlse",	X(31,174),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA0, RB}},
   7363 
   7364 {"dmxxmfacc",	XVA(31,177,0),	XACC_MASK,   POWER10, 0,		{ACC}},
   7365 {"xxmfacc",	XVA(31,177,0),	XACC_MASK,   POWER10, 0,		{ACC}},
   7366 {"dmxxmtacc",	XVA(31,177,1),	XACC_MASK,   POWER10, 0,		{ACC}},
   7367 {"xxmtacc",	XVA(31,177,1),	XACC_MASK,   POWER10, 0,		{ACC}},
   7368 {"dmsetdmrz",	XVA(31,177,2),	XDMR_MASK,   FUTURE,  0,		{DMR}},
   7369 {"dmsetaccz",	XVA(31,177,3),	XACC_MASK,   POWER10, 0,		{ACC}},
   7370 {"xxsetaccz",	XVA(31,177,3),	XACC_MASK,   POWER10, 0,		{ACC}},
   7371 {"dmmr",	XVA(31,177,6),	XDMRDMR_MASK,FUTURE,  0,		{DMR, DMRAB}},
   7372 {"dmxor",	XVA(31,177,7),	XDMRDMR_MASK,FUTURE,  0,		{DMR, DMRAB}},
   7373 
   7374 {"mtmsrd",	X(31,178),	XRLARB_MASK, PPC64,	0,		{RS, A_L}},
   7375 
   7376 {"mtfprd",	X(31,179),	XX1RB_MASK|1, PPCVSX2,	EXT,		{FRT, RA}},
   7377 {"mtvrd",	X(31,179)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{VD, RA}},
   7378 {"mtvsrd",	X(31,179),	XX1RB_MASK,   PPCVSX2,	0,		{XT6, RA}},
   7379 {"eratre",	X(31,179),	X_MASK,	     PPCA2,	0,		{RT, RA, WS}},
   7380 
   7381 {"stdux",	X(31,181),	X_MASK,	     PPC64,	0,		{RS, RAS, RB}},
   7382 
   7383 {"stqcx.",	XRC(31,182,1), X_MASK|Q_MASK, POWER8,	0,		{RSQ, RA0, RB}},
   7384 {"wchkall",	X(31,182),	X_MASK,	     PPCA2,	0,		{OBF}},
   7385 
   7386 {"stwux",	X(31,183),	X_MASK,	     PPCCOM,	0,		{RS, RAS, RB}},
   7387 {"stux",	X(31,183),	X_MASK,	     PWRCOM,	0,		{RS, RA0, RB}},
   7388 
   7389 {"sliq",	XRC(31,184,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7390 {"sliq.",	XRC(31,184,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7391 
   7392 {"prtyd",	X(31,186),	XRB_MASK, POWER6|PPCA2,	0,		{RA, RS}},
   7393 
   7394 {"brd",		X(31,187),	XRB_MASK,    POWER10,	0,		{RA, RS}},
   7395 {"pextd",	X(31,188),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7396 
   7397 {"cmprb",	X(31,192),	XCMP_MASK,   POWER9,	0,		{BF, L, RA, RB}},
   7398 
   7399 {"icblq.",	XRC(31,198,1),	X_MASK,	     E6500,	0,		{CT, RA0, RB}},
   7400 
   7401 {"stvewx",	X(31,199),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7402 {"stwfcmx",	APU(31,199,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7403 
   7404 {"subfze",	XO(31,200,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7405 {"sfze",	XO(31,200,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7406 {"subfze.",	XO(31,200,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7407 {"sfze.",	XO(31,200,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7408 
   7409 {"addze",	XO(31,202,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7410 {"aze",		XO(31,202,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7411 {"addze.",	XO(31,202,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7412 {"aze.",	XO(31,202,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7413 
   7414 {"stxvrwx",	X(31,205),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7415 
   7416 {"msgsnd",	XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0,	{RB}},
   7417 
   7418 {"mtsr",	X(31,210), XRB_MASK|(1<<20), COM,	NON32,		{SR, RS}},
   7419 
   7420 {"mtfprwa",	X(31,211),	XX1RB_MASK|1, PPCVSX2,	EXT,		{FRT, RA}},
   7421 {"mtvrwa",	X(31,211)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{VD, RA}},
   7422 {"mtvsrwa",	X(31,211),	XX1RB_MASK,   PPCVSX2,	0,		{XT6, RA}},
   7423 {"eratwe",	X(31,211),	X_MASK,	     PPCA2,	0,		{RS, RA, WS}},
   7424 
   7425 {"ldawx.",	XRC(31,212,1),	X_MASK,	     PPCA2,	0,		{RT, RA0, RB}},
   7426 
   7427 {"stdcx.",	XRC(31,214,1),	X_MASK,	     PPC64,	0,		{RS, RA0, RB}},
   7428 
   7429 {"stbx",	X(31,215),	X_MASK,	     COM,	0,		{RS, RA0, RB}},
   7430 
   7431 {"sllq",	XRC(31,216,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7432 {"sllq.",	XRC(31,216,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7433 
   7434 {"sleq",	XRC(31,217,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7435 {"sleq.",	XRC(31,217,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7436 
   7437 {"brh",		X(31,219),	XRB_MASK,    POWER10,	0,		{RA, RS}},
   7438 {"cfuged",	X(31,220),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7439 
   7440 {"stbepx",	X(31,223),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7441 
   7442 {"cmpeqb",	X(31,224),	XCMPL_MASK,  POWER9,	0,		{BF, RA, RB}},
   7443 
   7444 {"icblc",	X(31,230),	X_MASK,	PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7445 
   7446 {"stvx",	X(31,231),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7447 {"stqfcmx",	APU(31,231,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7448 
   7449 {"subfme",	XO(31,232,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7450 {"sfme",	XO(31,232,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7451 {"subfme.",	XO(31,232,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7452 {"sfme.",	XO(31,232,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7453 
   7454 {"mulld",	XO(31,233,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7455 {"mulld.",	XO(31,233,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7456 
   7457 {"addme",	XO(31,234,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7458 {"ame",		XO(31,234,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7459 {"addme.",	XO(31,234,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7460 {"ame.",	XO(31,234,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7461 
   7462 {"mullw",	XO(31,235,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7463 {"muls",	XO(31,235,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7464 {"mullw.",	XO(31,235,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7465 {"muls.",	XO(31,235,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7466 
   7467 {"stxvrdx",	X(31,237),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7468 
   7469 {"icblce",	X(31,238),	X_MASK,	     PPCCHLK,	E500MC|PPCA2,	{CT, RA, RB}},
   7470 {"msgclr",	XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0,	{RB}},
   7471 {"mtsrin",	X(31,242),	XRA_MASK,    PPC,	NON32,		{RS, RB}},
   7472 {"mtsri",	X(31,242),	XRA_MASK,    POWER,	NON32,		{RS, RB}},
   7473 
   7474 {"mtfprwz",	X(31,243),	XX1RB_MASK|1, PPCVSX2,	EXT,		{FRT, RA}},
   7475 {"mtvrwz",	X(31,243)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{VD, RA}},
   7476 {"mtvsrwz",	X(31,243),	XX1RB_MASK,   PPCVSX2,	0,		{XT6, RA}},
   7477 
   7478 {"dcbtstt",	XRT(31,246,0x10), XRT_MASK,  POWER7,	EXT,		{RA0, RB}},
   7479 {"dcbtstct",	X(31,246),	X_MASK,	     POWER4,	EXT,		{RA0, RB, THCT}},
   7480 {"dcbtstds",	X(31,246),	X_MASK,	     POWER4,	EXT,		{RA0, RB, THDS}},
   7481 {"dcbtst",	X(31,246),	X_MASK,	     POWER4,	DCBT_EO,	{RA0, RB, CT}},
   7482 {"dcbtst",	X(31,246),	X_MASK,	     DCBT_EO,	0,		{CT, RA0, RB}},
   7483 {"dcbtst",	X(31,246),	X_MASK,	     PPC,	POWER4|DCBT_EO,	{RA0, RB}},
   7484 
   7485 {"stbux",	X(31,247),	X_MASK,	     COM,	0,		{RS, RAS, RB}},
   7486 
   7487 {"slliq",	XRC(31,248,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7488 {"slliq.",	XRC(31,248,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7489 
   7490 {"bpermd",	X(31,252),	X_MASK,	  POWER7|PPCA2,	0,		{RA, RS, RB}},
   7491 
   7492 {"dcbtstep",	XRT(31,255,0),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7493 
   7494 {"mfdcrx",	X(31,259),	X_MASK, BOOKE|PPCA2|PPC476, TITAN,	{RS, RA}},
   7495 {"mfdcrx.",	XRC(31,259,1),	X_MASK,	     PPCA2,	0,		{RS, RA}},
   7496 
   7497 {"lvexbx",	X(31,261),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7498 
   7499 {"icbt",	X(31,262),	XRT_MASK,    PPC403,	0,		{RA, RB}},
   7500 
   7501 {"lvepxl",	X(31,263),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7502 {"ldfcmx",	APU(31,263,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7503 
   7504 {"doz",		XO(31,264,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7505 {"doz.",	XO(31,264,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7506 
   7507 {"modud",	X(31,265),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   7508 
   7509 {"add",		XO(31,266,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7510 {"cax",		XO(31,266,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7511 {"add.",	XO(31,266,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7512 {"cax.",	XO(31,266,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7513 
   7514 {"moduw",	X(31,267),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   7515 
   7516 {"lxvx",	X(31,268),	XX1_MASK|1<<6, PPCVSX3,	0,		{XT6, RA0, RB}},
   7517 {"lxvl",	X(31,269),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   7518 
   7519 {"ehpriv",	X(31,270),	0xffffffff,  E500MC|PPCA2, 0,		{0}},
   7520 
   7521 {"tlbiel",	X(31,274),	X_MASK|1<<20,POWER9,	0,		{RB, RSO, RIC, PRS, X_R}},
   7522 {"tlbiel",	X(31,274),	XRTLRA_MASK, POWER4,	POWER9|PPC476,	{RB, LOPT}},
   7523 
   7524 {"mfapidi",	X(31,275),	X_MASK,	     BOOKE,	E500|TITAN,	{RT, RA}},
   7525 
   7526 {"lqarx",	X(31,276),  XEH_MASK|Q_MASK, POWER8,	0,		{RTQ, RAX, RBX, EH}},
   7527 
   7528 {"lscbx",	XRC(31,277,0),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   7529 {"lscbx.",	XRC(31,277,1),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   7530 
   7531 {"dcbtt",	XRT(31,278,0x10), XRT_MASK,  POWER7,	EXT,		{RA0, RB}},
   7532 {"dcbna",	XRT(31,278,0x11), XRT_MASK,  POWER10,	EXT,		{RA0, RB}},
   7533 {"dcbtct",	X(31,278),	X_MASK,      POWER4,	EXT,		{RA0, RB, THCT}},
   7534 {"dcbtds",	X(31,278),	X_MASK,      POWER4,	EXT,		{RA0, RB, THDS}},
   7535 {"dcbt",	X(31,278),	X_MASK,	     POWER4,	DCBT_EO,	{RA0, RB, CT}},
   7536 {"dcbt",	X(31,278),	X_MASK,	     DCBT_EO,	0,		{CT, RA0, RB}},
   7537 {"dcbt",	X(31,278),	X_MASK,	     PPC,	POWER4|DCBT_EO,	{RA0, RB}},
   7538 
   7539 {"lhzx",	X(31,279),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   7540 
   7541 {"cdtbcd",	X(31,282),	XRB_MASK,    POWER6,	0,		{RA, RS}},
   7542 
   7543 {"eqv",		XRC(31,284,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7544 {"eqv.",	XRC(31,284,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7545 
   7546 {"lhepx",	X(31,287),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7547 
   7548 {"mfdcrux",	X(31,291),	X_MASK,	 PPC464|PPC476,	0,		{RS, RA}},
   7549 
   7550 {"lvexhx",	X(31,293),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7551 {"lvepx",	X(31,295),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7552 
   7553 {"lxvll",	X(31,301),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   7554 
   7555 {"mfbhrbe",	X(31,302),	X_MASK,	     POWER8,	0,		{RT, BHRBE}},
   7556 
   7557 {"tlbie",	X(31,306),	X_MASK|1<<20,POWER9,	TITAN,		{RB, RS, RIC, PRS, X_R}},
   7558 {"tlbie",	X(31,306),	XRA_MASK,    POWER7,	POWER9|TITAN,	{RB, RS}},
   7559 {"tlbie",	X(31,306),	XRTLRA_MASK, PPC,    E500|POWER7|TITAN,	{RB, LOPT}},
   7560 {"tlbi",	X(31,306),	XRT_MASK,    POWER,	0,		{RA0, RB}},
   7561 
   7562 {"mfvsrld",	X(31,307),	XX1RB_MASK,  PPCVSX3,	0,		{RA, XS6}},
   7563 
   7564 {"eciwx",	X(31,310),	X_MASK,	     PPC,	E500|TITAN,	{RT, RA0, RB}},
   7565 
   7566 {"lhzux",	X(31,311),	X_MASK,	     COM,	0,		{RT, RAL, RB}},
   7567 
   7568 {"cbcdtd",	X(31,314),	XRB_MASK,    POWER6,	0,		{RA, RS}},
   7569 
   7570 {"xor",		XRC(31,316,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7571 {"xor.",	XRC(31,316,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7572 
   7573 {"dcbtep",	XRT(31,319,0),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7574 
   7575 {"mfexisr",	XSPR(31,323, 64), XSPR_MASK, PPC403,	0,		{RT}},
   7576 {"mfexier",	XSPR(31,323, 66), XSPR_MASK, PPC403,	0,		{RT}},
   7577 {"mfbr0",	XSPR(31,323,128), XSPR_MASK, PPC403,	0,		{RT}},
   7578 {"mfbr1",	XSPR(31,323,129), XSPR_MASK, PPC403,	0,		{RT}},
   7579 {"mfbr2",	XSPR(31,323,130), XSPR_MASK, PPC403,	0,		{RT}},
   7580 {"mfbr3",	XSPR(31,323,131), XSPR_MASK, PPC403,	0,		{RT}},
   7581 {"mfbr4",	XSPR(31,323,132), XSPR_MASK, PPC403,	0,		{RT}},
   7582 {"mfbr5",	XSPR(31,323,133), XSPR_MASK, PPC403,	0,		{RT}},
   7583 {"mfbr6",	XSPR(31,323,134), XSPR_MASK, PPC403,	0,		{RT}},
   7584 {"mfbr7",	XSPR(31,323,135), XSPR_MASK, PPC403,	0,		{RT}},
   7585 {"mfbear",	XSPR(31,323,144), XSPR_MASK, PPC403,	0,		{RT}},
   7586 {"mfbesr",	XSPR(31,323,145), XSPR_MASK, PPC403,	0,		{RT}},
   7587 {"mfiocr",	XSPR(31,323,160), XSPR_MASK, PPC403,	0,		{RT}},
   7588 {"mfdmacr0",	XSPR(31,323,192), XSPR_MASK, PPC403,	0,		{RT}},
   7589 {"mfdmact0",	XSPR(31,323,193), XSPR_MASK, PPC403,	0,		{RT}},
   7590 {"mfdmada0",	XSPR(31,323,194), XSPR_MASK, PPC403,	0,		{RT}},
   7591 {"mfdmasa0",	XSPR(31,323,195), XSPR_MASK, PPC403,	0,		{RT}},
   7592 {"mfdmacc0",	XSPR(31,323,196), XSPR_MASK, PPC403,	0,		{RT}},
   7593 {"mfdmacr1",	XSPR(31,323,200), XSPR_MASK, PPC403,	0,		{RT}},
   7594 {"mfdmact1",	XSPR(31,323,201), XSPR_MASK, PPC403,	0,		{RT}},
   7595 {"mfdmada1",	XSPR(31,323,202), XSPR_MASK, PPC403,	0,		{RT}},
   7596 {"mfdmasa1",	XSPR(31,323,203), XSPR_MASK, PPC403,	0,		{RT}},
   7597 {"mfdmacc1",	XSPR(31,323,204), XSPR_MASK, PPC403,	0,		{RT}},
   7598 {"mfdmacr2",	XSPR(31,323,208), XSPR_MASK, PPC403,	0,		{RT}},
   7599 {"mfdmact2",	XSPR(31,323,209), XSPR_MASK, PPC403,	0,		{RT}},
   7600 {"mfdmada2",	XSPR(31,323,210), XSPR_MASK, PPC403,	0,		{RT}},
   7601 {"mfdmasa2",	XSPR(31,323,211), XSPR_MASK, PPC403,	0,		{RT}},
   7602 {"mfdmacc2",	XSPR(31,323,212), XSPR_MASK, PPC403,	0,		{RT}},
   7603 {"mfdmacr3",	XSPR(31,323,216), XSPR_MASK, PPC403,	0,		{RT}},
   7604 {"mfdmact3",	XSPR(31,323,217), XSPR_MASK, PPC403,	0,		{RT}},
   7605 {"mfdmada3",	XSPR(31,323,218), XSPR_MASK, PPC403,	0,		{RT}},
   7606 {"mfdmasa3",	XSPR(31,323,219), XSPR_MASK, PPC403,	0,		{RT}},
   7607 {"mfdmacc3",	XSPR(31,323,220), XSPR_MASK, PPC403,	0,		{RT}},
   7608 {"mfdmasr",	XSPR(31,323,224), XSPR_MASK, PPC403,	0,		{RT}},
   7609 {"mfdcr",	X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
   7610 {"mfdcr.",	XRC(31,323,1),	X_MASK,	     PPCA2,	0,		{RT, SPR}},
   7611 
   7612 {"lvexwx",	X(31,325),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7613 
   7614 {"dcread",	X(31,326),	X_MASK,	  PPC476|TITAN,	0,		{RT, RA0, RB}},
   7615 
   7616 {"div",		XO(31,331,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7617 {"div.",	XO(31,331,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7618 
   7619 {"lxvdsx",	X(31,332),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   7620 
   7621 {"lxvpx",	X(31,333),	XX1_MASK,    POWER10,	0,		{XTP, RA0, RB}},
   7622 
   7623 {"mfpmr",	X(31,334),	X_MASK, PPCPMR|PPCE300, 0,		{RT, PMR}},
   7624 {"mftmr",	X(31,366),	X_MASK,	     PPCTMR,	0,		{RT, TMR}},
   7625 
   7626 {"slbsync",	X(31,338),	0xffffffff,  POWER9,	0,		{0}},
   7627 
   7628 {"mfmq",	XSPR(31,339,  0), XSPR_MASK, M601,	EXT,		{RT}},
   7629 {"mfxer",	XSPR(31,339,  1), XSPR_MASK, COM,	EXT,		{RT}},
   7630 {"mfudscr",	XSPR(31,339,  3), XSPR_MASK, POWER9,	EXT,		{RS}},
   7631 {"mfrtcu",	XSPR(31,339,  4), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7632 {"mfrtcl",	XSPR(31,339,  5), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7633 {"mfdec",	XSPR(31,339,  6), XSPR_MASK, MFDEC1,	EXT,		{RT}},
   7634 {"mflr",	XSPR(31,339,  8), XSPR_MASK, COM,	EXT,		{RT}},
   7635 {"mfctr",	XSPR(31,339,  9), XSPR_MASK, COM,	EXT,		{RT}},
   7636 {"mfuamr",	XSPR(31,339, 13), XSPR_MASK, POWER9,	EXT,		{RS}},
   7637 {"mfdscr",	XSPR(31,339, 17), XSPR_MASK, POWER6,	EXT,		{RT}},
   7638 {"mftid",	XSPR(31,339, 17), XSPR_MASK, POWER,	EXT,		{RT}},
   7639 {"mfdsisr",	XSPR(31,339, 18), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7640 {"mfdar",	XSPR(31,339, 19), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7641 {"mfdec",	XSPR(31,339, 22), XSPR_MASK, MFDEC2,	MFDEC1|EXT,	{RT}},
   7642 {"mfsdr0",	XSPR(31,339, 24), XSPR_MASK, POWER,	EXT,		{RT}},
   7643 {"mfsdr1",	XSPR(31,339, 25), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7644 {"mfsrr0",	XSPR(31,339, 26), XSPR_MASK, COM,	EXT,		{RT}},
   7645 {"mfsrr1",	XSPR(31,339, 27), XSPR_MASK, COM,	EXT,		{RT}},
   7646 {"mfcfar",	XSPR(31,339, 28), XSPR_MASK, POWER6,	EXT,		{RT}},
   7647 {"mfamr",	XSPR(31,339, 29), XSPR_MASK, POWER7,	EXT,		{RS}},
   7648 {"mfpidr",	XSPR(31,339, 48), XSPR_MASK, POWER10,	EXT,		{RS}},
   7649 {"mfpid",	XSPR(31,339, 48), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7650 {"mfcsrr0",	XSPR(31,339, 58), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7651 {"mfcsrr1",	XSPR(31,339, 59), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7652 {"mfiamr",	XSPR(31,339, 61), XSPR_MASK, POWER10,	EXT,		{RS}},
   7653 {"mfdear",	XSPR(31,339, 61), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7654 {"mfesr",	XSPR(31,339, 62), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7655 {"mfivpr",	XSPR(31,339, 63), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7656 {"mfctrl",	XSPR(31,339,136), XSPR_MASK, POWER4,	EXT,		{RT}},
   7657 {"mfcmpa",	XSPR(31,339,144), XSPR_MASK, PPC860,	EXT,		{RT}},
   7658 {"mfcmpb",	XSPR(31,339,145), XSPR_MASK, PPC860,	EXT,		{RT}},
   7659 {"mfcmpc",	XSPR(31,339,146), XSPR_MASK, PPC860,	EXT,		{RT}},
   7660 {"mfcmpd",	XSPR(31,339,147), XSPR_MASK, PPC860,	EXT,		{RT}},
   7661 {"mficr",	XSPR(31,339,148), XSPR_MASK, PPC860,	EXT,		{RT}},
   7662 {"mfder",	XSPR(31,339,149), XSPR_MASK, PPC860,	EXT,		{RT}},
   7663 {"mfcounta",	XSPR(31,339,150), XSPR_MASK, PPC860,	EXT,		{RT}},
   7664 {"mfcountb",	XSPR(31,339,151), XSPR_MASK, PPC860,	EXT,		{RT}},
   7665 {"mfcmpe",	XSPR(31,339,152), XSPR_MASK, PPC860,	EXT,		{RT}},
   7666 {"mffscr",	XSPR(31,339,153), XSPR_MASK, POWER10,	EXT,		{RS}},
   7667 {"mfcmpf",	XSPR(31,339,153), XSPR_MASK, PPC860,	EXT,		{RT}},
   7668 {"mfcmpg",	XSPR(31,339,154), XSPR_MASK, PPC860,	EXT,		{RT}},
   7669 {"mfcmph",	XSPR(31,339,155), XSPR_MASK, PPC860,	EXT,		{RT}},
   7670 {"mflctrl1",	XSPR(31,339,156), XSPR_MASK, PPC860,	EXT,		{RT}},
   7671 {"mfuamor",	XSPR(31,339,157), XSPR_MASK, POWER7,	EXT,		{RS}},
   7672 {"mflctrl2",	XSPR(31,339,157), XSPR_MASK, PPC860,	EXT,		{RT}},
   7673 {"mfictrl",	XSPR(31,339,158), XSPR_MASK, PPC860,	EXT,		{RT}},
   7674 {"mfpspb",	XSPR(31,339,159), XSPR_MASK, POWER10,	EXT,		{RS}},
   7675 {"mfbar",	XSPR(31,339,159), XSPR_MASK, PPC860,	EXT,		{RT}},
   7676 {"mfdpdes",	XSPR(31,339,176), XSPR_MASK, POWER10,	EXT,		{RS}},
   7677 {"mfdawr0",	XSPR(31,339,180), XSPR_MASK, POWER10,	EXT,		{RS}},
   7678 {"mfdawr1",	XSPR(31,339,181), XSPR_MASK, POWER10,	EXT,		{RS}},
   7679 {"mfrpr",	XSPR(31,339,186), XSPR_MASK, POWER10,	EXT,		{RS}},
   7680 {"mfciabr",	XSPR(31,339,187), XSPR_MASK, POWER10,	EXT,		{RS}},
   7681 {"mfdawrx0",	XSPR(31,339,188), XSPR_MASK, POWER10,	EXT,		{RS}},
   7682 {"mfdawrx1",	XSPR(31,339,189), XSPR_MASK, POWER10,	EXT,		{RS}},
   7683 {"mfhfscr",	XSPR(31,339,190), XSPR_MASK, POWER10,	EXT,		{RS}},
   7684 {"mfvrsave",	XSPR(31,339,256), XSPR_MASK, PPCVEC,	EXT,		{RT}},
   7685 {"mfusprg0",	XSPR(31,339,256), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7686 {"mfsprg",	XSPR(31,339,256), XSPRG_MASK, PPC,	EXT,		{RT, SPRG}},
   7687 {"mfusprg3",	XSPR(31,339,259), XSPR_MASK, POWER10,	EXT,		{RT}},
   7688 {"mfsprg4",	XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7689 {"mfsprg5",	XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7690 {"mfsprg6",	XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7691 {"mfsprg7",	XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7692 {"mftbu",	XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, EXT,		{RT}},
   7693 {"mftb",	X(31,339),	  X_MASK,    POWER4|BOOKE, EXT,		{RT, TBR}},
   7694 {"mftbl",	XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, EXT,		{RT}},
   7695 {"mfsprg0",	XSPR(31,339,272), XSPR_MASK, PPC,	EXT,		{RT}},
   7696 {"mfsprg1",	XSPR(31,339,273), XSPR_MASK, PPC,	EXT,		{RT}},
   7697 {"mfsprg2",	XSPR(31,339,274), XSPR_MASK, PPC,	EXT,		{RT}},
   7698 {"mfsprg3",	XSPR(31,339,275), XSPR_MASK, PPC,	EXT,		{RT}},
   7699 {"mfasr",	XSPR(31,339,280), XSPR_MASK, PPC64,	EXT,		{RT}},
   7700 {"mfear",	XSPR(31,339,282), XSPR_MASK, PPC,	TITAN|EXT,	{RT}},
   7701 {"mfpir",	XSPR(31,339,286), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7702 {"mfpvr",	XSPR(31,339,287), XSPR_MASK, PPC,	EXT,		{RT}},
   7703 {"mfhsprg0",	XSPR(31,339,304), XSPR_MASK, POWER10,	EXT,		{RS}},
   7704 {"mfdbsr",	XSPR(31,339,304), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7705 {"mfhsprg1",	XSPR(31,339,305), XSPR_MASK, POWER10,	EXT,		{RS}},
   7706 {"mfhdisr",	XSPR(31,339,306), XSPR_MASK, POWER10,	EXT,		{RS}},
   7707 {"mfhdar",	XSPR(31,339,307), XSPR_MASK, POWER10,	EXT,		{RS}},
   7708 {"mfspurr",	XSPR(31,339,308), XSPR_MASK, POWER10,	EXT,		{RS}},
   7709 {"mfdbcr0",	XSPR(31,339,308), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7710 {"mfpurr",	XSPR(31,339,309), XSPR_MASK, POWER10,	EXT,		{RS}},
   7711 {"mfdbcr1",	XSPR(31,339,309), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7712 {"mfhdec",	XSPR(31,339,310), XSPR_MASK, POWER10,	EXT,		{RS}},
   7713 {"mfdbcr2",	XSPR(31,339,310), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7714 {"mfiac1",	XSPR(31,339,312), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7715 {"mfhrmor",	XSPR(31,339,313), XSPR_MASK, POWER10,	EXT,		{RS}},
   7716 {"mfiac2",	XSPR(31,339,313), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7717 {"mfhsrr0",	XSPR(31,339,314), XSPR_MASK, POWER10,	EXT,		{RS}},
   7718 {"mfiac3",	XSPR(31,339,314), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7719 {"mfhsrr1",	XSPR(31,339,315), XSPR_MASK, POWER10,	EXT,		{RS}},
   7720 {"mfiac4",	XSPR(31,339,315), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7721 {"mfdac1",	XSPR(31,339,316), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7722 {"mfdac2",	XSPR(31,339,317), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7723 {"mflpcr",	XSPR(31,339,318), XSPR_MASK, POWER10,	EXT,		{RS}},
   7724 {"mfdvc1",	XSPR(31,339,318), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7725 {"mflpidr",	XSPR(31,339,319), XSPR_MASK, POWER10,	EXT,		{RS}},
   7726 {"mfdvc2",	XSPR(31,339,319), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7727 {"mfhmer",	XSPR(31,339,336), XSPR_MASK, POWER7,	EXT,		{RS}},
   7728 {"mftsr",	XSPR(31,339,336), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7729 {"mfhmeer",	XSPR(31,339,337), XSPR_MASK, POWER7,	EXT,		{RS}},
   7730 {"mfpcr",	XSPR(31,339,338), XSPR_MASK, POWER10,	EXT,		{RS}},
   7731 {"mfheir",	XSPR(31,339,339), XSPR_MASK, POWER10,	EXT,		{RS}},
   7732 {"mftcr",	XSPR(31,339,340), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7733 {"mfamor",	XSPR(31,339,349), XSPR_MASK, POWER7,	EXT,		{RS}},
   7734 {"mfivor0",	XSPR(31,339,400), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7735 {"mfivor1",	XSPR(31,339,401), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7736 {"mfivor2",	XSPR(31,339,402), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7737 {"mfivor3",	XSPR(31,339,403), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7738 {"mfivor4",	XSPR(31,339,404), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7739 {"mfivor5",	XSPR(31,339,405), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7740 {"mfivor6",	XSPR(31,339,406), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7741 {"mfivor7",	XSPR(31,339,407), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7742 {"mfivor8",	XSPR(31,339,408), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7743 {"mfivor9",	XSPR(31,339,409), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7744 {"mfivor10",	XSPR(31,339,410), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7745 {"mfivor11",	XSPR(31,339,411), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7746 {"mfivor12",	XSPR(31,339,412), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7747 {"mfivor13",	XSPR(31,339,413), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7748 {"mfivor14",	XSPR(31,339,414), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7749 {"mfivor15",	XSPR(31,339,415), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7750 {"mftir",	XSPR(31,339,446), XSPR_MASK, POWER10,	EXT,		{RS}},
   7751 {"mfptcr",	XSPR(31,339,464), XSPR_MASK, POWER10,	EXT,		{RS}},
   7752 {"mfusprg0",	XSPR(31,339,496), XSPR_MASK, POWER10,	EXT,		{RS}},
   7753 {"mfusprg1",	XSPR(31,339,497), XSPR_MASK, POWER10,	EXT,		{RS}},
   7754 {"mfurmor",	XSPR(31,339,505), XSPR_MASK, POWER10,	EXT,		{RS}},
   7755 {"mfusrr0",	XSPR(31,339,506), XSPR_MASK, POWER10,	EXT,		{RS}},
   7756 {"mfusrr1",	XSPR(31,339,507), XSPR_MASK, POWER10,	EXT,		{RS}},
   7757 {"mfsmfctrl",	XSPR(31,339,511), XSPR_MASK, POWER10,	EXT,		{RS}},
   7758 {"mfspefscr",	XSPR(31,339,512), XSPR_MASK, PPCSPE,	EXT,		{RT}},
   7759 {"mfbbear",	XSPR(31,339,513), XSPR_MASK, PPCBRLK,	EXT,		{RT}},
   7760 {"mfbbtar",	XSPR(31,339,514), XSPR_MASK, PPCBRLK,	EXT,		{RT}},
   7761 {"mfivor32",	XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, EXT,		{RT}},
   7762 {"mfivor33",	XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, EXT,		{RT}},
   7763 {"mfivor34",	XSPR(31,339,530), XSPR_MASK, PPCSPE,	EXT,		{RT}},
   7764 {"mfivor35",	XSPR(31,339,531), XSPR_MASK, PPCPMR,	EXT,		{RT}},
   7765 {"mfibatu",	XSPR(31,339,528), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7766 {"mfibatl",	XSPR(31,339,529), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7767 {"mfdbatu",	XSPR(31,339,536), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7768 {"mfdbatl",	XSPR(31,339,537), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7769 {"mfic_cst",	XSPR(31,339,560), XSPR_MASK, PPC860,	EXT,		{RT}},
   7770 {"mfic_adr",	XSPR(31,339,561), XSPR_MASK, PPC860,	EXT,		{RT}},
   7771 {"mfic_dat",	XSPR(31,339,562), XSPR_MASK, PPC860,	EXT,		{RT}},
   7772 {"mfdc_cst",	XSPR(31,339,568), XSPR_MASK, PPC860,	EXT,		{RT}},
   7773 {"mfdc_adr",	XSPR(31,339,569), XSPR_MASK, PPC860,	EXT,		{RT}},
   7774 {"mfdc_dat",	XSPR(31,339,570), XSPR_MASK, PPC860,	EXT,		{RT}},
   7775 {"mfmcsrr0",	XSPR(31,339,570), XSPR_MASK, PPCRFMCI,	EXT,		{RT}},
   7776 {"mfmcsrr1",	XSPR(31,339,571), XSPR_MASK, PPCRFMCI,	EXT,		{RT}},
   7777 {"mfmcsr",	XSPR(31,339,572), XSPR_MASK, PPCRFMCI,	EXT,		{RT}},
   7778 {"mfmcar",	XSPR(31,339,573), XSPR_MASK, PPCRFMCI,	TITAN|EXT,	{RT}},
   7779 {"mfdpdr",	XSPR(31,339,630), XSPR_MASK, PPC860,	EXT,		{RT}},
   7780 {"mfdpir",	XSPR(31,339,631), XSPR_MASK, PPC860,	EXT,		{RT}},
   7781 {"mfimmr",	XSPR(31,339,638), XSPR_MASK, PPC860,	EXT,		{RT}},
   7782 {"mfusier2",	XSPR(31,339,736), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7783 {"mfsier2",	XSPR(31,339,736), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7784 {"mfusier3",	XSPR(31,339,737), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7785 {"mfsier3",	XSPR(31,339,737), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7786 {"mfummcr3",	XSPR(31,339,738), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7787 {"mfmmcr3",	XSPR(31,339,738), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7788 {"mfusier",	XSPR(31,339,768), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7789 {"mfsier",	XSPR(31,339,768), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7790 {"mfummcr2",	XSPR(31,339,769), XSPR_MASK, POWER9,	EXT, 		{RT}},
   7791 {"mfmmcr2",	XSPR(31,339,769), XSPR_MASK, POWER9,	EXT, 		{RT}},
   7792 {"mfummcra",	XSPR(31,339,770), XSPR_MASK, POWER9,	EXT,		{RS}},
   7793 {"mfmmcra",	XSPR(31,339,770), XSPR_MASK, POWER7,	EXT,		{RS}},
   7794 {"mfupmc1",	XSPR(31,339,771), XSPR_MASK, POWER9,	EXT, 		{RT}},
   7795 {"mfpmc1",	XSPR(31,339,771), XSPR_MASK, POWER7,	EXT,		{RT}},
   7796 {"mfupmc2",	XSPR(31,339,772), XSPR_MASK, POWER9,	EXT,		{RT}},
   7797 {"mfpmc2",	XSPR(31,339,772), XSPR_MASK, POWER7,	EXT,		{RT}},
   7798 {"mfupmc3",	XSPR(31,339,773), XSPR_MASK, POWER9,	EXT,		{RT}},
   7799 {"mfpmc3",	XSPR(31,339,773), XSPR_MASK, POWER7,	EXT,		{RT}},
   7800 {"mfupmc4",	XSPR(31,339,774), XSPR_MASK, POWER9,	EXT,		{RT}},
   7801 {"mfpmc4",	XSPR(31,339,774), XSPR_MASK, POWER7,	EXT,		{RT}},
   7802 {"mfupmc5",	XSPR(31,339,775), XSPR_MASK, POWER9,	EXT,		{RT}},
   7803 {"mfpmc5",	XSPR(31,339,775), XSPR_MASK, POWER7,	EXT,		{RT}},
   7804 {"mfupmc6",	XSPR(31,339,776), XSPR_MASK, POWER9,	EXT,		{RT}},
   7805 {"mfpmc6",	XSPR(31,339,776), XSPR_MASK, POWER7,	EXT,		{RT}},
   7806 {"mfummcr0",	XSPR(31,339,779), XSPR_MASK, POWER9,	EXT,		{RS}},
   7807 {"mfmmcr0",	XSPR(31,339,779), XSPR_MASK, POWER7,	EXT,		{RS}},
   7808 {"mfusiar",	XSPR(31,339,780), XSPR_MASK, POWER9,	EXT,		{RS}},
   7809 {"mfsiar",	XSPR(31,339,780), XSPR_MASK, POWER9,	EXT,		{RS}},
   7810 {"mfusdar",	XSPR(31,339,781), XSPR_MASK, POWER9,	EXT,		{RS}},
   7811 {"mfsdar",	XSPR(31,339,781), XSPR_MASK, POWER9,	EXT,		{RS}},
   7812 {"mfummcr1",	XSPR(31,339,782), XSPR_MASK, POWER9,	EXT,		{RS}},
   7813 {"mfmmcr1",	XSPR(31,339,782), XSPR_MASK, POWER7,	EXT,		{RS}},
   7814 {"mfmi_ctr",	XSPR(31,339,784), XSPR_MASK, PPC860,	EXT,		{RT}},
   7815 {"mfmi_ap",	XSPR(31,339,786), XSPR_MASK, PPC860,	EXT,		{RT}},
   7816 {"mfmi_epn",	XSPR(31,339,787), XSPR_MASK, PPC860,	EXT,		{RT}},
   7817 {"mfmi_twc",	XSPR(31,339,789), XSPR_MASK, PPC860,	EXT,		{RT}},
   7818 {"mfmi_rpn",	XSPR(31,339,790), XSPR_MASK, PPC860,	EXT,		{RT}},
   7819 {"mfmd_ctr",	XSPR(31,339,792), XSPR_MASK, PPC860,	EXT,		{RT}},
   7820 {"mfm_casid",	XSPR(31,339,793), XSPR_MASK, PPC860,	EXT,		{RT}},
   7821 {"mfmd_ap",	XSPR(31,339,794), XSPR_MASK, PPC860,	EXT,		{RT}},
   7822 {"mfmd_epn",	XSPR(31,339,795), XSPR_MASK, PPC860,	EXT,		{RT}},
   7823 {"mfmd_twb",	XSPR(31,339,796), XSPR_MASK, PPC860,	EXT,		{RT}},
   7824 {"mfmd_twc",	XSPR(31,339,797), XSPR_MASK, PPC860,	EXT,		{RT}},
   7825 {"mfmd_rpn",	XSPR(31,339,798), XSPR_MASK, PPC860,	EXT,		{RT}},
   7826 {"mfm_tw",	XSPR(31,339,799), XSPR_MASK, PPC860,	EXT,		{RT}},
   7827 {"mfbescrs",	XSPR(31,339,800), XSPR_MASK, POWER9,	EXT,		{RS}},
   7828 {"mfbescrsu",	XSPR(31,339,801), XSPR_MASK, POWER9,	EXT,		{RS}},
   7829 {"mfbescrr",	XSPR(31,339,802), XSPR_MASK, POWER9,	EXT,		{RS}},
   7830 {"mfbescrru",	XSPR(31,339,803), XSPR_MASK, POWER9,	EXT,		{RS}},
   7831 {"mfebbhr",	XSPR(31,339,804), XSPR_MASK, POWER9,	EXT,		{RS}},
   7832 {"mfebbrr",	XSPR(31,339,805), XSPR_MASK, POWER9,	EXT,		{RS}},
   7833 {"mfbescr",	XSPR(31,339,806), XSPR_MASK, POWER9,	EXT,		{RS}},
   7834 {"mftar",	XSPR(31,339,815), XSPR_MASK, POWER9,	EXT,		{RS}},
   7835 {"mfasdr",	XSPR(31,339,816), XSPR_MASK, POWER10,	EXT,		{RS}},
   7836 {"mfmi_dbcam",	XSPR(31,339,816), XSPR_MASK, PPC860,	EXT,		{RT}},
   7837 {"mfmi_dbram0",	XSPR(31,339,817), XSPR_MASK, PPC860,	EXT,		{RT}},
   7838 {"mfmi_dbram1",	XSPR(31,339,818), XSPR_MASK, PPC860,	EXT,		{RT}},
   7839 {"mfpsscr",	XSPR(31,339,823), XSPR_MASK, POWER10,	EXT,		{RS}},
   7840 {"mfmd_dbcam",	XSPR(31,339,824), XSPR_MASK, PPC860,	EXT,		{RT}},
   7841 {"mfmd_dbram0",	XSPR(31,339,825), XSPR_MASK, PPC860,	EXT,		{RT}},
   7842 {"mfmd_dbram1",	XSPR(31,339,826), XSPR_MASK, PPC860,	EXT,		{RT}},
   7843 {"mfic",	XSPR(31,339,848), XSPR_MASK, POWER8,	EXT,		{RS}},
   7844 {"mfvtb",	XSPR(31,339,849), XSPR_MASK, POWER8,	EXT,		{RS}},
   7845 {"mfhpsscr",	XSPR(31,339,855), XSPR_MASK, POWER10,	EXT,		{RS}},
   7846 {"mfivndx",	XSPR(31,339,880), XSPR_MASK, TITAN,	EXT,		{RT}},
   7847 {"mfdvndx",	XSPR(31,339,881), XSPR_MASK, TITAN,	EXT,		{RT}},
   7848 {"mfivlim",	XSPR(31,339,882), XSPR_MASK, TITAN,	EXT,		{RT}},
   7849 {"mfdvlim",	XSPR(31,339,883), XSPR_MASK, TITAN,	EXT,		{RT}},
   7850 {"mfclcsr",	XSPR(31,339,884), XSPR_MASK, TITAN,	EXT,		{RT}},
   7851 {"mfccr1",	XSPR(31,339,888), XSPR_MASK, TITAN,	EXT,		{RT}},
   7852 {"mfppr",	XSPR(31,339,896), XSPR_MASK, POWER5,	EXT,		{RT}},
   7853 {"mfppr32",	XSPR(31,339,898), XSPR_MASK, POWER5,	EXT,		{RT}},
   7854 {"mfgqr",	XSPR(31,339,912), XSPRGQR_MASK, PPCPS,	EXT,		{RT, SPRGQR}},
   7855 {"mfhid2",	XSPR(31,339,920), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7856 {"mfwpar",	XSPR(31,339,921), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7857 {"mfdmau",	XSPR(31,339,922), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7858 {"mfdmal",	XSPR(31,339,923), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7859 {"mfrstcfg",	XSPR(31,339,923), XSPR_MASK, TITAN,	EXT,		{RT}},
   7860 {"mfdcdbtrl",	XSPR(31,339,924), XSPR_MASK, TITAN,	EXT,		{RT}},
   7861 {"mfdcdbtrh",	XSPR(31,339,925), XSPR_MASK, TITAN,	EXT,		{RT}},
   7862 {"mficdbtr",	XSPR(31,339,927), XSPR_MASK, TITAN,	EXT,		{RT}},
   7863 {"mfummcr0",	XSPR(31,339,936), XSPR_MASK, PPC750,	EXT,		{RT}},
   7864 {"mfupmc1",	XSPR(31,339,937), XSPR_MASK, PPC750,	EXT,		{RT}},
   7865 {"mfupmc2",	XSPR(31,339,938), XSPR_MASK, PPC750,	EXT,		{RT}},
   7866 {"mfusia",	XSPR(31,339,939), XSPR_MASK, PPC750,	EXT,		{RT}},
   7867 {"mfummcr1",	XSPR(31,339,940), XSPR_MASK, PPC750,	EXT,		{RT}},
   7868 {"mfupmc3",	XSPR(31,339,941), XSPR_MASK, PPC750,	EXT,		{RT}},
   7869 {"mfupmc4",	XSPR(31,339,942), XSPR_MASK, PPC750,	EXT,		{RT}},
   7870 {"mfzpr",	XSPR(31,339,944), XSPR_MASK, PPC403,	EXT,		{RT}},
   7871 {"mfpid",	XSPR(31,339,945), XSPR_MASK, PPC403,	EXT,		{RT}},
   7872 {"mfmmucr",	XSPR(31,339,946), XSPR_MASK, TITAN,	EXT,		{RT}},
   7873 {"mfccr0",	XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, EXT,		{RT}},
   7874 {"mfiac3",	XSPR(31,339,948), XSPR_MASK, PPC405,	EXT,		{RT}},
   7875 {"mfiac4",	XSPR(31,339,949), XSPR_MASK, PPC405,	EXT,		{RT}},
   7876 {"mfdvc1",	XSPR(31,339,950), XSPR_MASK, PPC405,	EXT,		{RT}},
   7877 {"mfdvc2",	XSPR(31,339,951), XSPR_MASK, PPC405,	EXT,		{RT}},
   7878 {"mfmmcr0",	XSPR(31,339,952), XSPR_MASK, PPC750,	EXT,		{RT}},
   7879 {"mfpmc1",	XSPR(31,339,953), XSPR_MASK, PPC750,	EXT,		{RT}},
   7880 {"mfsgr",	XSPR(31,339,953), XSPR_MASK, PPC403,	EXT,		{RT}},
   7881 {"mfdcwr",	XSPR(31,339,954), XSPR_MASK, PPC403,	EXT,		{RT}},
   7882 {"mfpmc2",	XSPR(31,339,954), XSPR_MASK, PPC750,	EXT,		{RT}},
   7883 {"mfsia",	XSPR(31,339,955), XSPR_MASK, PPC750,	EXT,		{RT}},
   7884 {"mfsler",	XSPR(31,339,955), XSPR_MASK, PPC405,	EXT,		{RT}},
   7885 {"mfmmcr1",	XSPR(31,339,956), XSPR_MASK, PPC750,	EXT,		{RT}},
   7886 {"mfsu0r",	XSPR(31,339,956), XSPR_MASK, PPC405,	EXT,		{RT}},
   7887 {"mfdbcr1",	XSPR(31,339,957), XSPR_MASK, PPC405,	EXT,		{RT}},
   7888 {"mfpmc3",	XSPR(31,339,957), XSPR_MASK, PPC750,	EXT,		{RT}},
   7889 {"mfpmc4",	XSPR(31,339,958), XSPR_MASK, PPC750,	EXT,		{RT}},
   7890 {"mficdbdr",	XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, EXT,		{RT}},
   7891 {"mfesr",	XSPR(31,339,980), XSPR_MASK, PPC403,	EXT,		{RT}},
   7892 {"mfdear",	XSPR(31,339,981), XSPR_MASK, PPC403,	EXT,		{RT}},
   7893 {"mfevpr",	XSPR(31,339,982), XSPR_MASK, PPC403,	EXT,		{RT}},
   7894 {"mfcdbcr",	XSPR(31,339,983), XSPR_MASK, PPC403,	EXT,		{RT}},
   7895 {"mftsr",	XSPR(31,339,984), XSPR_MASK, PPC403,	EXT,		{RT}},
   7896 {"mftcr",	XSPR(31,339,986), XSPR_MASK, PPC403,	EXT,		{RT}},
   7897 {"mfpit",	XSPR(31,339,987), XSPR_MASK, PPC403,	EXT,		{RT}},
   7898 {"mftbhi",	XSPR(31,339,988), XSPR_MASK, PPC403,	EXT,		{RT}},
   7899 {"mftblo",	XSPR(31,339,989), XSPR_MASK, PPC403,	EXT,		{RT}},
   7900 {"mfsrr2",	XSPR(31,339,990), XSPR_MASK, PPC403,	EXT,		{RT}},
   7901 {"mfsrr3",	XSPR(31,339,991), XSPR_MASK, PPC403,	EXT,		{RT}},
   7902 {"mfdbsr",	XSPR(31,339,1008), XSPR_MASK, PPC403,	EXT,		{RT}},
   7903 {"mfhid0",	XSPR(31,339,1008), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7904 {"mfhid1",	XSPR(31,339,1009), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7905 {"mfdbcr0",	XSPR(31,339,1010), XSPR_MASK, PPC405,	EXT,		{RT}},
   7906 {"mfiabr",	XSPR(31,339,1010), XSPR_MASK, GEKKO,	EXT,		{RT}},
   7907 {"mfhid4",	XSPR(31,339,1011), XSPR_MASK, BROADWAY,	EXT,		{RT}},
   7908 {"mfdbdr",	XSPR(31,339,1011), XSPR_MASK, TITAN,	EXT,		{RS}},
   7909 {"mfiac1",	XSPR(31,339,1012), XSPR_MASK, PPC403,	EXT,		{RT}},
   7910 {"mfiac2",	XSPR(31,339,1013), XSPR_MASK, PPC403,	EXT,		{RT}},
   7911 {"mfdabr",	XSPR(31,339,1013), XSPR_MASK, PPC750,	EXT,		{RT}},
   7912 {"mfdac1",	XSPR(31,339,1014), XSPR_MASK, PPC403,	EXT,		{RT}},
   7913 {"mfdac2",	XSPR(31,339,1015), XSPR_MASK, PPC403,	EXT,		{RT}},
   7914 {"mfl2cr",	XSPR(31,339,1017), XSPR_MASK, PPC750,	EXT,		{RT}},
   7915 {"mfdccr",	XSPR(31,339,1018), XSPR_MASK, PPC403,	EXT,		{RT}},
   7916 {"mficcr",	XSPR(31,339,1019), XSPR_MASK, PPC403,	EXT,		{RT}},
   7917 {"mfictc",	XSPR(31,339,1019), XSPR_MASK, PPC750,	EXT,		{RT}},
   7918 {"mfpbl1",	XSPR(31,339,1020), XSPR_MASK, PPC403,	EXT,		{RT}},
   7919 {"mfthrm1",	XSPR(31,339,1020), XSPR_MASK, PPC750,	EXT,		{RT}},
   7920 {"mfpbu1",	XSPR(31,339,1021), XSPR_MASK, PPC403,	EXT,		{RT}},
   7921 {"mfthrm2",	XSPR(31,339,1021), XSPR_MASK, PPC750,	EXT,		{RT}},
   7922 {"mfpbl2",	XSPR(31,339,1022), XSPR_MASK, PPC403,	EXT,		{RT}},
   7923 {"mfthrm3",	XSPR(31,339,1022), XSPR_MASK, PPC750,	EXT,		{RT}},
   7924 {"mfpir",	XSPR(31,339,1023), XSPR_MASK, POWER10,	EXT,		{RT}},
   7925 {"mfpbu2",	XSPR(31,339,1023), XSPR_MASK, PPC403,	EXT,		{RT}},
   7926 {"mfspr",	X(31,339),	X_MASK,	     COM,	0,		{RT, SPR}},
   7927 
   7928 {"lwax",	X(31,341),	X_MASK,	     PPC64,	0,		{RT, RA0, RB}},
   7929 
   7930 {"dst",		XDSS(31,342,0),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   7931 {"dstt",	XDSS(31,342,1),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   7932 
   7933 {"lhax",	X(31,343),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   7934 
   7935 {"lvxl",	X(31,359),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7936 
   7937 {"abs",		XO(31,360,0,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   7938 {"abs.",	XO(31,360,0,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   7939 
   7940 {"divs",	XO(31,363,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7941 {"divs.",	XO(31,363,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7942 
   7943 {"lxvwsx",	X(31,364),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   7944 
   7945 {"tlbia",	X(31,370),	0xffffffff,  PPC,	E500|TITAN,	{0}},
   7946 
   7947 {"mftbu",	XSPR(31,371,269), XSPR_MASK, PPC,	NO371|POWER4|EXT,	{RT}},
   7948 {"mftb",	X(31,371),	X_MASK,	     PPC,	NO371|POWER4,		{RT, TBR}},
   7949 {"mftbl",	XSPR(31,371,268), XSPR_MASK, PPC,	NO371|POWER4|EXT,	{RT}},
   7950 
   7951 {"lwaux",	X(31,373),	X_MASK,	     PPC64,	0,		{RT, RAL, RB}},
   7952 
   7953 {"dstst",	XDSS(31,374,0),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   7954 {"dststt",	XDSS(31,374,1),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   7955 
   7956 {"lhaux",	X(31,375),	X_MASK,	     COM,	0,		{RT, RAL, RB}},
   7957 
   7958 {"popcntw",	X(31,378),	XRB_MASK,    POWER7|PPCA2, 0,		{RA, RS}},
   7959 
   7960 {"setbc",	X(31,384),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   7961 
   7962 {"mtdcrx",	X(31,387),	X_MASK,	     BOOKE|PPCA2|PPC476, TITAN,	{RA, RS}},
   7963 {"mtdcrx.",	XRC(31,387,1),	X_MASK,	     PPCA2,	0,		{RA, RS}},
   7964 
   7965 {"stvexbx",	X(31,389),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   7966 
   7967 {"dcblc",	X(31,390),	X_MASK,	 PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7968 {"stdfcmx",	APU(31,391,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7969 
   7970 {"divdeu",	XO(31,393,0,0),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   7971 {"divdeu.",	XO(31,393,0,1),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   7972 {"divweu",	XO(31,395,0,0),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   7973 {"divweu.",	XO(31,395,0,1),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   7974 
   7975 {"stxvx",	X(31,396),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   7976 {"stxvl",	X(31,397),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   7977 
   7978 {"dcblce",	X(31,398),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA, RB}},
   7979 
   7980 {"slbmte",	X(31,402),	XRA_MASK,    PPC64,	0,		{RS, RB}},
   7981 
   7982 {"mtvsrws",	X(31,403),	XX1RB_MASK,  PPCVSX3,	0,		{XT6, RA}},
   7983 
   7984 {"pbt.",	XRC(31,404,1),	X_MASK,	     POWER8,	0,		{RS, RA0, RB}},
   7985 
   7986 {"icswx",	XRC(31,406,0),	X_MASK,	  POWER7|PPCA2,	0,		{RS, RA, RB}},
   7987 {"icswx.",	XRC(31,406,1),	X_MASK,	  POWER7|PPCA2,	0,		{RS, RA, RB}},
   7988 
   7989 {"sthx",	X(31,407),	X_MASK,	     COM,	0,		{RS, RA0, RB}},
   7990 
   7991 {"orc",		XRC(31,412,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7992 {"orc.",	XRC(31,412,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7993 
   7994 {"sthepx",	X(31,415),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7995 
   7996 {"setbcr",	X(31,416),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   7997 
   7998 {"mtdcrux",	X(31,419),	X_MASK,	 PPC464|PPC476,	0,		{RA, RS}},
   7999 
   8000 {"stvexhx",	X(31,421),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8001 
   8002 {"dcblq.",	XRC(31,422,1),	X_MASK,	     E6500,	0,		{CT, RA0, RB}},
   8003 
   8004 {"divde",	XO(31,425,0,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8005 {"divde.",	XO(31,425,0,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8006 {"divwe",	XO(31,427,0,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8007 {"divwe.",	XO(31,427,0,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8008 
   8009 {"stxvll",	X(31,429),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8010 
   8011 {"clrbhrb",	X(31,430),	0xffffffff,  POWER8,	0,		{0}},
   8012 
   8013 {"slbie",	X(31,434),	XRTRA_MASK,  PPC64,	0,		{RB}},
   8014 
   8015 {"mtvsrdd",	X(31,435),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8016 
   8017 {"ecowx",	X(31,438),	X_MASK,	     PPC,	E500|TITAN,	{RT, RA0, RB}},
   8018 
   8019 {"sthux",	X(31,439),	X_MASK,	     COM,	0,		{RS, RAS, RB}},
   8020 
   8021 /* or 1,1,1 */
   8022 {"cctpl",	0x7c210b78,	0xffffffff,  CELL,	EXT,		{0}},
   8023 /* or 2,2,2 */
   8024 {"cctpm",	0x7c421378,	0xffffffff,  CELL,	EXT,		{0}},
   8025 /* or 3,3,3 */
   8026 {"cctph",	0x7c631b78,	0xffffffff,  CELL,	EXT,		{0}},
   8027 /* or 26,26,26 */
   8028 {"miso",	0x7f5ad378,   0xffffffff, POWER8|E6500,	EXT,		{0}},
   8029 /* or 27,27,27 */
   8030 {"yield",	0x7f7bdb78,	0xffffffff,  POWER7,	EXT,		{0}},
   8031 /* or 28,28,28 */
   8032 {"mdors",	0x7f9ce378,	0xffffffff,  E500MC,	EXT,		{0}},
   8033 {"db8cyc",	0x7f9ce378,	0xffffffff,  CELL,	EXT,		{0}},
   8034 /* or 29,29,29 */
   8035 {"mdoio",	0x7fbdeb78,	0xffffffff,  POWER7,	EXT,		{0}},
   8036 {"db10cyc",	0x7fbdeb78,	0xffffffff,  CELL,	EXT,		{0}},
   8037 /* or 30,30,30 */
   8038 {"mdoom",	0x7fdef378,	0xffffffff,  POWER7,	EXT,		{0}},
   8039 {"db12cyc",	0x7fdef378,	0xffffffff,  CELL,	EXT,		{0}},
   8040 /* or 31,31,31 */
   8041 {"db16cyc",	0x7ffffb78,	0xffffffff,  CELL,	EXT,		{0}},
   8042 
   8043 {"mr",		XRC(31,444,0),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   8044 {"or",		XRC(31,444,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8045 {"mr.",		XRC(31,444,1),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   8046 {"or.",		XRC(31,444,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8047 
   8048 {"setnbc",	X(31,448),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   8049 
   8050 {"mtexisr",	XSPR(31,451, 64), XSPR_MASK, PPC403,	0,		{RS}},
   8051 {"mtexier",	XSPR(31,451, 66), XSPR_MASK, PPC403,	0,		{RS}},
   8052 {"mtbr0",	XSPR(31,451,128), XSPR_MASK, PPC403,	0,		{RS}},
   8053 {"mtbr1",	XSPR(31,451,129), XSPR_MASK, PPC403,	0,		{RS}},
   8054 {"mtbr2",	XSPR(31,451,130), XSPR_MASK, PPC403,	0,		{RS}},
   8055 {"mtbr3",	XSPR(31,451,131), XSPR_MASK, PPC403,	0,		{RS}},
   8056 {"mtbr4",	XSPR(31,451,132), XSPR_MASK, PPC403,	0,		{RS}},
   8057 {"mtbr5",	XSPR(31,451,133), XSPR_MASK, PPC403,	0,		{RS}},
   8058 {"mtbr6",	XSPR(31,451,134), XSPR_MASK, PPC403,	0,		{RS}},
   8059 {"mtbr7",	XSPR(31,451,135), XSPR_MASK, PPC403,	0,		{RS}},
   8060 {"mtbear",	XSPR(31,451,144), XSPR_MASK, PPC403,	0,		{RS}},
   8061 {"mtbesr",	XSPR(31,451,145), XSPR_MASK, PPC403,	0,		{RS}},
   8062 {"mtiocr",	XSPR(31,451,160), XSPR_MASK, PPC403,	0,		{RS}},
   8063 {"mtdmacr0",	XSPR(31,451,192), XSPR_MASK, PPC403,	0,		{RS}},
   8064 {"mtdmact0",	XSPR(31,451,193), XSPR_MASK, PPC403,	0,		{RS}},
   8065 {"mtdmada0",	XSPR(31,451,194), XSPR_MASK, PPC403,	0,		{RS}},
   8066 {"mtdmasa0",	XSPR(31,451,195), XSPR_MASK, PPC403,	0,		{RS}},
   8067 {"mtdmacc0",	XSPR(31,451,196), XSPR_MASK, PPC403,	0,		{RS}},
   8068 {"mtdmacr1",	XSPR(31,451,200), XSPR_MASK, PPC403,	0,		{RS}},
   8069 {"mtdmact1",	XSPR(31,451,201), XSPR_MASK, PPC403,	0,		{RS}},
   8070 {"mtdmada1",	XSPR(31,451,202), XSPR_MASK, PPC403,	0,		{RS}},
   8071 {"mtdmasa1",	XSPR(31,451,203), XSPR_MASK, PPC403,	0,		{RS}},
   8072 {"mtdmacc1",	XSPR(31,451,204), XSPR_MASK, PPC403,	0,		{RS}},
   8073 {"mtdmacr2",	XSPR(31,451,208), XSPR_MASK, PPC403,	0,		{RS}},
   8074 {"mtdmact2",	XSPR(31,451,209), XSPR_MASK, PPC403,	0,		{RS}},
   8075 {"mtdmada2",	XSPR(31,451,210), XSPR_MASK, PPC403,	0,		{RS}},
   8076 {"mtdmasa2",	XSPR(31,451,211), XSPR_MASK, PPC403,	0,		{RS}},
   8077 {"mtdmacc2",	XSPR(31,451,212), XSPR_MASK, PPC403,	0,		{RS}},
   8078 {"mtdmacr3",	XSPR(31,451,216), XSPR_MASK, PPC403,	0,		{RS}},
   8079 {"mtdmact3",	XSPR(31,451,217), XSPR_MASK, PPC403,	0,		{RS}},
   8080 {"mtdmada3",	XSPR(31,451,218), XSPR_MASK, PPC403,	0,		{RS}},
   8081 {"mtdmasa3",	XSPR(31,451,219), XSPR_MASK, PPC403,	0,		{RS}},
   8082 {"mtdmacc3",	XSPR(31,451,220), XSPR_MASK, PPC403,	0,		{RS}},
   8083 {"mtdmasr",	XSPR(31,451,224), XSPR_MASK, PPC403,	0,		{RS}},
   8084 {"mtdcr",	X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
   8085 {"mtdcr.",	XRC(31,451,1), X_MASK,	     PPCA2,	0,		{SPR, RS}},
   8086 
   8087 {"stvexwx",	X(31,453),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8088 
   8089 {"dccci",	X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
   8090 {"dci",		X(31,454),	XRARB_MASK, PPCA2|PPC476, 0,		{CT}},
   8091 
   8092 {"divdu",	XO(31,457,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8093 {"divdu.",	XO(31,457,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8094 
   8095 {"divwu",	XO(31,459,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8096 {"divwu.",	XO(31,459,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8097 
   8098 {"stxvpx",	X(31,461),	XX1_MASK,    POWER10,	0,		{XSP, RA0, RB}},
   8099 
   8100 {"mtpmr",	X(31,462),	X_MASK, PPCPMR|PPCE300, 0,		{PMR, RS}},
   8101 {"mttmr",	X(31,494),	X_MASK,	     PPCTMR,	0,		{TMR, RS}},
   8102 
   8103 {"slbieg",	X(31,466),	XRA_MASK,    POWER9,	0,		{RS, RB}},
   8104 
   8105 {"mtmq",	XSPR(31,467,  0), XSPR_MASK, M601,	EXT,		{RS}},
   8106 {"mtxer",	XSPR(31,467,  1), XSPR_MASK, COM,	EXT,		{RS}},
   8107 {"mtudscr",	XSPR(31,467,  3), XSPR_MASK, POWER9,	EXT,		{RS}},
   8108 {"mtlr",	XSPR(31,467,  8), XSPR_MASK, COM,	EXT,		{RS}},
   8109 {"mtctr",	XSPR(31,467,  9), XSPR_MASK, COM,	EXT,		{RS}},
   8110 {"mtuamr",	XSPR(31,467, 13), XSPR_MASK, POWER9,	EXT,		{RS}},
   8111 {"mtdscr",	XSPR(31,467, 17), XSPR_MASK, POWER6,	EXT,		{RS}},
   8112 {"mttid",	XSPR(31,467, 17), XSPR_MASK, POWER,	EXT,		{RS}},
   8113 {"mtdsisr",	XSPR(31,467, 18), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8114 {"mtdar",	XSPR(31,467, 19), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8115 {"mtrtcu",	XSPR(31,467, 20), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8116 {"mtrtcl",	XSPR(31,467, 21), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8117 {"mtdec",	XSPR(31,467, 22), XSPR_MASK, COM,	EXT,		{RS}},
   8118 {"mtsdr0",	XSPR(31,467, 24), XSPR_MASK, POWER,	EXT,		{RS}},
   8119 {"mtsdr1",	XSPR(31,467, 25), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8120 {"mtsrr0",	XSPR(31,467, 26), XSPR_MASK, COM,	EXT,		{RS}},
   8121 {"mtsrr1",	XSPR(31,467, 27), XSPR_MASK, COM,	EXT,		{RS}},
   8122 {"mtcfar",	XSPR(31,467, 28), XSPR_MASK, POWER6,	EXT,		{RS}},
   8123 {"mtamr",	XSPR(31,467, 29), XSPR_MASK, POWER7,	EXT,		{RS}},
   8124 {"mtpidr",	XSPR(31,467, 48), XSPR_MASK, POWER10,	EXT,		{RS}},
   8125 {"mtpid",	XSPR(31,467, 48), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8126 {"mtdecar",	XSPR(31,467, 54), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8127 {"mtcsrr0",	XSPR(31,467, 58), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8128 {"mtcsrr1",	XSPR(31,467, 59), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8129 {"mtiamr",	XSPR(31,467, 61), XSPR_MASK, POWER10,	EXT,		{RS}},
   8130 {"mtdear",	XSPR(31,467, 61), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8131 {"mtesr",	XSPR(31,467, 62), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8132 {"mtivpr",	XSPR(31,467, 63), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8133 {"mttfhar",	XSPR(31,467,128), XSPR_MASK, POWER9,	EXT,		{RS}},
   8134 {"mttfiar",	XSPR(31,467,129), XSPR_MASK, POWER9,	EXT,		{RS}},
   8135 {"mttexasr",	XSPR(31,467,130), XSPR_MASK, POWER9,	EXT,		{RS}},
   8136 {"mttexasru",	XSPR(31,467,131), XSPR_MASK, POWER9,	EXT,		{RS}},
   8137 {"mtcmpa",	XSPR(31,467,144), XSPR_MASK, PPC860,	EXT,		{RS}},
   8138 {"mtcmpb",	XSPR(31,467,145), XSPR_MASK, PPC860,	EXT,		{RS}},
   8139 {"mtcmpc",	XSPR(31,467,146), XSPR_MASK, PPC860,	EXT,		{RS}},
   8140 {"mtcmpd",	XSPR(31,467,147), XSPR_MASK, PPC860,	EXT,		{RS}},
   8141 {"mticr",	XSPR(31,467,148), XSPR_MASK, PPC860,	EXT,		{RS}},
   8142 {"mtder",	XSPR(31,467,149), XSPR_MASK, PPC860,	EXT,		{RS}},
   8143 {"mtcounta",	XSPR(31,467,150), XSPR_MASK, PPC860,	EXT,		{RS}},
   8144 {"mtcountb",	XSPR(31,467,151), XSPR_MASK, PPC860,	EXT,		{RS}},
   8145 {"mtctrl",	XSPR(31,467,152), XSPR_MASK, POWER4,	EXT,		{RS}},
   8146 {"mtcmpe",	XSPR(31,467,152), XSPR_MASK, PPC860,	EXT,		{RS}},
   8147 {"mtfscr",	XSPR(31,467,153), XSPR_MASK, POWER10,	EXT,		{RS}},
   8148 {"mtcmpf",	XSPR(31,467,153), XSPR_MASK, PPC860,	EXT,		{RS}},
   8149 {"mtcmpg",	XSPR(31,467,154), XSPR_MASK, PPC860,	EXT,		{RS}},
   8150 {"mtcmph",	XSPR(31,467,155), XSPR_MASK, PPC860,	EXT,		{RS}},
   8151 {"mtlctrl1",	XSPR(31,467,156), XSPR_MASK, PPC860,	EXT,		{RS}},
   8152 {"mtuamor",	XSPR(31,467,157), XSPR_MASK, POWER7,	EXT,		{RS}},
   8153 {"mtlctrl2",	XSPR(31,467,157), XSPR_MASK, PPC860,	EXT,		{RS}},
   8154 {"mtictrl",	XSPR(31,467,158), XSPR_MASK, PPC860,	EXT,		{RS}},
   8155 {"mtpspb",	XSPR(31,467,159), XSPR_MASK, POWER10,	EXT,		{RS}},
   8156 {"mtbar",	XSPR(31,467,159), XSPR_MASK, PPC860,	EXT,		{RS}},
   8157 {"mtdpdes",	XSPR(31,467,176), XSPR_MASK, POWER10,	EXT,		{RS}},
   8158 {"mtdawr0",	XSPR(31,467,180), XSPR_MASK, POWER10,	EXT,		{RS}},
   8159 {"mtdawr1",	XSPR(31,467,181), XSPR_MASK, POWER10,	EXT,		{RS}},
   8160 {"mtrpr",	XSPR(31,467,186), XSPR_MASK, POWER10,	EXT,		{RS}},
   8161 {"mtciabr",	XSPR(31,467,187), XSPR_MASK, POWER10,	EXT,		{RS}},
   8162 {"mtdawrx0",	XSPR(31,467,188), XSPR_MASK, POWER10,	EXT,		{RS}},
   8163 {"mtdawrx1",	XSPR(31,467,189), XSPR_MASK, POWER10,	EXT,		{RS}},
   8164 {"mthfscr",	XSPR(31,467,190), XSPR_MASK, POWER10,	EXT,		{RS}},
   8165 {"mtvrsave",	XSPR(31,467,256), XSPR_MASK, PPCVEC,	EXT,		{RS}},
   8166 {"mtusprg0",	XSPR(31,467,256), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8167 {"mtsprg",	XSPR(31,467,256), XSPRG_MASK, PPC,	EXT,		{SPRG, RS}},
   8168 {"mtsprg0",	XSPR(31,467,272), XSPR_MASK, PPC,	EXT,		{RS}},
   8169 {"mtsprg1",	XSPR(31,467,273), XSPR_MASK, PPC,	EXT,		{RS}},
   8170 {"mtsprg2",	XSPR(31,467,274), XSPR_MASK, PPC,	EXT,		{RS}},
   8171 {"mtsprg3",	XSPR(31,467,275), XSPR_MASK, PPC,	EXT,		{RS}},
   8172 {"mtsprg4",	XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8173 {"mtsprg5",	XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8174 {"mtsprg6",	XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8175 {"mtsprg7",	XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8176 {"mtasr",	XSPR(31,467,280), XSPR_MASK, PPC64,	EXT,		{RS}},
   8177 {"mtear",	XSPR(31,467,282), XSPR_MASK, PPC,	TITAN|EXT,	{RS}},
   8178 {"mttbl",	XSPR(31,467,284), XSPR_MASK, PPC,	EXT,		{RS}},
   8179 {"mttbu",	XSPR(31,467,285), XSPR_MASK, PPC,	EXT,		{RS}},
   8180 {"mttbu40",	XSPR(31,467,286), XSPR_MASK, POWER10,	EXT,		{RS}},
   8181 {"mthsprg0",	XSPR(31,467,304), XSPR_MASK, POWER10,	EXT,		{RS}},
   8182 {"mtdbsr",	XSPR(31,467,304), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8183 {"mthsprg1",	XSPR(31,467,305), XSPR_MASK, POWER10,	EXT,		{RS}},
   8184 {"mthdisr",	XSPR(31,467,306), XSPR_MASK, POWER10,	EXT,		{RS}},
   8185 {"mthdar",	XSPR(31,467,307), XSPR_MASK, POWER10,	EXT,		{RS}},
   8186 {"mtspurr",	XSPR(31,467,308), XSPR_MASK, POWER10,	EXT,		{RS}},
   8187 {"mtdbcr0",	XSPR(31,467,308), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8188 {"mtpurr",	XSPR(31,467,309), XSPR_MASK, POWER10,	EXT,		{RS}},
   8189 {"mtdbcr1",	XSPR(31,467,309), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8190 {"mthdec",	XSPR(31,467,310), XSPR_MASK, POWER10,	EXT,		{RS}},
   8191 {"mtdbcr2",	XSPR(31,467,310), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8192 {"mtiac1",	XSPR(31,467,312), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8193 {"mthrmor",	XSPR(31,467,313), XSPR_MASK, POWER10,	EXT,		{RS}},
   8194 {"mtiac2",	XSPR(31,467,313), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8195 {"mthsrr0",	XSPR(31,467,314), XSPR_MASK, POWER10,	EXT,		{RS}},
   8196 {"mtiac3",	XSPR(31,467,314), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8197 {"mthsrr1",	XSPR(31,467,315), XSPR_MASK, POWER10,	EXT,		{RS}},
   8198 {"mtiac4",	XSPR(31,467,315), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8199 {"mtdac1",	XSPR(31,467,316), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8200 {"mtdac2",	XSPR(31,467,317), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8201 {"mtlpcr",	XSPR(31,467,318), XSPR_MASK, POWER10,	EXT,		{RS}},
   8202 {"mtdvc1",	XSPR(31,467,318), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8203 {"mtlpidr",	XSPR(31,467,319), XSPR_MASK, POWER10,	EXT,		{RS}},
   8204 {"mtdvc2",	XSPR(31,467,319), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8205 {"mthmer",	XSPR(31,467,336), XSPR_MASK, POWER7,	EXT,		{RS}},
   8206 {"mttsr",	XSPR(31,467,336), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8207 {"mthmeer",	XSPR(31,467,337), XSPR_MASK, POWER7,	EXT,		{RS}},
   8208 {"mtpcr",	XSPR(31,467,338), XSPR_MASK, POWER10,	EXT,		{RS}},
   8209 {"mtheir",	XSPR(31,467,339), XSPR_MASK, POWER10,	EXT,		{RS}},
   8210 {"mttcr",	XSPR(31,467,340), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8211 {"mtamor",	XSPR(31,467,349), XSPR_MASK, POWER7,	EXT,		{RS}},
   8212 {"mtivor0",	XSPR(31,467,400), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8213 {"mtivor1",	XSPR(31,467,401), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8214 {"mtivor2",	XSPR(31,467,402), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8215 {"mtivor3",	XSPR(31,467,403), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8216 {"mtivor4",	XSPR(31,467,404), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8217 {"mtivor5",	XSPR(31,467,405), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8218 {"mtivor6",	XSPR(31,467,406), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8219 {"mtivor7",	XSPR(31,467,407), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8220 {"mtivor8",	XSPR(31,467,408), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8221 {"mtivor9",	XSPR(31,467,409), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8222 {"mtivor10",	XSPR(31,467,410), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8223 {"mtivor11",	XSPR(31,467,411), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8224 {"mtivor12",	XSPR(31,467,412), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8225 {"mtivor13",	XSPR(31,467,413), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8226 {"mtivor14",	XSPR(31,467,414), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8227 {"mtivor15",	XSPR(31,467,415), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8228 {"mtptcr",	XSPR(31,467,464), XSPR_MASK, POWER10,	EXT,		{RS}},
   8229 {"mtusprg0",	XSPR(31,467,496), XSPR_MASK, POWER10,	EXT,		{RS}},
   8230 {"mtusprg1",	XSPR(31,467,497), XSPR_MASK, POWER10,	EXT,		{RS}},
   8231 {"mturmor",	XSPR(31,467,505), XSPR_MASK, POWER10,	EXT,		{RS}},
   8232 {"mtusrr0",	XSPR(31,467,506), XSPR_MASK, POWER10,	EXT,		{RS}},
   8233 {"mtusrr1",	XSPR(31,467,507), XSPR_MASK, POWER10,	EXT,		{RS}},
   8234 {"mtsmfctrl",	XSPR(31,467,511), XSPR_MASK, POWER10,	EXT,		{RS}},
   8235 {"mtspefscr",	XSPR(31,467,512), XSPR_MASK, PPCSPE,	EXT,		{RS}},
   8236 {"mtbbear",	XSPR(31,467,513), XSPR_MASK, PPCBRLK,	EXT,		{RS}},
   8237 {"mtbbtar",	XSPR(31,467,514), XSPR_MASK, PPCBRLK,	EXT,		{RS}},
   8238 {"mtivor32",	XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, EXT,		{RS}},
   8239 {"mtivor33",	XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, EXT,		{RS}},
   8240 {"mtivor34",	XSPR(31,467,530), XSPR_MASK, PPCSPE,	EXT,		{RS}},
   8241 {"mtivor35",	XSPR(31,467,531), XSPR_MASK, PPCPMR,	EXT,		{RS}},
   8242 {"mtibatu",	XSPR(31,467,528), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8243 {"mtibatl",	XSPR(31,467,529), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8244 {"mtdbatu",	XSPR(31,467,536), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8245 {"mtdbatl",	XSPR(31,467,537), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8246 {"mtmcsrr0",	XSPR(31,467,570), XSPR_MASK, PPCRFMCI,	EXT,		{RS}},
   8247 {"mtmcsrr1",	XSPR(31,467,571), XSPR_MASK, PPCRFMCI,	EXT,		{RS}},
   8248 {"mtmcsr",	XSPR(31,467,572), XSPR_MASK, PPCRFMCI,	EXT,		{RS}},
   8249 {"mtsier2",	XSPR(31,467,752), XSPR_MASK, POWER10,	EXT,		{RS}},
   8250 {"mtsier3",	XSPR(31,467,753), XSPR_MASK, POWER10,	EXT,		{RS}},
   8251 {"mtmmcr3",	XSPR(31,467,754), XSPR_MASK, POWER10,	EXT,		{RS}},
   8252 {"mtummcr2",	XSPR(31,467,769), XSPR_MASK, POWER9,	EXT,		{RS}},
   8253 {"mtmmcr2",	XSPR(31,467,769), XSPR_MASK, POWER9,	EXT,		{RS}},
   8254 {"mtummcra",	XSPR(31,467,770), XSPR_MASK, POWER9,	EXT,		{RS}},
   8255 {"mtupmc1",	XSPR(31,467,771), XSPR_MASK, POWER9,	EXT,		{RS}},
   8256 {"mtupmc2",	XSPR(31,467,772), XSPR_MASK, POWER9,	EXT,		{RS}},
   8257 {"mtupmc3",	XSPR(31,467,773), XSPR_MASK, POWER9,	EXT,		{RS}},
   8258 {"mtupmc4",	XSPR(31,467,774), XSPR_MASK, POWER9,	EXT,		{RS}},
   8259 {"mtupmc5",	XSPR(31,467,775), XSPR_MASK, POWER9,	EXT,		{RS}},
   8260 {"mtupmc6",	XSPR(31,467,776), XSPR_MASK, POWER9,	EXT,		{RS}},
   8261 {"mtummcr0",	XSPR(31,467,779), XSPR_MASK, POWER9,	EXT,		{RS}},
   8262 {"mtsier",	XSPR(31,467,784), XSPR_MASK, POWER10,	EXT,		{RS}},
   8263 {"mtmmcra",	XSPR(31,467,786), XSPR_MASK, POWER7,	EXT,		{RS}},
   8264 {"mtpmc1",	XSPR(31,467,787), XSPR_MASK, POWER7,	EXT,		{RS}},
   8265 {"mtpmc2",	XSPR(31,467,788), XSPR_MASK, POWER7,	EXT,		{RS}},
   8266 {"mtpmc3",	XSPR(31,467,789), XSPR_MASK, POWER7,	EXT,		{RS}},
   8267 {"mtpmc4",	XSPR(31,467,790), XSPR_MASK, POWER7,	EXT,		{RS}},
   8268 {"mtpmc5",	XSPR(31,467,791), XSPR_MASK, POWER7,	EXT,		{RS}},
   8269 {"mtpmc6",	XSPR(31,467,792), XSPR_MASK, POWER7,	EXT,		{RS}},
   8270 {"mtmmcr0",	XSPR(31,467,795), XSPR_MASK, POWER7,	EXT,		{RS}},
   8271 {"mtsiar",	XSPR(31,467,796), XSPR_MASK, POWER10,	EXT,		{RS}},
   8272 {"mtsdar",	XSPR(31,467,797), XSPR_MASK, POWER10,	EXT,		{RS}},
   8273 {"mtmmcr1",	XSPR(31,467,798), XSPR_MASK, POWER7,	EXT,		{RS}},
   8274 {"mtbescrs",	XSPR(31,467,800), XSPR_MASK, POWER9,	EXT,		{RS}},
   8275 {"mtbescrsu",	XSPR(31,467,801), XSPR_MASK, POWER9,	EXT,		{RS}},
   8276 {"mtbescrr",	XSPR(31,467,802), XSPR_MASK, POWER9,	EXT,		{RS}},
   8277 {"mtbescrru",	XSPR(31,467,803), XSPR_MASK, POWER9,	EXT,		{RS}},
   8278 {"mtebbhr",	XSPR(31,467,804), XSPR_MASK, POWER9,	EXT,		{RS}},
   8279 {"mtebbrr",	XSPR(31,467,805), XSPR_MASK, POWER9,	EXT,		{RS}},
   8280 {"mtbescr",	XSPR(31,467,806), XSPR_MASK, POWER9,	EXT,		{RS}},
   8281 {"mttar",	XSPR(31,467,815), XSPR_MASK, POWER9,	EXT,		{RS}},
   8282 {"mtasdr",	XSPR(31,467,816), XSPR_MASK, POWER10,	EXT,		{RS}},
   8283 {"mtpsscr",	XSPR(31,467,823), XSPR_MASK, POWER10,	EXT,		{RS}},
   8284 {"mtic",	XSPR(31,467,848), XSPR_MASK, POWER8,	EXT,		{RS}},
   8285 {"mtvtb",	XSPR(31,467,849), XSPR_MASK, POWER8,	EXT,		{RS}},
   8286 {"mthpsscr",	XSPR(31,467,855), XSPR_MASK, POWER10,	EXT,		{RS}},
   8287 {"mtivndx",	XSPR(31,467,880), XSPR_MASK, TITAN,	EXT,		{RS}},
   8288 {"mtdvndx",	XSPR(31,467,881), XSPR_MASK, TITAN,	EXT,		{RS}},
   8289 {"mtivlim",	XSPR(31,467,882), XSPR_MASK, TITAN,	EXT,		{RS}},
   8290 {"mtdvlim",	XSPR(31,467,883), XSPR_MASK, TITAN,	EXT,		{RS}},
   8291 {"mtclcsr",	XSPR(31,467,884), XSPR_MASK, TITAN,	EXT,		{RS}},
   8292 {"mtccr1",	XSPR(31,467,888), XSPR_MASK, TITAN,	EXT,		{RS}},
   8293 {"mtppr",	XSPR(31,467,896), XSPR_MASK, POWER5,	EXT,		{RS}},
   8294 {"mtppr32",	XSPR(31,467,898), XSPR_MASK, POWER5,	EXT,		{RS}},
   8295 {"mtgqr",	XSPR(31,467,912), XSPRGQR_MASK, PPCPS,	EXT,		{SPRGQR, RS}},
   8296 {"mthid2",	XSPR(31,467,920), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8297 {"mtwpar",	XSPR(31,467,921), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8298 {"mtdmau",	XSPR(31,467,922), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8299 {"mtdmal",	XSPR(31,467,923), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8300 {"mtummcr0",	XSPR(31,467,936), XSPR_MASK, PPC750,	EXT,		{RS}},
   8301 {"mtupmc1",	XSPR(31,467,937), XSPR_MASK, PPC750,	EXT,		{RS}},
   8302 {"mtupmc2",	XSPR(31,467,938), XSPR_MASK, PPC750,	EXT,		{RS}},
   8303 {"mtusia",	XSPR(31,467,939), XSPR_MASK, PPC750,	EXT,		{RS}},
   8304 {"mtummcr1",	XSPR(31,467,940), XSPR_MASK, PPC750,	EXT,		{RS}},
   8305 {"mtupmc3",	XSPR(31,467,941), XSPR_MASK, PPC750,	EXT,		{RS}},
   8306 {"mtupmc4",	XSPR(31,467,942), XSPR_MASK, PPC750,	EXT,		{RS}},
   8307 {"mtzpr",	XSPR(31,467,944), XSPR_MASK, PPC403,	EXT,		{RS}},
   8308 {"mtpid",	XSPR(31,467,945), XSPR_MASK, PPC403,	EXT,		{RS}},
   8309 {"mtrmmucr",	XSPR(31,467,946), XSPR_MASK, TITAN,	EXT,		{RS}},
   8310 {"mtccr0",	XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, EXT,		{RS}},
   8311 {"mtiac3",	XSPR(31,467,948), XSPR_MASK, PPC405,	EXT,		{RS}},
   8312 {"mtiac4",	XSPR(31,467,949), XSPR_MASK, PPC405,	EXT,		{RS}},
   8313 {"mtdvc1",	XSPR(31,467,950), XSPR_MASK, PPC405,	EXT,		{RS}},
   8314 {"mtdvc2",	XSPR(31,467,951), XSPR_MASK, PPC405,	EXT,		{RS}},
   8315 {"mtmmcr0",	XSPR(31,467,952), XSPR_MASK, PPC750,	EXT,		{RS}},
   8316 {"mtpmc1",	XSPR(31,467,953), XSPR_MASK, PPC750,	EXT,		{RS}},
   8317 {"mtsgr",	XSPR(31,467,953), XSPR_MASK, PPC403,	EXT,		{RS}},
   8318 {"mtdcwr",	XSPR(31,467,954), XSPR_MASK, PPC403,	EXT,		{RS}},
   8319 {"mtpmc2",	XSPR(31,467,954), XSPR_MASK, PPC750,	EXT,		{RS}},
   8320 {"mtsia",	XSPR(31,467,955), XSPR_MASK, PPC750,	EXT,		{RS}},
   8321 {"mtsler",	XSPR(31,467,955), XSPR_MASK, PPC405,	EXT,		{RS}},
   8322 {"mtmmcr1",	XSPR(31,467,956), XSPR_MASK, PPC750,	EXT,		{RS}},
   8323 {"mtsu0r",	XSPR(31,467,956), XSPR_MASK, PPC405,	EXT,		{RS}},
   8324 {"mtdbcr1",	XSPR(31,467,957), XSPR_MASK, PPC405,	EXT,		{RS}},
   8325 {"mtpmc3",	XSPR(31,467,957), XSPR_MASK, PPC750,	EXT,		{RS}},
   8326 {"mtpmc4",	XSPR(31,467,958), XSPR_MASK, PPC750,	EXT,		{RS}},
   8327 {"mticdbdr",	XSPR(31,467,979), XSPR_MASK, PPC403,	EXT,		{RS}},
   8328 {"mtesr",	XSPR(31,467,980), XSPR_MASK, PPC403,	EXT,		{RS}},
   8329 {"mtdear",	XSPR(31,467,981), XSPR_MASK, PPC403,	EXT,		{RS}},
   8330 {"mtevpr",	XSPR(31,467,982), XSPR_MASK, PPC403,	EXT,		{RS}},
   8331 {"mtcdbcr",	XSPR(31,467,983), XSPR_MASK, PPC403,	EXT,		{RS}},
   8332 {"mttsr",	XSPR(31,467,984), XSPR_MASK, PPC403,	EXT,		{RS}},
   8333 {"mttcr",	XSPR(31,467,986), XSPR_MASK, PPC403,	EXT,		{RS}},
   8334 {"mtpit",	XSPR(31,467,987), XSPR_MASK, PPC403,	EXT,		{RS}},
   8335 {"mttbhi",	XSPR(31,467,988), XSPR_MASK, PPC403,	EXT,		{RS}},
   8336 {"mttblo",	XSPR(31,467,989), XSPR_MASK, PPC403,	EXT,		{RS}},
   8337 {"mtsrr2",	XSPR(31,467,990), XSPR_MASK, PPC403,	EXT,		{RS}},
   8338 {"mtsrr3",	XSPR(31,467,991), XSPR_MASK, PPC403,	EXT,		{RS}},
   8339 {"mtdbsr",	XSPR(31,467,1008), XSPR_MASK, PPC403,	EXT,		{RS}},
   8340 {"mthid0",	XSPR(31,467,1008), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8341 {"mthid1",	XSPR(31,467,1009), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8342 {"mtdbcr0",	XSPR(31,467,1010), XSPR_MASK, PPC405,	EXT,		{RS}},
   8343 {"mtiabr",	XSPR(31,467,1010), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8344 {"mthid4",	XSPR(31,467,1011), XSPR_MASK, BROADWAY,	EXT,		{RS}},
   8345 {"mtdbdr",	XSPR(31,467,1011), XSPR_MASK, TITAN,	EXT,		{RS}},
   8346 {"mtiac1",	XSPR(31,467,1012), XSPR_MASK, PPC403,	EXT,		{RS}},
   8347 {"mtiac2",	XSPR(31,467,1013), XSPR_MASK, PPC403,	EXT,		{RS}},
   8348 {"mtdabr",	XSPR(31,467,1013), XSPR_MASK, PPC750,	EXT,		{RS}},
   8349 {"mtdac1",	XSPR(31,467,1014), XSPR_MASK, PPC403,	EXT,		{RS}},
   8350 {"mtdac2",	XSPR(31,467,1015), XSPR_MASK, PPC403,	EXT,		{RS}},
   8351 {"mtl2cr",	XSPR(31,467,1017), XSPR_MASK, PPC750,	EXT,		{RS}},
   8352 {"mtdccr",	XSPR(31,467,1018), XSPR_MASK, PPC403,	EXT,		{RS}},
   8353 {"mticcr",	XSPR(31,467,1019), XSPR_MASK, PPC403,	EXT,		{RS}},
   8354 {"mtictc",	XSPR(31,467,1019), XSPR_MASK, PPC750,	EXT,		{RS}},
   8355 {"mtpbl1",	XSPR(31,467,1020), XSPR_MASK, PPC403,	EXT,		{RS}},
   8356 {"mtthrm1",	XSPR(31,467,1020), XSPR_MASK, PPC750,	EXT,		{RS}},
   8357 {"mtpbu1",	XSPR(31,467,1021), XSPR_MASK, PPC403,	EXT,		{RS}},
   8358 {"mtthrm2",	XSPR(31,467,1021), XSPR_MASK, PPC750,	EXT,		{RS}},
   8359 {"mtpbl2",	XSPR(31,467,1022), XSPR_MASK, PPC403,	EXT,		{RS}},
   8360 {"mtthrm3",	XSPR(31,467,1022), XSPR_MASK, PPC750,	EXT,		{RS}},
   8361 {"mtpbu2",	XSPR(31,467,1023), XSPR_MASK, PPC403,	EXT,		{RS}},
   8362 {"mtspr",	X(31,467),	X_MASK,	     COM,	0,		{SPR, RS}},
   8363 
   8364 {"dcbi",	X(31,470),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   8365 
   8366 {"nand",	XRC(31,476,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8367 {"nand.",	XRC(31,476,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8368 
   8369 {"setnbcr",	X(31,480),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   8370 
   8371 {"dsn",		X(31,483),	XRT_MASK,    E500MC,	0,		{RA, RB}},
   8372 
   8373 {"dcread",	X(31,486),	X_MASK,	 PPC403|PPC440, PPCA2,		{RT, RA0, RB}},
   8374 
   8375 {"icbtls",	X(31,486),	X_MASK,	 PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   8376 
   8377 {"stvxl",	X(31,487),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   8378 
   8379 {"nabs",	XO(31,488,0,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   8380 {"nabs.",	XO(31,488,0,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   8381 
   8382 {"divd",	XO(31,489,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8383 {"divd.",	XO(31,489,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8384 
   8385 {"divw",	XO(31,491,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8386 {"divw.",	XO(31,491,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8387 
   8388 {"icbtlse",	X(31,494),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA, RB}},
   8389 
   8390 {"slbia",	X(31,498),	0xff1fffff,  POWER6,	0,		{IH}},
   8391 {"slbia",	X(31,498),	0xffffffff,  PPC64,	POWER6,		{0}},
   8392 
   8393 {"cli",		X(31,502),	XRB_MASK,    POWER,	0,		{RT, RA}},
   8394 
   8395 {"popcntd",	X(31,506),	XRB_MASK, POWER7|PPCA2,	0,		{RA, RS}},
   8396 
   8397 {"cmpb",	X(31,508),	X_MASK, POWER6|PPCA2|PPC476, 0,		{RA, RS, RB}},
   8398 
   8399 {"mcrxr",	X(31,512),	XBFRARB_MASK, COM,	POWER7,		{BF}},
   8400 
   8401 {"lbdcbx",	X(31,514),	X_MASK,      E200Z4,	0,		{RT, RA, RB}},
   8402 {"lbdx",	X(31,515),	X_MASK,	 E500MC|E200Z4,	0,		{RT, RA, RB}},
   8403 
   8404 {"bblels",	X(31,518),	X_MASK,	     PPCBRLK,	0,		{0}},
   8405 
   8406 {"lvlx",	X(31,519),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8407 {"lbfcmux",	APU(31,519,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8408 
   8409 {"subfco",	XO(31,8,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8410 {"sfo",		XO(31,8,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8411 {"subco",	XO(31,8,1,0),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   8412 {"subfco.",	XO(31,8,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8413 {"sfo.",	XO(31,8,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8414 {"subco.",	XO(31,8,1,1),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   8415 
   8416 {"addco",	XO(31,10,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8417 {"ao",		XO(31,10,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8418 {"addco.",	XO(31,10,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8419 {"ao.",		XO(31,10,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8420 
   8421 {"lxsspx",	X(31,524),	XX1_MASK,    PPCVSX2,	0,		{XT6, RA0, RB}},
   8422 {"lxvrl",	X(31,525),	XX1_MASK,    PPCVSXF,	0,		{XT6, RA0, RB}},
   8423 
   8424 {"clcs",	X(31,531),	XRB_MASK,    M601,	0,		{RT, RA}},
   8425 
   8426 {"ldbrx",	X(31,532),	X_MASK, CELL|POWER7|PPCA2, 0,		{RT, RA0, RB}},
   8427 
   8428 {"lswx",	X(31,533),	X_MASK,	     PPCCOM,	E500|E500MC,	{RT, RAX, RBX}},
   8429 {"lsx",		X(31,533),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   8430 
   8431 {"lwbrx",	X(31,534),	X_MASK,	     PPCCOM,	0,		{RT, RA0, RB}},
   8432 {"lbrx",	X(31,534),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   8433 
   8434 {"lfsx",	X(31,535),	X_MASK,	     COM,	PPCEFS,		{FRT, RA0, RB}},
   8435 
   8436 {"srw",		XRC(31,536,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8437 {"sr",		XRC(31,536,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8438 {"srw.",	XRC(31,536,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8439 {"sr.",		XRC(31,536,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8440 
   8441 {"rrib",	XRC(31,537,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8442 {"rrib.",	XRC(31,537,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8443 
   8444 {"cnttzw",	XRC(31,538,0),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8445 {"cnttzw.",	XRC(31,538,1),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8446 
   8447 {"srd",		XRC(31,539,0),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8448 {"srd.",	XRC(31,539,1),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8449 
   8450 {"maskir",	XRC(31,541,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8451 {"maskir.",	XRC(31,541,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8452 
   8453 {"lhdcbx",	X(31,546),	X_MASK,      E200Z4,	0,		{RT, RA, RB}},
   8454 {"lhdx",	X(31,547),	X_MASK,	 E500MC|E200Z4,	0,		{RT, RA, RB}},
   8455 
   8456 {"lvtrx",	X(31,549),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8457 
   8458 {"bbelr",	X(31,550),	X_MASK,	     PPCBRLK,	0,		{0}},
   8459 
   8460 {"lvrx",	X(31,551),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8461 {"lhfcmux",	APU(31,551,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8462 
   8463 {"subfo",	XO(31,40,1,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8464 {"subo",	XO(31,40,1,0),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   8465 {"subfo.",	XO(31,40,1,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8466 {"subo.",	XO(31,40,1,1),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   8467 
   8468 {"lxvrll",	X(31,557),	XX1_MASK,    PPCVSXF,	0,		{XT6, RA0, RB}},
   8469 
   8470 {"tlbsync",	X(31,566),	0xffffffff,  PPC,	0,		{0}},
   8471 
   8472 {"lfsux",	X(31,567),	X_MASK,	     COM,	PPCEFS,		{FRT, RAS, RB}},
   8473 
   8474 {"cnttzd",	XRC(31,570,0),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8475 {"cnttzd.",	XRC(31,570,1),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8476 
   8477 {"cnttzdm",	X(31,571),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   8478 
   8479 {"mcrxrx",	X(31,576),     XBFRARB_MASK, POWER9,	0,		{BF}},
   8480 
   8481 {"lwdcbx",	X(31,578),	X_MASK,      E200Z4,	0,		{RT, RA, RB}},
   8482 {"lwdx",	X(31,579),	X_MASK,	 E500MC|E200Z4,	0,		{RT, RA, RB}},
   8483 
   8484 {"lvtlx",	X(31,581),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8485 
   8486 {"lwat",	X(31,582),	X_MASK,	     POWER9,	0,		{RT, RA0, FC}},
   8487 
   8488 {"lwfcmux",	APU(31,583,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8489 
   8490 {"lxsdx",	X(31,588),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   8491 {"lxvprl",	X(31,589),	XX1_MASK,    PPCVSXF,	0,		{XTP, RA0, RB}},
   8492 
   8493 {"mfsr",	X(31,595), XRB_MASK|(1<<20), COM,	NON32,		{RT, SR}},
   8494 
   8495 {"lswi",	X(31,597),	X_MASK,	     PPCCOM,	E500|E500MC,	{RT, RAX, NBI}},
   8496 {"lsi",		X(31,597),	X_MASK,	     PWRCOM,	0,		{RT, RA0, NB}},
   8497 
   8498 {"hwsync",	XSYNC(31,598,0), 0xffffffff, POWER4,	BOOKE|PPC476|EXT,	{0}},
   8499 {"lwsync",	XSYNC(31,598,1), 0xffffffff, PPC,	E500|EXT,		{0}},
   8500 {"ptesync",	XSYNC(31,598,2), 0xffffffff, PPC64,	EXT,			{0}},
   8501 {"phwsync",	XSYNCLS(31,598,4,0), 0xffffffff, POWER10, EXT,			{0}},
   8502 {"plwsync",	XSYNCLS(31,598,5,0), 0xffffffff, POWER10, EXT,			{0}},
   8503 {"stncisync",	XSYNCLS(31,598,1,1), 0xffffffff, POWER10, EXT,			{0}},
   8504 {"stcisync",	XSYNCLS(31,598,0,2), 0xffffffff, POWER10, EXT,			{0}},
   8505 {"stsync",	XSYNCLS(31,598,0,3), 0xffffffff, POWER10, EXT,			{0}},
   8506 {"sync",	X(31,598),     XSYNCLS_MASK, POWER10,	BOOKE|PPC476,		{LS3, SC2}},
   8507 {"sync",	X(31,598),     XSYNCLE_MASK, E6500,	0,			{LS, ESYNC}},
   8508 {"sync",	X(31,598),     XSYNC_MASK,   PPCCOM,	POWER10|BOOKE|PPC476,	{LS}},
   8509 {"msync",	X(31,598),     0xffffffff, BOOKE|PPCA2|PPC476, 0,		{0}},
   8510 {"sync",	X(31,598),     0xffffffff,   BOOKE|PPC476, E6500,		{0}},
   8511 {"lwsync",	X(31,598),     0xffffffff,   E500,	0,			{0}},
   8512 {"dcs",		X(31,598),     0xffffffff,   PWRCOM,	0,			{0}},
   8513 
   8514 {"lfdx",	X(31,599),	X_MASK,	     COM,	PPCEFS,		{FRT, RA0, RB}},
   8515 
   8516 {"mffgpr",	XRC(31,607,0),	XRA_MASK,    POWER6,	POWER7,		{FRT, RB}},
   8517 {"lfdepx",	X(31,607),	X_MASK,	  E500MC|PPCA2, 0,		{FRT, RA0, RB}},
   8518 
   8519 {"lddx",	X(31,611),	X_MASK,	     E500MC,	0,		{RT, RA, RB}},
   8520 
   8521 {"lvswx",	X(31,613),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8522 
   8523 {"ldat",	X(31,614),	X_MASK,	     POWER9,	0,		{RT, RA0, FC}},
   8524 
   8525 {"lqfcmux",	APU(31,615,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8526 
   8527 {"nego",	XO(31,104,1,0),	XORB_MASK,   COM,	0,		{RT, RA}},
   8528 {"nego.",	XO(31,104,1,1),	XORB_MASK,   COM,	0,		{RT, RA}},
   8529 
   8530 {"mulo",	XO(31,107,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8531 {"mulo.",	XO(31,107,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8532 
   8533 {"lxvprll",	X(31,621),	XX1_MASK,    PPCVSXF,	0,		{XTP, RA0, RB}},
   8534 
   8535 {"mfsri",	X(31,627),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   8536 
   8537 {"dclst",	X(31,630),	XRB_MASK,    M601,	0,		{RS, RA}},
   8538 
   8539 {"lfdux",	X(31,631),	X_MASK,	     COM,	PPCEFS,		{FRT, RAS, RB}},
   8540 
   8541 {"stbdcbx",	X(31,642),	X_MASK,      E200Z4,	0,		{RS, RA, RB}},
   8542 {"stbdx",	X(31,643),	X_MASK,	 E500MC|E200Z4,	0,		{RS, RA, RB}},
   8543 
   8544 {"stvlx",	X(31,647),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   8545 {"stbfcmux",	APU(31,647,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8546 
   8547 {"stxsspx",	X(31,652),	XX1_MASK,    PPCVSX2,	0,		{XS6, RA0, RB}},
   8548 {"stxvrl",	X(31,653),	XX1_MASK,    PPCVSXF,	0,		{XS6, RA0, RB}},
   8549 
   8550 {"tbegin.",	XRC(31,654,1), XRTLRARB_MASK, PPCHTM,	0,		{HTM_R}},
   8551 
   8552 {"subfeo",	XO(31,136,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8553 {"sfeo",	XO(31,136,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8554 {"subfeo.",	XO(31,136,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8555 {"sfeo.",	XO(31,136,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8556 
   8557 {"addeo",	XO(31,138,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8558 {"aeo",		XO(31,138,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8559 {"addeo.",	XO(31,138,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8560 {"aeo.",	XO(31,138,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8561 
   8562 {"hashstp",	X(31,658),	XRC_MASK,    POWER8,	0,		{RB, DW, RA0}},
   8563 
   8564 {"mfsrin",	X(31,659),	XRA_MASK,    PPC,	NON32,		{RT, RB}},
   8565 
   8566 {"stdbrx",	X(31,660),	X_MASK, CELL|POWER7|PPCA2, 0,		{RS, RA0, RB}},
   8567 
   8568 {"stswx",	X(31,661),	X_MASK,	     PPCCOM,	E500|E500MC,	{RS, RA0, RB}},
   8569 {"stsx",	X(31,661),	X_MASK,	     PWRCOM,	0,		{RS, RA0, RB}},
   8570 
   8571 {"stwbrx",	X(31,662),	X_MASK,	     PPCCOM,	0,		{RS, RA0, RB}},
   8572 {"stbrx",	X(31,662),	X_MASK,	     PWRCOM,	0,		{RS, RA0, RB}},
   8573 
   8574 {"stfsx",	X(31,663),	X_MASK,	     COM,	PPCEFS,		{FRS, RA0, RB}},
   8575 
   8576 {"srq",		XRC(31,664,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8577 {"srq.",	XRC(31,664,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8578 
   8579 {"sre",		XRC(31,665,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8580 {"sre.",	XRC(31,665,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8581 
   8582 {"sthdcbx",	X(31,674),	X_MASK,      E200Z4,	0,		{RS, RA, RB}},
   8583 {"sthdx",	X(31,675),	X_MASK,	 E500MC|E200Z4,	0,		{RS, RA, RB}},
   8584 
   8585 {"stvfrx",	X(31,677),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8586 
   8587 {"stvrx",	X(31,679),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   8588 {"sthfcmux",	APU(31,679,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8589 
   8590 {"stxvrll",	X(31,685),	XX1_MASK,    PPCVSXF,	0,		{XS6, RA0, RB}},
   8591 
   8592 {"tendall.",	XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0,		{0}},
   8593 {"tend.",	XRC(31,686,1), XRTARARB_MASK, PPCHTM,	0,		{HTM_A}},
   8594 
   8595 {"hashchkp",	X(31,690),	XRC_MASK,    POWER8,	0,		{RB, DW, RA0}},
   8596 
   8597 {"stbcx.",	XRC(31,694,1),	X_MASK,	  POWER8|E6500, 0,		{RS, RA0, RB}},
   8598 
   8599 {"stfsux",	X(31,695),	X_MASK,	     COM,	PPCEFS,		{FRS, RAS, RB}},
   8600 
   8601 {"sriq",	XRC(31,696,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8602 {"sriq.",	XRC(31,696,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8603 
   8604 {"stwdcbx",	X(31,706),	X_MASK,	     E200Z4,	0,		{RS, RA, RB}},
   8605 {"stwdx",	X(31,707),	X_MASK,	 E500MC|E200Z4,	0,		{RS, RA, RB}},
   8606 
   8607 {"stvflx",	X(31,709),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8608 
   8609 {"stwat",	X(31,710),	X_MASK,	     POWER9,	0,		{RS, RA0, FC}},
   8610 
   8611 {"stwfcmux",	APU(31,711,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8612 
   8613 {"stxsdx",	X(31,716),	XX1_MASK,    PPCVSX,	0,		{XS6, RA0, RB}},
   8614 {"stxvprl",	X(31,717),	XX1_MASK,    PPCVSXF,	0,		{XSP, RA0, RB}},
   8615 
   8616 {"tcheck",	X(31,718),   XRTBFRARB_MASK, PPCHTM,	0,		{BF}},
   8617 
   8618 {"subfzeo",	XO(31,200,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8619 {"sfzeo",	XO(31,200,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8620 {"subfzeo.",	XO(31,200,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8621 {"sfzeo.",	XO(31,200,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8622 
   8623 {"addzeo",	XO(31,202,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8624 {"azeo",	XO(31,202,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8625 {"addzeo.",	XO(31,202,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8626 {"azeo.",	XO(31,202,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8627 
   8628 {"hashst",	X(31,722),	XRC_MASK,    POWER8,	0,		{RB, DW, RA0}},
   8629 
   8630 {"stswi",	X(31,725),	X_MASK,	     PPCCOM,	E500|E500MC,	{RS, RA0, NB}},
   8631 {"stsi",	X(31,725),	X_MASK,	     PWRCOM,	0,		{RS, RA0, NB}},
   8632 
   8633 {"sthcx.",	XRC(31,726,1),	X_MASK,	  POWER8|E6500, 0,		{RS, RA0, RB}},
   8634 
   8635 {"stfdx",	X(31,727),	X_MASK,	     COM,	PPCEFS,		{FRS, RA0, RB}},
   8636 
   8637 {"srlq",	XRC(31,728,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8638 {"srlq.",	XRC(31,728,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8639 
   8640 {"sreq",	XRC(31,729,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8641 {"sreq.",	XRC(31,729,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8642 
   8643 {"mftgpr",	XRC(31,735,0),	XRA_MASK,    POWER6,	POWER7,		{RT, FRB}},
   8644 {"stfdepx",	X(31,735),	X_MASK,	  E500MC|PPCA2, 0,		{FRS, RA0, RB}},
   8645 
   8646 {"stddx",	X(31,739),	X_MASK,	     E500MC,	0,		{RS, RA, RB}},
   8647 
   8648 {"stvswx",	X(31,741),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8649 
   8650 {"stdat",	X(31,742),	X_MASK,	     POWER9,	0,		{RS, RA0, FC}},
   8651 
   8652 {"stqfcmux",	APU(31,743,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8653 
   8654 {"subfmeo",	XO(31,232,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8655 {"sfmeo",	XO(31,232,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8656 {"subfmeo.",	XO(31,232,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8657 {"sfmeo.",	XO(31,232,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8658 
   8659 {"mulldo",	XO(31,233,1,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8660 {"mulldo.",	XO(31,233,1,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8661 
   8662 {"addmeo",	XO(31,234,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8663 {"ameo",	XO(31,234,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8664 {"addmeo.",	XO(31,234,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8665 {"ameo.",	XO(31,234,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8666 
   8667 {"mullwo",	XO(31,235,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8668 {"mulso",	XO(31,235,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8669 {"mullwo.",	XO(31,235,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8670 {"mulso.",	XO(31,235,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8671 
   8672 {"stxvprll",	X(31,749),	XX1_MASK,    PPCVSXF,	0,		{XSP, RA0, RB}},
   8673 
   8674 {"tsuspend.",	XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM,	EXT,		{0}},
   8675 {"tresume.",	XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM,	EXT,		{0}},
   8676 {"tsr.",	XRC(31,750,1),	  XRTLRARB_MASK,PPCHTM,	0,		{L}},
   8677 
   8678 {"hashchk",	X(31,754),	XRC_MASK,    POWER8,	0,		{RB, DW, RA0}},
   8679 
   8680 {"darn",	X(31,755),	XLRAND_MASK, POWER9,	0,		{RT, LRAND}},
   8681 
   8682 {"dcba",	X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
   8683 {"dcbal",	XOPL(31,758,1), XRT_MASK,    E500MC,	0,		{RA0, RB}},
   8684 
   8685 {"stfdux",	X(31,759),	X_MASK,	     COM,	PPCEFS,		{FRS, RAS, RB}},
   8686 
   8687 {"srliq",	XRC(31,760,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8688 {"srliq.",	XRC(31,760,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8689 
   8690 {"lvsm",	X(31,773),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8691 
   8692 {"copy",	XOPL(31,774,1),	XRT_MASK,    POWER9,	0,		{RA0, RB}},
   8693 
   8694 {"stvepxl",	X(31,775),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8695 {"lvlxl",	X(31,775),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8696 {"ldfcmux",	APU(31,775,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8697 
   8698 {"dozo",	XO(31,264,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8699 {"dozo.",	XO(31,264,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8700 
   8701 {"addo",	XO(31,266,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8702 {"caxo",	XO(31,266,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8703 {"addo.",	XO(31,266,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8704 {"caxo.",	XO(31,266,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8705 
   8706 {"modsd",	X(31,777),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   8707 {"modsw",	X(31,779),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   8708 
   8709 {"lxvw4x",	X(31,780),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   8710 {"lxsibzx",	X(31,781),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8711 
   8712 {"tabortwc.",	XRC(31,782,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, RB}},
   8713 
   8714 {"tlbivax",	X(31,786),	XRT_MASK, BOOKE|PPCA2|PPC476, 0,	{RA0, RB}},
   8715 
   8716 {"lwzcix",	X(31,789),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8717 
   8718 {"lhbrx",	X(31,790),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   8719 
   8720 {"lfdpx",	X(31,791),    X_MASK|Q_MASK, POWER6,	POWER7,		{FRTp, RA0, RB}},
   8721 {"lfqx",	X(31,791),	X_MASK,	     POWER2,	0,		{FRT, RA, RB}},
   8722 
   8723 {"sraw",	XRC(31,792,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8724 {"sra",		XRC(31,792,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8725 {"sraw.",	XRC(31,792,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8726 {"sra.",	XRC(31,792,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8727 
   8728 {"srad",	XRC(31,794,0),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8729 {"srad.",	XRC(31,794,1),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8730 
   8731 {"evlddepx",    VX (31, 1598),	VX_MASK,     PPCSPE,	0,		{RT, RA, RB}},
   8732 {"lfddx",	X(31,803),	X_MASK,	     E500MC,	0,		{FRT, RA, RB}},
   8733 
   8734 {"lvtrxl",	X(31,805),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8735 {"stvepx",	X(31,807),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8736 {"lvrxl",	X(31,807),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8737 
   8738 {"lxvh8x",	X(31,812),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8739 {"lxsihzx",	X(31,813),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8740 
   8741 {"tabortdc.",	XRC(31,814,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, RB}},
   8742 
   8743 {"rac",		X(31,818),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   8744 
   8745 {"erativax",	X(31,819),	X_MASK,	     PPCA2,	0,		{RS, RA0, RB}},
   8746 
   8747 {"lhzcix",	X(31,821),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8748 
   8749 {"dss",		XDSS(31,822,0),	XDSS_MASK,   PPCVEC,	0,		{STRM}},
   8750 {"dssall",	XDSS(31,822,1),	XDSS_MASK,   PPCVEC,	0,		{0}},
   8751 
   8752 {"lfqux",	X(31,823),	X_MASK,	     POWER2,	0,		{FRT, RA, RB}},
   8753 
   8754 {"srawi",	XRC(31,824,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, SH}},
   8755 {"srai",	XRC(31,824,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, SH}},
   8756 {"srawi.",	XRC(31,824,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, SH}},
   8757 {"srai.",	XRC(31,824,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, SH}},
   8758 
   8759 {"sradi",	XS(31,413,0),	XS_MASK,     PPC64,	0,		{RA, RS, SH6}},
   8760 {"sradi.",	XS(31,413,1),	XS_MASK,     PPC64,	0,		{RA, RS, SH6}},
   8761 
   8762 {"lvtlxl",	X(31,837),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8763 
   8764 {"cpabort",	X(31,838),	XRTRARB_MASK,POWER9,	0,		{0}},
   8765 
   8766 {"divo",	XO(31,331,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8767 {"divo.",	XO(31,331,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8768 
   8769 {"lxvd2x",	X(31,844),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   8770 {"lxvx",	X(31,844),	XX1_MASK,    POWER8,	POWER9|PPCVSX3,	{XT6, RA0, RB}},
   8771 
   8772 {"tabortwci.",	XRC(31,846,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, HTM_SI}},
   8773 
   8774 {"tlbsrx.",	XRC(31,850,1),	XRT_MASK,    PPCA2,	0,		{RA0, RB}},
   8775 
   8776 {"slbiag",	X(31,850),	XRLARB_MASK, POWER10,	0,		{RS, A_L}},
   8777 {"slbiag",	X(31,850),	XRARB_MASK,  POWER9,	POWER10,	{RS}},
   8778 
   8779 {"slbmfev",	X(31,851),	XRLA_MASK,   POWER9,	0,		{RT, RB, A_L}},
   8780 {"slbmfev",	X(31,851),	XRA_MASK,    PPC64,	POWER9,		{RT, RB}},
   8781 
   8782 {"lbzcix",	X(31,853),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8783 
   8784 {"eieio",	X(31,854),	0xffffffff,  PPC,   BOOKE|PPCA2|PPC476,	{0}},
   8785 {"mbar",	X(31,854),	X_MASK,	   BOOKE|PPCA2|PPC476, 0,	{MO}},
   8786 {"eieio",	XMBAR(31,854,1),0xffffffff,  E500,	0,		{0}},
   8787 {"eieio",	X(31,854),	0xffffffff, PPCA2|PPC476, 0,		{0}},
   8788 
   8789 {"lfiwax",	X(31,855),	X_MASK, POWER6|PPCA2|PPC476, 0,		{FRT, RA0, RB}},
   8790 
   8791 {"lvswxl",	X(31,869),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8792 
   8793 {"abso",	XO(31,360,1,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   8794 {"abso.",	XO(31,360,1,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   8795 
   8796 {"divso",	XO(31,363,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8797 {"divso.",	XO(31,363,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8798 
   8799 {"lxvb16x",	X(31,876),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8800 
   8801 {"tabortdci.",	XRC(31,878,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, HTM_SI}},
   8802 
   8803 {"rmieg",	X(31,882),	XRTRA_MASK,  POWER9,	0,		{RB}},
   8804 
   8805 {"ldcix",	X(31,885),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8806 
   8807 {"msgsync",	X(31,886),	0xffffffff,  POWER9,	0,		{0}},
   8808 
   8809 {"lfiwzx",	X(31,887),	X_MASK,	  POWER7|PPCA2,	0,		{FRT, RA0, RB}},
   8810 
   8811 {"extswsli",	XS(31,445,0),	XS_MASK,     POWER9,	0,		{RA, RS, SH6}},
   8812 {"extswsli.",	XS(31,445,1),	XS_MASK,     POWER9,	0,		{RA, RS, SH6}},
   8813 
   8814 {"paste.",	XRC(31,902,1),	XLRT_MASK,   POWER10,	0,		{RA0, RB, L1OPT}},
   8815 {"paste.",	XRCL(31,902,1,1),XRT_MASK,   POWER9,	POWER10,	{RA0, RB}},
   8816 
   8817 {"stvlxl",	X(31,903),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   8818 {"stdfcmux",	APU(31,903,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8819 
   8820 {"divdeuo",	XO(31,393,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8821 {"divdeuo.",	XO(31,393,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8822 {"divweuo",	XO(31,395,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8823 {"divweuo.",	XO(31,395,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8824 
   8825 {"stxvw4x",	X(31,908),	XX1_MASK,    PPCVSX,	0,		{XS6, RA0, RB}},
   8826 {"stxsibx",	X(31,909),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8827 
   8828 {"tabort.",	XRC(31,910,1),	XRTRB_MASK,  PPCHTM,	0,		{RA}},
   8829 
   8830 {"tlbsx",	XRC(31,914,0),	X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RTO, RA0, RB}},
   8831 {"tlbsx.",	XRC(31,914,1),	X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RTO, RA0, RB}},
   8832 
   8833 {"slbmfee",	X(31,915),	XRLA_MASK,   POWER9,	0,		{RT, RB, A_L}},
   8834 {"slbmfee",	X(31,915),	XRA_MASK,    PPC64,	POWER9,		{RT, RB}},
   8835 
   8836 {"stwcix",	X(31,917),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   8837 
   8838 {"sthbrx",	X(31,918),	X_MASK,	     COM,	0,		{RS, RA0, RB}},
   8839 
   8840 {"stfdpx",	X(31,919),    X_MASK|Q_MASK, POWER6,	POWER7,		{FRSp, RA0, RB}},
   8841 {"stfqx",	X(31,919),	X_MASK,	     POWER2,	0,		{FRS, RA0, RB}},
   8842 
   8843 {"sraq",	XRC(31,920,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8844 {"sraq.",	XRC(31,920,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8845 
   8846 {"srea",	XRC(31,921,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8847 {"srea.",	XRC(31,921,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8848 
   8849 {"extsh",	XRC(31,922,0),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   8850 {"exts",	XRC(31,922,0),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   8851 {"extsh.",	XRC(31,922,1),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   8852 {"exts.",	XRC(31,922,1),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   8853 
   8854 {"evstddepx",	VX (31, 1854),	VX_MASK,     PPCSPE,	0,		{RT, RA, RB}},
   8855 {"stfddx",	X(31,931),	X_MASK,	     E500MC,	0,		{FRS, RA, RB}},
   8856 
   8857 {"stvfrxl",	X(31,933),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8858 
   8859 {"wclrone",	XOPL2(31,934,2),XRT_MASK,    PPCA2,	EXT,		{RA0, RB}},
   8860 {"wclrall",	X(31,934),	XRARB_MASK,  PPCA2,	EXT,		{L2}},
   8861 {"wclr",	X(31,934),	X_MASK,	     PPCA2,	0,		{L2, RA0, RB}},
   8862 
   8863 {"stvrxl",	X(31,935),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   8864 
   8865 {"divdeo",	XO(31,425,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8866 {"divdeo.",	XO(31,425,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8867 {"divweo",	XO(31,427,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8868 {"divweo.",	XO(31,427,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8869 
   8870 {"stxvh8x",	X(31,940),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8871 {"stxsihx",	X(31,941),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8872 
   8873 {"treclaim.",	XRC(31,942,1),	XRTRB_MASK,  PPCHTM,	0,		{RA}},
   8874 
   8875 {"tlbrehi",	XTLB(31,946,0),	XTLB_MASK,   PPC403,	PPCA2|EXT,	{RT, RA}},
   8876 {"tlbrelo",	XTLB(31,946,1),	XTLB_MASK,   PPC403,	PPCA2|EXT,	{RT, RA}},
   8877 {"tlbre",	X(31,946),  X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RSO, RAOPT, SHO}},
   8878 
   8879 {"sthcix",	X(31,949),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   8880 
   8881 {"icswepx",	XRC(31,950,0),	X_MASK,	     PPCA2,	0,		{RS, RA, RB}},
   8882 {"icswepx.",	XRC(31,950,1),	X_MASK,	     PPCA2,	0,		{RS, RA, RB}},
   8883 
   8884 {"stfqux",	X(31,951),	X_MASK,	     POWER2,	0,		{FRS, RA, RB}},
   8885 
   8886 {"sraiq",	XRC(31,952,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8887 {"sraiq.",	XRC(31,952,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8888 
   8889 {"extsb",	XRC(31,954,0),	XRB_MASK,    PPC,	0,		{RA, RS}},
   8890 {"extsb.",	XRC(31,954,1),	XRB_MASK,    PPC,	0,		{RA, RS}},
   8891 
   8892 {"stvflxl",	X(31,965),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8893 
   8894 {"iccci",	X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
   8895 {"ici",		X(31,966),	XRARB_MASK,  PPCA2|PPC476, 0,		{CT}},
   8896 
   8897 {"divduo",	XO(31,457,1,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8898 {"divduo.",	XO(31,457,1,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8899 
   8900 {"divwuo",	XO(31,459,1,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8901 {"divwuo.",	XO(31,459,1,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8902 
   8903 {"stxvd2x",	X(31,972),	XX1_MASK,    PPCVSX,	0,		{XS6, RA0, RB}},
   8904 {"stxvx",	X(31,972),	XX1_MASK,    POWER8,	POWER9|PPCVSX3,	{XS6, RA0, RB}},
   8905 
   8906 {"tlbld",	X(31,978),	XRTRA_MASK,  PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
   8907 {"tlbwehi",	XTLB(31,978,0),	XTLB_MASK,   PPC403,	EXT,		{RT, RA}},
   8908 {"tlbwelo",	XTLB(31,978,1),	XTLB_MASK,   PPC403,	EXT,		{RT, RA}},
   8909 {"tlbwe",	X(31,978),  X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RSO, RAOPT, SHO}},
   8910 
   8911 {"slbfee.",	XRC(31,979,1),	XRA_MASK,    POWER6,	0,		{RT, RB}},
   8912 
   8913 {"stbcix",	X(31,981),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   8914 
   8915 {"icbi",	X(31,982),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   8916 
   8917 {"stfiwx",	X(31,983),	X_MASK,	     PPC,	PPCEFS,		{FRS, RA0, RB}},
   8918 
   8919 {"extsw",	XRC(31,986,0),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   8920 {"extsw.",	XRC(31,986,1),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   8921 
   8922 {"icbiep",	XRT(31,991,0),	XRT_MASK,    E500MC|PPCA2, 0,		{RA0, RB}},
   8923 
   8924 {"stvswxl",	X(31,997),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8925 
   8926 {"icread",	X(31,998),     XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0,	{RA0, RB}},
   8927 
   8928 {"nabso",	XO(31,488,1,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   8929 {"nabso.",	XO(31,488,1,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   8930 
   8931 {"divdo",	XO(31,489,1,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8932 {"divdo.",	XO(31,489,1,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8933 
   8934 {"divwo",	XO(31,491,1,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8935 {"divwo.",	XO(31,491,1,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8936 
   8937 {"stxvb16x",	X(31,1004),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8938 
   8939 {"trechkpt.",	XRC(31,1006,1),	XRTRARB_MASK,PPCHTM,	0,		{0}},
   8940 
   8941 {"tlbli",	X(31,1010),	XRTRA_MASK,  PPC,	TITAN,		{RB}},
   8942 
   8943 {"stdcix",	X(31,1013),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   8944 
   8945 {"dcbz",	X(31,1014),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   8946 {"dclz",	X(31,1014),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   8947 {"dcbzl",	XOPL(31,1014,1), XRT_MASK,   POWER4|E500MC, PPC476,	{RA0, RB}},
   8948 
   8949 {"dcbzep",	XRT(31,1023,0),	XRT_MASK,    E500MC|PPCA2, 0,		{RA0, RB}},
   8950 
   8951 {"lwz",		OP(32),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, D, RA0}},
   8952 {"l",		OP(32),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   8953 
   8954 {"lwzu",	OP(33),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, D, RAL}},
   8955 {"lu",		OP(33),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   8956 
   8957 {"lbz",		OP(34),		OP_MASK,     COM,	PPCVLE,		{RT, D, RA0}},
   8958 
   8959 {"lbzu",	OP(35),		OP_MASK,     COM,	PPCVLE,		{RT, D, RAL}},
   8960 
   8961 {"stw",		OP(36),		OP_MASK,     PPCCOM,	PPCVLE,		{RS, D, RA0}},
   8962 {"st",		OP(36),		OP_MASK,     PWRCOM,	PPCVLE,		{RS, D, RA0}},
   8963 
   8964 {"stwu",	OP(37),		OP_MASK,     PPCCOM,	PPCVLE,		{RS, D, RAS}},
   8965 {"stu",		OP(37),		OP_MASK,     PWRCOM,	PPCVLE,		{RS, D, RA0}},
   8966 
   8967 {"stb",		OP(38),		OP_MASK,     COM,	PPCVLE,		{RS, D, RA0}},
   8968 
   8969 {"stbu",	OP(39),		OP_MASK,     COM,	PPCVLE,		{RS, D, RAS}},
   8970 
   8971 {"lhz",		OP(40),		OP_MASK,     COM,	PPCVLE,		{RT, D, RA0}},
   8972 
   8973 {"lhzu",	OP(41),		OP_MASK,     COM,	PPCVLE,		{RT, D, RAL}},
   8974 
   8975 {"lha",		OP(42),		OP_MASK,     COM,	PPCVLE,		{RT, D, RA0}},
   8976 
   8977 {"lhau",	OP(43),		OP_MASK,     COM,	PPCVLE,		{RT, D, RAL}},
   8978 
   8979 {"sth",		OP(44),		OP_MASK,     COM,	PPCVLE,		{RS, D, RA0}},
   8980 
   8981 {"sthu",	OP(45),		OP_MASK,     COM,	PPCVLE,		{RS, D, RAS}},
   8982 
   8983 {"lmw",		OP(46),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, D, RAM}},
   8984 {"lm",		OP(46),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   8985 
   8986 {"stmw",	OP(47),		OP_MASK,     PPCCOM,	PPCVLE,		{RS, D, RA0}},
   8987 {"stm",		OP(47),		OP_MASK,     PWRCOM,	PPCVLE,		{RS, D, RA0}},
   8988 
   8989 {"lfs",		OP(48),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RA0}},
   8990 
   8991 {"lfsu",	OP(49),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RAS}},
   8992 
   8993 {"lfd",		OP(50),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RA0}},
   8994 
   8995 {"lfdu",	OP(51),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RAS}},
   8996 
   8997 {"stfs",	OP(52),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RA0}},
   8998 
   8999 {"stfsu",	OP(53),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RAS}},
   9000 
   9001 {"stfd",	OP(54),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RA0}},
   9002 
   9003 {"stfdu",	OP(55),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RAS}},
   9004 
   9005 {"lq",		OP(56),	     OP_MASK|Q_MASK, POWER4,	PPC476|PPCVLE,	{RTQ, DQ, RAQ}},
   9006 {"psq_l",	OP(56),		OP_MASK,     PPCPS,	PPCVLE,		{FRT,PSD,RA,PSW,PSQ}},
   9007 {"lfq",		OP(56),		OP_MASK,     POWER2,	PPCVLE,		{FRT, D, RA0}},
   9008 
   9009 {"lxsd",	DSO(57,2),	DS_MASK,     PPCVSX3,	PPCVLE,		{VD, DS, RA0}},
   9010 {"lxssp",	DSO(57,3),	DS_MASK,     PPCVSX3,	PPCVLE,		{VD, DS, RA0}},
   9011 {"lfdp",	OP(57),	     OP_MASK|Q_MASK, POWER6,	POWER7|PPCVLE,	{FRTp, DS, RA0}},
   9012 {"psq_lu",	OP(57),		OP_MASK,     PPCPS,	PPCVLE,		{FRT,PSD,RA,PSW,PSQ}},
   9013 {"lfqu",	OP(57),		OP_MASK,     POWER2,	PPCVLE,		{FRT, D, RA0}},
   9014 
   9015 {"ld",		DSO(58,0),	DS_MASK,     PPC64,	PPCVLE,		{RT, DS, RA0}},
   9016 {"ldu",		DSO(58,1),	DS_MASK,     PPC64,	PPCVLE,		{RT, DS, RAL}},
   9017 {"lwa",		DSO(58,2),	DS_MASK,     PPC64,	PPCVLE,		{RT, DS, RA0}},
   9018 
   9019 {"dadd",	XRC(59,2,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9020 {"dadd.",	XRC(59,2,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9021 
   9022 {"dqua",	ZRC(59,3,0),	Z2_MASK,     POWER6,	PPCVLE,		{FRT,FRA,FRB,RMC}},
   9023 {"dqua.",	ZRC(59,3,1),	Z2_MASK,     POWER6,	PPCVLE,		{FRT,FRA,FRB,RMC}},
   9024 
   9025 {"dmxvi8ger4pp",XX3(59,2),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9026 {"xvi8ger4pp",	XX3(59,2),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9027 {"dmxvi8ger4",	XX3(59,3),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9028 {"xvi8ger4",	XX3(59,3),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9029 
   9030 {"fdivs",	A(59,18,0),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9031 {"fdivs.",	A(59,18,1),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9032 
   9033 {"fsubs",	A(59,20,0),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9034 {"fsubs.",	A(59,20,1),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9035 
   9036 {"fadds",	A(59,21,0),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9037 {"fadds.",	A(59,21,1),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9038 
   9039 {"fsqrts",	A(59,22,0),    AFRAFRC_MASK, PPC,	TITAN|PPCVLE,	{FRT, FRB}},
   9040 {"fsqrts.",	A(59,22,1),    AFRAFRC_MASK, PPC,	TITAN|PPCVLE,	{FRT, FRB}},
   9041 
   9042 {"fres",	A(59,24,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9043 {"fres",	A(59,24,0),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9044 {"fres.",	A(59,24,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9045 {"fres.",	A(59,24,1),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9046 
   9047 {"fmuls",	A(59,25,0),	AFRB_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9048 {"fmuls.",	A(59,25,1),	AFRB_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9049 
   9050 {"frsqrtes",	A(59,26,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9051 {"frsqrtes",	A(59,26,0),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9052 {"frsqrtes.",	A(59,26,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9053 {"frsqrtes.",	A(59,26,1),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9054 
   9055 {"fmsubs",	A(59,28,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9056 {"fmsubs.",	A(59,28,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9057 
   9058 {"fmadds",	A(59,29,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9059 {"fmadds.",	A(59,29,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9060 
   9061 {"fnmsubs",	A(59,30,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9062 {"fnmsubs.",	A(59,30,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9063 
   9064 {"fnmadds",	A(59,31,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9065 {"fnmadds.",	A(59,31,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9066 
   9067 {"dmul",	XRC(59,34,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9068 {"dmul.",	XRC(59,34,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9069 
   9070 {"drrnd",	ZRC(59,35,0),	Z2_MASK,     POWER6,	PPCVLE,		{FRT, FRA, FRB, RMC}},
   9071 {"drrnd.",	ZRC(59,35,1),	Z2_MASK,     POWER6,	PPCVLE,		{FRT, FRA, FRB, RMC}},
   9072 
   9073 {"dmxvi8gerx4pp", XX3(59,10),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9074 {"dmxvi8gerx4",   XX3(59,11),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9075 
   9076 {"dscli",	ZRC(59,66,0),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9077 {"dscli.",	ZRC(59,66,1),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9078 
   9079 {"dquai",	ZRC(59,67,0),	Z2_MASK,     POWER6,	PPCVLE,		{TE, FRT,FRB,RMC}},
   9080 {"dquai.",	ZRC(59,67,1),	Z2_MASK,     POWER6,	PPCVLE,		{TE, FRT,FRB,RMC}},
   9081 
   9082 {"dmxvf16ger2pp",XX3(59,18),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9083 {"xvf16ger2pp",	 XX3(59,18),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9084 {"dmxvf16ger2",	 XX3(59,19),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9085 {"xvf16ger2",	 XX3(59,19),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9086 
   9087 {"dscri",	ZRC(59,98,0),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9088 {"dscri.",	ZRC(59,98,1),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9089 
   9090 {"drintx",	ZRC(59,99,0),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9091 {"drintx.",	ZRC(59,99,1),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9092 
   9093 {"dmxvf32gerpp",XX3(59,26),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9094 {"xvf32gerpp",	XX3(59,26),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9095 {"dmxvf32ger",	XX3(59,27),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9096 {"xvf32ger",	XX3(59,27),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9097 
   9098 {"dcmpo",	X(59,130),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9099 
   9100 {"dmxvi4ger8pp",XX3(59,34),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9101 {"xvi4ger8pp",	XX3(59,34),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9102 {"dmxvi4ger8",	XX3(59,35),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9103 {"xvi4ger8",	XX3(59,35),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9104 
   9105 {"dtstex",	X(59,162),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9106 
   9107 {"dmxvi16ger2spp",XX3(59,42),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9108 {"xvi16ger2spp",  XX3(59,42),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9109 {"dmxvi16ger2s",  XX3(59,43),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9110 {"xvi16ger2s",	  XX3(59,43),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9111 
   9112 {"dtstdc",	Z(59,194),	Z_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, DCM}},
   9113 
   9114 {"dmxvbf16ger2pp",XX3(59,50),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9115 {"xvbf16ger2pp",  XX3(59,50),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9116 {"dmxvbf16ger2",  XX3(59,51),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9117 {"xvbf16ger2",	  XX3(59,51),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9118 
   9119 {"dtstdg",	Z(59,226),	Z_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, DGM}},
   9120 
   9121 {"drintn",	ZRC(59,227,0),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9122 {"drintn.",	ZRC(59,227,1),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9123 
   9124 {"dmxvf64gerpp",XX3(59,58),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9125 {"xvf64gerpp",	XX3(59,58),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9126 {"dmxvf64ger",	XX3(59,59),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9127 {"xvf64ger",	XX3(59,59),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9128 
   9129 {"dctdp",	XRC(59,258,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9130 {"dctdp.",	XRC(59,258,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9131 
   9132 {"dmxvf16gerx2pp", XX3(59,66),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9133 {"dmxvf16gerx2",   XX3(59,67),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9134 
   9135 {"dctfix",	XRC(59,290,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9136 {"dctfix.",	XRC(59,290,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9137 
   9138 {"ddedpd",	XRC(59,322,0),	X_MASK,	     POWER6,	PPCVLE,		{SP, FRT, FRB}},
   9139 {"ddedpd.",	XRC(59,322,1),	X_MASK,	     POWER6,	PPCVLE,		{SP, FRT, FRB}},
   9140 
   9141 {"dmxvbf16gerx2pp", XX3(59,74),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9142 {"dmxvi16ger2",	XX3(59,75),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9143 {"xvi16ger2",	XX3(59,75),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9144 
   9145 {"dmxvf16ger2np", XX3(59,82),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9146 {"xvf16ger2np",	  XX3(59,82),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9147 {"dmxvf16gerx2np",XX3(59,83),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9148 
   9149 {"dxex",	XRC(59,354,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9150 {"dxex.",	XRC(59,354,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9151 
   9152 {"dmxvf32gernp",  XX3(59,90),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9153 {"xvf32gernp",	  XX3(59,90),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9154 {"dmxvbf16gerx2", XX3(59,91),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9155 
   9156 {"dmxvi8gerx4spp",XX3(59,98),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9157 {"dmxvi8ger4spp", XX3(59,99),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9158 {"xvi8ger4spp",	  XX3(59,99),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9159 
   9160 {"dmxvi16ger2pp", XX3(59,107),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9161 {"xvi16ger2pp",	  XX3(59,107),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9162 
   9163 {"dmxvbf16ger2np",XX3(59,114),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9164 {"xvbf16ger2np",  XX3(59,114),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9165 {"dmxvbf16gerx2np",XX3(59,115),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9166 
   9167 {"dmxvf64gernp",  XX3(59,122),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9168 {"xvf64gernp",	  XX3(59,122),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9169 
   9170 {"dsub",	XRC(59,514,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9171 {"dsub.",	XRC(59,514,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9172 
   9173 {"ddiv",	XRC(59,546,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9174 {"ddiv.",	XRC(59,546,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9175 
   9176 {"dmxvf16ger2pn", XX3(59,146),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9177 {"xvf16ger2pn",	  XX3(59,146),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9178 {"dmxvf16gerx2pn",XX3(59,147),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9179 
   9180 {"dmxvf32gerpn",XX3(59,154),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9181 {"xvf32gerpn",	XX3(59,154),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9182 
   9183 {"dcmpu",	X(59,642),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9184 
   9185 {"dtstsf",	X(59,674),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9186 {"dtstsfi",	X(59,675),	X_MASK|1<<22,POWER9,	PPCVLE,		{BF, UIM6, FRB}},
   9187 
   9188 {"dmxvbf16ger2pn",XX3(59,178),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9189 {"xvbf16ger2pn",  XX3(59,178),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9190 {"dmxvbf16gerx2pn", XX3(59,179),XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9191 
   9192 {"dmxvf64gerpn",XX3(59,186),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9193 {"xvf64gerpn",	XX3(59,186),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9194 
   9195 {"drsp",	XRC(59,770,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9196 {"drsp.",	XRC(59,770,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9197 
   9198 {"dcffix",	XRC(59,802,0), X_MASK|FRA_MASK, POWER7,	PPCVLE,		{FRT, FRB}},
   9199 {"dcffix.",	XRC(59,802,1), X_MASK|FRA_MASK, POWER7,	PPCVLE,		{FRT, FRB}},
   9200 
   9201 {"dmxvf16gerx2nn", XX3(59,202),	XX3GERX_MASK,  FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9202 
   9203 {"denbcd",	XRC(59,834,0),	X_MASK,	     POWER6,	PPCVLE,		{S, FRT, FRB}},
   9204 {"denbcd.",	XRC(59,834,1),	X_MASK,	     POWER6,	PPCVLE,		{S, FRT, FRB}},
   9205 
   9206 {"dmxvf16ger2nn", XX3(59,210),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9207 {"xvf16ger2nn",	  XX3(59,210),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9208 
   9209 {"fcfids",	XRC(59,846,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9210 {"fcfids.",	XRC(59,846,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9211 
   9212 {"diex",	XRC(59,866,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9213 {"diex.",	XRC(59,866,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9214 
   9215 {"dmxvf32gernn",XX3(59,218),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9216 {"xvf32gernn",	XX3(59,218),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9217 
   9218 {"dmxvbf16gerx2nn", XX3(59,234),XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9219 
   9220 {"dmxvbf16ger2nn",XX3(59,242),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9221 {"xvbf16ger2nn",  XX3(59,242),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9222 
   9223 {"fcfidus",	XRC(59,974,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9224 {"fcfidus.",	XRC(59,974,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9225 
   9226 {"dmxvf64gernn",XX3(59,250),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9227 {"xvf64gernn",	XX3(59,250),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9228 
   9229 {"xsaddsp",	XX3(60,0),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9230 {"xsmaddasp",	XX3(60,1),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9231 {"xxsldwi",	XX3(60,2),	XX3SHW_MASK, PPCVSX,	PPCVLE,		{XT6, XA6, XB6, SHW}},
   9232 {"xscmpeqdp",	XX3(60,3),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9233 {"xsrsqrtesp",	XX2(60,10),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9234 {"xssqrtsp",	XX2(60,11),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9235 {"xxsel",	XX4(60,3),	XX4_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6, XC6}},
   9236 {"xssubsp",	XX3(60,8),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9237 {"xsmaddmsp",	XX3(60,9),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9238 {"xxspltd",	XX3(60,10),	XX3DM_MASK,  PPCVSX,	PPCVLE|EXT,	{XT6, XAB6, DMEX}},
   9239 {"xxmrghd",	XX3(60,10),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XA6, XB6}},
   9240 {"xxswapd",	XX3(60,10)|(2<<8), XX3_MASK, PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9241 {"xxmrgld",	XX3(60,10)|(3<<8), XX3_MASK, PPCVSX,	PPCVLE|EXT,	{XT6, XA6, XB6}},
   9242 {"xxpermdi",	XX3(60,10),	XX3DM_MASK,  PPCVSX,	PPCVLE,		{XT6, XA6, XB6, DM}},
   9243 {"xscmpgtdp",	XX3(60,11),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9244 {"xsresp",	XX2(60,26),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9245 {"xsmulsp",	XX3(60,16),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9246 {"xsmsubasp",	XX3(60,17),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9247 {"xxmrghw",	XX3(60,18),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9248 {"xscmpgedp",	XX3(60,19),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9249 {"xsdivsp",	XX3(60,24),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9250 {"xsmsubmsp",	XX3(60,25),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9251 {"xxperm",	XX3(60,26),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9252 {"xsadddp",	XX3(60,32),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9253 {"xsmaddadp",	XX3(60,33),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9254 {"xscmpudp",	XX3(60,35),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9255 {"xscvdpuxws",	XX2(60,72),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9256 {"xsrdpi",	XX2(60,73),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9257 {"xsrsqrtedp",	XX2(60,74),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9258 {"xssqrtdp",	XX2(60,75),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9259 {"xssubdp",	XX3(60,40),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9260 {"xsmaddmdp",	XX3(60,41),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9261 {"xscmpodp",	XX3(60,43),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9262 {"xscvdpsxws",	XX2(60,88),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9263 {"xsrdpiz",	XX2(60,89),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9264 {"xsredp",	XX2(60,90),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9265 {"xsmuldp",	XX3(60,48),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9266 {"xsmsubadp",	XX3(60,49),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9267 {"xxmrglw",	XX3(60,50),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9268 {"xsrdpip",	XX2(60,105),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9269 {"xstsqrtdp",	XX2(60,106),	XX2BF_MASK,  PPCVSX,	PPCVLE,		{BF, XB6}},
   9270 {"xsrdpic",	XX2(60,107),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9271 {"xsdivdp",	XX3(60,56),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9272 {"xsmsubmdp",	XX3(60,57),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9273 {"xxpermr",	XX3(60,58),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9274 {"xscmpexpdp",	XX3(60,59),	XX3BF_MASK,  PPCVSX3,	PPCVLE,		{BF, XA6, XB6}},
   9275 {"xsrdpim",	XX2(60,121),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9276 {"xstdivdp",	XX3(60,61),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9277 {"xvaddsp",	XX3(60,64),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9278 {"xvmaddasp",	XX3(60,65),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9279 {"xvcmpeqsp",	XX3RC(60,67,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9280 {"xvcmpeqsp.",	XX3RC(60,67,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9281 {"xvcvspuxws",	XX2(60,136),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9282 {"xvrspi",	XX2(60,137),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9283 {"xvrsqrtesp",	XX2(60,138),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9284 {"xvsqrtsp",	XX2(60,139),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9285 {"xvsubsp",	XX3(60,72),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9286 {"xvmaddmsp",	XX3(60,73),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9287 {"xvcmpgtsp",	XX3RC(60,75,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9288 {"xvcmpgtsp.",	XX3RC(60,75,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9289 {"xvcvspsxws",	XX2(60,152),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9290 {"xvrspiz",	XX2(60,153),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9291 {"xvresp",	XX2(60,154),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9292 {"xvmulsp",	XX3(60,80),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9293 {"xvmsubasp",	XX3(60,81),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9294 {"xxspltw",	XX2(60,164),	XX2UIM_MASK, PPCVSX,	PPCVLE,		{XT6, XB6, UIM}},
   9295 {"xxextractuw",	XX2(60,165),   XX2UIM4_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, UIMM4}},
   9296 {"xvcmpgesp",	XX3RC(60,83,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9297 {"xvcmpgesp.",	XX3RC(60,83,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9298 {"xvcvuxwsp",	XX2(60,168),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9299 {"xvrspip",	XX2(60,169),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9300 {"xvtsqrtsp",	XX2(60,170),	XX2BF_MASK,  PPCVSX,	PPCVLE,		{BF, XB6}},
   9301 {"xvrspic",	XX2(60,171),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9302 {"xvdivsp",	XX3(60,88),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9303 {"xvmsubmsp",	XX3(60,89),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9304 {"xxspltib",	X(60,360),   XX1_MASK|3<<19, PPCVSX3,	PPCVLE,		{XT6, IMM8}},
   9305 {"lxvkq",	XVA(60,360,31),	XVA_MASK&~1, POWER10,	PPCVLE,		{XT6, UIM5}},
   9306 {"xxinsertw",	XX2(60,181),   XX2UIM4_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, UIMM4}},
   9307 {"xvcvsxwsp",	XX2(60,184),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9308 {"xvrspim",	XX2(60,185),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9309 {"xvtdivsp",	XX3(60,93),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9310 {"xvadddp",	XX3(60,96),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9311 {"xvmaddadp",	XX3(60,97),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9312 {"xvcmpeqdp",	XX3RC(60,99,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9313 {"xvcmpeqdp.",	XX3RC(60,99,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9314 {"xvcvdpuxws",	XX2(60,200),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9315 {"xvrdpi",	XX2(60,201),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9316 {"xvrsqrtedp",	XX2(60,202),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9317 {"xvsqrtdp",	XX2(60,203),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9318 {"xvsubdp",	XX3(60,104),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9319 {"xvmaddmdp",	XX3(60,105),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9320 {"xvcmpgtdp",	XX3RC(60,107,0), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9321 {"xvcmpgtdp.",	XX3RC(60,107,1), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9322 {"xvcvdpsxws",	XX2(60,216),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9323 {"xvrdpiz",	XX2(60,217),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9324 {"xvredp",	XX2(60,218),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9325 {"xvmuldp",	XX3(60,112),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9326 {"xvmsubadp",	XX3(60,113),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9327 {"xvcmpgedp",	XX3RC(60,115,0), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9328 {"xvcmpgedp.",	XX3RC(60,115,1), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9329 {"xvcvuxwdp",	XX2(60,232),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9330 {"xvrdpip",	XX2(60,233),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9331 {"xvtsqrtdp",	XX2(60,234),	XX2BF_MASK,  PPCVSX,	PPCVLE,		{BF, XB6}},
   9332 {"xvrdpic",	XX2(60,235),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9333 {"xvdivdp",	XX3(60,120),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9334 {"xvmsubmdp",	XX3(60,121),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9335 {"xvcvsxwdp",	XX2(60,248),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9336 {"xvrdpim",	XX2(60,249),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9337 {"xvtdivdp",	XX3(60,125),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9338 {"xsmaxcdp",	XX3(60,128),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9339 {"xsnmaddasp",	XX3(60,129),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9340 {"xxland",	XX3(60,130),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9341 {"xscvdpsp",	XX2(60,265),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9342 {"xscvdpspn",	XX2(60,267),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9343 {"xsmincdp",	XX3(60,136),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9344 {"xsnmaddmsp",	XX3(60,137),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9345 {"xxlandc",	XX3(60,138),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9346 {"xsrsp",	XX2(60,281),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9347 {"xsmaxjdp",	XX3(60,144),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9348 {"xsnmsubasp",	XX3(60,145),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9349 {"xxmr",	XX3(60,146),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9350 {"xxlor",	XX3(60,146),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9351 {"xscvuxdsp",	XX2(60,296),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9352 {"xststdcsp",	XX2(60,298),	XX2BFD_MASK, PPCVSX3,	PPCVLE,		{BF, XB6, DCMX}},
   9353 {"xsminjdp",	XX3(60,152),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9354 {"xsnmsubmsp",	XX3(60,153),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9355 {"xxlxor",	XX3(60,154),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9356 {"xscvsxdsp",	XX2(60,312),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9357 {"xsmaxdp",	XX3(60,160),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9358 {"xsnmaddadp",	XX3(60,161),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9359 {"xxlnot",	XX3(60,162),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9360 {"xxlnor",	XX3(60,162),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9361 {"xscvdpuxds",	XX2(60,328),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9362 {"xscvspdp",	XX2(60,329),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9363 {"xscvspdpn",	XX2(60,331),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9364 {"xsmindp",	XX3(60,168),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9365 {"xsnmaddmdp",	XX3(60,169),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9366 {"xxlorc",	XX3(60,170),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9367 {"xscvdpsxds",	XX2(60,344),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9368 {"xsabsdp",	XX2(60,345),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9369 {"xsxexpdp",	XX2VA(60,347,0),XX2_MASK|1,  PPCVSX3,	PPCVLE,		{RT, XB6}},
   9370 {"xsxsigdp",	XX2VA(60,347,1),XX2_MASK|1,  PPCVSX3,	PPCVLE,		{RT, XB6}},
   9371 {"xscvhpdp",	XX2VA(60,347,16),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9372 {"xscvdphp",	XX2VA(60,347,17),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9373 {"xscpsgndp",	XX3(60,176),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9374 {"xsnmsubadp",	XX3(60,177),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9375 {"xxlnand",	XX3(60,178),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9376 {"xscvuxddp",	XX2(60,360),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9377 {"xsnabsdp",	XX2(60,361),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9378 {"xststdcdp",	XX2(60,362),	XX2BFD_MASK, PPCVSX3,	PPCVLE,		{BF, XB6, DCMX}},
   9379 {"xsnmsubmdp",	XX3(60,185),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9380 {"xxleqv",	XX3(60,186),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9381 {"xscvsxddp",	XX2(60,376),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9382 {"xsnegdp",	XX2(60,377),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9383 {"xvmaxsp",	XX3(60,192),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9384 {"xvnmaddasp",	XX3(60,193),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9385 {"xvcvspuxds",	XX2(60,392),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9386 {"xvcvdpsp",	XX2(60,393),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9387 {"xvminsp",	XX3(60,200),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9388 {"xvnmaddmsp",	XX3(60,201),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9389 {"xvcvspsxds",	XX2(60,408),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9390 {"xvabssp",	XX2(60,409),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9391 {"xvmovsp",	XX3(60,208),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9392 {"xvcpsgnsp",	XX3(60,208),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9393 {"xvnmsubasp",	XX3(60,209),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9394 {"xvcvuxdsp",	XX2(60,424),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9395 {"xvnabssp",	XX2(60,425),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9396 {"xvtstdcsp",	XX2(60,426),  XX2DCMXS_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, DCMXS}},
   9397 {"xviexpsp",	XX3(60,216),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9398 {"xvnmsubmsp",	XX3(60,217),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9399 {"xvcvsxdsp",	XX2(60,440),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9400 {"xvnegsp",	XX2(60,441),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9401 {"xvmaxdp",	XX3(60,224),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9402 {"xvnmaddadp",	XX3(60,225),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9403 {"dmxxextfdmr512",XX3(60,226),	XX3DMR_MASK, FUTURE,	PPCVLE,		{XA5p, XB5p, DMR, P1}},
   9404 {"xvcvdpuxds",	XX2(60,456),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9405 {"xvcvspdp",	XX2(60,457),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9406 {"xxgenpcvbm",	X(60,916),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9407 {"xxgenpcvhm",	X(60,917),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9408 {"xsiexpdp",	X(60,918),	XX1_MASK,    PPCVSX3,	PPCVLE,		{XT6, RA, RB}},
   9409 {"xvmindp",	XX3(60,232),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9410 {"xvnmaddmdp",	XX3(60,233),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9411 {"dmxxinstdmr512",XX3(60,234),	XX3DMR_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB5p,P1}},
   9412 {"xvcvdpsxds",	XX2(60,472),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9413 {"xvabsdp",	XX2(60,473),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9414 {"xxgenpcvwm",	X(60,948),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9415 {"xxgenpcvdm",	X(60,949),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9416 {"xvxexpdp",	XX2VA(60,475,0),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9417 {"xvxsigdp",	XX2VA(60,475,1),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9418 {"xvtlsbb",	XX2VA(60,475,2),XX2BF_MASK,  POWER10,	PPCVLE,		{BF, XB6}},
   9419 {"xxbrh",	XX2VA(60,475,7),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9420 {"xvxexpsp",	XX2VA(60,475,8),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9421 {"xvxsigsp",	XX2VA(60,475,9),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9422 {"xxbrw",	XX2VA(60,475,15),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9423 {"xvcvbf16spn",	XX2VA(60,475,16),XX2_MASK,   PPCVSX4,	PPCVLE,		{XT6, XB6}},
   9424 {"xvcvspbf16",	XX2VA(60,475,17),XX2_MASK,   PPCVSX4,	PPCVLE,		{XT6, XB6}},
   9425 {"xxbrd",	XX2VA(60,475,23),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9426 {"xvcvhpsp",	XX2VA(60,475,24),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9427 {"xvcvsphp",	XX2VA(60,475,25),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9428 {"xxbrq",	XX2VA(60,475,31),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9429 {"xvmovdp",	XX3(60,240),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9430 {"xvcpsgndp",	XX3(60,240),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9431 {"xvnmsubadp",	XX3(60,241),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9432 {"dmxxextfdmr256",XX2(60,484),	XX2DMR_MASK, FUTURE,	PPCVLE,		{XB5p, DMR, P2}},
   9433 {"dmxxinstdmr256",XX2(60,485),	XX2DMR_MASK, FUTURE,	PPCVLE,		{DMR, XB5p, P2}},
   9434 {"xvcvuxddp",	XX2(60,488),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9435 {"xvnabsdp",	XX2(60,489),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9436 {"xvtstdcdp",	XX2(60,490),  XX2DCMXS_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, DCMXS}},
   9437 {"xviexpdp",	XX3(60,248),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9438 {"xvnmsubmdp",	XX3(60,249),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9439 {"xvcvsxddp",	XX2(60,504),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9440 {"xvnegdp",	XX2(60,505),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9441 
   9442 {"psq_st",	OP(60),		OP_MASK,     PPCPS,	PPCVLE,		{FRS,PSD,RA,PSW,PSQ}},
   9443 {"stfq",	OP(60),		OP_MASK,     POWER2,	PPCVLE,		{FRS, D, RA}},
   9444 
   9445 {"lxv",		DQX(61,1),	DQX_MASK,    PPCVSX3,	PPCVLE,		{XTQ6, DQ, RA0}},
   9446 {"stxv",	DQX(61,5),	DQX_MASK,    PPCVSX3,	PPCVLE,		{XSQ6, DQ, RA0}},
   9447 {"stxsd",	DSO(61,2),	DS_MASK,     PPCVSX3,	PPCVLE,		{VS, DS, RA0}},
   9448 {"stxssp",	DSO(61,3),	DS_MASK,     PPCVSX3,	PPCVLE,		{VS, DS, RA0}},
   9449 {"stfdp",	OP(61),	     OP_MASK|Q_MASK, POWER6,	POWER7|PPCVLE,	{FRSp, DS, RA0}},
   9450 {"psq_stu",	OP(61),		OP_MASK,     PPCPS,	PPCVLE,		{FRS,PSD,RA,PSW,PSQ}},
   9451 {"stfqu",	OP(61),		OP_MASK,     POWER2,	PPCVLE,		{FRS, D, RA}},
   9452 
   9453 {"std",		DSO(62,0),	DS_MASK,     PPC64,	PPCVLE,		{RS, DS, RA0}},
   9454 {"stdu",	DSO(62,1),	DS_MASK,     PPC64,	PPCVLE,		{RS, DS, RAS}},
   9455 {"stq",		DSO(62,2),   DS_MASK|Q_MASK, POWER4,	PPC476|PPCVLE,	{RSQ, DS, RA0}},
   9456 
   9457 {"fcmpu",	X(63,0),	XBF_MASK,    COM,	PPCEFS|PPCVLE,	{BF, FRA, FRB}},
   9458 
   9459 {"daddq",	XRC(63,2,0),  X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9460 {"daddq.",	XRC(63,2,1),  X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9461 
   9462 {"dquaq",	ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp, RMC}},
   9463 {"dquaq.",	ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp, RMC}},
   9464 
   9465 {"xsaddqp",	XRC(63,4,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9466 {"xsaddqpo",	XRC(63,4,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9467 
   9468 {"xsrqpi",	ZRC(63,5,0),	Z2_MASK,     PPCVSX3,	PPCVLE,		{R, VD, VB, RMC}},
   9469 {"xsrqpix",	ZRC(63,5,1),	Z2_MASK,     PPCVSX3,	PPCVLE,		{R, VD, VB, RMC}},
   9470 
   9471 {"fcpsgn",	XRC(63,8,0),	X_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FRT, FRA, FRB}},
   9472 {"fcpsgn.",	XRC(63,8,1),	X_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FRT, FRA, FRB}},
   9473 
   9474 {"frsp",	XRC(63,12,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9475 {"frsp.",	XRC(63,12,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9476 
   9477 {"fctiw",	XRC(63,14,0),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9478 {"fcir",	XRC(63,14,0),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9479 {"fctiw.",	XRC(63,14,1),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9480 {"fcir.",	XRC(63,14,1),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9481 
   9482 {"fctiwz",	XRC(63,15,0),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9483 {"fcirz",	XRC(63,15,0),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9484 {"fctiwz.",	XRC(63,15,1),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9485 {"fcirz.",	XRC(63,15,1),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9486 
   9487 {"fdiv",	A(63,18,0),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9488 {"fd",		A(63,18,0),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9489 {"fdiv.",	A(63,18,1),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9490 {"fd.",		A(63,18,1),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9491 
   9492 {"fsub",	A(63,20,0),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9493 {"fs",		A(63,20,0),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9494 {"fsub.",	A(63,20,1),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9495 {"fs.",		A(63,20,1),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9496 
   9497 {"fadd",	A(63,21,0),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9498 {"fa",		A(63,21,0),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9499 {"fadd.",	A(63,21,1),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9500 {"fa.",		A(63,21,1),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9501 
   9502 {"fsqrt",	A(63,22,0),    AFRAFRC_MASK, PPCPWR2,	TITAN|PPCVLE,	{FRT, FRB}},
   9503 {"fsqrt.",	A(63,22,1),    AFRAFRC_MASK, PPCPWR2,	TITAN|PPCVLE,	{FRT, FRB}},
   9504 
   9505 {"fsel",	A(63,23,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9506 {"fsel.",	A(63,23,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9507 
   9508 {"fre",		A(63,24,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9509 {"fre",		A(63,24,0),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9510 {"fre.",	A(63,24,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9511 {"fre.",	A(63,24,1),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9512 
   9513 {"fmul",	A(63,25,0),	AFRB_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9514 {"fm",		A(63,25,0),	AFRB_MASK,   PWRCOM,	PPCVLE|PPCVLE,	{FRT, FRA, FRC}},
   9515 {"fmul.",	A(63,25,1),	AFRB_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9516 {"fm.",		A(63,25,1),	AFRB_MASK,   PWRCOM,	PPCVLE|PPCVLE,	{FRT, FRA, FRC}},
   9517 
   9518 {"frsqrte",	A(63,26,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9519 {"frsqrte",	A(63,26,0),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9520 {"frsqrte.",	A(63,26,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9521 {"frsqrte.",	A(63,26,1),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9522 
   9523 {"fmsub",	A(63,28,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9524 {"fms",		A(63,28,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9525 {"fmsub.",	A(63,28,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9526 {"fms.",	A(63,28,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9527 
   9528 {"fmadd",	A(63,29,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9529 {"fma",		A(63,29,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9530 {"fmadd.",	A(63,29,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9531 {"fma.",	A(63,29,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9532 
   9533 {"fnmsub",	A(63,30,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9534 {"fnms",	A(63,30,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9535 {"fnmsub.",	A(63,30,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9536 {"fnms.",	A(63,30,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9537 
   9538 {"fnmadd",	A(63,31,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9539 {"fnma",	A(63,31,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9540 {"fnmadd.",	A(63,31,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9541 {"fnma.",	A(63,31,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9542 
   9543 {"fcmpo",	X(63,32),	XBF_MASK,    COM,	PPCEFS|PPCVLE,	{BF, FRA, FRB}},
   9544 
   9545 {"dmulq",	XRC(63,34,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9546 {"dmulq.",	XRC(63,34,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9547 
   9548 {"drrndq",	ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp, RMC}},
   9549 {"drrndq.",	ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp, RMC}},
   9550 
   9551 {"xsmulqp",	XRC(63,36,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9552 {"xsmulqpo",	XRC(63,36,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9553 
   9554 {"xsrqpxp",	Z(63,37),	Z2_MASK,     PPCVSX3,	PPCVLE,		{R, VD, VB, RMC}},
   9555 
   9556 {"mtfsb1",	XRC(63,38,0),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9557 {"mtfsb1.",	XRC(63,38,1),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9558 
   9559 {"fneg",	XRC(63,40,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9560 {"fneg.",	XRC(63,40,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9561 
   9562 {"mcrfs",      X(63,64), XRB_MASK|(3<<21)|(3<<16), COM,	PPCVLE,		{BF, BFA}},
   9563 
   9564 {"dscliq",	ZRC(63,66,0), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9565 {"dscliq.",	ZRC(63,66,1), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9566 
   9567 {"dquaiq",	ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{TE, FRTp, FRBp, RMC}},
   9568 {"dquaiq.",	ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{TE, FRTp, FRBp, RMC}},
   9569 
   9570 {"xscmpeqqp",	X(63,68),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9571 
   9572 {"mtfsb0",	XRC(63,70,0),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9573 {"mtfsb0.",	XRC(63,70,1),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9574 
   9575 {"fmr",		XRC(63,72,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9576 {"fmr.",	XRC(63,72,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9577 
   9578 {"dscriq",	ZRC(63,98,0), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9579 {"dscriq.",	ZRC(63,98,1), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9580 
   9581 {"drintxq",	ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9582 {"drintxq.",	ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9583 
   9584 {"xscpsgnqp",	X(63,100),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9585 
   9586 {"ftdiv",	X(63,128),	XBF_MASK,    POWER7,	PPCVLE,		{BF, FRA, FRB}},
   9587 
   9588 {"dcmpoq",	X(63,130),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, FRBp}},
   9589 
   9590 {"xscmpoqp",	X(63,132),	XBF_MASK,    PPCVSX3,	PPCVLE,		{BF, VA, VB}},
   9591 
   9592 {"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
   9593 {"mtfsfi",  XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
   9594 {"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
   9595 {"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
   9596 
   9597 {"fnabs",	XRC(63,136,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9598 {"fnabs.",	XRC(63,136,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9599 
   9600 {"fctiwu",	XRC(63,142,0),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9601 {"fctiwu.",	XRC(63,142,1),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9602 {"fctiwuz",	XRC(63,143,0),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9603 {"fctiwuz.",	XRC(63,143,1),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9604 
   9605 {"ftsqrt",	X(63,160),	XBF_MASK|FRA_MASK, POWER7, PPCVLE,	{BF, FRB}},
   9606 
   9607 {"dtstexq",	X(63,162),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, FRBp}},
   9608 
   9609 {"xscmpexpqp",	X(63,164),	XBF_MASK,    PPCVSX3,	PPCVLE,		{BF, VA, VB}},
   9610 
   9611 {"dtstdcq",	Z(63,194),	Z_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, DCM}},
   9612 
   9613 {"xscmpgeqp",	X(63,196),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9614 
   9615 {"dtstdgq",	Z(63,226),	Z_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, DGM}},
   9616 
   9617 {"drintnq",	ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9618 {"drintnq.",	ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9619 
   9620 {"xscmpgtqp",	X(63,228),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9621 
   9622 {"dctqpq",	XRC(63,258,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9623 {"dctqpq.",	XRC(63,258,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9624 
   9625 {"fabs",	XRC(63,264,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9626 {"fabs.",	XRC(63,264,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9627 
   9628 {"dctfixq",	XRC(63,290,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9629 {"dctfixq.",	XRC(63,290,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9630 
   9631 {"ddedpdq",	XRC(63,322,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{SP, FRTp, FRBp}},
   9632 {"ddedpdq.",	XRC(63,322,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{SP, FRTp, FRBp}},
   9633 
   9634 {"dxexq",	XRC(63,354,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9635 {"dxexq.",	XRC(63,354,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9636 
   9637 {"xsmaddqp",	XRC(63,388,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9638 {"xsmaddqpo",	XRC(63,388,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9639 
   9640 {"frin",	XRC(63,392,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9641 {"frin.",	XRC(63,392,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9642 
   9643 {"xsmsubqp",	XRC(63,420,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9644 {"xsmsubqpo",	XRC(63,420,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9645 
   9646 {"friz",	XRC(63,424,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9647 {"friz.",	XRC(63,424,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9648 
   9649 {"xsnmaddqp",	XRC(63,452,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9650 {"xsnmaddqpo",	XRC(63,452,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9651 
   9652 {"frip",	XRC(63,456,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9653 {"frip.",	XRC(63,456,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9654 
   9655 {"xsnmsubqp",	XRC(63,484,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9656 {"xsnmsubqpo",	XRC(63,484,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9657 
   9658 {"frim",	XRC(63,488,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9659 {"frim.",	XRC(63,488,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9660 
   9661 {"dsubq",	XRC(63,514,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9662 {"dsubq.",	XRC(63,514,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9663 
   9664 {"xssubqp",	XRC(63,516,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9665 {"xssubqpo",	XRC(63,516,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9666 
   9667 {"ddivq",	XRC(63,546,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9668 {"ddivq.",	XRC(63,546,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9669 
   9670 {"xsdivqp",	XRC(63,548,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9671 {"xsdivqpo",	XRC(63,548,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9672 
   9673 {"mffs",	XRC(63,583,0),	XRARB_MASK,  COM,	PPCEFS|PPCVLE,	{FRT}},
   9674 {"mffs.",	XRC(63,583,1),	XRARB_MASK,  COM,	PPCEFS|PPCVLE,	{FRT}},
   9675 
   9676 {"mffsce",	XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE,	{FRT}},
   9677 {"mffscdrn",	XMMF(63,583,2,4), XMMF_MASK,         POWER9, PPCVLE,	{FRT, FRB}},
   9678 {"mffscdrni",	XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE,	{FRT, DRM}},
   9679 {"mffscrn",	XMMF(63,583,2,6), XMMF_MASK,         POWER9, PPCVLE,	{FRT, FRB}},
   9680 {"mffscrni",	XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE,	{FRT, RM}},
   9681 {"mffsl",	XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE,	{FRT}},
   9682 
   9683 {"dcmpuq",	X(63,642),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, FRBp}},
   9684 
   9685 {"xscmpuqp",	X(63,644),	XBF_MASK,    PPCVSX3,	PPCVLE,		{BF, VA, VB}},
   9686 
   9687 {"dtstsfq",	X(63,674),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRA, FRBp}},
   9688 {"dtstsfiq",	X(63,675),	X_MASK|1<<22,POWER9,	PPCVLE,		{BF, UIM6, FRBp}},
   9689 
   9690 {"xsmaxcqp",	X(63,676),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9691 
   9692 {"xststdcqp",	X(63,708),	X_MASK,	     PPCVSX3,	PPCVLE,		{BF, VB, DCMX}},
   9693 
   9694 {"mtfsf",	XFL(63,711,0),	XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FLM, FRB, XFL_L, W}},
   9695 {"mtfsf",	XFL(63,711,0),	XFL_MASK,    COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
   9696 {"mtfsf.",	XFL(63,711,1),	XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FLM, FRB, XFL_L, W}},
   9697 {"mtfsf.",	XFL(63,711,1),	XFL_MASK,    COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
   9698 
   9699 {"xsmincqp",	X(63,740),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9700 
   9701 {"drdpq",	XRC(63,770,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRBp}},
   9702 {"drdpq.",	XRC(63,770,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRBp}},
   9703 
   9704 {"dcffixq",	XRC(63,802,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9705 {"dcffixq.",	XRC(63,802,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9706 
   9707 {"xsabsqp",	XVA(63,804,0),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9708 {"xsxexpqp",	XVA(63,804,2),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9709 {"xsnabsqp",	XVA(63,804,8),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9710 {"xsnegqp",	XVA(63,804,16),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9711 {"xsxsigqp",	XVA(63,804,18),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9712 {"xssqrtqp",	XVARC(63,804,27,0), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9713 {"xssqrtqpo",	XVARC(63,804,27,1), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9714 
   9715 {"fctid",	XRC(63,814,0),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9716 {"fctid",	XRC(63,814,0),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9717 {"fctid.",	XRC(63,814,1),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9718 {"fctid.",	XRC(63,814,1),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9719 
   9720 {"fctidz",	XRC(63,815,0),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9721 {"fctidz",	XRC(63,815,0),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9722 {"fctidz.",	XRC(63,815,1),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9723 {"fctidz.",	XRC(63,815,1),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9724 
   9725 {"denbcdq",	XRC(63,834,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{S, FRTp, FRBp}},
   9726 {"denbcdq.",	XRC(63,834,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{S, FRTp, FRBp}},
   9727 
   9728 {"xscvqpuqz",	XVA(63,836,0),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9729 {"xscvqpuwz",	XVA(63,836,1),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9730 {"xscvudqp",	XVA(63,836,2),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9731 {"xscvuqqp",	XVA(63,836,3),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9732 {"xscvqpsqz",	XVA(63,836,8),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9733 {"xscvqpswz",	XVA(63,836,9),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9734 {"xscvsdqp",	XVA(63,836,10),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9735 {"xscvsqqp",	XVA(63,836,11),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9736 {"xscvqpudz",	XVA(63,836,17),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9737 {"xscvqpdp",	XVARC(63,836,20,0), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9738 {"xscvqpdpo",	XVARC(63,836,20,1), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9739 {"xscvdpqp",	XVA(63,836,22),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9740 {"xscvqpsdz",	XVA(63,836,25),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9741 
   9742 {"fmrgow",	X(63,838),	X_MASK,	     PPCVSX2,	PPCVLE,		{FRT, FRA, FRB}},
   9743 
   9744 {"fcfid",	XRC(63,846,0),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9745 {"fcfid",	XRC(63,846,0),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9746 {"fcfid.",	XRC(63,846,1),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9747 {"fcfid.",	XRC(63,846,1),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9748 
   9749 {"diexq",	XRC(63,866,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp}},
   9750 {"diexq.",	XRC(63,866,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp}},
   9751 
   9752 {"xsiexpqp",	X(63,868),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9753 
   9754 {"fctidu",	XRC(63,942,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9755 {"fctidu.",	XRC(63,942,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9756 
   9757 {"fctiduz",	XRC(63,943,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9758 {"fctiduz.",	XRC(63,943,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9759 
   9760 {"fmrgew",	X(63,966),	X_MASK,	     PPCVSX2,	PPCVLE,		{FRT, FRA, FRB}},
   9761 
   9762 {"fcfidu",	XRC(63,974,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9763 {"fcfidu.",	XRC(63,974,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9764 
   9765 {"dcffixqq",	XVA(63,994,0),	XVA_MASK,    POWER10,	PPCVLE,		{FRTp, VB}},
   9766 {"dctfixqq",	XVA(63,994,1),	XVA_MASK,    POWER10,	PPCVLE,		{VD, FRBp}},
   9767 };
   9768 
   9769 const unsigned int powerpc_num_opcodes = ARRAY_SIZE (powerpc_opcodes);
   9770 
   9771 /* The opcode table for 8-byte prefix instructions.
   9773 
   9774    The format of this opcode table is the same as the main opcode table.  */
   9775 
   9776 const struct powerpc_opcode prefix_opcodes[] = {
   9777 {"pnop",	  PMRR,		       PREFIX_MASK,	POWER10, 0,	{0}},
   9778 {"pli",		  PMLS|OP(14),	       P_DRAPCREL_MASK,	POWER10, EXT,	{RT, SI34}},
   9779 {"pla",		  PMLS|OP(14),	       P_D_MASK,	POWER10, EXT,	{RT, D34, PRA0, PCREL1}},
   9780 {"paddi",	  PMLS|OP(14),	       P_D_MASK,	POWER10, 0,	{RT, RA0, SI34, PCREL}},
   9781 {"psubi",	  PMLS|OP(14),	       P_D_MASK,	POWER10, EXT,	{RT, RA0, NSI34, PCREL}},
   9782 {"xxsplti32dx",	  P8RR|VSOP(32,0),     P_VSI_MASK,	POWER10, 0,	{XTS, IX, IMM32}},
   9783 {"xxspltidp",	  P8RR|VSOP(32,2),     P_VS_MASK,	POWER10, 0,	{XTS, IMM32}},
   9784 {"xxspltiw",	  P8RR|VSOP(32,3),     P_VS_MASK,	POWER10, 0,	{XTS, IMM32}},
   9785 {"plwz",	  PMLS|OP(32),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   9786 {"xxblendvb",	  P8RR|XX4(33,0),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   9787 {"xxblendvh",	  P8RR|XX4(33,1),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   9788 {"xxblendvw",	  P8RR|XX4(33,2),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   9789 {"xxblendvd",	  P8RR|XX4(33,3),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   9790 {"xxpermx",	  P8RR|XX4(34,0),      P_UXX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6, UIM3}},
   9791 {"xxeval",	  P8RR|XX4(34,1),      P_U8XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6, UIM8}},
   9792 {"plbz",	  PMLS|OP(34),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   9793 {"pstw",	  PMLS|OP(36),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   9794 {"pstb",	  PMLS|OP(38),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   9795 {"plhz",	  PMLS|OP(40),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   9796 {"plwa",	  P8LS|OP(41),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   9797 {"plxsd",	  P8LS|OP(42),	       P_D_MASK,	POWER10, 0,	{VD, D34, PRA0, PCREL}},
   9798 {"plha",	  PMLS|OP(42),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   9799 {"plxssp",	  P8LS|OP(43),	       P_D_MASK,	POWER10, 0,	{VD, D34, PRA0, PCREL}},
   9800 {"psth",	  PMLS|OP(44),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   9801 {"pstxsd",	  P8LS|OP(46),	       P_D_MASK,	POWER10, 0,	{VS, D34, PRA0, PCREL}},
   9802 {"pstxssp",	  P8LS|OP(47),	       P_D_MASK,	POWER10, 0,	{VS, D34, PRA0, PCREL}},
   9803 {"plfs",	  PMLS|OP(48),	       P_D_MASK,	POWER10, 0,	{FRT, D34, PRA0, PCREL}},
   9804 {"plxv",	  P8LS|OP(50),	       P_D_MASK&~OP(1),	POWER10, 0,	{XTOP, D34, PRA0, PCREL}},
   9805 {"plfd",	  PMLS|OP(50),	       P_D_MASK,	POWER10, 0,	{FRT, D34, PRA0, PCREL}},
   9806 {"pstfs",	  PMLS|OP(52),	       P_D_MASK,	POWER10, 0,	{FRS, D34, PRA0, PCREL}},
   9807 {"pstxv",	  P8LS|OP(54),	       P_D_MASK&~OP(1),	POWER10, 0,	{XTOP, D34, PRA0, PCREL}},
   9808 {"pstfd",	  PMLS|OP(54),	       P_D_MASK,	POWER10, 0,	{FRS, D34, PRA0, PCREL}},
   9809 {"plq",		  P8LS|OP(56),	       P_D_MASK,	POWER10, 0,	{RTQ, D34, PRAQ, PCREL}},
   9810 {"pld",		  P8LS|OP(57),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   9811 {"plxvp",	  P8LS|OP(58),	       P_D_MASK,	POWER10, 0,	{XTP, D34, PRA0, PCREL}},
   9812 {"pmdmxvi8ger4pp",PMMIRR|XX3(59,2),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   9813 {"pmxvi8ger4pp",  PMMIRR|XX3(59,2),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   9814 {"pmdmxvi8ger4",  PMMIRR|XX3(59,3),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   9815 {"pmxvi8ger4",	  PMMIRR|XX3(59,3),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   9816 {"pmdmxvi8gerx4pp",PMMIRR|XX3(59,10),  P_GERX4_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
   9817 {"pmdmxvi8gerx4", PMMIRR|XX3(59,11),   P_GERX4_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
   9818 {"pmdmxvf16ger2pp",PMMIRR|XX3(59,18),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9819 {"pmxvf16ger2pp", PMMIRR|XX3(59,18),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9820 {"pmdmxvf16ger2", PMMIRR|XX3(59,19),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9821 {"pmxvf16ger2",	  PMMIRR|XX3(59,19),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9822 {"pmdmxvf32gerpp",PMMIRR|XX3(59,26),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9823 {"pmxvf32gerpp",  PMMIRR|XX3(59,26),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9824 {"pmdmxvf32ger",  PMMIRR|XX3(59,27),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9825 {"pmxvf32ger",	  PMMIRR|XX3(59,27),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9826 {"pmdmxvi4ger8pp",PMMIRR|XX3(59,34),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   9827 {"pmxvi4ger8pp",  PMMIRR|XX3(59,34),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   9828 {"pmdmxvi4ger8",  PMMIRR|XX3(59,35),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   9829 {"pmxvi4ger8",	  PMMIRR|XX3(59,35),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   9830 {"pmdmxvi16ger2spp",PMMIRR|XX3(59,42), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9831 {"pmxvi16ger2spp",PMMIRR|XX3(59,42),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9832 {"pmdmxvi16ger2s",PMMIRR|XX3(59,43),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9833 {"pmxvi16ger2s",  PMMIRR|XX3(59,43),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9834 {"pmdmxvbf16ger2pp",PMMIRR|XX3(59,50), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9835 {"pmxvbf16ger2pp",PMMIRR|XX3(59,50),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9836 {"pmdmxvbf16ger2",PMMIRR|XX3(59,51),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9837 {"pmxvbf16ger2",  PMMIRR|XX3(59,51),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9838 {"pmdmxvf64gerpp",PMMIRR|XX3(59,58),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9839 {"pmxvf64gerpp",  PMMIRR|XX3(59,58),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9840 {"pmdmxvf64ger",  PMMIRR|XX3(59,59),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9841 {"pmxvf64ger",	  PMMIRR|XX3(59,59),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9842 {"pmdmxvf16gerx2pp",PMMIRR|XX3(59,66), P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9843 {"pmdmxvf16gerx2",PMMIRR|XX3(59,67),   P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9844 {"pmdmxvbf16gerx2pp",PMMIRR|XX3(59,74),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9845 {"pmdmxvi16ger2", PMMIRR|XX3(59,75),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9846 {"pmxvi16ger2",   PMMIRR|XX3(59,75),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9847 {"pmdmxvf16ger2np",PMMIRR|XX3(59,82),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9848 {"pmxvf16ger2np", PMMIRR|XX3(59,82),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9849 {"pmdmxvf16gerx2np",PMMIRR|XX3(59,83), P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9850 {"pmdmxvf32gernp",PMMIRR|XX3(59,90),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9851 {"pmxvf32gernp",  PMMIRR|XX3(59,90),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9852 {"pmdmxvbf16gerx2",PMMIRR|XX3(59,91),  P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9853 {"pmdmxvi8gerx4spp",PMMIRR|XX3(59,98), P_GERX4_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
   9854 {"pmdmxvi8ger4spp",PMMIRR|XX3(59,99),  P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   9855 {"pmxvi8ger4spp", PMMIRR|XX3(59,99),   P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   9856 {"pmdmxvi16ger2pp",PMMIRR|XX3(59,107), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9857 {"pmxvi16ger2pp", PMMIRR|XX3(59,107),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9858 {"pmdmxvbf16ger2np",PMMIRR|XX3(59,114),P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9859 {"pmxvbf16ger2np",PMMIRR|XX3(59,114),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9860 {"pmdmxvbf16gerx2np",PMMIRR|XX3(59,115),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9861 {"pmdmxvf64gernp",PMMIRR|XX3(59,122),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9862 {"pmxvf64gernp",  PMMIRR|XX3(59,122),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9863 {"pmdmxvf16ger2pn",PMMIRR|XX3(59,146), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9864 {"pmxvf16ger2pn", PMMIRR|XX3(59,146),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9865 {"pmdmxvf16gerx2pn",PMMIRR|XX3(59,147),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9866 {"pmdmxvf32gerpn",PMMIRR|XX3(59,154),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9867 {"pmxvf32gerpn",  PMMIRR|XX3(59,154),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9868 {"pmdmxvbf16ger2pn",PMMIRR|XX3(59,178),P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9869 {"pmxvbf16ger2pn",PMMIRR|XX3(59,178),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9870 {"pmdmxvbf16gerx2pn",PMMIRR|XX3(59,179),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9871 {"pmdmxvf64gerpn",PMMIRR|XX3(59,186),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9872 {"pmxvf64gerpn",  PMMIRR|XX3(59,186),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9873 {"pmdmxvf16gerx2nn",PMMIRR|XX3(59,202),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9874 {"pmdmxvf16ger2nn",PMMIRR|XX3(59,210), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9875 {"pmxvf16ger2nn", PMMIRR|XX3(59,210),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9876 {"pmdmxvf32gernn",PMMIRR|XX3(59,218),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9877 {"pmxvf32gernn",  PMMIRR|XX3(59,218),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   9878 {"pmdmxvbf16gerx2nn",PMMIRR|XX3(59,234),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   9879 {"pmdmxvbf16ger2nn",PMMIRR|XX3(59,242),P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9880 {"pmxvbf16ger2nn",PMMIRR|XX3(59,242),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   9881 {"pmdmxvf64gernn",PMMIRR|XX3(59,250),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9882 {"pmxvf64gernn",  PMMIRR|XX3(59,250),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   9883 {"pstq",	  P8LS|OP(60),	       P_D_MASK,	POWER10, 0,	{RSQ, D34, PRA0, PCREL}},
   9884 {"pstd",	  P8LS|OP(61),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   9885 {"pstxvp",	  P8LS|OP(62),	       P_D_MASK,	POWER10, 0,	{XSP, D34, PRA0, PCREL}},
   9886 };
   9887 
   9888 const unsigned int prefix_num_opcodes = ARRAY_SIZE (prefix_opcodes);
   9889 
   9890 /* The VLE opcode table.
   9892 
   9893    The format of this opcode table is the same as the main opcode table.  */
   9894 
   9895 const struct powerpc_opcode vle_opcodes[] = {
   9896 {"se_illegal",	C(0),		C_MASK,		PPCVLE,	0,		{}},
   9897 {"se_isync",	C(1),		C_MASK,		PPCVLE,	0,		{}},
   9898 {"se_sc",	C(2),		C_MASK,		PPCVLE,	0,		{}},
   9899 {"se_blr",	C_LK(2,0),	C_LK_MASK,	PPCVLE,	0,		{}},
   9900 {"se_blrl",	C_LK(2,1),	C_LK_MASK,	PPCVLE,	0,		{}},
   9901 {"se_bctr",	C_LK(3,0),	C_LK_MASK,	PPCVLE,	0,		{}},
   9902 {"se_bctrl",	C_LK(3,1),	C_LK_MASK,	PPCVLE,	0,		{}},
   9903 {"se_rfi",	C(8),		C_MASK,		PPCVLE,	0,		{}},
   9904 {"se_rfci",	C(9),		C_MASK,		PPCVLE,	0,		{}},
   9905 {"se_rfdi",	C(10),		C_MASK,		PPCVLE,	0,		{}},
   9906 /* PPCRFMCI in the following does not enable the instruction for any
   9907    PPC_OPCODE_RFMCI supporting cpu as vle_opcodes are all added to the
   9908    assembler hash table or searched by the disassembler under control
   9909    of PPC_OPCODE_VLE.  It's there to set apuinfo.  */
   9910 {"se_rfmci",	C(11),		C_MASK, PPCRFMCI|PPCVLE, 0,		{}},
   9911 {"se_rfgi",	C(12),		C_MASK,		PPCVLE,	0,		{}},
   9912 {"se_not",	SE_R(0,2),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9913 {"se_neg",	SE_R(0,3),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9914 {"se_mflr",	SE_R(0,8),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9915 {"se_mtlr",	SE_R(0,9),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9916 {"se_mfctr",	SE_R(0,10),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9917 {"se_mtctr",	SE_R(0,11),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9918 {"se_extzb",	SE_R(0,12),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9919 {"se_extsb",	SE_R(0,13),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9920 {"se_extzh",	SE_R(0,14),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9921 {"se_extsh",	SE_R(0,15),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   9922 {"se_mr",	SE_RR(0,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9923 {"se_mtar",	SE_RR(0,2),	SE_RR_MASK,	PPCVLE,	0,		{ARX, RY}},
   9924 {"se_mfar",	SE_RR(0,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, ARY}},
   9925 {"se_add",	SE_RR(1,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9926 {"se_mullw",	SE_RR(1,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9927 {"se_sub",	SE_RR(1,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9928 {"se_subf",	SE_RR(1,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9929 {"se_cmp",	SE_RR(3,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9930 {"se_cmpl",	SE_RR(3,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9931 {"se_cmph",	SE_RR(3,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9932 {"se_cmphl",	SE_RR(3,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9933 
   9934 /* by major opcode */
   9935 {"e_cmpi",	SCI8BF(6,0,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   9936 {"e_cmpwi",	SCI8BF(6,0,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   9937 {"e_cmpli",	SCI8BF(6,1,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   9938 {"e_cmplwi",	SCI8BF(6,1,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   9939 {"e_addi",	SCI8(6,16),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9940 {"e_subi",	SCI8(6,16),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8N}},
   9941 {"e_addi.",	SCI8(6,17),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9942 {"e_addic",	SCI8(6,18),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9943 {"e_subic",	SCI8(6,18),	SCI8_MASK,	PPCVLE,	EXT,		{RT, RA, SCLSCI8N}},
   9944 {"e_addic.",	SCI8(6,19),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9945 {"e_subic.",	SCI8(6,19),	SCI8_MASK,	PPCVLE,	EXT,		{RT, RA, SCLSCI8N}},
   9946 {"e_mulli",	SCI8(6,20),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9947 {"e_subfic",	SCI8(6,22),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9948 {"e_subfic.",	SCI8(6,23),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   9949 {"e_andi",	SCI8(6,24),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   9950 {"e_andi.",	SCI8(6,25),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   9951 {"e_nop",	SCI8(6,26),	0xffffffff,	PPCVLE,	EXT,		{0}},
   9952 {"e_ori",	SCI8(6,26),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   9953 {"e_ori.",	SCI8(6,27),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   9954 {"e_xori",	SCI8(6,28),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   9955 {"e_xori.",	SCI8(6,29),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   9956 {"e_lbzu",	OPVUP(6,0),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9957 {"e_lhau",	OPVUP(6,3),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9958 {"e_lhzu",	OPVUP(6,1),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9959 {"e_lmw",	OPVUP(6,8),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9960 {"e_lwzu",	OPVUP(6,2),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9961 {"e_stbu",	OPVUP(6,4),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9962 {"e_sthu",	OPVUP(6,5),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9963 {"e_stwu",	OPVUP(6,6),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9964 {"e_stmw",	OPVUP(6,9),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   9965 {"e_lmvgprw",	OPVUPRT(6,16,0),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9966 {"e_ldmvgprw",	OPVUPRT(6,16,0),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9967 {"e_stmvgprw",	OPVUPRT(6,17,0),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9968 {"e_lmvsprw",	OPVUPRT(6,16,1),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9969 {"e_ldmvsprw",	OPVUPRT(6,16,1),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9970 {"e_stmvsprw",	OPVUPRT(6,17,1),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9971 {"e_lmvsrrw",	OPVUPRT(6,16,4),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9972 {"e_ldmvsrrw",	OPVUPRT(6,16,4),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9973 {"e_stmvsrrw",	OPVUPRT(6,17,4),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9974 {"e_lmvcsrrw",	OPVUPRT(6,16,5),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9975 {"e_ldmvcsrrw",	OPVUPRT(6,16,5),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9976 {"e_stmvcsrrw",	OPVUPRT(6,17,5),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9977 {"e_lmvdsrrw",	OPVUPRT(6,16,6),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9978 {"e_ldmvdsrrw",	OPVUPRT(6,16,6),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9979 {"e_stmvdsrrw",	OPVUPRT(6,17,6),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9980 {"e_lmvmcsrrw",	OPVUPRT(6,16,7),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9981 {"e_stmvmcsrrw",OPVUPRT(6,17,7),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   9982 {"e_add16i",	OP(7),		OP_MASK,	PPCVLE,	0,		{RT, RA, SI}},
   9983 {"e_la",	OP(7),		OP_MASK,	PPCVLE,	EXT,		{RT, D, RA0}},
   9984 {"e_sub16i",	OP(7),		OP_MASK,	PPCVLE,	EXT,		{RT, RA, NSI}},
   9985 
   9986 {"se_addi",	SE_IM5(8,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   9987 {"se_cmpli",	SE_IM5(8,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   9988 {"se_subi",	SE_IM5(9,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   9989 {"se_subi.",	SE_IM5(9,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   9990 {"se_cmpi",	SE_IM5(10,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   9991 {"se_bmaski",	SE_IM5(11,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   9992 {"se_andi",	SE_IM5(11,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   9993 
   9994 {"e_lbz",	OP(12),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   9995 {"e_stb",	OP(13),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   9996 {"e_lha",	OP(14),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   9997 
   9998 {"se_srw",	SE_RR(16,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   9999 {"se_sraw",	SE_RR(16,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10000 {"se_slw",	SE_RR(16,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10001 {"se_nop",	SE_RR(17,0),	0xffff,		PPCVLE,	EXT,		{0}},
   10002 {"se_or",	SE_RR(17,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10003 {"se_andc",	SE_RR(17,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10004 {"se_and",	SE_RR(17,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10005 {"se_and.",	SE_RR(17,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10006 {"se_li",	IM7(9),		IM7_MASK,	PPCVLE,	0,		{RX, UI7}},
   10007 
   10008 {"e_lwz",	OP(20),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10009 {"e_stw",	OP(21),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10010 {"e_lhz",	OP(22),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10011 {"e_sth",	OP(23),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10012 
   10013 {"se_bclri",	SE_IM5(24,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10014 {"se_bgeni",	SE_IM5(24,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10015 {"se_bseti",	SE_IM5(25,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10016 {"se_btsti",	SE_IM5(25,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10017 {"se_srwi",	SE_IM5(26,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10018 {"se_srawi",	SE_IM5(26,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10019 {"se_slwi",	SE_IM5(27,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10020 
   10021 {"e_lis",	I16L(28,28),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10022 {"e_and2is.",	I16L(28,29),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10023 {"e_or2is",	I16L(28,26),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10024 {"e_and2i.",	I16L(28,25),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10025 {"e_or2i",	I16L(28,24),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10026 {"e_cmphl16i",	IA16(28,23),	IA16_MASK,	PPCVLE,	0,		{RA, VLEUIMM}},
   10027 {"e_cmph16i",	IA16(28,22),	IA16_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10028 {"e_cmpl16i",	I16A(28,21),	I16A_MASK,	PPCVLE,	0,		{RA, VLEUIMM}},
   10029 {"e_mull2i",	I16A(28,20),	I16A_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10030 {"e_cmp16i",	IA16(28,19),	IA16_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10031 {"e_sub2is",	I16A(28,18),	I16A_MASK,	PPCVLE,	EXT,		{RA, VLENSIMM}},
   10032 {"e_add2is",	I16A(28,18),	I16A_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10033 {"e_sub2i.",	I16A(28,17),	I16A_MASK,	PPCVLE,	EXT,		{RA, VLENSIMM}},
   10034 {"e_add2i.",	I16A(28,17),	I16A_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10035 {"e_li",	LI20(28,0),	LI20_MASK,	PPCVLE,	0,		{RT, IMM20}},
   10036 {"e_rlwimi",	M(29,0),	M_MASK,		PPCVLE,	0,		{RA, RS, SH, MB, ME}},
   10037 {"e_inslwi",	M(29,0),	M_MASK,		PPCVLE, EXT,		{RA, RS, ILWn, ILWb}},
   10038 {"e_insrwi",	M(29,0),	M_MASK,		PPCVLE, EXT,		{RA, RS, IRWn, IRWb}},
   10039 {"e_rotlwi",	MME(29,31,1),	MMBME_MASK,	PPCVLE, EXT,		{RA, RS, SH}},
   10040 {"e_rotrwi",	MME(29,31,1),	MMBME_MASK,	PPCVLE, EXT,		{RA, RS, RRWn}},
   10041 {"e_clrlwi",	MME(29,31,1),	MSHME_MASK,	PPCVLE, EXT,		{RA, RS, MB}},
   10042 {"e_clrrwi",	M(29,1),	MSHMB_MASK,	PPCVLE, EXT,		{RA, RS, CRWn}},
   10043 {"e_rlwinm",	M(29,1),	M_MASK,		PPCVLE,	0,		{RA, RS, SH, MBE, ME}},
   10044 {"e_extlwi",	M(29,1),	MMB_MASK,	PPCVLE, EXT,		{RA, RS, ELWn, SH}},
   10045 {"e_extrwi",	MME(29,31,1),	MME_MASK,	PPCVLE, EXT,		{RA, RS, ERWn, ERWb}},
   10046 {"e_clrlslwi",	M(29,1),	M_MASK,		PPCVLE, EXT,		{RA, RS, CSLWb, CSLWn}},
   10047 {"e_b",		BD24(30,0,0),	BD24_MASK,	PPCVLE,	0,		{B24}},
   10048 {"e_bl",	BD24(30,0,1),	BD24_MASK,	PPCVLE,	0,		{B24}},
   10049 {"e_bdnz",	EBD15(30,8,BO32DNZ,0),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10050 {"e_bdnzl",	EBD15(30,8,BO32DNZ,1),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10051 {"e_bdz",	EBD15(30,8,BO32DZ,0),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10052 {"e_bdzl",	EBD15(30,8,BO32DZ,1),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10053 {"e_bge",	EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10054 {"e_bgel",	EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10055 {"e_bnl",	EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10056 {"e_bnll",	EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10057 {"e_blt",	EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10058 {"e_bltl",	EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10059 {"e_bgt",	EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10060 {"e_bgtl",	EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10061 {"e_ble",	EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10062 {"e_blel",	EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10063 {"e_bng",	EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10064 {"e_bngl",	EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10065 {"e_bne",	EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10066 {"e_bnel",	EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10067 {"e_beq",	EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10068 {"e_beql",	EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10069 {"e_bso",	EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10070 {"e_bsol",	EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10071 {"e_bun",	EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10072 {"e_bunl",	EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10073 {"e_bns",	EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10074 {"e_bnsl",	EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10075 {"e_bnu",	EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10076 {"e_bnul",	EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10077 {"e_bc",	BD15(30,8,0),	BD15_MASK,	PPCVLE,	0,		{BO32, BI32, B15}},
   10078 {"e_bcl",	BD15(30,8,1),	BD15_MASK,	PPCVLE,	0,		{BO32, BI32, B15}},
   10079 
   10080 {"e_bf",	EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10081 {"e_bfl",	EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10082 {"e_bt",	EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10083 {"e_btl",	EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10084 
   10085 {"e_cmph",	X(31,14),	X_MASK,		PPCVLE,	0,		{CRD, RA, RB}},
   10086 {"e_sc",	X(31,36),	XRTRA_MASK,	PPCVLE,	0,		{ELEV}},
   10087 {"e_cmphl",	X(31,46),	X_MASK,		PPCVLE,	0,		{CRD, RA, RB}},
   10088 {"e_crandc",	XL(31,129),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10089 {"e_crnand",	XL(31,225),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10090 {"e_crnot",	XL(31,33),	XL_MASK,	PPCVLE,	EXT,		{BT, BAB}},
   10091 {"e_crnor",	XL(31,33),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10092 {"e_crclr",	XL(31,193),	XL_MASK,	PPCVLE,	EXT,		{BTAB}},
   10093 {"e_crxor",	XL(31,193),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10094 {"e_mcrf",	XL(31,16),	XL_MASK,	PPCVLE,	0,		{CRD, CR}},
   10095 {"e_slwi",	EX(31,112),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10096 {"e_slwi.",	EX(31,113),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10097 
   10098 {"e_crand",	XL(31,257),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10099 
   10100 {"e_rlw",	EX(31,560),	EX_MASK,	PPCVLE,	0,		{RA, RS, RB}},
   10101 {"e_rlw.",	EX(31,561),	EX_MASK,	PPCVLE,	0,		{RA, RS, RB}},
   10102 
   10103 {"e_crset",	XL(31,289),	XL_MASK,	PPCVLE,	EXT,		{BTAB}},
   10104 {"e_creqv",	XL(31,289),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10105 
   10106 {"e_rlwi",	EX(31,624),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10107 {"e_rlwi.",	EX(31,625),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10108 
   10109 {"e_crorc",	XL(31,417),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10110 
   10111 {"e_crmove",	XL(31,449),	XL_MASK,	PPCVLE,	EXT,		{BT, BAB}},
   10112 {"e_cror",	XL(31,449),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10113 
   10114 {"mtmas1",	XSPR(31,467,625), XSPR_MASK,	PPCVLE,	EXT,		{RS}},
   10115 
   10116 {"e_srwi",	EX(31,1136),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10117 {"e_srwi.",	EX(31,1137),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10118 
   10119 {"se_lbz",	SD4(8),		SD4_MASK,	PPCVLE,	0,		{RZ, SE_SD, RX}},
   10120 
   10121 {"se_stb",	SD4(9),		SD4_MASK,	PPCVLE,	0,		{RZ, SE_SD, RX}},
   10122 
   10123 {"se_lhz",	SD4(10),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDH, RX}},
   10124 
   10125 {"se_sth",	SD4(11),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDH, RX}},
   10126 
   10127 {"se_lwz",	SD4(12),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDW, RX}},
   10128 
   10129 {"se_stw",	SD4(13),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDW, RX}},
   10130 
   10131 {"se_bge",	EBD8IO(28,0,0),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10132 {"se_bnl",	EBD8IO(28,0,0),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10133 {"se_ble",	EBD8IO(28,0,1),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10134 {"se_bng",	EBD8IO(28,0,1),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10135 {"se_bne",	EBD8IO(28,0,2),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10136 {"se_bns",	EBD8IO(28,0,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10137 {"se_bnu",	EBD8IO(28,0,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10138 {"se_bf",	EBD8IO(28,0,0),	EBD8IO2_MASK,	PPCVLE,	EXT,		{BI16, B8}},
   10139 {"se_blt",	EBD8IO(28,1,0),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10140 {"se_bgt",	EBD8IO(28,1,1),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10141 {"se_beq",	EBD8IO(28,1,2),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10142 {"se_bso",	EBD8IO(28,1,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10143 {"se_bun",	EBD8IO(28,1,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10144 {"se_bt",	EBD8IO(28,1,0),	EBD8IO2_MASK,	PPCVLE,	EXT,		{BI16, B8}},
   10145 {"se_bc",	BD8IO(28),	BD8IO_MASK,	PPCVLE,	0,		{BO16, BI16, B8}},
   10146 {"se_b",	BD8(58,0,0),	BD8_MASK,	PPCVLE,	0,		{B8}},
   10147 {"se_bl",	BD8(58,0,1),	BD8_MASK,	PPCVLE,	0,		{B8}},
   10148 };
   10149 
   10150 const unsigned int vle_num_opcodes = ARRAY_SIZE (vle_opcodes);
   10151 
   10152 const struct powerpc_opcode lsp_opcodes[] = {
   10153 {"zvaddih",	      VX(4, 0x200), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10154 {"zvsubifh",	      VX(4, 0x201), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10155 {"zvaddh",	      VX(4, 0x204), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10156 {"zvsubfh",	      VX(4, 0x205), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10157 {"zvaddsubfh",	      VX(4, 0x206), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10158 {"zvsubfaddh",	      VX(4, 0x207), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10159 {"zvaddhx",	      VX(4, 0x20C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10160 {"zvsubfhx",	      VX(4, 0x20D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10161 {"zvaddsubfhx",	      VX(4, 0x20E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10162 {"zvsubfaddhx",	      VX(4, 0x20F), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10163 {"zaddwus",	      VX(4, 0x210), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10164 {"zsubfwus",	      VX(4, 0x211), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10165 {"zaddwss",	      VX(4, 0x212), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10166 {"zsubfwss",	      VX(4, 0x213), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10167 {"zvaddhus",	      VX(4, 0x214), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10168 {"zvsubfhus",	      VX(4, 0x215), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10169 {"zvaddhss",	      VX(4, 0x216), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10170 {"zvsubfhss",	      VX(4, 0x217), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10171 {"zvaddsubfhss",      VX(4, 0x21A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10172 {"zvsubfaddhss",      VX(4, 0x21B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10173 {"zvaddhxss",	      VX(4, 0x21C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10174 {"zvsubfhxss",	      VX(4, 0x21D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10175 {"zvaddsubfhxss",     VX(4, 0x21E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10176 {"zvsubfaddhxss",     VX(4, 0x21F), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10177 {"zaddheuw",	      VX(4, 0x220), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10178 {"zsubfheuw",	      VX(4, 0x221), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10179 {"zaddhesw",	      VX(4, 0x222), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10180 {"zsubfhesw",	      VX(4, 0x223), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10181 {"zaddhouw",	      VX(4, 0x224), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10182 {"zsubfhouw",	      VX(4, 0x225), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10183 {"zaddhosw",	      VX(4, 0x226), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10184 {"zsubfhosw",	      VX(4, 0x227), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10185 {"zvmergehih",	      VX(4, 0x22C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10186 {"zvmergeloh",	      VX(4, 0x22D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10187 {"zvmergehiloh",      VX(4, 0x22E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10188 {"zvmergelohih",      VX(4, 0x22F), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10189 {"zvcmpgthu",	      VX(4, 0x230), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10190 {"zvcmpgths",	      VX(4, 0x230), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10191 {"zvcmplthu",	      VX(4, 0x231), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10192 {"zvcmplths",	      VX(4, 0x231), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10193 {"zvcmpeqh",	      VX(4, 0x232), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10194 {"zpkswgshfrs",	      VX(4, 0x238), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10195 {"zpkswgswfrs",	      VX(4, 0x239), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10196 {"zvpkshgwshfrs",     VX(4, 0x23A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10197 {"zvpkswshfrs",	      VX(4, 0x23B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10198 {"zvpkswuhs",	      VX(4, 0x23C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10199 {"zvpkswshs",	      VX(4, 0x23D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10200 {"zvpkuwuhs",	      VX(4, 0x23E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10201 {"zvsplatih",	      VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0,		{RD, SIMM}},
   10202 {"zvsplatfih",	      VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0,		{RD, SIMM}},
   10203 {"zcntlsw",	      VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10204 {"zvcntlzh",	      VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10205 {"zvcntlsh",	      VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10206 {"znegws",	      VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10207 {"zvnegh",	      VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10208 {"zvneghs",	      VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10209 {"zvnegho",	      VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10210 {"zvneghos",	      VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10211 {"zrndwh",	      VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10212 {"zrndwhss",	      VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10213 {"zvabsh",	      VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10214 {"zvabshs",	      VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10215 {"zabsw",	      VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10216 {"zabsws",	      VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10217 {"zsatswuw",	      VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10218 {"zsatuwsw",	      VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10219 {"zsatswuh",	      VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10220 {"zsatswsh",	      VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10221 {"zvsatshuh",	      VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10222 {"zvsatuhsh",	      VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10223 {"zsatuwuh",	      VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10224 {"zsatuwsh",	      VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10225 {"zsatsduw",	      VX(4, 0x260), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10226 {"zsatsdsw",	      VX(4, 0x261), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10227 {"zsatuduw",	      VX(4, 0x262), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10228 {"zvselh",	      VX(4, 0x264), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10229 {"zxtrw",	      VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0,		{RD, RA, RB, VX_OFF}},
   10230 {"zbrminc",	      VX(4, 0x268), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10231 {"zcircinc",	      VX(4, 0x269), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10232 {"zdivwsf",	      VX(4, 0x26B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10233 {"zvsrhu",	      VX(4, 0x270), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10234 {"zvsrhs",	      VX(4, 0x271), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10235 {"zvsrhiu",	      VX(4, 0x272), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10236 {"zvsrhis",	      VX(4, 0x273), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10237 {"zvslh",	      VX(4, 0x274), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10238 {"zvrlh",	      VX(4, 0x275), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10239 {"zvslhi",	      VX(4, 0x276), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10240 {"zvrlhi",	      VX(4, 0x277), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10241 {"zvslhus",	      VX(4, 0x278), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10242 {"zvslhss",	      VX(4, 0x279), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10243 {"zvslhius",	      VX(4, 0x27A), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10244 {"zvslhiss",	      VX(4, 0x27B), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10245 {"zslwus",	      VX(4, 0x27C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10246 {"zslwss",	      VX(4, 0x27D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10247 {"zslwius",	      VX(4, 0x27E), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10248 {"zslwiss",	      VX(4, 0x27F), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10249 {"zlddx",	      VX(4, 0x300), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10250 {"zldd",	      VX(4, 0x301), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8, RA}},
   10251 {"zldwx",	      VX(4, 0x302), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10252 {"zldw",	      VX(4, 0x303), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8, RA}},
   10253 {"zldhx",	      VX(4, 0x304), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10254 {"zldh",	      VX(4, 0x305), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8, RA}},
   10255 {"zlwgsfdx",	      VX(4, 0x308), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10256 {"zlwgsfd",	      VX(4, 0x309), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10257 {"zlwwosdx",	      VX(4, 0x30A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10258 {"zlwwosd",	      VX(4, 0x30B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10259 {"zlwhsplatwdx",      VX(4, 0x30C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10260 {"zlwhsplatwd",	      VX(4, 0x30D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10261 {"zlwhsplatdx",	      VX(4, 0x30E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10262 {"zlwhsplatd",	      VX(4, 0x30F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10263 {"zlwhgwsfdx",	      VX(4, 0x310), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10264 {"zlwhgwsfd",	      VX(4, 0x311), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10265 {"zlwhedx",	      VX(4, 0x312), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10266 {"zlwhed",	      VX(4, 0x313), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10267 {"zlwhosdx",	      VX(4, 0x314), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10268 {"zlwhosd",	      VX(4, 0x315), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10269 {"zlwhoudx",	      VX(4, 0x316), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10270 {"zlwhoud",	      VX(4, 0x317), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10271 {"zlwhx",	      VX(4, 0x318), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10272 {"zlwh",	      VX(4, 0x319), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4, RA}},
   10273 {"zlwwx",	      VX(4, 0x31A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10274 {"zlww",	      VX(4, 0x31B), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4, RA}},
   10275 {"zlhgwsfx",	      VX(4, 0x31C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10276 {"zlhgwsf",	      VX(4, 0x31D), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10277 {"zlhhsplatx",	      VX(4, 0x31E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10278 {"zlhhsplat",	      VX(4, 0x31F), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10279 {"zstddx",	      VX(4, 0x320), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10280 {"zstdd",	      VX(4, 0x321), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8, RA}},
   10281 {"zstdwx",	      VX(4, 0x322), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10282 {"zstdw",	      VX(4, 0x323), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8, RA}},
   10283 {"zstdhx",	      VX(4, 0x324), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10284 {"zstdh",	      VX(4, 0x325), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8, RA}},
   10285 {"zstwhedx",	      VX(4, 0x328), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10286 {"zstwhed",	      VX(4, 0x329), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4, RA}},
   10287 {"zstwhodx",	      VX(4, 0x32A), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10288 {"zstwhod",	      VX(4, 0x32B), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4, RA}},
   10289 {"zlhhex",	      VX(4, 0x330), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10290 {"zlhhe",	      VX(4, 0x331), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10291 {"zlhhosx",	      VX(4, 0x332), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10292 {"zlhhos",	      VX(4, 0x333), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10293 {"zlhhoux",	      VX(4, 0x334), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10294 {"zlhhou",	      VX(4, 0x335), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10295 {"zsthex",	      VX(4, 0x338), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10296 {"zsthe",	      VX(4, 0x339), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2, RA}},
   10297 {"zsthox",	      VX(4, 0x33A), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10298 {"zstho",	      VX(4, 0x33B), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2, RA}},
   10299 {"zstwhx",	      VX(4, 0x33C), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10300 {"zstwh",	      VX(4, 0x33D), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4, RA}},
   10301 {"zstwwx",	      VX(4, 0x33E), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10302 {"zstww",	      VX(4, 0x33F), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4, RA}},
   10303 {"zlddmx",	      VX(4, 0x340), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10304 {"zlddu",	      VX(4, 0x341), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8_EX0, RA}},
   10305 {"zldwmx",	      VX(4, 0x342), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10306 {"zldwu",	      VX(4, 0x343), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8_EX0, RA}},
   10307 {"zldhmx",	      VX(4, 0x344), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10308 {"zldhu",	      VX(4, 0x345), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8_EX0, RA}},
   10309 {"zlwgsfdmx",	      VX(4, 0x348), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10310 {"zlwgsfdu",	      VX(4, 0x349), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10311 {"zlwwosdmx",	      VX(4, 0x34A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10312 {"zlwwosdu",	      VX(4, 0x34B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10313 {"zlwhsplatwdmx",     VX(4, 0x34C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10314 {"zlwhsplatwdu",      VX(4, 0x34D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10315 {"zlwhsplatdmx",      VX(4, 0x34E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10316 {"zlwhsplatdu",	      VX(4, 0x34F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10317 {"zlwhgwsfdmx",	      VX(4, 0x350), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10318 {"zlwhgwsfdu",	      VX(4, 0x351), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10319 {"zlwhedmx",	      VX(4, 0x352), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10320 {"zlwhedu",	      VX(4, 0x353), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10321 {"zlwhosdmx",	      VX(4, 0x354), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10322 {"zlwhosdu",	      VX(4, 0x355), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10323 {"zlwhoudmx",	      VX(4, 0x356), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10324 {"zlwhoudu",	      VX(4, 0x357), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10325 {"zlwhmx",	      VX(4, 0x358), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10326 {"zlwhu",	      VX(4, 0x359), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4_EX0, RA}},
   10327 {"zlwwmx",	      VX(4, 0x35A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10328 {"zlwwu",	      VX(4, 0x35B), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4_EX0, RA}},
   10329 {"zlhgwsfmx",	      VX(4, 0x35C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10330 {"zlhgwsfu",	      VX(4, 0x35D), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10331 {"zlhhsplatmx",	      VX(4, 0x35E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10332 {"zlhhsplatu",	      VX(4, 0x35F), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10333 {"zstddmx",	      VX(4, 0x360), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10334 {"zstddu",	      VX(4, 0x361), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_8_EX0, RA}},
   10335 {"zstdwmx",	      VX(4, 0x362), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10336 {"zstdwu",	      VX(4, 0x363), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8_EX0, RA}},
   10337 {"zstdhmx",	      VX(4, 0x364), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10338 {"zstdhu",	      VX(4, 0x365), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8_EX0, RA}},
   10339 {"zstwhedmx",	      VX(4, 0x368), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10340 {"zstwhedu",	      VX(4, 0x369), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4_EX0, RA}},
   10341 {"zstwhodmx",	      VX(4, 0x36A), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10342 {"zstwhodu",	      VX(4, 0x36B), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4_EX0, RA}},
   10343 {"zlhhemx",	      VX(4, 0x370), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10344 {"zlhheu",	      VX(4, 0x371), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10345 {"zlhhosmx",	      VX(4, 0x372), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10346 {"zlhhosu",	      VX(4, 0x373), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10347 {"zlhhoumx",	      VX(4, 0x374), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10348 {"zlhhouu",	      VX(4, 0x375), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10349 {"zsthemx",	      VX(4, 0x378), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10350 {"zstheu",	      VX(4, 0x379), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2_EX0, RA}},
   10351 {"zsthomx",	      VX(4, 0x37A), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10352 {"zsthou",	      VX(4, 0x37B), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2_EX0, RA}},
   10353 {"zstwhmx",	      VX(4, 0x37C), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10354 {"zstwhu",	      VX(4, 0x37D), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4_EX0, RA}},
   10355 {"zstwwmx",	      VX(4, 0x37E), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10356 {"zstwwu",	      VX(4, 0x37F), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4_EX0, RA}},
   10357 {"zaddwgui",	      VX(4, 0x460), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10358 {"zsubfwgui",	      VX(4, 0x461), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10359 {"zaddd",	      VX(4, 0x462), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10360 {"zsubfd",	      VX(4, 0x463), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10361 {"zvaddsubfw",	      VX(4, 0x464), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10362 {"zvsubfaddw",	      VX(4, 0x465), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10363 {"zvaddw",	      VX(4, 0x466), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10364 {"zvsubfw",	      VX(4, 0x467), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10365 {"zaddwgsi",	      VX(4, 0x468), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10366 {"zsubfwgsi",	      VX(4, 0x469), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10367 {"zadddss",	      VX(4, 0x46A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10368 {"zsubfdss",	      VX(4, 0x46B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10369 {"zvaddsubfwss",      VX(4, 0x46C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10370 {"zvsubfaddwss",      VX(4, 0x46D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10371 {"zvaddwss",	      VX(4, 0x46E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10372 {"zvsubfwss",	      VX(4, 0x46F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10373 {"zaddwgsf",	      VX(4, 0x470), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10374 {"zsubfwgsf",	      VX(4, 0x471), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10375 {"zadddus",	      VX(4, 0x472), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10376 {"zsubfdus",	      VX(4, 0x473), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10377 {"zvaddwus",	      VX(4, 0x476), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10378 {"zvsubfwus",	      VX(4, 0x477), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10379 {"zvunpkhgwsf",	      VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0,		{RD_EVEN, RA}},
   10380 {"zvunpkhsf",	      VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0,		{RD_EVEN, RA}},
   10381 {"zvunpkhui",	      VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0,	{RD_EVEN, RA}},
   10382 {"zvunpkhsi",	      VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0,	{RD_EVEN, RA}},
   10383 {"zunpkwgsf",	      VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0,	{RD_EVEN, RA}},
   10384 {"zvdotphgwasmf",     VX(4, 0x488), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10385 {"zvdotphgwasmfr",    VX(4, 0x489), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10386 {"zvdotphgwasmfaa",   VX(4, 0x48A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10387 {"zvdotphgwasmfraa",  VX(4, 0x48B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10388 {"zvdotphgwasmfan",   VX(4, 0x48C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10389 {"zvdotphgwasmfran",  VX(4, 0x48D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10390 {"zvmhulgwsmf",	      VX(4, 0x490), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10391 {"zvmhulgwsmfr",      VX(4, 0x491), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10392 {"zvmhulgwsmfaa",     VX(4, 0x492), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10393 {"zvmhulgwsmfraa",    VX(4, 0x493), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10394 {"zvmhulgwsmfan",     VX(4, 0x494), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10395 {"zvmhulgwsmfran",    VX(4, 0x495), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10396 {"zvmhulgwsmfanp",    VX(4, 0x496), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10397 {"zvmhulgwsmfranp",   VX(4, 0x497), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10398 {"zmhegwsmf",	      VX(4, 0x498), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10399 {"zmhegwsmfr",	      VX(4, 0x499), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10400 {"zmhegwsmfaa",	      VX(4, 0x49A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10401 {"zmhegwsmfraa",      VX(4, 0x49B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10402 {"zmhegwsmfan",	      VX(4, 0x49C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10403 {"zmhegwsmfran",      VX(4, 0x49D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10404 {"zvdotphxgwasmf",    VX(4, 0x4A8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10405 {"zvdotphxgwasmfr",   VX(4, 0x4A9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10406 {"zvdotphxgwasmfaa",  VX(4, 0x4AA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10407 {"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10408 {"zvdotphxgwasmfan",  VX(4, 0x4AC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10409 {"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10410 {"zvmhllgwsmf",	      VX(4, 0x4B0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10411 {"zvmhllgwsmfr",      VX(4, 0x4B1), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10412 {"zvmhllgwsmfaa",     VX(4, 0x4B2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10413 {"zvmhllgwsmfraa",    VX(4, 0x4B3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10414 {"zvmhllgwsmfan",     VX(4, 0x4B4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10415 {"zvmhllgwsmfran",    VX(4, 0x4B5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10416 {"zvmhllgwsmfanp",    VX(4, 0x4B6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10417 {"zvmhllgwsmfranp",   VX(4, 0x4B7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10418 {"zmheogwsmf",	      VX(4, 0x4B8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10419 {"zmheogwsmfr",	      VX(4, 0x4B9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10420 {"zmheogwsmfaa",      VX(4, 0x4BA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10421 {"zmheogwsmfraa",     VX(4, 0x4BB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10422 {"zmheogwsmfan",      VX(4, 0x4BC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10423 {"zmheogwsmfran",     VX(4, 0x4BD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10424 {"zvdotphgwssmf",     VX(4, 0x4C8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10425 {"zvdotphgwssmfr",    VX(4, 0x4C9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10426 {"zvdotphgwssmfaa",   VX(4, 0x4CA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10427 {"zvdotphgwssmfraa",  VX(4, 0x4CB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10428 {"zvdotphgwssmfan",   VX(4, 0x4CC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10429 {"zvdotphgwssmfran",  VX(4, 0x4CD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10430 {"zvmhuugwsmf",	      VX(4, 0x4D0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10431 {"zvmhuugwsmfr",      VX(4, 0x4D1), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10432 {"zvmhuugwsmfaa",     VX(4, 0x4D2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10433 {"zvmhuugwsmfraa",    VX(4, 0x4D3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10434 {"zvmhuugwsmfan",     VX(4, 0x4D4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10435 {"zvmhuugwsmfran",    VX(4, 0x4D5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10436 {"zvmhuugwsmfanp",    VX(4, 0x4D6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10437 {"zvmhuugwsmfranp",   VX(4, 0x4D7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10438 {"zmhogwsmf",	      VX(4, 0x4D8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10439 {"zmhogwsmfr",	      VX(4, 0x4D9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10440 {"zmhogwsmfaa",	      VX(4, 0x4DA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10441 {"zmhogwsmfraa",      VX(4, 0x4DB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10442 {"zmhogwsmfan",	      VX(4, 0x4DC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10443 {"zmhogwsmfran",      VX(4, 0x4DD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10444 {"zvmhxlgwsmf",	      VX(4, 0x4F0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10445 {"zvmhxlgwsmfr",      VX(4, 0x4F1), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10446 {"zvmhxlgwsmfaa",     VX(4, 0x4F2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10447 {"zvmhxlgwsmfraa",    VX(4, 0x4F3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10448 {"zvmhxlgwsmfan",     VX(4, 0x4F4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10449 {"zvmhxlgwsmfran",    VX(4, 0x4F5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10450 {"zvmhxlgwsmfanp",    VX(4, 0x4F6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10451 {"zvmhxlgwsmfranp",   VX(4, 0x4F7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10452 {"zmhegui",	      VX(4, 0x500), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10453 {"zvdotphgaui",	      VX(4, 0x501), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10454 {"zmheguiaa",	      VX(4, 0x502), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10455 {"zvdotphgauiaa",     VX(4, 0x503), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10456 {"zmheguian",	      VX(4, 0x504), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10457 {"zvdotphgauian",     VX(4, 0x505), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10458 {"zmhegsi",	      VX(4, 0x508), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10459 {"zvdotphgasi",	      VX(4, 0x509), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10460 {"zmhegsiaa",	      VX(4, 0x50A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10461 {"zvdotphgasiaa",     VX(4, 0x50B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10462 {"zmhegsian",	      VX(4, 0x50C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10463 {"zvdotphgasian",     VX(4, 0x50D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10464 {"zmhegsui",	      VX(4, 0x510), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10465 {"zvdotphgasui",      VX(4, 0x511), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10466 {"zmhegsuiaa",	      VX(4, 0x512), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10467 {"zvdotphgasuiaa",    VX(4, 0x513), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10468 {"zmhegsuian",	      VX(4, 0x514), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10469 {"zvdotphgasuian",    VX(4, 0x515), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10470 {"zmhegsmf",	      VX(4, 0x518), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10471 {"zvdotphgasmf",      VX(4, 0x519), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10472 {"zmhegsmfaa",	      VX(4, 0x51A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10473 {"zvdotphgasmfaa",    VX(4, 0x51B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10474 {"zmhegsmfan",	      VX(4, 0x51C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10475 {"zvdotphgasmfan",    VX(4, 0x51D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10476 {"zmheogui",	      VX(4, 0x520), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10477 {"zvdotphxgaui",      VX(4, 0x521), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10478 {"zmheoguiaa",	      VX(4, 0x522), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10479 {"zvdotphxgauiaa",    VX(4, 0x523), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10480 {"zmheoguian",	      VX(4, 0x524), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10481 {"zvdotphxgauian",    VX(4, 0x525), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10482 {"zmheogsi",	      VX(4, 0x528), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10483 {"zvdotphxgasi",      VX(4, 0x529), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10484 {"zmheogsiaa",	      VX(4, 0x52A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10485 {"zvdotphxgasiaa",    VX(4, 0x52B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10486 {"zmheogsian",	      VX(4, 0x52C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10487 {"zvdotphxgasian",    VX(4, 0x52D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10488 {"zmheogsui",	      VX(4, 0x530), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10489 {"zvdotphxgasui",     VX(4, 0x531), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10490 {"zmheogsuiaa",	      VX(4, 0x532), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10491 {"zvdotphxgasuiaa",   VX(4, 0x533), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10492 {"zmheogsuian",	      VX(4, 0x534), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10493 {"zvdotphxgasuian",   VX(4, 0x535), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10494 {"zmheogsmf",	      VX(4, 0x538), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10495 {"zvdotphxgasmf",     VX(4, 0x539), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10496 {"zmheogsmfaa",	      VX(4, 0x53A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10497 {"zvdotphxgasmfaa",   VX(4, 0x53B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10498 {"zmheogsmfan",	      VX(4, 0x53C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10499 {"zvdotphxgasmfan",   VX(4, 0x53D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10500 {"zmhogui",	      VX(4, 0x540), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10501 {"zvdotphgsui",	      VX(4, 0x541), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10502 {"zmhoguiaa",	      VX(4, 0x542), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10503 {"zvdotphgsuiaa",     VX(4, 0x543), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10504 {"zmhoguian",	      VX(4, 0x544), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10505 {"zvdotphgsuian",     VX(4, 0x545), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10506 {"zmhogsi",	      VX(4, 0x548), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10507 {"zvdotphgssi",	      VX(4, 0x549), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10508 {"zmhogsiaa",	      VX(4, 0x54A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10509 {"zvdotphgssiaa",     VX(4, 0x54B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10510 {"zmhogsian",	      VX(4, 0x54C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10511 {"zvdotphgssian",     VX(4, 0x54D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10512 {"zmhogsui",	      VX(4, 0x550), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10513 {"zvdotphgssui",      VX(4, 0x551), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10514 {"zmhogsuiaa",	      VX(4, 0x552), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10515 {"zvdotphgssuiaa",    VX(4, 0x553), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10516 {"zmhogsuian",	      VX(4, 0x554), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10517 {"zvdotphgssuian",    VX(4, 0x555), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10518 {"zmhogsmf",	      VX(4, 0x558), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10519 {"zvdotphgssmf",      VX(4, 0x559), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10520 {"zmhogsmfaa",	      VX(4, 0x55A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10521 {"zvdotphgssmfaa",    VX(4, 0x55B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10522 {"zmhogsmfan",	      VX(4, 0x55C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10523 {"zvdotphgssmfan",    VX(4, 0x55D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10524 {"zmwgui",	      VX(4, 0x560), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10525 {"zmwguiaa",	      VX(4, 0x562), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10526 {"zmwguiaas",	      VX(4, 0x563), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10527 {"zmwguian",	      VX(4, 0x564), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10528 {"zmwguians",	      VX(4, 0x565), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10529 {"zmwgsi",	      VX(4, 0x568), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10530 {"zmwgsiaa",	      VX(4, 0x56A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10531 {"zmwgsiaas",	      VX(4, 0x56B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10532 {"zmwgsian",	      VX(4, 0x56C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10533 {"zmwgsians",	      VX(4, 0x56D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10534 {"zmwgsui",	      VX(4, 0x570), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10535 {"zmwgsuiaa",	      VX(4, 0x572), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10536 {"zmwgsuiaas",	      VX(4, 0x573), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10537 {"zmwgsuian",	      VX(4, 0x574), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10538 {"zmwgsuians",	      VX(4, 0x575), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10539 {"zmwgsmf",	      VX(4, 0x578), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10540 {"zmwgsmfr",	      VX(4, 0x579), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10541 {"zmwgsmfaa",	      VX(4, 0x57A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10542 {"zmwgsmfraa",	      VX(4, 0x57B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10543 {"zmwgsmfan",	      VX(4, 0x57C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10544 {"zmwgsmfran",	      VX(4, 0x57D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10545 {"zvmhului",	      VX(4, 0x580), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10546 {"zvmhuluiaa",	      VX(4, 0x582), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10547 {"zvmhuluiaas",	      VX(4, 0x583), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10548 {"zvmhuluian",	      VX(4, 0x584), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10549 {"zvmhuluians",	      VX(4, 0x585), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10550 {"zvmhuluianp",	      VX(4, 0x586), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10551 {"zvmhuluianps",      VX(4, 0x587), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10552 {"zvmhulsi",	      VX(4, 0x588), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10553 {"zvmhulsiaa",	      VX(4, 0x58A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10554 {"zvmhulsiaas",	      VX(4, 0x58B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10555 {"zvmhulsian",	      VX(4, 0x58C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10556 {"zvmhulsians",	      VX(4, 0x58D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10557 {"zvmhulsianp",	      VX(4, 0x58E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10558 {"zvmhulsianps",      VX(4, 0x58F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10559 {"zvmhulsui",	      VX(4, 0x590), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10560 {"zvmhulsuiaa",	      VX(4, 0x592), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10561 {"zvmhulsuiaas",      VX(4, 0x593), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10562 {"zvmhulsuian",	      VX(4, 0x594), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10563 {"zvmhulsuians",      VX(4, 0x595), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10564 {"zvmhulsuianp",      VX(4, 0x596), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10565 {"zvmhulsuianps",     VX(4, 0x597), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10566 {"zvmhulsf",	      VX(4, 0x598), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10567 {"zvmhulsfr",	      VX(4, 0x599), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10568 {"zvmhulsfaas",	      VX(4, 0x59A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10569 {"zvmhulsfraas",      VX(4, 0x59B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10570 {"zvmhulsfans",	      VX(4, 0x59C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10571 {"zvmhulsfrans",      VX(4, 0x59D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10572 {"zvmhulsfanps",      VX(4, 0x59E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10573 {"zvmhulsfranps",     VX(4, 0x59F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10574 {"zvmhllui",	      VX(4, 0x5A0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10575 {"zvmhlluiaa",	      VX(4, 0x5A2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10576 {"zvmhlluiaas",	      VX(4, 0x5A3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10577 {"zvmhlluian",	      VX(4, 0x5A4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10578 {"zvmhlluians",	      VX(4, 0x5A5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10579 {"zvmhlluianp",	      VX(4, 0x5A6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10580 {"zvmhlluianps",      VX(4, 0x5A7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10581 {"zvmhllsi",	      VX(4, 0x5A8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10582 {"zvmhllsiaa",	      VX(4, 0x5AA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10583 {"zvmhllsiaas",	      VX(4, 0x5AB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10584 {"zvmhllsian",	      VX(4, 0x5AC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10585 {"zvmhllsians",	      VX(4, 0x5AD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10586 {"zvmhllsianp",	      VX(4, 0x5AE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10587 {"zvmhllsianps",      VX(4, 0x5AF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10588 {"zvmhllsui",	      VX(4, 0x5B0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10589 {"zvmhllsuiaa",	      VX(4, 0x5B2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10590 {"zvmhllsuiaas",      VX(4, 0x5B3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10591 {"zvmhllsuian",	      VX(4, 0x5B4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10592 {"zvmhllsuians",      VX(4, 0x5B5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10593 {"zvmhllsuianp",      VX(4, 0x5B6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10594 {"zvmhllsuianps",     VX(4, 0x5B7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10595 {"zvmhllsf",	      VX(4, 0x5B8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10596 {"zvmhllsfr",	      VX(4, 0x5B9), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10597 {"zvmhllsfaas",	      VX(4, 0x5BA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10598 {"zvmhllsfraas",      VX(4, 0x5BB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10599 {"zvmhllsfans",	      VX(4, 0x5BC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10600 {"zvmhllsfrans",      VX(4, 0x5BD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10601 {"zvmhllsfanps",      VX(4, 0x5BE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10602 {"zvmhllsfranps",     VX(4, 0x5BF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10603 {"zvmhuuui",	      VX(4, 0x5C0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10604 {"zvmhuuuiaa",	      VX(4, 0x5C2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10605 {"zvmhuuuiaas",	      VX(4, 0x5C3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10606 {"zvmhuuuian",	      VX(4, 0x5C4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10607 {"zvmhuuuians",	      VX(4, 0x5C5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10608 {"zvmhuuuianp",	      VX(4, 0x5C6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10609 {"zvmhuuuianps",      VX(4, 0x5C7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10610 {"zvmhuusi",	      VX(4, 0x5C8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10611 {"zvmhuusiaa",	      VX(4, 0x5CA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10612 {"zvmhuusiaas",	      VX(4, 0x5CB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10613 {"zvmhuusian",	      VX(4, 0x5CC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10614 {"zvmhuusians",	      VX(4, 0x5CD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10615 {"zvmhuusianp",	      VX(4, 0x5CE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10616 {"zvmhuusianps",      VX(4, 0x5CF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10617 {"zvmhuusui",	      VX(4, 0x5D0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10618 {"zvmhuusuiaa",	      VX(4, 0x5D2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10619 {"zvmhuusuiaas",      VX(4, 0x5D3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10620 {"zvmhuusuian",	      VX(4, 0x5D4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10621 {"zvmhuusuians",      VX(4, 0x5D5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10622 {"zvmhuusuianp",      VX(4, 0x5D6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10623 {"zvmhuusuianps",     VX(4, 0x5D7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10624 {"zvmhuusf",	      VX(4, 0x5D8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10625 {"zvmhuusfr",	      VX(4, 0x5D9), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10626 {"zvmhuusfaas",	      VX(4, 0x5DA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10627 {"zvmhuusfraas",      VX(4, 0x5DB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10628 {"zvmhuusfans",	      VX(4, 0x5DC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10629 {"zvmhuusfrans",      VX(4, 0x5DD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10630 {"zvmhuusfanps",      VX(4, 0x5DE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10631 {"zvmhuusfranps",     VX(4, 0x5DF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10632 {"zvmhxlui",	      VX(4, 0x5E0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10633 {"zvmhxluiaa",	      VX(4, 0x5E2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10634 {"zvmhxluiaas",	      VX(4, 0x5E3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10635 {"zvmhxluian",	      VX(4, 0x5E4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10636 {"zvmhxluians",	      VX(4, 0x5E5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10637 {"zvmhxluianp",	      VX(4, 0x5E6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10638 {"zvmhxluianps",      VX(4, 0x5E7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10639 {"zvmhxlsi",	      VX(4, 0x5E8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10640 {"zvmhxlsiaa",	      VX(4, 0x5EA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10641 {"zvmhxlsiaas",	      VX(4, 0x5EB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10642 {"zvmhxlsian",	      VX(4, 0x5EC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10643 {"zvmhxlsians",	      VX(4, 0x5ED), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10644 {"zvmhxlsianp",	      VX(4, 0x5EE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10645 {"zvmhxlsianps",      VX(4, 0x5EF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10646 {"zvmhxlsui",	      VX(4, 0x5F0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10647 {"zvmhxlsuiaa",	      VX(4, 0x5F2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10648 {"zvmhxlsuiaas",      VX(4, 0x5F3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10649 {"zvmhxlsuian",	      VX(4, 0x5F4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10650 {"zvmhxlsuians",      VX(4, 0x5F5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10651 {"zvmhxlsuianp",      VX(4, 0x5F6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10652 {"zvmhxlsuianps",     VX(4, 0x5F7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10653 {"zvmhxlsf",	      VX(4, 0x5F8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10654 {"zvmhxlsfr",	      VX(4, 0x5F9), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10655 {"zvmhxlsfaas",	      VX(4, 0x5FA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10656 {"zvmhxlsfraas",      VX(4, 0x5FB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10657 {"zvmhxlsfans",	      VX(4, 0x5FC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10658 {"zvmhxlsfrans",      VX(4, 0x5FD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10659 {"zvmhxlsfanps",      VX(4, 0x5FE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10660 {"zvmhxlsfranps",     VX(4, 0x5FF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10661 {"zmheui",	      VX(4, 0x600), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10662 {"zmheuiaa",	      VX(4, 0x602), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10663 {"zmheuiaas",	      VX(4, 0x603), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10664 {"zmheuian",	      VX(4, 0x604), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10665 {"zmheuians",	      VX(4, 0x605), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10666 {"zmhesi",	      VX(4, 0x608), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10667 {"zmhesiaa",	      VX(4, 0x60A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10668 {"zmhesiaas",	      VX(4, 0x60B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10669 {"zmhesian",	      VX(4, 0x60C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10670 {"zmhesians",	      VX(4, 0x60D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10671 {"zmhesui",	      VX(4, 0x610), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10672 {"zmhesuiaa",	      VX(4, 0x612), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10673 {"zmhesuiaas",	      VX(4, 0x613), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10674 {"zmhesuian",	      VX(4, 0x614), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10675 {"zmhesuians",	      VX(4, 0x615), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10676 {"zmhesf",	      VX(4, 0x618), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10677 {"zmhesfr",	      VX(4, 0x619), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10678 {"zmhesfaas",	      VX(4, 0x61A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10679 {"zmhesfraas",	      VX(4, 0x61B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10680 {"zmhesfans",	      VX(4, 0x61C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10681 {"zmhesfrans",	      VX(4, 0x61D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10682 {"zmheoui",	      VX(4, 0x620), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10683 {"zmheouiaa",	      VX(4, 0x622), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10684 {"zmheouiaas",	      VX(4, 0x623), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10685 {"zmheouian",	      VX(4, 0x624), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10686 {"zmheouians",	      VX(4, 0x625), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10687 {"zmheosi",	      VX(4, 0x628), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10688 {"zmheosiaa",	      VX(4, 0x62A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10689 {"zmheosiaas",	      VX(4, 0x62B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10690 {"zmheosian",	      VX(4, 0x62C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10691 {"zmheosians",	      VX(4, 0x62D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10692 {"zmheosui",	      VX(4, 0x630), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10693 {"zmheosuiaa",	      VX(4, 0x632), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10694 {"zmheosuiaas",	      VX(4, 0x633), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10695 {"zmheosuian",	      VX(4, 0x634), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10696 {"zmheosuians",	      VX(4, 0x635), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10697 {"zmheosf",	      VX(4, 0x638), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10698 {"zmheosfr",	      VX(4, 0x639), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10699 {"zmheosfaas",	      VX(4, 0x63A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10700 {"zmheosfraas",	      VX(4, 0x63B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10701 {"zmheosfans",	      VX(4, 0x63C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10702 {"zmheosfrans",	      VX(4, 0x63D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10703 {"zmhoui",	      VX(4, 0x640), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10704 {"zmhouiaa",	      VX(4, 0x642), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10705 {"zmhouiaas",	      VX(4, 0x643), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10706 {"zmhouian",	      VX(4, 0x644), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10707 {"zmhouians",	      VX(4, 0x645), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10708 {"zmhosi",	      VX(4, 0x648), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10709 {"zmhosiaa",	      VX(4, 0x64A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10710 {"zmhosiaas",	      VX(4, 0x64B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10711 {"zmhosian",	      VX(4, 0x64C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10712 {"zmhosians",	      VX(4, 0x64D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10713 {"zmhosui",	      VX(4, 0x650), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10714 {"zmhosuiaa",	      VX(4, 0x652), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10715 {"zmhosuiaas",	      VX(4, 0x653), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10716 {"zmhosuian",	      VX(4, 0x654), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10717 {"zmhosuians",	      VX(4, 0x655), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10718 {"zmhosf",	      VX(4, 0x658), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10719 {"zmhosfr",	      VX(4, 0x659), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10720 {"zmhosfaas",	      VX(4, 0x65A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10721 {"zmhosfraas",	      VX(4, 0x65B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10722 {"zmhosfans",	      VX(4, 0x65C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10723 {"zmhosfrans",	      VX(4, 0x65D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10724 {"zvmhuih",	      VX(4, 0x660), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10725 {"zvmhuihs",	      VX(4, 0x661), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10726 {"zvmhuiaah",	      VX(4, 0x662), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10727 {"zvmhuiaahs",	      VX(4, 0x663), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10728 {"zvmhuianh",	      VX(4, 0x664), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10729 {"zvmhuianhs",	      VX(4, 0x665), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10730 {"zvmhsihs",	      VX(4, 0x669), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10731 {"zvmhsiaahs",	      VX(4, 0x66B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10732 {"zvmhsianhs",	      VX(4, 0x66D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10733 {"zvmhsuihs",	      VX(4, 0x671), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10734 {"zvmhsuiaahs",	      VX(4, 0x673), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10735 {"zvmhsuianhs",	      VX(4, 0x675), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10736 {"zvmhsfh",	      VX(4, 0x678), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10737 {"zvmhsfrh",	      VX(4, 0x679), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10738 {"zvmhsfaahs",	      VX(4, 0x67A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10739 {"zvmhsfraahs",	      VX(4, 0x67B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10740 {"zvmhsfanhs",	      VX(4, 0x67C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10741 {"zvmhsfranhs",	      VX(4, 0x67D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10742 {"zvdotphaui",	      VX(4, 0x680), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10743 {"zvdotphauis",	      VX(4, 0x681), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10744 {"zvdotphauiaa",      VX(4, 0x682), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10745 {"zvdotphauiaas",     VX(4, 0x683), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10746 {"zvdotphauian",      VX(4, 0x684), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10747 {"zvdotphauians",     VX(4, 0x685), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10748 {"zvdotphasi",	      VX(4, 0x688), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10749 {"zvdotphasis",	      VX(4, 0x689), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10750 {"zvdotphasiaa",      VX(4, 0x68A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10751 {"zvdotphasiaas",     VX(4, 0x68B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10752 {"zvdotphasian",      VX(4, 0x68C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10753 {"zvdotphasians",     VX(4, 0x68D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10754 {"zvdotphasui",	      VX(4, 0x690), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10755 {"zvdotphasuis",      VX(4, 0x691), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10756 {"zvdotphasuiaa",     VX(4, 0x692), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10757 {"zvdotphasuiaas",    VX(4, 0x693), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10758 {"zvdotphasuian",     VX(4, 0x694), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10759 {"zvdotphasuians",    VX(4, 0x695), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10760 {"zvdotphasfs",	      VX(4, 0x698), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10761 {"zvdotphasfrs",      VX(4, 0x699), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10762 {"zvdotphasfaas",     VX(4, 0x69A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10763 {"zvdotphasfraas",    VX(4, 0x69B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10764 {"zvdotphasfans",     VX(4, 0x69C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10765 {"zvdotphasfrans",    VX(4, 0x69D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10766 {"zvdotphxaui",	      VX(4, 0x6A0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10767 {"zvdotphxauis",      VX(4, 0x6A1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10768 {"zvdotphxauiaa",     VX(4, 0x6A2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10769 {"zvdotphxauiaas",    VX(4, 0x6A3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10770 {"zvdotphxauian",     VX(4, 0x6A4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10771 {"zvdotphxauians",    VX(4, 0x6A5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10772 {"zvdotphxasi",	      VX(4, 0x6A8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10773 {"zvdotphxasis",      VX(4, 0x6A9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10774 {"zvdotphxasiaa",     VX(4, 0x6AA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10775 {"zvdotphxasiaas",    VX(4, 0x6AB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10776 {"zvdotphxasian",     VX(4, 0x6AC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10777 {"zvdotphxasians",    VX(4, 0x6AD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10778 {"zvdotphxasui",      VX(4, 0x6B0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10779 {"zvdotphxasuis",     VX(4, 0x6B1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10780 {"zvdotphxasuiaa",    VX(4, 0x6B2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10781 {"zvdotphxasuiaas",   VX(4, 0x6B3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10782 {"zvdotphxasuian",    VX(4, 0x6B4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10783 {"zvdotphxasuians",   VX(4, 0x6B5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10784 {"zvdotphxasfs",      VX(4, 0x6B8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10785 {"zvdotphxasfrs",     VX(4, 0x6B9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10786 {"zvdotphxasfaas",    VX(4, 0x6BA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10787 {"zvdotphxasfraas",   VX(4, 0x6BB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10788 {"zvdotphxasfans",    VX(4, 0x6BC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10789 {"zvdotphxasfrans",   VX(4, 0x6BD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10790 {"zvdotphsui",	      VX(4, 0x6C0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10791 {"zvdotphsuis",	      VX(4, 0x6C1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10792 {"zvdotphsuiaa",      VX(4, 0x6C2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10793 {"zvdotphsuiaas",     VX(4, 0x6C3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10794 {"zvdotphsuian",      VX(4, 0x6C4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10795 {"zvdotphsuians",     VX(4, 0x6C5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10796 {"zvdotphssi",	      VX(4, 0x6C8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10797 {"zvdotphssis",	      VX(4, 0x6C9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10798 {"zvdotphssiaa",      VX(4, 0x6CA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10799 {"zvdotphssiaas",     VX(4, 0x6CB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10800 {"zvdotphssian",      VX(4, 0x6CC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10801 {"zvdotphssians",     VX(4, 0x6CD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10802 {"zvdotphssui",	      VX(4, 0x6D0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10803 {"zvdotphssuis",      VX(4, 0x6D1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10804 {"zvdotphssuiaa",     VX(4, 0x6D2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10805 {"zvdotphssuiaas",    VX(4, 0x6D3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10806 {"zvdotphssuian",     VX(4, 0x6D4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10807 {"zvdotphssuians",    VX(4, 0x6D5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10808 {"zvdotphssfs",	      VX(4, 0x6D8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10809 {"zvdotphssfrs",      VX(4, 0x6D9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10810 {"zvdotphssfaas",     VX(4, 0x6DA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10811 {"zvdotphssfraas",    VX(4, 0x6DB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10812 {"zvdotphssfans",     VX(4, 0x6DC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10813 {"zvdotphssfrans",    VX(4, 0x6DD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10814 {"zmwluis",	      VX(4, 0x6E1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10815 {"zmwluiaa",	      VX(4, 0x6E2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10816 {"zmwluiaas",	      VX(4, 0x6E3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10817 {"zmwluian",	      VX(4, 0x6E4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10818 {"zmwluians",	      VX(4, 0x6E5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10819 {"zmwlsis",	      VX(4, 0x6E9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10820 {"zmwlsiaas",	      VX(4, 0x6EB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10821 {"zmwlsians",	      VX(4, 0x6ED), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10822 {"zmwlsuis",	      VX(4, 0x6F1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10823 {"zmwlsuiaas",	      VX(4, 0x6F3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10824 {"zmwlsuians",	      VX(4, 0x6F5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10825 {"zmwsf",	      VX(4, 0x6F8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10826 {"zmwsfr",	      VX(4, 0x6F9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10827 {"zmwsfaas",	      VX(4, 0x6FA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10828 {"zmwsfraas",	      VX(4, 0x6FB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10829 {"zmwsfans",	      VX(4, 0x6FC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10830 {"zmwsfrans",	      VX(4, 0x6FD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10831 };
   10832 
   10833 const unsigned int lsp_num_opcodes = ARRAY_SIZE (lsp_opcodes);
   10834 
   10835 /* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
   10836 const struct powerpc_opcode spe2_opcodes[] = {
   10837 {"evdotpwcssi",		  VX (4, 128),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10838 {"evdotpwcsmi",		  VX (4, 129),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10839 {"evdotpwcssfr",	  VX (4, 130),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10840 {"evdotpwcssf",		  VX (4, 131),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10841 {"evdotpwgasmf",	  VX (4, 136),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10842 {"evdotpwxgasmf",	  VX (4, 137),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10843 {"evdotpwgasmfr",	  VX (4, 138),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10844 {"evdotpwxgasmfr",	  VX (4, 139),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10845 {"evdotpwgssmf",	  VX (4, 140),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10846 {"evdotpwxgssmf",	  VX (4, 141),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10847 {"evdotpwgssmfr",	  VX (4, 142),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10848 {"evdotpwxgssmfr",	  VX (4, 143),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10849 {"evdotpwcssiaaw3",	  VX (4, 144),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10850 {"evdotpwcsmiaaw3",	  VX (4, 145),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10851 {"evdotpwcssfraaw3",	  VX (4, 146),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10852 {"evdotpwcssfaaw3",	  VX (4, 147),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10853 {"evdotpwgasmfaa3",	  VX (4, 152),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10854 {"evdotpwxgasmfaa3",	  VX (4, 153),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10855 {"evdotpwgasmfraa3",	  VX (4, 154),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10856 {"evdotpwxgasmfraa3",	  VX (4, 155),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10857 {"evdotpwgssmfaa3",	  VX (4, 156),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10858 {"evdotpwxgssmfaa3",	  VX (4, 157),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10859 {"evdotpwgssmfraa3",	  VX (4, 158),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10860 {"evdotpwxgssmfraa3",	  VX (4, 159),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10861 {"evdotpwcssia",	  VX (4, 160),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10862 {"evdotpwcsmia",	  VX (4, 161),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10863 {"evdotpwcssfra",	  VX (4, 162),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10864 {"evdotpwcssfa",	  VX (4, 163),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10865 {"evdotpwgasmfa",	  VX (4, 168),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10866 {"evdotpwxgasmfa",	  VX (4, 169),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10867 {"evdotpwgasmfra",	  VX (4, 170),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10868 {"evdotpwxgasmfra",	  VX (4, 171),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10869 {"evdotpwgssmfa",	  VX (4, 172),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10870 {"evdotpwxgssmfa",	  VX (4, 173),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10871 {"evdotpwgssmfra",	  VX (4, 174),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10872 {"evdotpwxgssmfra",	  VX (4, 175),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10873 {"evdotpwcssiaaw",	  VX (4, 176),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10874 {"evdotpwcsmiaaw",	  VX (4, 177),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10875 {"evdotpwcssfraaw",	  VX (4, 178),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10876 {"evdotpwcssfaaw",	  VX (4, 179),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10877 {"evdotpwgasmfaa",	  VX (4, 184),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10878 {"evdotpwxgasmfaa",	  VX (4, 185),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10879 {"evdotpwgasmfraa",	  VX (4, 186),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10880 {"evdotpwxgasmfraa",	  VX (4, 187),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10881 {"evdotpwgssmfaa",	  VX (4, 188),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10882 {"evdotpwxgssmfaa",	  VX (4, 189),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10883 {"evdotpwgssmfraa",	  VX (4, 190),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10884 {"evdotpwxgssmfraa",	  VX (4, 191),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10885 {"evdotphihcssi",	  VX (4, 256),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10886 {"evdotplohcssi",	  VX (4, 257),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10887 {"evdotphihcssf",	  VX (4, 258),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10888 {"evdotplohcssf",	  VX (4, 259),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10889 {"evdotphihcsmi",	  VX (4, 264),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10890 {"evdotplohcsmi",	  VX (4, 265),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10891 {"evdotphihcssfr",	  VX (4, 266),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10892 {"evdotplohcssfr",	  VX (4, 267),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10893 {"evdotphihcssiaaw3",	  VX (4, 272),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10894 {"evdotplohcssiaaw3",	  VX (4, 273),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10895 {"evdotphihcssfaaw3",	  VX (4, 274),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10896 {"evdotplohcssfaaw3",	  VX (4, 275),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10897 {"evdotphihcsmiaaw3",	  VX (4, 280),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10898 {"evdotplohcsmiaaw3",	  VX (4, 281),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10899 {"evdotphihcssfraaw3",	  VX (4, 282),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10900 {"evdotplohcssfraaw3",	  VX (4, 283),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10901 {"evdotphihcssia",	  VX (4, 288),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10902 {"evdotplohcssia",	  VX (4, 289),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10903 {"evdotphihcssfa",	  VX (4, 290),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10904 {"evdotplohcssfa",	  VX (4, 291),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10905 {"evdotphihcsmia",	  VX (4, 296),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10906 {"evdotplohcsmia",	  VX (4, 297),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10907 {"evdotphihcssfra",	  VX (4, 298),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10908 {"evdotplohcssfra",	  VX (4, 299),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10909 {"evdotphihcssiaaw",	  VX (4, 304),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10910 {"evdotplohcssiaaw",	  VX (4, 305),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10911 {"evdotphihcssfaaw",	  VX (4, 306),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10912 {"evdotplohcssfaaw",	  VX (4, 307),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10913 {"evdotphihcsmiaaw",	  VX (4, 312),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10914 {"evdotplohcsmiaaw",	  VX (4, 313),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10915 {"evdotphihcssfraaw",	  VX (4, 314),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10916 {"evdotplohcssfraaw",	  VX (4, 315),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10917 {"evdotphausi",		  VX (4, 320),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10918 {"evdotphassi",		  VX (4, 321),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10919 {"evdotphasusi",	  VX (4, 322),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10920 {"evdotphassf",		  VX (4, 323),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10921 {"evdotphsssf",		  VX (4, 327),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10922 {"evdotphaumi",		  VX (4, 328),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10923 {"evdotphasmi",		  VX (4, 329),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10924 {"evdotphasumi",	  VX (4, 330),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10925 {"evdotphassfr",	  VX (4, 331),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10926 {"evdotphssmi",		  VX (4, 333),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10927 {"evdotphsssi",		  VX (4, 333),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10928 {"evdotphsssfr",	  VX (4, 335),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10929 {"evdotphausiaaw3",	  VX (4, 336),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10930 {"evdotphassiaaw3",	  VX (4, 337),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10931 {"evdotphasusiaaw3",	  VX (4, 338),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10932 {"evdotphassfaaw3",	  VX (4, 339),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10933 {"evdotphsssiaaw3",	  VX (4, 341),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10934 {"evdotphsssfaaw3",	  VX (4, 343),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10935 {"evdotphaumiaaw3",	  VX (4, 344),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10936 {"evdotphasmiaaw3",	  VX (4, 345),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10937 {"evdotphasumiaaw3",	  VX (4, 346),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10938 {"evdotphassfraaw3",	  VX (4, 347),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10939 {"evdotphssmiaaw3",	  VX (4, 349),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10940 {"evdotphsssfraaw3",	  VX (4, 351),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10941 {"evdotphausia",	  VX (4, 352),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10942 {"evdotphassia",	  VX (4, 353),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10943 {"evdotphasusia",	  VX (4, 354),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10944 {"evdotphassfa",	  VX (4, 355),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10945 {"evdotphsssfa",	  VX (4, 359),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10946 {"evdotphaumia",	  VX (4, 360),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10947 {"evdotphasmia",	  VX (4, 361),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10948 {"evdotphasumia",	  VX (4, 362),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10949 {"evdotphassfra",	  VX (4, 363),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10950 {"evdotphssmia",	  VX (4, 365),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10951 {"evdotphsssia",	  VX (4, 365),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10952 {"evdotphsssfra",	  VX (4, 367),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10953 {"evdotphausiaaw",	  VX (4, 368),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10954 {"evdotphassiaaw",	  VX (4, 369),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10955 {"evdotphasusiaaw",	  VX (4, 370),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10956 {"evdotphassfaaw",	  VX (4, 371),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10957 {"evdotphsssiaaw",	  VX (4, 373),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10958 {"evdotphsssfaaw",	  VX (4, 375),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10959 {"evdotphaumiaaw",	  VX (4, 376),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10960 {"evdotphasmiaaw",	  VX (4, 377),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10961 {"evdotphasumiaaw",	  VX (4, 378),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10962 {"evdotphassfraaw",	  VX (4, 379),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10963 {"evdotphssmiaaw",	  VX (4, 381),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10964 {"evdotphsssfraaw",	  VX (4, 383),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10965 {"evdotp4hgaumi",	  VX (4, 384),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10966 {"evdotp4hgasmi",	  VX (4, 385),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10967 {"evdotp4hgasumi",	  VX (4, 386),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10968 {"evdotp4hgasmf",	  VX (4, 387),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10969 {"evdotp4hgssmi",	  VX (4, 388),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10970 {"evdotp4hgssmf",	  VX (4, 389),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10971 {"evdotp4hxgasmi",	  VX (4, 390),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10972 {"evdotp4hxgasmf",	  VX (4, 391),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10973 {"evdotpbaumi",		  VX (4, 392),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10974 {"evdotpbasmi",		  VX (4, 393),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10975 {"evdotpbasumi",	  VX (4, 394),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10976 {"evdotp4hxgssmi",	  VX (4, 398),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10977 {"evdotp4hxgssmf",	  VX (4, 399),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10978 {"evdotp4hgaumiaa3",	  VX (4, 400),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10979 {"evdotp4hgasmiaa3",	  VX (4, 401),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10980 {"evdotp4hgasumiaa3",	  VX (4, 402),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10981 {"evdotp4hgasmfaa3",	  VX (4, 403),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10982 {"evdotp4hgssmiaa3",	  VX (4, 404),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10983 {"evdotp4hgssmfaa3",	  VX (4, 405),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10984 {"evdotp4hxgasmiaa3",	  VX (4, 406),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10985 {"evdotp4hxgasmfaa3",	  VX (4, 407),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10986 {"evdotpbaumiaaw3",	  VX (4, 408),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10987 {"evdotpbasmiaaw3",	  VX (4, 409),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10988 {"evdotpbasumiaaw3",	  VX (4, 410),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10989 {"evdotp4hxgssmiaa3",	  VX (4, 414),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10990 {"evdotp4hxgssmfaa3",	  VX (4, 415),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10991 {"evdotp4hgaumia",	  VX (4, 416),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10992 {"evdotp4hgasmia",	  VX (4, 417),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10993 {"evdotp4hgasumia",	  VX (4, 418),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10994 {"evdotp4hgasmfa",	  VX (4, 419),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10995 {"evdotp4hgssmia",	  VX (4, 420),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10996 {"evdotp4hgssmfa",	  VX (4, 421),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10997 {"evdotp4hxgasmia",	  VX (4, 422),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10998 {"evdotp4hxgasmfa",	  VX (4, 423),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   10999 {"evdotpbaumia",	  VX (4, 424),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11000 {"evdotpbasmia",	  VX (4, 425),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11001 {"evdotpbasumia",	  VX (4, 426),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11002 {"evdotp4hxgssmia",	  VX (4, 430),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11003 {"evdotp4hxgssmfa",	  VX (4, 431),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11004 {"evdotp4hgaumiaa",	  VX (4, 432),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11005 {"evdotp4hgasmiaa",	  VX (4, 433),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11006 {"evdotp4hgasumiaa",	  VX (4, 434),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11007 {"evdotp4hgasmfaa",	  VX (4, 435),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11008 {"evdotp4hgssmiaa",	  VX (4, 436),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11009 {"evdotp4hgssmfaa",	  VX (4, 437),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11010 {"evdotp4hxgasmiaa",	  VX (4, 438),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11011 {"evdotp4hxgasmfaa",	  VX (4, 439),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11012 {"evdotpbaumiaaw",	  VX (4, 440),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11013 {"evdotpbasmiaaw",	  VX (4, 441),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11014 {"evdotpbasumiaaw",	  VX (4, 442),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11015 {"evdotp4hxgssmiaa",	  VX (4, 446),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11016 {"evdotp4hxgssmfaa",	  VX (4, 447),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11017 {"evdotpwausi",		  VX (4, 448),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11018 {"evdotpwassi",		  VX (4, 449),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11019 {"evdotpwasusi",	  VX (4, 450),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11020 {"evdotpwaumi",		  VX (4, 456),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11021 {"evdotpwasmi",		  VX (4, 457),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11022 {"evdotpwasumi",	  VX (4, 458),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11023 {"evdotpwssmi",		  VX (4, 461),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11024 {"evdotpwsssi",		  VX (4, 461),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11025 {"evdotpwausiaa3",	  VX (4, 464),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11026 {"evdotpwassiaa3",	  VX (4, 465),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11027 {"evdotpwasusiaa3",	  VX (4, 466),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11028 {"evdotpwsssiaa3",	  VX (4, 469),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11029 {"evdotpwaumiaa3",	  VX (4, 472),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11030 {"evdotpwasmiaa3",	  VX (4, 473),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11031 {"evdotpwasumiaa3",	  VX (4, 474),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11032 {"evdotpwssmiaa3",	  VX (4, 477),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11033 {"evdotpwausia",	  VX (4, 480),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11034 {"evdotpwassia",	  VX (4, 481),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11035 {"evdotpwasusia",	  VX (4, 482),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11036 {"evdotpwaumia",	  VX (4, 488),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11037 {"evdotpwasmia",	  VX (4, 489),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11038 {"evdotpwasumia",	  VX (4, 490),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11039 {"evdotpwssmia",	  VX (4, 493),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11040 {"evdotpwsssia",	  VX (4, 493),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11041 {"evdotpwausiaa",	  VX (4, 496),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11042 {"evdotpwassiaa",	  VX (4, 497),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11043 {"evdotpwasusiaa",	  VX (4, 498),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11044 {"evdotpwsssiaa",	  VX (4, 501),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11045 {"evdotpwaumiaa",	  VX (4, 504),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11046 {"evdotpwasmiaa",	  VX (4, 505),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11047 {"evdotpwasumiaa",	  VX (4, 506),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11048 {"evdotpwssmiaa",	  VX (4, 509),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11049 {"evaddib",		  VX (4, 515),		VX_MASK,		PPCSPE2, 0, {RD, RB, UIMM}},
   11050 {"evaddih",		  VX (4, 513),		VX_MASK,		PPCSPE2, 0, {RD, RB, UIMM}},
   11051 {"evsubifh",		  VX (4, 517),		VX_MASK,		PPCSPE2, 0, {RD, UIMM, RB}},
   11052 {"evsubifb",		  VX (4, 519),		VX_MASK,		PPCSPE2, 0, {RD, UIMM, RB}},
   11053 {"evabsb",		  VX_RB_CONST(4, 520, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11054 {"evabsh",		  VX_RB_CONST(4, 520, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11055 {"evabsd",		  VX_RB_CONST(4, 520, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11056 {"evabss",		  VX_RB_CONST(4, 520, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11057 {"evabsbs",		  VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11058 {"evabshs",		  VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11059 {"evabsds",		  VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11060 {"evnegwo",		  VX_RB_CONST(4, 521, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11061 {"evnegb",		  VX_RB_CONST(4, 521, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11062 {"evnegbo",		  VX_RB_CONST(4, 521, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11063 {"evnegh",		  VX_RB_CONST(4, 521, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11064 {"evnegho",		  VX_RB_CONST(4, 521, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11065 {"evnegd",		  VX_RB_CONST(4, 521, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11066 {"evnegs",		  VX_RB_CONST(4, 521, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11067 {"evnegwos",		  VX_RB_CONST(4, 521, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11068 {"evnegbs",		  VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11069 {"evnegbos",		  VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11070 {"evneghs",		  VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11071 {"evneghos",		  VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11072 {"evnegds",		  VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11073 {"evextzb",		  VX_RB_CONST(4, 522, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11074 {"evextsbh",		  VX_RB_CONST(4, 522, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11075 {"evextsw",		  VX_RB_CONST(4, 523, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11076 {"evrndwh",		  VX_RB_CONST(4, 524, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11077 {"evrndhb",		  VX_RB_CONST(4, 524, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11078 {"evrnddw",		  VX_RB_CONST(4, 524, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11079 {"evrndwhus",		  VX_RB_CONST(4, 524, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11080 {"evrndwhss",		  VX_RB_CONST(4, 524, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11081 {"evrndhbus",		  VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11082 {"evrndhbss",		  VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11083 {"evrnddwus",		  VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11084 {"evrnddwss",		  VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11085 {"evrndwnh",		  VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11086 {"evrndhnb",		  VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11087 {"evrnddnw",		  VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11088 {"evrndwnhus",		  VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11089 {"evrndwnhss",		  VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11090 {"evrndhnbus",		  VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11091 {"evrndhnbss",		  VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11092 {"evrnddnwus",		  VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11093 {"evrnddnwss",		  VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11094 {"evcntlzh",		  VX_RB_CONST(4, 525, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11095 {"evcntlsh",		  VX_RB_CONST(4, 526, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11096 {"evpopcntb",		  VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11097 {"circinc",		  VX (4, 528),		   VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11098 {"evunpkhibui",		  VX_RB_CONST(4, 540, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11099 {"evunpkhibsi",		  VX_RB_CONST(4, 540, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11100 {"evunpkhihui",		  VX_RB_CONST(4, 540, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11101 {"evunpkhihsi",		  VX_RB_CONST(4, 540, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11102 {"evunpklobui",		  VX_RB_CONST(4, 540, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11103 {"evunpklobsi",		  VX_RB_CONST(4, 540, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11104 {"evunpklohui",		  VX_RB_CONST(4, 540, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11105 {"evunpklohsi",		  VX_RB_CONST(4, 540, 7),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11106 {"evunpklohf",		  VX_RB_CONST(4, 540, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11107 {"evunpkhihf",		  VX_RB_CONST(4, 540, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11108 {"evunpklowgsf",	  VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11109 {"evunpkhiwgsf",	  VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11110 {"evsatsduw",		  VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11111 {"evsatsdsw",		  VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11112 {"evsatshub",		  VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11113 {"evsatshsb",		  VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11114 {"evsatuwuh",		  VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11115 {"evsatswsh",		  VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11116 {"evsatswuh",		  VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11117 {"evsatuhub",		  VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11118 {"evsatuduw",		  VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11119 {"evsatuwsw",		  VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11120 {"evsatshuh",		  VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11121 {"evsatuhsh",		  VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11122 {"evsatswuw",		  VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11123 {"evsatswgsdf",		  VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11124 {"evsatsbub",		  VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11125 {"evsatubsb",		  VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11126 {"evmaxhpuw",		  VX_RB_CONST(4, 541, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11127 {"evmaxhpsw",		  VX_RB_CONST(4, 541, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11128 {"evmaxbpuh",		  VX_RB_CONST(4, 541, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11129 {"evmaxbpsh",		  VX_RB_CONST(4, 541, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11130 {"evmaxwpud",		  VX_RB_CONST(4, 541, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11131 {"evmaxwpsd",		  VX_RB_CONST(4, 541, 7),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11132 {"evminhpuw",		  VX_RB_CONST(4, 541, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11133 {"evminhpsw",		  VX_RB_CONST(4, 541, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11134 {"evminbpuh",		  VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11135 {"evminbpsh",		  VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11136 {"evminwpud",		  VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11137 {"evminwpsd",		  VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11138 {"evmaxmagws",		  VX (4, 543),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11139 {"evsl",		  VX (4, 549),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11140 {"evsli",		  VX (4, 551),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM}},
   11141 {"evsplatie",		  VX_RB_CONST (4, 553, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11142 {"evsplatib",		  VX_RB_CONST (4, 553, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11143 {"evsplatibe",		  VX_RB_CONST (4, 553, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11144 {"evsplatih",		  VX_RB_CONST (4, 553, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11145 {"evsplatihe",		  VX_RB_CONST (4, 553, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11146 {"evsplatid",		  VX_RB_CONST (4, 553, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11147 {"evsplatia",		  VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11148 {"evsplatiea",		  VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11149 {"evsplatiba",		  VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11150 {"evsplatibea",		  VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11151 {"evsplatiha",		  VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11152 {"evsplatihea",		  VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11153 {"evsplatida",		  VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11154 {"evsplatfio",		  VX_RB_CONST (4, 555, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11155 {"evsplatfib",		  VX_RB_CONST (4, 555, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11156 {"evsplatfibo",		  VX_RB_CONST (4, 555, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11157 {"evsplatfih",		  VX_RB_CONST (4, 555, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11158 {"evsplatfiho",		  VX_RB_CONST (4, 555, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11159 {"evsplatfid",		  VX_RB_CONST (4, 555, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11160 {"evsplatfia",		  VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11161 {"evsplatfioa",		  VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11162 {"evsplatfiba",		  VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11163 {"evsplatfiboa",	  VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11164 {"evsplatfiha",		  VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11165 {"evsplatfihoa",	  VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11166 {"evsplatfida",		  VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11167 {"evcmpgtdu",		  VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11168 {"evcmpgtds",		  VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11169 {"evcmpltdu",		  VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11170 {"evcmpltds",		  VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11171 {"evcmpeqd",		  VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11172 {"evswapbhilo",		  VX (4, 568),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11173 {"evswapblohi",		  VX (4, 569),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11174 {"evswaphhilo",		  VX (4, 570),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11175 {"evswaphlohi",		  VX (4, 571),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11176 {"evswaphe",		  VX (4, 572),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11177 {"evswaphhi",		  VX (4, 573),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11178 {"evswaphlo",		  VX (4, 574),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11179 {"evswapho",		  VX (4, 575),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11180 {"evinsb",		  VX (4, 584),		VX_MASK_DDD,		PPCSPE2, 0, {RD, RA, DDD, BBB}},
   11181 {"evxtrb",		  VX (4, 586),		VX_MASK_DDD,		PPCSPE2, 0, {RD, RA, DDD, BBB}},
   11182 {"evsplath",		  VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK,	PPCSPE2, 0, {RD, RA, HH}},
   11183 {"evsplatb",		  VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
   11184 {"evinsh",		  VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK,	PPCSPE2, 0, {RD, RA, DD, HH}},
   11185 {"evclrbe",		  VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK,	PPCSPE2, 0, {RD, RA, MMMM}},
   11186 {"evclrbo",		  VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK,	PPCSPE2, 0, {RD, RA, MMMM}},
   11187 {"evclrh",		  VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK,	PPCSPE2, 0, {RD, RA, MMMM}},
   11188 {"evxtrh",		  VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK,	PPCSPE2, 0, {RD, RA, DD, HH}},
   11189 {"evselbitm0",		  VX (4, 592),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11190 {"evselbitm1",		  VX (4, 593),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11191 {"evselbit",		  VX (4, 594),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11192 {"evperm",		  VX (4, 596),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11193 {"evperm2",		  VX (4, 597),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11194 {"evperm3",		  VX (4, 598),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11195 {"evxtrd",		  VX (4, 600),		VX_OFF_SPE2_MASK,	PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
   11196 {"evsrbu",		  VX (4, 608),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11197 {"evsrbs",		  VX (4, 609),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11198 {"evsrbiu",		  VX (4, 610),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11199 {"evsrbis",		  VX (4, 611),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11200 {"evslb",		  VX (4, 612),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11201 {"evrlb",		  VX (4, 613),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11202 {"evslbi",		  VX (4, 614),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11203 {"evrlbi",		  VX (4, 615),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11204 {"evsrhu",		  VX (4, 616),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11205 {"evsrhs",		  VX (4, 617),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11206 {"evsrhiu",		  VX (4, 618),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11207 {"evsrhis",		  VX (4, 619),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11208 {"evslh",		  VX (4, 620),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11209 {"evrlh",		  VX (4, 621),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11210 {"evslhi",		  VX (4, 622),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11211 {"evrlhi",		  VX (4, 623),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11212 {"evsru",		  VX (4, 624),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11213 {"evsrs",		  VX (4, 625),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11214 {"evsriu",		  VX (4, 626),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM}},
   11215 {"evsris",		  VX (4, 627),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM}},
   11216 {"evlvsl",		  VX (4, 628),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11217 {"evlvsr",		  VX (4, 629),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11218 {"evsroiu",		  VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
   11219 {"evsrois",		  VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
   11220 {"evsloi",		  VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
   11221 {"evldbx",		  VX (4, 774),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11222 {"evldb",		  VX (4, 775),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8, RA}},
   11223 {"evlhhsplathx",	  VX (4, 778),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11224 {"evlhhsplath",		  VX (4, 779),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2, RA}},
   11225 {"evlwbsplatwx",	  VX (4, 786),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11226 {"evlwbsplatw",		  VX (4, 787),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11227 {"evlwhsplatwx",	  VX (4, 794),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11228 {"evlwhsplatw",		  VX (4, 795),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11229 {"evlbbsplatbx",	  VX (4, 798),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11230 {"evlbbsplatb",		  VX (4, 799),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_1, RA}},
   11231 {"evstdbx",		  VX (4, 806),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11232 {"evstdb",		  VX (4, 807),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8, RA}},
   11233 {"evlwbex",		  VX (4, 810),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11234 {"evlwbe",		  VX (4, 811),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11235 {"evlwboux",		  VX (4, 812),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11236 {"evlwbou",		  VX (4, 813),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11237 {"evlwbosx",		  VX (4, 814),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11238 {"evlwbos",		  VX (4, 815),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11239 {"evstwbex",		  VX (4, 818),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11240 {"evstwbe",		  VX (4, 819),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4, RA}},
   11241 {"evstwbox",		  VX (4, 822),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11242 {"evstwbo",		  VX (4, 823),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4, RA}},
   11243 {"evstwbx",		  VX (4, 826),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11244 {"evstwb",		  VX (4, 827),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4, RA}},
   11245 {"evsthbx",		  VX (4, 830),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11246 {"evsthb",		  VX (4, 831),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_2, RA}},
   11247 {"evlddmx",		  VX (4, 832),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11248 {"evlddu",		  VX (4, 833),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11249 {"evldwmx",		  VX (4, 834),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11250 {"evldwu",		  VX (4, 835),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11251 {"evldhmx",		  VX (4, 836),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11252 {"evldhu",		  VX (4, 837),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11253 {"evldbmx",		  VX (4, 838),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11254 {"evldbu",		  VX (4, 839),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11255 {"evlhhesplatmx",	  VX (4, 840),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11256 {"evlhhesplatu",	  VX (4, 841),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11257 {"evlhhsplathmx",	  VX (4, 842),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11258 {"evlhhsplathu",	  VX (4, 843),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11259 {"evlhhousplatmx",	  VX (4, 844),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11260 {"evlhhousplatu",	  VX (4, 845),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11261 {"evlhhossplatmx",	  VX (4, 846),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11262 {"evlhhossplatu",	  VX (4, 847),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11263 {"evlwhemx",		  VX (4, 848),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11264 {"evlwheu",		  VX (4, 849),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11265 {"evlwbsplatwmx",	  VX (4, 850),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11266 {"evlwbsplatwu",	  VX (4, 851),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11267 {"evlwhoumx",		  VX (4, 852),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11268 {"evlwhouu",		  VX (4, 853),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11269 {"evlwhosmx",		  VX (4, 854),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11270 {"evlwhosu",		  VX (4, 855),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11271 {"evlwwsplatmx",	  VX (4, 856),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11272 {"evlwwsplatu",		  VX (4, 857),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11273 {"evlwhsplatwmx",	  VX (4, 858),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11274 {"evlwhsplatwu",	  VX (4, 859),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11275 {"evlwhsplatmx",	  VX (4, 860),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11276 {"evlwhsplatu",		  VX (4, 861),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11277 {"evlbbsplatbmx",	  VX (4, 862),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11278 {"evlbbsplatbu",	  VX (4, 863),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
   11279 {"evstddmx",		  VX (4, 864),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11280 {"evstddu",		  VX (4, 865),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11281 {"evstdwmx",		  VX (4, 866),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11282 {"evstdwu",		  VX (4, 867),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11283 {"evstdhmx",		  VX (4, 868),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11284 {"evstdhu",		  VX (4, 869),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11285 {"evstdbmx",		  VX (4, 870),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11286 {"evstdbu",		  VX (4, 871),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11287 {"evlwbemx",		  VX (4, 874),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11288 {"evlwbeu",		  VX (4, 875),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11289 {"evlwboumx",		  VX (4, 876),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11290 {"evlwbouu",		  VX (4, 877),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11291 {"evlwbosmx",		  VX (4, 878),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11292 {"evlwbosu",		  VX (4, 879),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11293 {"evstwhemx",		  VX (4, 880),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11294 {"evstwheu",		  VX (4, 881),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11295 {"evstwbemx",		  VX (4, 882),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11296 {"evstwbeu",		  VX (4, 883),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11297 {"evstwhomx",		  VX (4, 884),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11298 {"evstwhou",		  VX (4, 885),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11299 {"evstwbomx",		  VX (4, 886),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11300 {"evstwbou",		  VX (4, 887),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11301 {"evstwwemx",		  VX (4, 888),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11302 {"evstwweu",		  VX (4, 889),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11303 {"evstwbmx",		  VX (4, 890),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11304 {"evstwbu",		  VX (4, 891),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11305 {"evstwwomx",		  VX (4, 892),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11306 {"evstwwou",		  VX (4, 893),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11307 {"evsthbmx",		  VX (4, 894),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11308 {"evsthbu",		  VX (4, 895),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
   11309 {"evmhusi",		  VX (4, 1024),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11310 {"evmhssi",		  VX (4, 1025),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11311 {"evmhsusi",		  VX (4, 1026),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11312 {"evmhssf",		  VX (4, 1028),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11313 {"evmhumi",		  VX (4, 1029),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11314 {"evmhssfr",		  VX (4, 1030),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11315 {"evmhesumi",		  VX (4, 1034),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11316 {"evmhosumi",		  VX (4, 1038),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11317 {"evmbeumi",		  VX (4, 1048),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11318 {"evmbesmi",		  VX (4, 1049),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11319 {"evmbesumi",		  VX (4, 1050),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11320 {"evmboumi",		  VX (4, 1052),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11321 {"evmbosmi",		  VX (4, 1053),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11322 {"evmbosumi",		  VX (4, 1054),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11323 {"evmhesumia",		  VX (4, 1066),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11324 {"evmhosumia",		  VX (4, 1070),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11325 {"evmbeumia",		  VX (4, 1080),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11326 {"evmbesmia",		  VX (4, 1081),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11327 {"evmbesumia",		  VX (4, 1082),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11328 {"evmboumia",		  VX (4, 1084),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11329 {"evmbosmia",		  VX (4, 1085),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11330 {"evmbosumia",		  VX (4, 1086),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11331 {"evmwusiw",		  VX (4, 1088),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11332 {"evmwssiw",		  VX (4, 1089),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11333 {"evmwhssfr",		  VX (4, 1094),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11334 {"evmwehgsmfr",		  VX (4, 1110),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11335 {"evmwehgsmf",		  VX (4, 1111),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11336 {"evmwohgsmfr",		  VX (4, 1118),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11337 {"evmwohgsmf",		  VX (4, 1119),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11338 {"evmwhssfra",		  VX (4, 1126),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11339 {"evmwehgsmfra",	  VX (4, 1142),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11340 {"evmwehgsmfa",		  VX (4, 1143),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11341 {"evmwohgsmfra",	  VX (4, 1150),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11342 {"evmwohgsmfa",		  VX (4, 1151),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11343 {"evaddusiaa",		  VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11344 {"evaddssiaa",		  VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11345 {"evsubfusiaa",		  VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11346 {"evsubfssiaa",		  VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11347 {"evaddsmiaa",		  VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11348 {"evsubfsmiaa",		  VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11349 {"evaddh",		  VX (4, 1160),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11350 {"evaddhss",		  VX (4, 1161),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11351 {"evsubfh",		  VX (4, 1162),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11352 {"evsubfhss",		  VX (4, 1163),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11353 {"evaddhx",		  VX (4, 1164),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11354 {"evaddhxss",		  VX (4, 1165),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11355 {"evsubfhx",		  VX (4, 1166),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11356 {"evsubfhxss",		  VX (4, 1167),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11357 {"evaddd",		  VX (4, 1168),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11358 {"evadddss",		  VX (4, 1169),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11359 {"evsubfd",		  VX (4, 1170),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11360 {"evsubfdss",		  VX (4, 1171),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11361 {"evaddb",		  VX (4, 1172),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11362 {"evaddbss",		  VX (4, 1173),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11363 {"evsubfb",		  VX (4, 1174),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11364 {"evsubfbss",		  VX (4, 1175),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11365 {"evaddsubfh",		  VX (4, 1176),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11366 {"evaddsubfhss",	  VX (4, 1177),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11367 {"evsubfaddh",		  VX (4, 1178),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11368 {"evsubfaddhss",	  VX (4, 1179),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11369 {"evaddsubfhx",		  VX (4, 1180),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11370 {"evaddsubfhxss",	  VX (4, 1181),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11371 {"evsubfaddhx",		  VX (4, 1182),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11372 {"evsubfaddhxss",	  VX (4, 1183),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11373 {"evadddus",		  VX (4, 1184),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11374 {"evaddbus",		  VX (4, 1185),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11375 {"evsubfdus",		  VX (4, 1186),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11376 {"evsubfbus",		  VX (4, 1187),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11377 {"evaddwus",		  VX (4, 1188),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11378 {"evaddwxus",		  VX (4, 1189),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11379 {"evsubfwus",		  VX (4, 1190),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11380 {"evsubfwxus",		  VX (4, 1191),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11381 {"evadd2subf2h",	  VX (4, 1192),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11382 {"evadd2subf2hss",	  VX (4, 1193),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11383 {"evsubf2add2h",	  VX (4, 1194),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11384 {"evsubf2add2hss",	  VX (4, 1195),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11385 {"evaddhus",		  VX (4, 1196),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11386 {"evaddhxus",		  VX (4, 1197),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11387 {"evsubfhus",		  VX (4, 1198),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11388 {"evsubfhxus",		  VX (4, 1199),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11389 {"evaddwss",		  VX (4, 1201),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11390 {"evsubfwss",		  VX (4, 1203),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11391 {"evaddwx",		  VX (4, 1204),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11392 {"evaddwxss",		  VX (4, 1205),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11393 {"evsubfwx",		  VX (4, 1206),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11394 {"evsubfwxss",		  VX (4, 1207),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11395 {"evaddsubfw",		  VX (4, 1208),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11396 {"evaddsubfwss",	  VX (4, 1209),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11397 {"evsubfaddw",		  VX (4, 1210),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11398 {"evsubfaddwss",	  VX (4, 1211),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11399 {"evaddsubfwx",		  VX (4, 1212),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11400 {"evaddsubfwxss",	  VX (4, 1213),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11401 {"evsubfaddwx",		  VX (4, 1214),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11402 {"evsubfaddwxss",	  VX (4, 1215),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11403 {"evmar",		  VX_SPE2_EVMAR (4, 1220),  VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
   11404 {"evsumwu",		  VX_RB_CONST(4, 1221, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11405 {"evsumws",		  VX_RB_CONST(4, 1221, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11406 {"evsum4bu",		  VX_RB_CONST(4, 1221, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11407 {"evsum4bs",		  VX_RB_CONST(4, 1221, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11408 {"evsum2hu",		  VX_RB_CONST(4, 1221, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11409 {"evsum2hs",		  VX_RB_CONST(4, 1221, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11410 {"evdiff2his",		  VX_RB_CONST(4, 1221, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11411 {"evsum2his",		  VX_RB_CONST(4, 1221, 7),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11412 {"evsumwua",		  VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11413 {"evsumwsa",		  VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11414 {"evsum4bua",		  VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11415 {"evsum4bsa",		  VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11416 {"evsum2hua",		  VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11417 {"evsum2hsa",		  VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11418 {"evdiff2hisa",		  VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11419 {"evsum2hisa",		  VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11420 {"evsumwuaa",		  VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11421 {"evsumwsaa",		  VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11422 {"evsum4buaaw",		  VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11423 {"evsum4bsaaw",		  VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11424 {"evsum2huaaw",		  VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11425 {"evsum2hsaaw",		  VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11426 {"evdiff2hisaaw",	  VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11427 {"evsum2hisaaw",	  VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11428 {"evdivwsf",		  VX (4, 1228),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11429 {"evdivwuf",		  VX (4, 1229),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11430 {"evdivs",		  VX (4, 1230),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11431 {"evdivu",		  VX (4, 1231),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11432 {"evaddwegsi",		  VX (4, 1232),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11433 {"evaddwegsf",		  VX (4, 1233),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11434 {"evsubfwegsi",		  VX (4, 1234),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11435 {"evsubfwegsf",		  VX (4, 1235),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11436 {"evaddwogsi",		  VX (4, 1236),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11437 {"evaddwogsf",		  VX (4, 1237),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11438 {"evsubfwogsi",		  VX (4, 1238),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11439 {"evsubfwogsf",		  VX (4, 1239),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11440 {"evaddhhiuw",		  VX (4, 1240),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11441 {"evaddhhisw",		  VX (4, 1241),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11442 {"evsubfhhiuw",		  VX (4, 1242),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11443 {"evsubfhhisw",		  VX (4, 1243),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11444 {"evaddhlouw",		  VX (4, 1244),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11445 {"evaddhlosw",		  VX (4, 1245),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11446 {"evsubfhlouw",		  VX (4, 1246),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11447 {"evsubfhlosw",		  VX (4, 1247),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11448 {"evmhesusiaaw",	  VX (4, 1282),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11449 {"evmhosusiaaw",	  VX (4, 1286),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11450 {"evmhesumiaaw",	  VX (4, 1290),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11451 {"evmhosumiaaw",	  VX (4, 1294),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11452 {"evmbeusiaah",		  VX (4, 1296),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11453 {"evmbessiaah",		  VX (4, 1297),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11454 {"evmbesusiaah",	  VX (4, 1298),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11455 {"evmbousiaah",		  VX (4, 1300),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11456 {"evmbossiaah",		  VX (4, 1301),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11457 {"evmbosusiaah",	  VX (4, 1302),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11458 {"evmbeumiaah",		  VX (4, 1304),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11459 {"evmbesmiaah",		  VX (4, 1305),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11460 {"evmbesumiaah",	  VX (4, 1306),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11461 {"evmboumiaah",		  VX (4, 1308),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11462 {"evmbosmiaah",		  VX (4, 1309),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11463 {"evmbosumiaah",	  VX (4, 1310),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11464 {"evmwlusiaaw3",	  VX (4, 1346),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11465 {"evmwlssiaaw3",	  VX (4, 1347),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11466 {"evmwhssfraaw3",	  VX (4, 1348),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11467 {"evmwhssfaaw3",	  VX (4, 1349),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11468 {"evmwhssfraaw",	  VX (4, 1350),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11469 {"evmwhssfaaw",		  VX (4, 1351),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11470 {"evmwlumiaaw3",	  VX (4, 1354),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11471 {"evmwlsmiaaw3",	  VX (4, 1355),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11472 {"evmwusiaa",		  VX (4, 1360),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11473 {"evmwssiaa",		  VX (4, 1361),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11474 {"evmwehgsmfraa",	  VX (4, 1366),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11475 {"evmwehgsmfaa",	  VX (4, 1367),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11476 {"evmwohgsmfraa",	  VX (4, 1374),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11477 {"evmwohgsmfaa",	  VX (4, 1375),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11478 {"evmhesusianw",	  VX (4, 1410),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11479 {"evmhosusianw",	  VX (4, 1414),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11480 {"evmhesumianw",	  VX (4, 1418),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11481 {"evmhosumianw",	  VX (4, 1422),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11482 {"evmbeusianh",		  VX (4, 1424),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11483 {"evmbessianh",		  VX (4, 1425),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11484 {"evmbesusianh",	  VX (4, 1426),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11485 {"evmbousianh",		  VX (4, 1428),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11486 {"evmbossianh",		  VX (4, 1429),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11487 {"evmbosusianh",	  VX (4, 1430),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11488 {"evmbeumianh",		  VX (4, 1432),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11489 {"evmbesmianh",		  VX (4, 1433),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11490 {"evmbesumianh",	  VX (4, 1434),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11491 {"evmboumianh",		  VX (4, 1436),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11492 {"evmbosmianh",		  VX (4, 1437),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11493 {"evmbosumianh",	  VX (4, 1438),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11494 {"evmwlusianw3",	  VX (4, 1474),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11495 {"evmwlssianw3",	  VX (4, 1475),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11496 {"evmwhssfranw3",	  VX (4, 1476),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11497 {"evmwhssfanw3",	  VX (4, 1477),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11498 {"evmwhssfranw",	  VX (4, 1478),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11499 {"evmwhssfanw",		  VX (4, 1479),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11500 {"evmwlumianw3",	  VX (4, 1482),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11501 {"evmwlsmianw3",	  VX (4, 1483),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11502 {"evmwusian",		  VX (4, 1488),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11503 {"evmwssian",		  VX (4, 1489),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11504 {"evmwehgsmfran",	  VX (4, 1494),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11505 {"evmwehgsmfan",	  VX (4, 1495),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11506 {"evmwohgsmfran",	  VX (4, 1502),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11507 {"evmwohgsmfan",	  VX (4, 1503),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11508 {"evseteqb",		  VX (4, 1536),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11509 {"evseteqb.",		  VX (4, 1537),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11510 {"evseteqh",		  VX (4, 1538),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11511 {"evseteqh.",		  VX (4, 1539),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11512 {"evseteqw",		  VX (4, 1540),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11513 {"evseteqw.",		  VX (4, 1541),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11514 {"evsetgthu",		  VX (4, 1544),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11515 {"evsetgthu.",		  VX (4, 1545),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11516 {"evsetgths",		  VX (4, 1546),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11517 {"evsetgths.",		  VX (4, 1547),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11518 {"evsetgtwu",		  VX (4, 1548),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11519 {"evsetgtwu.",		  VX (4, 1549),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11520 {"evsetgtws",		  VX (4, 1550),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11521 {"evsetgtws.",		  VX (4, 1551),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11522 {"evsetgtbu",		  VX (4, 1552),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11523 {"evsetgtbu.",		  VX (4, 1553),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11524 {"evsetgtbs",		  VX (4, 1554),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11525 {"evsetgtbs.",		  VX (4, 1555),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11526 {"evsetltbu",		  VX (4, 1556),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11527 {"evsetltbu.",		  VX (4, 1557),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11528 {"evsetltbs",		  VX (4, 1558),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11529 {"evsetltbs.",		  VX (4, 1559),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11530 {"evsetlthu",		  VX (4, 1560),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11531 {"evsetlthu.",		  VX (4, 1561),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11532 {"evsetlths",		  VX (4, 1562),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11533 {"evsetlths.",		  VX (4, 1563),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11534 {"evsetltwu",		  VX (4, 1564),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11535 {"evsetltwu.",		  VX (4, 1565),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11536 {"evsetltws",		  VX (4, 1566),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11537 {"evsetltws.",		  VX (4, 1567),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11538 {"evsaduw",		  VX (4, 1568),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11539 {"evsadsw",		  VX (4, 1569),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11540 {"evsad4ub",		  VX (4, 1570),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11541 {"evsad4sb",		  VX (4, 1571),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11542 {"evsad2uh",		  VX (4, 1572),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11543 {"evsad2sh",		  VX (4, 1573),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11544 {"evsaduwa",		  VX (4, 1576),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11545 {"evsadswa",		  VX (4, 1577),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11546 {"evsad4uba",		  VX (4, 1578),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11547 {"evsad4sba",		  VX (4, 1579),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11548 {"evsad2uha",		  VX (4, 1580),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11549 {"evsad2sha",		  VX (4, 1581),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11550 {"evabsdifuw",		  VX (4, 1584),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11551 {"evabsdifsw",		  VX (4, 1585),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11552 {"evabsdifub",		  VX (4, 1586),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11553 {"evabsdifsb",		  VX (4, 1587),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11554 {"evabsdifuh",		  VX (4, 1588),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11555 {"evabsdifsh",		  VX (4, 1589),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11556 {"evsaduwaa",		  VX (4, 1592),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11557 {"evsadswaa",		  VX (4, 1593),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11558 {"evsad4ubaaw",		  VX (4, 1594),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11559 {"evsad4sbaaw",		  VX (4, 1595),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11560 {"evsad2uhaaw",		  VX (4, 1596),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11561 {"evsad2shaaw",		  VX (4, 1597),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11562 {"evpkshubs",		  VX (4, 1600),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11563 {"evpkshsbs",		  VX (4, 1601),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11564 {"evpkswuhs",		  VX (4, 1602),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11565 {"evpkswshs",		  VX (4, 1603),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11566 {"evpkuhubs",		  VX (4, 1604),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11567 {"evpkuwuhs",		  VX (4, 1605),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11568 {"evpkswshilvs",	  VX (4, 1606),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11569 {"evpkswgshefrs",	  VX (4, 1607),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11570 {"evpkswshfrs",		  VX (4, 1608),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11571 {"evpkswshilvfrs",	  VX (4, 1609),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11572 {"evpksdswfrs",		  VX (4, 1610),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11573 {"evpksdshefrs",	  VX (4, 1611),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11574 {"evpkuduws",		  VX (4, 1612),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11575 {"evpksdsws",		  VX (4, 1613),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11576 {"evpkswgswfrs",	  VX (4, 1614),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11577 {"evilveh",		  VX (4, 1616),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11578 {"evilveoh",		  VX (4, 1617),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11579 {"evilvhih",		  VX (4, 1618),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11580 {"evilvhiloh",		  VX (4, 1619),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11581 {"evilvloh",		  VX (4, 1620),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11582 {"evilvlohih",		  VX (4, 1621),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11583 {"evilvoeh",		  VX (4, 1622),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11584 {"evilvoh",		  VX (4, 1623),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11585 {"evdlveb",		  VX (4, 1624),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11586 {"evdlveh",		  VX (4, 1625),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11587 {"evdlveob",		  VX (4, 1626),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11588 {"evdlveoh",		  VX (4, 1627),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11589 {"evdlvob",		  VX (4, 1628),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11590 {"evdlvoh",		  VX (4, 1629),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11591 {"evdlvoeb",		  VX (4, 1630),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11592 {"evdlvoeh",		  VX (4, 1631),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11593 {"evmaxbu",		  VX (4, 1632),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11594 {"evmaxbs",		  VX (4, 1633),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11595 {"evmaxhu",		  VX (4, 1634),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11596 {"evmaxhs",		  VX (4, 1635),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11597 {"evmaxwu",		  VX (4, 1636),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11598 {"evmaxws",		  VX (4, 1637),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11599 {"evmaxdu",		  VX (4, 1638),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11600 {"evmaxds",		  VX (4, 1639),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11601 {"evminbu",		  VX (4, 1640),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11602 {"evminbs",		  VX (4, 1641),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11603 {"evminhu",		  VX (4, 1642),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11604 {"evminhs",		  VX (4, 1643),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11605 {"evminwu",		  VX (4, 1644),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11606 {"evminws",		  VX (4, 1645),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11607 {"evmindu",		  VX (4, 1646),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11608 {"evminds",		  VX (4, 1647),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11609 {"evavgwu",		  VX (4, 1648),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11610 {"evavgws",		  VX (4, 1649),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11611 {"evavgbu",		  VX (4, 1650),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11612 {"evavgbs",		  VX (4, 1651),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11613 {"evavghu",		  VX (4, 1652),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11614 {"evavghs",		  VX (4, 1653),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11615 {"evavgdu",		  VX (4, 1654),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11616 {"evavgds",		  VX (4, 1655),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11617 {"evavgwur",		  VX (4, 1656),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11618 {"evavgwsr",		  VX (4, 1657),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11619 {"evavgbur",		  VX (4, 1658),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11620 {"evavgbsr",		  VX (4, 1659),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11621 {"evavghur",		  VX (4, 1660),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11622 {"evavghsr",		  VX (4, 1661),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11623 {"evavgdur",		  VX (4, 1662),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11624 {"evavgdsr",		  VX (4, 1663),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11625 };
   11626 
   11627 const unsigned int spe2_num_opcodes = ARRAY_SIZE (spe2_opcodes);
   11628