Home | History | Annotate | Line # | Download | only in opcodes
      1   1.1     skrll /* ppc-opc.c -- PowerPC opcode list
      2  1.14  christos    Copyright (C) 1994-2026 Free Software Foundation, Inc.
      3   1.1     skrll    Written by Ian Lance Taylor, Cygnus Support
      4   1.1     skrll 
      5   1.1     skrll    This file is part of the GNU opcodes library.
      6   1.1     skrll 
      7   1.1     skrll    This library is free software; you can redistribute it and/or modify
      8   1.1     skrll    it under the terms of the GNU General Public License as published by
      9   1.1     skrll    the Free Software Foundation; either version 3, or (at your option)
     10   1.1     skrll    any later version.
     11   1.1     skrll 
     12   1.1     skrll    It is distributed in the hope that it will be useful, but WITHOUT
     13   1.1     skrll    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     14   1.1     skrll    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     15   1.1     skrll    License for more details.
     16   1.1     skrll 
     17   1.1     skrll    You should have received a copy of the GNU General Public License
     18   1.1     skrll    along with this file; see the file COPYING.  If not, write to the
     19   1.1     skrll    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
     20   1.1     skrll    MA 02110-1301, USA.  */
     21   1.1     skrll 
     22   1.4  christos #include "sysdep.h"
     23   1.1     skrll #include <stdio.h>
     24   1.1     skrll #include "opcode/ppc.h"
     25   1.1     skrll #include "opintl.h"
     26  1.12  christos #include "libiberty.h"
     27   1.1     skrll 
     28   1.1     skrll /* This file holds the PowerPC opcode table.  The opcode table
     29   1.1     skrll    includes almost all of the extended instruction mnemonics.  This
     30   1.1     skrll    permits the disassembler to use them, and simplifies the assembler
     31   1.1     skrll    logic, at the cost of increasing the table size.  The table is
     32   1.1     skrll    strictly constant data, so the compiler should be able to put it in
     33   1.8  christos    the text segment.
     34   1.1     skrll 
     35   1.1     skrll    This file also holds the operand table.  All knowledge about
     36   1.1     skrll    inserting operands into instructions and vice-versa is kept in this
     37   1.1     skrll    file.  */
     38   1.1     skrll 
     39   1.8  christos /* The functions used to insert and extract complicated operands.  */
     40   1.8  christos 
     41   1.8  christos /* The ARX, ARY, RX and RY operands are alternate encodings of GPRs.  */
     42   1.8  christos 
     43   1.8  christos static uint64_t
     44   1.8  christos insert_arx (uint64_t insn,
     45   1.8  christos 	    int64_t value,
     46   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     47   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
     48   1.8  christos {
     49  1.10  christos   value -= 8;
     50  1.10  christos   if (value < 0 || value >= 16)
     51   1.8  christos     {
     52   1.8  christos       *errmsg = _("invalid register");
     53  1.10  christos       value = 0xf;
     54   1.8  christos     }
     55  1.10  christos   return insn | value;
     56   1.8  christos }
     57   1.8  christos 
     58   1.8  christos static int64_t
     59   1.8  christos extract_arx (uint64_t insn,
     60   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     61   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
     62   1.8  christos {
     63   1.8  christos   return (insn & 0xf) + 8;
     64   1.8  christos }
     65   1.8  christos 
     66   1.8  christos static uint64_t
     67   1.8  christos insert_ary (uint64_t insn,
     68   1.8  christos 	    int64_t value,
     69   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     70   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
     71   1.8  christos {
     72  1.10  christos   value -= 8;
     73  1.10  christos   if (value < 0 || value >= 16)
     74   1.8  christos     {
     75   1.8  christos       *errmsg = _("invalid register");
     76  1.10  christos       value = 0xf;
     77   1.8  christos     }
     78  1.10  christos   return insn | (value << 4);
     79   1.8  christos }
     80   1.8  christos 
     81   1.8  christos static int64_t
     82   1.8  christos extract_ary (uint64_t insn,
     83   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     84   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
     85   1.8  christos {
     86   1.8  christos   return ((insn >> 4) & 0xf) + 8;
     87   1.8  christos }
     88   1.8  christos 
     89   1.8  christos static uint64_t
     90   1.8  christos insert_rx (uint64_t insn,
     91   1.8  christos 	   int64_t value,
     92   1.8  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
     93   1.8  christos 	   const char **errmsg)
     94   1.8  christos {
     95   1.8  christos   if (value >= 0 && value < 8)
     96  1.10  christos     ;
     97   1.8  christos   else if (value >= 24 && value <= 31)
     98  1.10  christos     value -= 16;
     99   1.8  christos   else
    100   1.8  christos     {
    101   1.8  christos       *errmsg = _("invalid register");
    102  1.10  christos       value = 0xf;
    103   1.8  christos     }
    104  1.10  christos   return insn | value;
    105   1.8  christos }
    106   1.8  christos 
    107   1.8  christos static int64_t
    108   1.8  christos extract_rx (uint64_t insn,
    109   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    110   1.8  christos 	    int *invalid ATTRIBUTE_UNUSED)
    111   1.8  christos {
    112   1.8  christos   int64_t value = insn & 0xf;
    113   1.8  christos   if (value >= 0 && value < 8)
    114   1.8  christos     return value;
    115   1.8  christos   else
    116   1.8  christos     return value + 16;
    117   1.8  christos }
    118   1.8  christos 
    119   1.8  christos static uint64_t
    120   1.8  christos insert_ry (uint64_t insn,
    121   1.8  christos 	   int64_t value,
    122   1.8  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    123   1.8  christos 	   const char **errmsg)
    124   1.8  christos {
    125   1.8  christos   if (value >= 0 && value < 8)
    126  1.10  christos     ;
    127   1.8  christos   else if (value >= 24 && value <= 31)
    128  1.10  christos     value -= 16;
    129   1.8  christos   else
    130   1.8  christos     {
    131   1.8  christos       *errmsg = _("invalid register");
    132  1.10  christos       value = 0xf;
    133   1.8  christos     }
    134  1.10  christos   return insn | (value << 4);
    135   1.8  christos }
    136   1.8  christos 
    137   1.8  christos static int64_t
    138   1.8  christos extract_ry (uint64_t insn,
    139   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    140   1.8  christos 	    int *invalid ATTRIBUTE_UNUSED)
    141   1.8  christos {
    142   1.8  christos   int64_t value = (insn >> 4) & 0xf;
    143   1.8  christos   if (value >= 0 && value < 8)
    144   1.8  christos     return value;
    145   1.8  christos   else
    146   1.8  christos     return value + 16;
    147   1.8  christos }
    148   1.8  christos 
    149   1.9  christos /* The BA and BB fields in an XL form instruction or the RA and RB fields or
    150   1.9  christos    VRA and VRB fields in a VX form instruction when they must be the same.
    151   1.9  christos    This is used for extended mnemonics like crclr.  The extraction function
    152   1.9  christos    enforces that the fields are the same.  */
    153   1.8  christos 
    154   1.8  christos static uint64_t
    155   1.9  christos insert_bab (uint64_t insn,
    156   1.9  christos 	    int64_t value,
    157   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    158   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
    159   1.8  christos {
    160   1.9  christos   value &= 0x1f;
    161   1.9  christos   return insn | (value << 16) | (value << 11);
    162   1.8  christos }
    163   1.8  christos 
    164   1.8  christos static int64_t
    165   1.9  christos extract_bab (uint64_t insn,
    166   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    167   1.8  christos 	     int *invalid)
    168   1.8  christos {
    169   1.9  christos   int64_t ba = (insn >> 16) & 0x1f;
    170   1.9  christos   int64_t bb = (insn >> 11) & 0x1f;
    171   1.9  christos 
    172   1.9  christos   if (ba != bb)
    173   1.8  christos     *invalid = 1;
    174   1.9  christos   return ba;
    175   1.8  christos }
    176   1.8  christos 
    177   1.9  christos /* The BT, BA and BB fields in an XL form instruction when they must all be
    178   1.9  christos    the same.  This is used for extended mnemonics like crclr.  The extraction
    179   1.9  christos    function enforces that the fields are the same.  */
    180   1.8  christos 
    181   1.8  christos static uint64_t
    182   1.9  christos insert_btab (uint64_t insn,
    183   1.9  christos 	     int64_t value,
    184   1.9  christos 	     ppc_cpu_t dialect,
    185   1.9  christos 	     const char **errmsg)
    186   1.8  christos {
    187   1.9  christos   value &= 0x1f;
    188   1.9  christos   return (value << 21) | insert_bab (insn, value, dialect, errmsg);
    189   1.8  christos }
    190   1.8  christos 
    191   1.8  christos static int64_t
    192   1.9  christos extract_btab (uint64_t insn,
    193   1.9  christos 	     ppc_cpu_t dialect,
    194   1.8  christos 	     int *invalid)
    195   1.8  christos {
    196   1.9  christos   int64_t bt = (insn >> 21) & 0x1f;
    197   1.9  christos   int64_t bab = extract_bab (insn, dialect, invalid);
    198   1.9  christos 
    199   1.9  christos   if (bt != bab)
    200   1.8  christos     *invalid = 1;
    201   1.9  christos   return bt;
    202   1.8  christos }
    203   1.8  christos 
    204   1.8  christos /* The BD field in a B form instruction when the - modifier is used.
    205   1.8  christos    This modifier means that the branch is not expected to be taken.
    206   1.8  christos    For chips built to versions of the architecture prior to version 2
    207   1.8  christos    (ie. not Power4 compatible), we set the y bit of the BO field to 1
    208   1.8  christos    if the offset is negative.  When extracting, we require that the y
    209   1.8  christos    bit be 1 and that the offset be positive, since if the y bit is 0
    210   1.8  christos    we just want to print the normal form of the instruction.
    211   1.8  christos    Power4 compatible targets use two bits, "a", and "t", instead of
    212   1.8  christos    the "y" bit.  "at" == 00 => no hint, "at" == 01 => unpredictable,
    213   1.8  christos    "at" == 10 => not taken, "at" == 11 => taken.  The "t" bit is 00001
    214   1.8  christos    in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
    215   1.8  christos    for branch on CTR.  We only handle the taken/not-taken hint here.
    216   1.8  christos    Note that we don't relax the conditions tested here when
    217   1.8  christos    disassembling with -Many because insns using extract_bdm and
    218   1.8  christos    extract_bdp always occur in pairs.  One or the other will always
    219   1.8  christos    be valid.  */
    220   1.8  christos 
    221   1.8  christos #define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
    222   1.8  christos 
    223   1.8  christos static uint64_t
    224   1.8  christos insert_bdm (uint64_t insn,
    225   1.8  christos 	    int64_t value,
    226   1.8  christos 	    ppc_cpu_t dialect,
    227   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
    228   1.8  christos {
    229   1.8  christos   if ((dialect & ISA_V2) == 0)
    230   1.8  christos     {
    231   1.8  christos       if ((value & 0x8000) != 0)
    232   1.8  christos 	insn |= 1 << 21;
    233   1.8  christos     }
    234   1.8  christos   else
    235   1.8  christos     {
    236   1.8  christos       if ((insn & (0x14 << 21)) == (0x04 << 21))
    237   1.8  christos 	insn |= 0x02 << 21;
    238   1.8  christos       else if ((insn & (0x14 << 21)) == (0x10 << 21))
    239   1.8  christos 	insn |= 0x08 << 21;
    240   1.8  christos     }
    241   1.8  christos   return insn | (value & 0xfffc);
    242   1.8  christos }
    243   1.8  christos 
    244   1.8  christos static int64_t
    245   1.8  christos extract_bdm (uint64_t insn,
    246   1.8  christos 	     ppc_cpu_t dialect,
    247   1.8  christos 	     int *invalid)
    248   1.8  christos {
    249   1.8  christos   if ((dialect & ISA_V2) == 0)
    250   1.8  christos     {
    251   1.8  christos       if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
    252   1.8  christos 	*invalid = 1;
    253   1.8  christos     }
    254   1.8  christos   else
    255   1.8  christos     {
    256   1.8  christos       if ((insn & (0x17 << 21)) != (0x06 << 21)
    257   1.8  christos 	  && (insn & (0x1d << 21)) != (0x18 << 21))
    258   1.8  christos 	*invalid = 1;
    259   1.8  christos     }
    260   1.1     skrll 
    261   1.8  christos   return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
    262   1.8  christos }
    263   1.1     skrll 
    264   1.8  christos /* The BD field in a B form instruction when the + modifier is used.
    265   1.8  christos    This is like BDM, above, except that the branch is expected to be
    266   1.8  christos    taken.  */
    267   1.1     skrll 
    268   1.8  christos static uint64_t
    269   1.8  christos insert_bdp (uint64_t insn,
    270   1.8  christos 	    int64_t value,
    271   1.8  christos 	    ppc_cpu_t dialect,
    272   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
    273   1.1     skrll {
    274   1.8  christos   if ((dialect & ISA_V2) == 0)
    275   1.8  christos     {
    276   1.8  christos       if ((value & 0x8000) == 0)
    277   1.8  christos 	insn |= 1 << 21;
    278   1.8  christos     }
    279   1.8  christos   else
    280   1.8  christos     {
    281   1.8  christos       if ((insn & (0x14 << 21)) == (0x04 << 21))
    282   1.8  christos 	insn |= 0x03 << 21;
    283   1.8  christos       else if ((insn & (0x14 << 21)) == (0x10 << 21))
    284   1.8  christos 	insn |= 0x09 << 21;
    285   1.8  christos     }
    286   1.8  christos   return insn | (value & 0xfffc);
    287   1.8  christos }
    288   1.1     skrll 
    289   1.8  christos static int64_t
    290   1.8  christos extract_bdp (uint64_t insn,
    291   1.8  christos 	     ppc_cpu_t dialect,
    292   1.8  christos 	     int *invalid)
    293   1.8  christos {
    294   1.8  christos   if ((dialect & ISA_V2) == 0)
    295   1.8  christos     {
    296   1.8  christos       if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
    297   1.8  christos 	*invalid = 1;
    298   1.8  christos     }
    299   1.8  christos   else
    300   1.8  christos     {
    301   1.8  christos       if ((insn & (0x17 << 21)) != (0x07 << 21)
    302   1.8  christos 	  && (insn & (0x1d << 21)) != (0x19 << 21))
    303   1.8  christos 	*invalid = 1;
    304   1.8  christos     }
    305   1.1     skrll 
    306   1.8  christos   return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
    307   1.8  christos }
    308   1.1     skrll 
    309   1.8  christos static inline int
    310   1.8  christos valid_bo_pre_v2 (int64_t value)
    311   1.8  christos {
    312   1.8  christos   /* Certain encodings have bits that are required to be zero.
    313   1.8  christos      These are (z must be zero, y may be anything):
    314   1.8  christos 	 0000y
    315   1.8  christos 	 0001y
    316   1.8  christos 	 001zy
    317   1.8  christos 	 0100y
    318   1.8  christos 	 0101y
    319   1.8  christos 	 011zy
    320   1.8  christos 	 1z00y
    321   1.8  christos 	 1z01y
    322   1.8  christos 	 1z1zz
    323   1.8  christos   */
    324   1.8  christos   if ((value & 0x14) == 0)
    325  1.10  christos     /* BO: 0000y, 0001y, 0100y, 0101y.  */
    326   1.8  christos     return 1;
    327   1.8  christos   else if ((value & 0x14) == 0x4)
    328  1.10  christos     /* BO: 001zy, 011zy.  */
    329   1.8  christos     return (value & 0x2) == 0;
    330   1.8  christos   else if ((value & 0x14) == 0x10)
    331  1.10  christos     /* BO: 1z00y, 1z01y.  */
    332   1.8  christos     return (value & 0x8) == 0;
    333   1.8  christos   else
    334  1.10  christos     /* BO: 1z1zz.  */
    335   1.8  christos     return value == 0x14;
    336   1.8  christos }
    337   1.1     skrll 
    338   1.8  christos static inline int
    339   1.8  christos valid_bo_post_v2 (int64_t value)
    340   1.8  christos {
    341   1.8  christos   /* Certain encodings have bits that are required to be zero.
    342   1.8  christos      These are (z must be zero, a & t may be anything):
    343   1.8  christos 	 0000z
    344   1.8  christos 	 0001z
    345   1.8  christos 	 001at
    346   1.8  christos 	 0100z
    347   1.8  christos 	 0101z
    348   1.8  christos 	 011at
    349   1.8  christos 	 1a00t
    350   1.8  christos 	 1a01t
    351   1.8  christos 	 1z1zz
    352   1.8  christos   */
    353   1.8  christos   if ((value & 0x14) == 0)
    354  1.10  christos     /* BO: 0000z, 0001z, 0100z, 0101z.  */
    355   1.8  christos     return (value & 0x1) == 0;
    356   1.8  christos   else if ((value & 0x14) == 0x14)
    357  1.10  christos     /* BO: 1z1zz.  */
    358   1.8  christos     return value == 0x14;
    359  1.10  christos   else if ((value & 0x14) == 0x4)
    360  1.10  christos     /* BO: 001at, 011at, with "at" == 0b01 being reserved.  */
    361  1.10  christos     return (value & 0x3) != 1;
    362  1.10  christos   else if ((value & 0x14) == 0x10)
    363  1.10  christos     /* BO: 1a00t, 1a01t, with "at" == 0b01 being reserved.  */
    364  1.10  christos     return (value & 0x9) != 1;
    365   1.8  christos   else
    366   1.8  christos     return 1;
    367   1.8  christos }
    368   1.1     skrll 
    369   1.8  christos /* Check for legal values of a BO field.  */
    370   1.1     skrll 
    371   1.8  christos static int
    372   1.8  christos valid_bo (int64_t value, ppc_cpu_t dialect, int extract)
    373   1.8  christos {
    374   1.8  christos   int valid_y = valid_bo_pre_v2 (value);
    375   1.8  christos   int valid_at = valid_bo_post_v2 (value);
    376   1.1     skrll 
    377   1.8  christos   /* When disassembling with -Many, accept either encoding on the
    378   1.8  christos      second pass through opcodes.  */
    379   1.8  christos   if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
    380   1.8  christos     return valid_y || valid_at;
    381   1.8  christos   if ((dialect & ISA_V2) == 0)
    382   1.8  christos     return valid_y;
    383   1.8  christos   else
    384   1.8  christos     return valid_at;
    385   1.8  christos }
    386   1.1     skrll 
    387   1.8  christos /* The BO field in a B form instruction.  Warn about attempts to set
    388   1.8  christos    the field to an illegal value.  */
    389   1.1     skrll 
    390   1.8  christos static uint64_t
    391   1.8  christos insert_bo (uint64_t insn,
    392   1.8  christos 	   int64_t value,
    393   1.8  christos 	   ppc_cpu_t dialect,
    394   1.8  christos 	   const char **errmsg)
    395   1.8  christos {
    396   1.8  christos   if (!valid_bo (value, dialect, 0))
    397   1.8  christos     *errmsg = _("invalid conditional option");
    398  1.10  christos   else if (PPC_OP (insn) == 19
    399  1.10  christos 	   && (((insn >> 1) & 0x3ff) == 528) && ! (value & 4))
    400   1.8  christos     *errmsg = _("invalid counter access");
    401   1.8  christos   return insn | ((value & 0x1f) << 21);
    402   1.8  christos }
    403   1.1     skrll 
    404   1.8  christos static int64_t
    405   1.8  christos extract_bo (uint64_t insn,
    406   1.8  christos 	    ppc_cpu_t dialect,
    407   1.8  christos 	    int *invalid)
    408   1.8  christos {
    409   1.8  christos   int64_t value = (insn >> 21) & 0x1f;
    410   1.8  christos   if (!valid_bo (value, dialect, 1))
    411   1.8  christos     *invalid = 1;
    412   1.8  christos   return value;
    413   1.8  christos }
    414   1.1     skrll 
    415  1.10  christos /* For the given BO value, return a bit mask detailing which bits
    416  1.10  christos    define the branch hints.  */
    417  1.10  christos 
    418  1.10  christos static int64_t
    419  1.10  christos get_bo_hint_mask (int64_t bo, ppc_cpu_t dialect)
    420  1.10  christos {
    421  1.10  christos   if ((dialect & ISA_V2) == 0)
    422  1.10  christos     {
    423  1.10  christos       if ((bo & 0x14) != 0x14)
    424  1.10  christos 	/* BO: 0000y, 0001y, 001zy, 0100y, 0101y, 011zy, 1z00y, 1z01y .  */
    425  1.10  christos 	return 1;
    426  1.10  christos       else
    427  1.10  christos 	/* BO: 1z1zz.  */
    428  1.10  christos 	return 0;
    429  1.10  christos     }
    430  1.10  christos   else
    431  1.10  christos     {
    432  1.10  christos       if ((bo & 0x14) == 0x4)
    433  1.10  christos 	/* BO: 001at, 011at.  */
    434  1.10  christos 	return 0x3;
    435  1.10  christos       else if ((bo & 0x14) == 0x10)
    436  1.10  christos 	/* BO: 1a00t, 1a01t.  */
    437  1.10  christos 	return 0x9;
    438  1.10  christos       else
    439  1.10  christos 	/* BO: 0000z, 0001z, 0100z, 0101z, 1z1zz.  */
    440  1.10  christos 	return 0;
    441  1.10  christos     }
    442  1.10  christos }
    443  1.10  christos 
    444  1.10  christos /* The BO field in a B form instruction when the + or - modifier is used.  */
    445   1.1     skrll 
    446   1.8  christos static uint64_t
    447   1.8  christos insert_boe (uint64_t insn,
    448   1.8  christos 	    int64_t value,
    449   1.8  christos 	    ppc_cpu_t dialect,
    450  1.10  christos 	    const char **errmsg,
    451  1.10  christos 	    int branch_taken)
    452   1.8  christos {
    453  1.10  christos   int64_t implied_hint;
    454  1.10  christos   int64_t hint_mask = get_bo_hint_mask (value, dialect);
    455  1.10  christos 
    456  1.10  christos   if (branch_taken)
    457  1.10  christos     implied_hint = hint_mask;
    458  1.10  christos   else
    459  1.10  christos     implied_hint = hint_mask & ~1;
    460  1.10  christos 
    461  1.10  christos   /* The branch hint bit(s) in the BO field must either be zero or exactly
    462  1.10  christos      match the branch hint bits implied by the '+' or '-' modifier.  */
    463  1.10  christos   if (implied_hint == 0)
    464  1.10  christos     *errmsg = _("BO value implies no branch hint, when using + or - modifier");
    465  1.10  christos   else if ((value & hint_mask) != 0
    466  1.10  christos 	   && (value & hint_mask) != implied_hint)
    467  1.10  christos     {
    468  1.10  christos       if ((dialect & ISA_V2) == 0)
    469  1.10  christos 	*errmsg = _("attempt to set y bit when using + or - modifier");
    470  1.10  christos       else
    471  1.10  christos 	*errmsg = _("attempt to set 'at' bits when using + or - modifier");
    472  1.10  christos     }
    473  1.10  christos 
    474  1.10  christos   value |= implied_hint;
    475   1.1     skrll 
    476  1.10  christos   return insert_bo (insn, value, dialect, errmsg);
    477   1.8  christos }
    478   1.1     skrll 
    479   1.8  christos static int64_t
    480   1.8  christos extract_boe (uint64_t insn,
    481   1.8  christos 	     ppc_cpu_t dialect,
    482  1.10  christos 	     int *invalid,
    483  1.10  christos 	     int branch_taken)
    484   1.8  christos {
    485   1.8  christos   int64_t value = (insn >> 21) & 0x1f;
    486  1.10  christos   int64_t implied_hint;
    487  1.10  christos   int64_t hint_mask = get_bo_hint_mask (value, dialect);
    488  1.10  christos 
    489  1.10  christos   if (branch_taken)
    490  1.10  christos     implied_hint = hint_mask;
    491  1.10  christos   else
    492  1.10  christos     implied_hint = hint_mask & ~1;
    493  1.10  christos 
    494  1.10  christos   if (!valid_bo (value, dialect, 1)
    495  1.10  christos       || implied_hint == 0
    496  1.10  christos       || (value & hint_mask) != implied_hint)
    497   1.8  christos     *invalid = 1;
    498  1.10  christos   return value;
    499  1.10  christos }
    500  1.10  christos 
    501  1.10  christos /* The BO field in a B form instruction when the - modifier is used.  */
    502  1.10  christos 
    503  1.10  christos static uint64_t
    504  1.10  christos insert_bom (uint64_t insn,
    505  1.10  christos 	    int64_t value,
    506  1.10  christos 	    ppc_cpu_t dialect,
    507  1.10  christos 	    const char **errmsg)
    508  1.10  christos {
    509  1.10  christos   return insert_boe (insn, value, dialect, errmsg, 0);
    510  1.10  christos }
    511  1.10  christos 
    512  1.10  christos static int64_t
    513  1.10  christos extract_bom (uint64_t insn,
    514  1.10  christos 	     ppc_cpu_t dialect,
    515  1.10  christos 	     int *invalid)
    516  1.10  christos {
    517  1.10  christos   return extract_boe (insn, dialect, invalid, 0);
    518  1.10  christos }
    519  1.10  christos 
    520  1.10  christos /* The BO field in a B form instruction when the + modifier is used.  */
    521  1.10  christos 
    522  1.10  christos static uint64_t
    523  1.10  christos insert_bop (uint64_t insn,
    524  1.10  christos 	    int64_t value,
    525  1.10  christos 	    ppc_cpu_t dialect,
    526  1.10  christos 	    const char **errmsg)
    527  1.10  christos {
    528  1.10  christos   return insert_boe (insn, value, dialect, errmsg, 1);
    529  1.10  christos }
    530  1.10  christos 
    531  1.10  christos static int64_t
    532  1.10  christos extract_bop (uint64_t insn,
    533  1.10  christos 	     ppc_cpu_t dialect,
    534  1.10  christos 	     int *invalid)
    535  1.10  christos {
    536  1.10  christos   return extract_boe (insn, dialect, invalid, 1);
    537   1.8  christos }
    538   1.1     skrll 
    539   1.8  christos /* The DCMX field in a X form instruction when the field is split
    540   1.8  christos    into separate DC, DM and DX fields.  */
    541   1.1     skrll 
    542   1.8  christos static uint64_t
    543   1.8  christos insert_dcmxs (uint64_t insn,
    544   1.8  christos 	      int64_t value,
    545   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    546   1.8  christos 	      const char **errmsg ATTRIBUTE_UNUSED)
    547   1.8  christos {
    548   1.8  christos   return (insn
    549   1.8  christos 	  | ((value & 0x1f) << 16)
    550   1.8  christos 	  | ((value & 0x20) >> 3)
    551   1.8  christos 	  | (value & 0x40));
    552   1.8  christos }
    553   1.1     skrll 
    554   1.8  christos static int64_t
    555   1.8  christos extract_dcmxs (uint64_t insn,
    556   1.8  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    557   1.8  christos 	       int *invalid ATTRIBUTE_UNUSED)
    558   1.8  christos {
    559   1.8  christos   return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
    560   1.8  christos }
    561   1.6  christos 
    562  1.11  christos /* The DW field in a X form instruction when the field is split
    563  1.11  christos    into separate D and DX fields.  */
    564  1.11  christos 
    565  1.11  christos static uint64_t
    566  1.11  christos insert_dw (uint64_t insn,
    567  1.11  christos 	   int64_t value,
    568  1.11  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    569  1.11  christos 	   const char **errmsg ATTRIBUTE_UNUSED)
    570  1.11  christos {
    571  1.11  christos   /* DW offsets must be in the range [-512, -8] and be a multiple of 8.  */
    572  1.11  christos   if (value < -512
    573  1.11  christos       || value > -8
    574  1.11  christos       || (value & 0x7) != 0)
    575  1.11  christos     *errmsg = _("invalid offset: must be in the range [-512, -8] "
    576  1.11  christos 		"and be a multiple of 8");
    577  1.11  christos 
    578  1.11  christos   return insn | ((value & 0xf8) << 18) | ((value >> 8) & 1);
    579  1.11  christos }
    580  1.11  christos 
    581  1.11  christos static int64_t
    582  1.11  christos extract_dw (uint64_t insn,
    583  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    584  1.11  christos 	     int *invalid ATTRIBUTE_UNUSED)
    585  1.11  christos {
    586  1.11  christos   int64_t dw = ((insn & 1) << 8) | ((insn >> 18) & 0xf8);
    587  1.11  christos   return dw - 512;
    588  1.11  christos }
    589  1.11  christos 
    590   1.8  christos /* The D field in a DX form instruction when the field is split
    591   1.8  christos    into separate D0, D1 and D2 fields.  */
    592   1.1     skrll 
    593   1.8  christos static uint64_t
    594   1.8  christos insert_dxd (uint64_t insn,
    595   1.8  christos 	    int64_t value,
    596   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    597   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
    598   1.8  christos {
    599   1.8  christos   return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
    600   1.8  christos }
    601   1.4  christos 
    602   1.8  christos static int64_t
    603   1.8  christos extract_dxd (uint64_t insn,
    604   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    605   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
    606   1.8  christos {
    607   1.8  christos   uint64_t dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
    608   1.8  christos   return (dxd ^ 0x8000) - 0x8000;
    609   1.8  christos }
    610   1.4  christos 
    611   1.8  christos static uint64_t
    612   1.8  christos insert_dxdn (uint64_t insn,
    613   1.8  christos 	     int64_t value,
    614   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    615   1.8  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
    616   1.8  christos {
    617   1.8  christos   return insert_dxd (insn, -value, dialect, errmsg);
    618   1.8  christos }
    619   1.4  christos 
    620   1.8  christos static int64_t
    621   1.8  christos extract_dxdn (uint64_t insn,
    622   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    623  1.10  christos 	      int *invalid)
    624   1.8  christos {
    625   1.8  christos   return -extract_dxd (insn, dialect, invalid);
    626   1.8  christos }
    627   1.4  christos 
    628  1.10  christos /* The D field in a 64-bit D form prefix instruction when the field is split
    629  1.10  christos    into separate D0 and D1 fields.  */
    630  1.10  christos 
    631  1.10  christos static uint64_t
    632  1.10  christos insert_d34 (uint64_t insn,
    633  1.10  christos 	    int64_t value,
    634  1.10  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    635  1.10  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
    636  1.10  christos {
    637  1.10  christos   return insn | ((value & 0x3ffff0000ULL) << 16) | (value & 0xffff);
    638  1.10  christos }
    639  1.10  christos 
    640  1.10  christos static int64_t
    641  1.10  christos extract_d34 (uint64_t insn,
    642  1.10  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    643  1.10  christos 	     int *invalid ATTRIBUTE_UNUSED)
    644  1.10  christos {
    645  1.10  christos   int64_t mask = 1ULL << 33;
    646  1.10  christos   int64_t value = ((insn >> 16) & 0x3ffff0000ULL) | (insn & 0xffff);
    647  1.10  christos   value = (value ^ mask) - mask;
    648  1.10  christos   return value;
    649  1.10  christos }
    650  1.10  christos 
    651  1.10  christos /* The NSI34 field in an 8-byte D form prefix instruction.  This is the same
    652  1.10  christos    as the SI34 field, only negated.  The extraction function always marks it
    653  1.10  christos    as invalid, since we never want to recognize an instruction which uses
    654  1.10  christos    a field of this type.  */
    655  1.10  christos 
    656  1.10  christos static uint64_t
    657  1.10  christos insert_nsi34 (uint64_t insn,
    658  1.10  christos 	      int64_t value,
    659  1.10  christos 	      ppc_cpu_t dialect,
    660  1.10  christos 	      const char **errmsg)
    661  1.10  christos {
    662  1.10  christos   return insert_d34 (insn, -value, dialect, errmsg);
    663  1.10  christos }
    664  1.10  christos 
    665  1.10  christos static int64_t
    666  1.10  christos extract_nsi34 (uint64_t insn,
    667  1.10  christos 	       ppc_cpu_t dialect,
    668  1.10  christos 	       int *invalid)
    669  1.10  christos {
    670  1.10  christos   int64_t value = extract_d34 (insn, dialect, invalid);
    671  1.10  christos   *invalid = 1;
    672  1.10  christos   return -value;
    673  1.10  christos }
    674  1.10  christos 
    675  1.11  christos /* The split IMM32 field in a vector splat insn.  */
    676  1.11  christos 
    677  1.11  christos static uint64_t
    678  1.11  christos insert_imm32 (uint64_t insn,
    679  1.11  christos 	      int64_t value,
    680  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    681  1.11  christos 	      const char **errmsg ATTRIBUTE_UNUSED)
    682  1.11  christos {
    683  1.11  christos   return insn | ((value & 0xffff0000) << 16) | (value & 0xffff);
    684  1.11  christos }
    685  1.11  christos 
    686  1.11  christos static int64_t
    687  1.11  christos extract_imm32 (uint64_t insn,
    688  1.11  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    689  1.11  christos 	       int *invalid ATTRIBUTE_UNUSED)
    690  1.11  christos {
    691  1.11  christos   return (insn & 0xffff) | ((insn >> 16) & 0xffff0000);
    692  1.11  christos }
    693  1.11  christos 
    694  1.13  christos /* The 32bit SI field in a 64-bit D form prefix instruction when the field is split
    695  1.13  christos    into separate SI0 and SI1 fields.  */
    696  1.13  christos 
    697  1.13  christos static uint64_t
    698  1.13  christos insert_si32 (uint64_t insn,
    699  1.13  christos 	     int64_t value,
    700  1.13  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    701  1.13  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
    702  1.13  christos {
    703  1.13  christos   return insn | ((value & 0xffff0000ULL) << 16) | (value & 0xffff);
    704  1.13  christos }
    705  1.13  christos 
    706  1.13  christos static int64_t
    707  1.13  christos extract_si32 (uint64_t insn,
    708  1.13  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    709  1.13  christos 	      int *invalid ATTRIBUTE_UNUSED)
    710  1.13  christos {
    711  1.13  christos   int64_t mask = 1ULL << 31;
    712  1.13  christos   int64_t value = ((insn >> 16) & 0xffff0000ULL) | (insn & 0xffff);
    713  1.13  christos   value = (value ^ mask) - mask;
    714  1.13  christos   return value;
    715  1.13  christos }
    716  1.13  christos 
    717  1.13  christos /* The NSI32 field in an 8-byte D form prefix instruction.  This is the same
    718  1.13  christos    as the SI32 field, only negated.  The extraction function always marks it
    719  1.13  christos    as invalid, since we never want to recognize an instruction which uses
    720  1.13  christos    a field of this type.  */
    721  1.13  christos static uint64_t
    722  1.13  christos insert_nsi32 (uint64_t insn,
    723  1.13  christos 	      int64_t value,
    724  1.13  christos 	      ppc_cpu_t dialect,
    725  1.13  christos 	      const char **errmsg)
    726  1.13  christos {
    727  1.13  christos   return insert_si32 (insn, -value, dialect, errmsg);
    728  1.13  christos }
    729  1.13  christos 
    730  1.13  christos static int64_t
    731  1.13  christos extract_nsi32 (uint64_t insn,
    732  1.13  christos 	       ppc_cpu_t dialect,
    733  1.13  christos 	       int *invalid)
    734  1.13  christos {
    735  1.13  christos   int64_t value = extract_si32 (insn, dialect, invalid);
    736  1.13  christos   *invalid = 1;
    737  1.13  christos   return -value;
    738  1.13  christos }
    739  1.13  christos 
    740  1.10  christos /* The R field in an 8-byte prefix instruction when there are restrictions
    741  1.10  christos    between R's value and the RA value (ie, they cannot both be non zero).  */
    742  1.10  christos 
    743  1.10  christos static uint64_t
    744  1.10  christos insert_pcrel (uint64_t insn,
    745  1.10  christos 	      int64_t value,
    746  1.10  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    747  1.10  christos 	      const char **errmsg)
    748  1.10  christos {
    749  1.10  christos   value &= 0x1;
    750  1.10  christos   int64_t ra = (insn >> 16) & 0x1f;
    751  1.10  christos   if (ra != 0 && value != 0)
    752  1.10  christos     *errmsg = _("invalid R operand");
    753  1.10  christos 
    754  1.10  christos   return insn | (value << 52);
    755  1.10  christos }
    756  1.10  christos 
    757  1.10  christos static int64_t
    758  1.10  christos extract_pcrel (uint64_t insn,
    759  1.10  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    760  1.10  christos 	       int *invalid)
    761  1.10  christos {
    762  1.10  christos   /* If called with *invalid < 0 to return the value for missing
    763  1.10  christos      operands, *invalid will be the negative count of missing operands
    764  1.10  christos      including this one.  Return a default value of 1 if the PRA0/PRAQ
    765  1.10  christos      operand was also omitted (ie. *invalid is -2).  Return a default
    766  1.10  christos      value of 0 if the PRA0/PRAQ operand was not omitted
    767  1.10  christos      (ie. *invalid is -1).  */
    768  1.10  christos   if (*invalid < 0)
    769  1.10  christos     return ~ *invalid & 1;
    770  1.10  christos 
    771  1.10  christos   int64_t ra = (insn >> 16) & 0x1f;
    772  1.10  christos   int64_t pcrel = (insn >> 52) & 0x1;
    773  1.10  christos   if (ra != 0 && pcrel != 0)
    774  1.10  christos     *invalid = 1;
    775  1.10  christos 
    776  1.10  christos   return pcrel;
    777  1.10  christos }
    778  1.10  christos 
    779  1.12  christos /* Variant of extract_pcrel that sets invalid for R bit clear.  Used
    780  1.12  christos    to disassemble "paddi rt,0,offset,1" as "pla rt,offset".  */
    781  1.10  christos 
    782  1.10  christos static int64_t
    783  1.12  christos extract_pcrel1 (uint64_t insn,
    784  1.10  christos 		ppc_cpu_t dialect,
    785  1.10  christos 		int *invalid)
    786  1.10  christos {
    787  1.10  christos   int64_t pcrel = extract_pcrel (insn, dialect, invalid);
    788  1.12  christos   if (!pcrel)
    789  1.10  christos     *invalid = 1;
    790  1.10  christos   return pcrel;
    791  1.10  christos }
    792  1.10  christos 
    793   1.8  christos /* FXM mask in mfcr and mtcrf instructions.  */
    794   1.4  christos 
    795   1.8  christos static uint64_t
    796   1.8  christos insert_fxm (uint64_t insn,
    797   1.8  christos 	    int64_t value,
    798   1.8  christos 	    ppc_cpu_t dialect,
    799   1.8  christos 	    const char **errmsg)
    800   1.8  christos {
    801   1.8  christos   /* If we're handling the mfocrf and mtocrf insns ensure that exactly
    802   1.8  christos      one bit of the mask field is set.  */
    803   1.8  christos   if ((insn & (1 << 20)) != 0)
    804   1.8  christos     {
    805   1.8  christos       if (value == 0 || (value & -value) != value)
    806   1.8  christos 	{
    807   1.8  christos 	  *errmsg = _("invalid mask field");
    808   1.8  christos 	  value = 0;
    809   1.8  christos 	}
    810   1.8  christos     }
    811   1.4  christos 
    812   1.8  christos   /* If only one bit of the FXM field is set, we can use the new form
    813   1.8  christos      of the instruction, which is faster.  Unlike the Power4 branch hint
    814   1.8  christos      encoding, this is not backward compatible.  Do not generate the
    815   1.8  christos      new form unless -mpower4 has been given, or -many and the two
    816   1.8  christos      operand form of mfcr was used.  */
    817   1.8  christos   else if (value > 0
    818   1.8  christos 	   && (value & -value) == value
    819   1.8  christos 	   && ((dialect & PPC_OPCODE_POWER4) != 0
    820   1.8  christos 	       || ((dialect & PPC_OPCODE_ANY) != 0
    821   1.8  christos 		   && (insn & (0x3ff << 1)) == 19 << 1)))
    822   1.8  christos     insn |= 1 << 20;
    823   1.1     skrll 
    824   1.8  christos   /* Any other value on mfcr is an error.  */
    825   1.8  christos   else if ((insn & (0x3ff << 1)) == 19 << 1)
    826   1.8  christos     {
    827   1.8  christos       /* A value of -1 means we used the one operand form of
    828   1.8  christos 	 mfcr which is valid.  */
    829   1.8  christos       if (value != -1)
    830   1.8  christos 	*errmsg = _("invalid mfcr mask");
    831   1.8  christos       value = 0;
    832   1.8  christos     }
    833   1.1     skrll 
    834   1.8  christos   return insn | ((value & 0xff) << 12);
    835   1.8  christos }
    836   1.1     skrll 
    837   1.8  christos static int64_t
    838   1.8  christos extract_fxm (uint64_t insn,
    839   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    840   1.8  christos 	     int *invalid)
    841   1.8  christos {
    842  1.10  christos   /* Return a value of -1 for a missing optional operand, which is
    843  1.10  christos      used as a flag by insert_fxm.  */
    844  1.10  christos   if (*invalid < 0)
    845  1.10  christos     return -1;
    846  1.10  christos 
    847   1.8  christos   int64_t mask = (insn >> 12) & 0xff;
    848   1.8  christos   /* Is this a Power4 insn?  */
    849   1.8  christos   if ((insn & (1 << 20)) != 0)
    850   1.8  christos     {
    851   1.8  christos       /* Exactly one bit of MASK should be set.  */
    852   1.8  christos       if (mask == 0 || (mask & -mask) != mask)
    853   1.8  christos 	*invalid = 1;
    854   1.8  christos     }
    855   1.4  christos 
    856   1.8  christos   /* Check that non-power4 form of mfcr has a zero MASK.  */
    857   1.8  christos   else if ((insn & (0x3ff << 1)) == 19 << 1)
    858   1.8  christos     {
    859   1.8  christos       if (mask != 0)
    860   1.8  christos 	*invalid = 1;
    861   1.8  christos       else
    862   1.8  christos 	mask = -1;
    863   1.8  christos     }
    864   1.1     skrll 
    865   1.8  christos   return mask;
    866   1.8  christos }
    867   1.1     skrll 
    868  1.11  christos /* L field in the paste. instruction.  */
    869  1.11  christos 
    870  1.11  christos static uint64_t
    871  1.11  christos insert_l1opt (uint64_t insn,
    872  1.11  christos 	    int64_t value,
    873  1.11  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    874  1.11  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
    875  1.11  christos {
    876  1.11  christos   return insn | ((value & 1) << 21);
    877  1.11  christos }
    878  1.11  christos 
    879  1.11  christos static int64_t
    880  1.11  christos extract_l1opt (uint64_t insn,
    881  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    882  1.11  christos 	     int *invalid)
    883  1.11  christos {
    884  1.11  christos   /* Return a value of 1 for a missing optional operand.  */
    885  1.11  christos   if (*invalid < 0)
    886  1.11  christos     return 1;
    887  1.11  christos 
    888  1.11  christos   return (insn >> 21) & 1;
    889  1.11  christos }
    890  1.11  christos 
    891   1.8  christos static uint64_t
    892   1.8  christos insert_li20 (uint64_t insn,
    893   1.8  christos 	     int64_t value,
    894   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    895   1.8  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
    896   1.8  christos {
    897   1.8  christos   return (insn
    898   1.8  christos 	  | ((value & 0xf0000) >> 5)
    899   1.8  christos 	  | ((value & 0x0f800) << 5)
    900   1.8  christos 	  | (value & 0x7ff));
    901   1.8  christos }
    902   1.1     skrll 
    903   1.8  christos static int64_t
    904   1.8  christos extract_li20 (uint64_t insn,
    905   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
    906   1.8  christos 	      int *invalid ATTRIBUTE_UNUSED)
    907   1.8  christos {
    908   1.8  christos   return ((((insn << 5) & 0xf0000)
    909   1.8  christos 	   | ((insn >> 5) & 0xf800)
    910   1.8  christos 	   | (insn & 0x7ff)) ^ 0x80000) - 0x80000;
    911   1.8  christos }
    912   1.4  christos 
    913  1.11  christos /* The 2-bit/3-bit L or 2-bit WC field in a SYNC, DCBF or WAIT instruction.
    914   1.8  christos    For SYNC, some L values are reserved:
    915  1.11  christos      * Values 6 and 7 are reserved on newer server cpus.
    916  1.11  christos      * Value 3 is reserved on all server cpus.
    917  1.11  christos      * Value 2 is reserved on all other cpus.
    918  1.11  christos    For DCBF, some L values are reserved:
    919  1.11  christos      * Values 2, 5 and 7 are reserved on all cpus.
    920  1.11  christos    For WAIT, some WC values are reserved:
    921  1.11  christos      * Value 3 is reserved on all server cpus.
    922  1.11  christos      * Values 1 and 2 are reserved on older server cpus.  */
    923   1.5  christos 
    924   1.8  christos static uint64_t
    925   1.8  christos insert_ls (uint64_t insn,
    926   1.8  christos 	   int64_t value,
    927   1.8  christos 	   ppc_cpu_t dialect,
    928   1.8  christos 	   const char **errmsg)
    929   1.8  christos {
    930  1.11  christos   int64_t mask;
    931  1.11  christos 
    932   1.8  christos   if (((insn >> 1) & 0x3ff) == 598)
    933   1.8  christos     {
    934  1.11  christos       /* For SYNC, some L values are illegal.  */
    935  1.11  christos       mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
    936  1.11  christos 
    937  1.11  christos       /* If the value is within range, check for other illegal values.  */
    938  1.11  christos       if ((value & mask) == value)
    939  1.11  christos 	switch (value)
    940  1.11  christos 	  {
    941  1.11  christos 	  case 2:
    942  1.11  christos 	    if (dialect & PPC_OPCODE_POWER4)
    943  1.11  christos 	      break;
    944  1.11  christos 	    /* Fall through.  */
    945  1.11  christos 	  case 3:
    946  1.11  christos 	  case 6:
    947  1.11  christos 	  case 7:
    948  1.11  christos 	    *errmsg = _("illegal L operand value");
    949  1.11  christos 	    break;
    950  1.11  christos 	  default:
    951  1.11  christos 	    break;
    952  1.11  christos 	  }
    953  1.11  christos     }
    954  1.11  christos   else if (((insn >> 1) & 0x3ff) == 86)
    955  1.11  christos     {
    956  1.11  christos       /* For DCBF, some L values are illegal.  */
    957  1.11  christos       mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
    958  1.11  christos 
    959  1.11  christos       /* If the value is within range, check for other illegal values.  */
    960  1.11  christos       if ((value & mask) == value)
    961  1.11  christos 	switch (value)
    962  1.11  christos 	  {
    963  1.11  christos 	  case 2:
    964  1.11  christos 	  case 5:
    965  1.11  christos 	  case 7:
    966  1.11  christos 	    *errmsg = _("illegal L operand value");
    967  1.11  christos 	    break;
    968  1.11  christos 	  default:
    969  1.11  christos 	    break;
    970  1.11  christos 	  }
    971  1.11  christos     }
    972  1.11  christos   else
    973  1.11  christos     {
    974  1.11  christos       /* For WAIT, some WC values are illegal.  */
    975  1.11  christos       mask = 0x3;
    976  1.11  christos 
    977  1.11  christos       /* If the value is within range, check for other illegal values.  */
    978  1.11  christos       if ((dialect & PPC_OPCODE_A2) == 0
    979  1.11  christos 	  && (dialect & PPC_OPCODE_E500MC) == 0
    980  1.11  christos 	  && (value & mask) == value)
    981  1.11  christos 	switch (value)
    982  1.11  christos 	  {
    983  1.11  christos 	  case 1:
    984  1.11  christos 	  case 2:
    985  1.11  christos 	    if (dialect & PPC_OPCODE_POWER10)
    986  1.11  christos 	      break;
    987  1.11  christos 	    /* Fall through.  */
    988  1.11  christos 	  case 3:
    989  1.11  christos 	    *errmsg = _("illegal WC operand value");
    990  1.11  christos 	    break;
    991  1.11  christos 	  default:
    992  1.11  christos 	    break;
    993  1.11  christos 	  }
    994   1.8  christos     }
    995   1.5  christos 
    996  1.11  christos   return insn | ((value & mask) << 21);
    997   1.8  christos }
    998   1.1     skrll 
    999   1.8  christos static int64_t
   1000   1.8  christos extract_ls (uint64_t insn,
   1001   1.8  christos 	    ppc_cpu_t dialect,
   1002   1.8  christos 	    int *invalid)
   1003   1.8  christos {
   1004  1.11  christos   uint64_t value;
   1005  1.11  christos 
   1006  1.10  christos   /* Missing optional operands have a value of zero.  */
   1007  1.10  christos   if (*invalid < 0)
   1008  1.10  christos     return 0;
   1009  1.10  christos 
   1010   1.8  christos   if (((insn >> 1) & 0x3ff) == 598)
   1011   1.8  christos     {
   1012  1.11  christos       /* For SYNC, some L values are illegal.  */
   1013  1.11  christos       int64_t mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
   1014  1.11  christos 
   1015  1.11  christos       value = (insn >> 21) & mask;
   1016  1.11  christos       switch (value)
   1017  1.11  christos 	{
   1018  1.11  christos 	case 2:
   1019  1.11  christos 	  if (dialect & PPC_OPCODE_POWER4)
   1020  1.11  christos 	    break;
   1021  1.11  christos 	  /* Fall through.  */
   1022  1.11  christos 	case 3:
   1023  1.11  christos 	case 6:
   1024  1.11  christos 	case 7:
   1025  1.11  christos 	  *invalid = 1;
   1026  1.11  christos 	  break;
   1027  1.11  christos 	default:
   1028  1.11  christos 	  break;
   1029  1.11  christos 	}
   1030  1.11  christos     }
   1031  1.11  christos   else if (((insn >> 1) & 0x3ff) == 86)
   1032  1.11  christos     {
   1033  1.11  christos       /* For DCBF, some L values are illegal.  */
   1034  1.11  christos       int64_t mask = (dialect & PPC_OPCODE_POWER10) ?  0x7 : 0x3;
   1035  1.11  christos 
   1036  1.11  christos       value = (insn >> 21) & mask;
   1037  1.11  christos       switch (value)
   1038  1.11  christos 	{
   1039  1.11  christos 	case 2:
   1040  1.11  christos 	case 5:
   1041  1.11  christos 	case 7:
   1042  1.11  christos 	  *invalid = 1;
   1043  1.11  christos 	  break;
   1044  1.11  christos 	default:
   1045  1.11  christos 	  break;
   1046  1.11  christos 	}
   1047  1.11  christos     }
   1048  1.11  christos   else
   1049  1.11  christos     {
   1050  1.11  christos       /* For WAIT, some WC values are illegal.  */
   1051  1.11  christos       value = (insn >> 21) & 0x3;
   1052  1.11  christos       if ((dialect & PPC_OPCODE_A2) == 0
   1053  1.11  christos 	  && (dialect & PPC_OPCODE_E500MC) == 0)
   1054  1.11  christos 	switch (value)
   1055  1.11  christos 	  {
   1056  1.11  christos 	  case 1:
   1057  1.11  christos 	  case 2:
   1058  1.11  christos 	    if (dialect & PPC_OPCODE_POWER10)
   1059  1.11  christos 	      break;
   1060  1.11  christos 	    /* Fall through.  */
   1061  1.11  christos 	  case 3:
   1062  1.11  christos 	    *invalid = 1;
   1063  1.11  christos 	    break;
   1064  1.11  christos 	  default:
   1065  1.11  christos 	    break;
   1066  1.11  christos 	  }
   1067   1.8  christos     }
   1068  1.11  christos 
   1069  1.11  christos   return value;
   1070   1.8  christos }
   1071   1.1     skrll 
   1072   1.8  christos /* The 4-bit E field in a sync instruction that accepts 2 operands.
   1073   1.8  christos    If ESYNC is non-zero, then the L field must be either 0 or 1 and
   1074   1.8  christos    the complement of ESYNC-bit2.  */
   1075   1.5  christos 
   1076   1.8  christos static uint64_t
   1077   1.8  christos insert_esync (uint64_t insn,
   1078   1.8  christos 	      int64_t value,
   1079  1.10  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1080   1.8  christos 	      const char **errmsg)
   1081   1.8  christos {
   1082   1.8  christos   uint64_t ls = (insn >> 21) & 0x03;
   1083   1.5  christos 
   1084  1.10  christos   if (value != 0
   1085  1.10  christos       && ((~value >> 1) & 0x1) != ls)
   1086   1.8  christos     *errmsg = _("incompatible L operand value");
   1087   1.1     skrll 
   1088   1.8  christos   return insn | ((value & 0xf) << 16);
   1089   1.8  christos }
   1090   1.1     skrll 
   1091   1.8  christos static int64_t
   1092   1.8  christos extract_esync (uint64_t insn,
   1093  1.10  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1094   1.8  christos 	       int *invalid)
   1095   1.8  christos {
   1096  1.10  christos   /* Missing optional operands have a value of zero.  */
   1097  1.10  christos   if (*invalid < 0)
   1098  1.10  christos     return 0;
   1099  1.10  christos 
   1100   1.8  christos   uint64_t ls = (insn >> 21) & 0x3;
   1101  1.10  christos   uint64_t value = (insn >> 16) & 0xf;
   1102  1.10  christos   if (value != 0
   1103  1.10  christos       && ((~value >> 1) & 0x1) != ls)
   1104   1.8  christos     *invalid = 1;
   1105  1.10  christos   return value;
   1106   1.8  christos }
   1107   1.4  christos 
   1108  1.11  christos /* The n operand of clrrwi, which sets the ME field to 31 - n.  */
   1109  1.11  christos 
   1110  1.11  christos static uint64_t
   1111  1.11  christos insert_crwn (uint64_t insn,
   1112  1.11  christos 	    int64_t value,
   1113  1.11  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1114  1.11  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   1115  1.11  christos {
   1116  1.11  christos   return insn | ((~value & 0x1f) << 1);
   1117  1.11  christos }
   1118  1.11  christos 
   1119  1.11  christos static int64_t
   1120  1.11  christos extract_crwn (uint64_t insn,
   1121  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1122  1.11  christos 	     int *invalid ATTRIBUTE_UNUSED)
   1123  1.11  christos {
   1124  1.11  christos   return ~(insn >> 1) & 0x1f;
   1125  1.11  christos }
   1126  1.11  christos 
   1127  1.11  christos /* The n operand of extlwi, which sets the ME field to n - 1.  */
   1128  1.11  christos 
   1129  1.11  christos static uint64_t
   1130  1.11  christos insert_elwn (uint64_t insn,
   1131  1.11  christos 	     int64_t value,
   1132  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1133  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1134  1.11  christos {
   1135  1.11  christos   return insn | (((value - 1) & 0x1f) << 1);
   1136  1.11  christos }
   1137  1.11  christos 
   1138  1.11  christos static int64_t
   1139  1.11  christos extract_elwn (uint64_t insn,
   1140  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1141  1.11  christos 	      int *invalid ATTRIBUTE_UNUSED)
   1142  1.11  christos {
   1143  1.11  christos   return ((insn >> 1) & 0x1f) + 1;
   1144  1.11  christos }
   1145  1.11  christos 
   1146  1.11  christos /* The n operand of extrwi, sets MB = 32 - n.  */
   1147  1.11  christos 
   1148  1.11  christos static uint64_t
   1149  1.11  christos insert_erwn (uint64_t insn,
   1150  1.11  christos 	     int64_t value,
   1151  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1152  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1153  1.11  christos {
   1154  1.11  christos   return insn | ((-value & 0x1f) << 6);
   1155  1.11  christos }
   1156  1.11  christos 
   1157  1.11  christos static int64_t
   1158  1.11  christos extract_erwn (uint64_t insn,
   1159  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1160  1.11  christos 	      int *invalid ATTRIBUTE_UNUSED)
   1161  1.11  christos {
   1162  1.11  christos   return (~(insn >> 6) & 0x1f) + 1;
   1163  1.11  christos }
   1164  1.11  christos 
   1165  1.11  christos /* The b operand of extrwi, sets SH = b + n.  */
   1166  1.11  christos 
   1167  1.11  christos static uint64_t
   1168  1.11  christos insert_erwb (uint64_t insn,
   1169  1.11  christos 	     int64_t value,
   1170  1.11  christos 	     ppc_cpu_t dialect,
   1171  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1172  1.11  christos {
   1173  1.11  christos   int64_t n = extract_erwn (insn, dialect, NULL);
   1174  1.11  christos   return insn | (((n + value) & 0x1f) << 11);
   1175  1.11  christos }
   1176  1.11  christos 
   1177  1.11  christos static int64_t
   1178  1.11  christos extract_erwb (uint64_t insn,
   1179  1.11  christos 	      ppc_cpu_t dialect,
   1180  1.11  christos 	      int *invalid ATTRIBUTE_UNUSED)
   1181  1.11  christos {
   1182  1.11  christos   int64_t n = extract_erwn (insn, dialect, NULL);
   1183  1.11  christos   return ((insn >> 11) - n) & 0x1f;
   1184  1.11  christos }
   1185  1.11  christos 
   1186  1.11  christos /* The n and b operands of clrlslwi.  */
   1187  1.11  christos 
   1188  1.11  christos static uint64_t
   1189  1.11  christos insert_cslwn (uint64_t insn,
   1190  1.11  christos 	      int64_t value,
   1191  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1192  1.11  christos 	      const char **errmsg ATTRIBUTE_UNUSED)
   1193  1.11  christos {
   1194  1.11  christos   uint64_t mb = 0x1f << 6;
   1195  1.11  christos   int64_t b = (insn >> 6) & 0x1f;
   1196  1.11  christos   return ((insn & ~mb) | ((value & 0x1f) << 11) | (((b - value) & 0x1f) << 6)
   1197  1.11  christos 	  | ((~value & 0x1f) << 1));
   1198  1.11  christos }
   1199  1.11  christos 
   1200  1.11  christos static int64_t
   1201  1.11  christos extract_cslwb (uint64_t insn,
   1202  1.11  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1203  1.11  christos 	       int *invalid)
   1204  1.11  christos {
   1205  1.11  christos   int64_t sh = (insn >> 11) & 0x1f;
   1206  1.11  christos   int64_t mb = (insn >> 6) & 0x1f;
   1207  1.11  christos   int64_t me = (insn >> 1) & 0x1f;
   1208  1.11  christos   if (sh != 31 - me)
   1209  1.11  christos     *invalid = 1;
   1210  1.11  christos   return (mb + sh) & 0x1f;
   1211  1.11  christos }
   1212  1.11  christos 
   1213  1.11  christos /* The n and b operands of inslwi.  */
   1214  1.11  christos 
   1215  1.11  christos static uint64_t
   1216  1.11  christos insert_ilwb (uint64_t insn,
   1217  1.11  christos 	     int64_t value,
   1218  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1219  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1220  1.11  christos {
   1221  1.11  christos   uint64_t me = 0x1f << 1;
   1222  1.11  christos   int64_t n = (insn >> 1) & 0x1f;
   1223  1.11  christos   return ((insn & ~me) | ((-value & 0x1f) << 11) | ((value & 0x1f) << 6)
   1224  1.11  christos 	  | (((value + n - 1) & 0x1f) << 1));
   1225  1.11  christos }
   1226  1.11  christos 
   1227  1.11  christos static int64_t
   1228  1.11  christos extract_ilwn (uint64_t insn,
   1229  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1230  1.11  christos 	      int *invalid)
   1231  1.11  christos {
   1232  1.11  christos   int64_t sh = (insn >> 11) & 0x1f;
   1233  1.11  christos   int64_t mb = (insn >> 6) & 0x1f;
   1234  1.11  christos   int64_t me = (insn >> 1) & 0x1f;
   1235  1.11  christos   if (((sh + mb) & 0x1f) != 0)
   1236  1.11  christos     *invalid = 1;
   1237  1.11  christos   return ((me - mb) & 0x1f) + 1;
   1238  1.11  christos }
   1239  1.11  christos 
   1240  1.11  christos /* The n and b operands of insrwi.  */
   1241  1.11  christos 
   1242  1.11  christos static uint64_t
   1243  1.11  christos insert_irwb (uint64_t insn,
   1244  1.11  christos 	     int64_t value,
   1245  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1246  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1247  1.11  christos {
   1248  1.11  christos   uint64_t me = 0x1f << 1;
   1249  1.11  christos   int64_t n = (insn >> 1) & 0x1f;
   1250  1.11  christos   return ((insn & ~me) | ((-(value + n) & 0x1f) << 11) | ((value & 0x1f) << 6)
   1251  1.11  christos 	  | (((value + n - 1) & 0x1f) << 1));
   1252  1.11  christos }
   1253  1.11  christos 
   1254  1.11  christos static int64_t
   1255  1.11  christos extract_irwn (uint64_t insn,
   1256  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1257  1.11  christos 	      int *invalid)
   1258  1.11  christos {
   1259  1.11  christos   int64_t sh = (insn >> 11) & 0x1f;
   1260  1.11  christos   int64_t mb = (insn >> 6) & 0x1f;
   1261  1.11  christos   int64_t me = (insn >> 1) & 0x1f;
   1262  1.11  christos   if (((sh + me + 1) & 0x1f) != 0)
   1263  1.11  christos     *invalid = 1;
   1264  1.11  christos   return ((me - mb) & 0x1f) + 1;
   1265  1.11  christos }
   1266  1.11  christos 
   1267   1.8  christos /* The MB and ME fields in an M form instruction expressed as a single
   1268   1.8  christos    operand which is itself a bitmask.  The extraction function always
   1269   1.8  christos    marks it as invalid, since we never want to recognize an
   1270   1.8  christos    instruction which uses a field of this type.  */
   1271   1.1     skrll 
   1272   1.8  christos static uint64_t
   1273   1.8  christos insert_mbe (uint64_t insn,
   1274   1.8  christos 	    int64_t value,
   1275   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1276   1.8  christos 	    const char **errmsg)
   1277   1.8  christos {
   1278   1.8  christos   uint64_t uval, mask;
   1279   1.8  christos   long mb, me, mx, count, last;
   1280   1.4  christos 
   1281   1.8  christos   uval = value;
   1282   1.1     skrll 
   1283   1.8  christos   if (uval == 0)
   1284   1.8  christos     {
   1285   1.8  christos       *errmsg = _("illegal bitmask");
   1286   1.8  christos       return insn;
   1287   1.8  christos     }
   1288   1.1     skrll 
   1289   1.8  christos   mb = 0;
   1290   1.8  christos   me = 32;
   1291   1.8  christos   if ((uval & 1) != 0)
   1292   1.8  christos     last = 1;
   1293   1.8  christos   else
   1294   1.8  christos     last = 0;
   1295   1.8  christos   count = 0;
   1296   1.4  christos 
   1297   1.8  christos   /* mb: location of last 0->1 transition */
   1298   1.8  christos   /* me: location of last 1->0 transition */
   1299   1.8  christos   /* count: # transitions */
   1300   1.1     skrll 
   1301   1.8  christos   for (mx = 0, mask = (uint64_t) 1 << 31; mx < 32; ++mx, mask >>= 1)
   1302   1.8  christos     {
   1303   1.8  christos       if ((uval & mask) && !last)
   1304   1.8  christos 	{
   1305   1.8  christos 	  ++count;
   1306   1.8  christos 	  mb = mx;
   1307   1.8  christos 	  last = 1;
   1308   1.8  christos 	}
   1309   1.8  christos       else if (!(uval & mask) && last)
   1310   1.8  christos 	{
   1311   1.8  christos 	  ++count;
   1312   1.8  christos 	  me = mx;
   1313   1.8  christos 	  last = 0;
   1314   1.8  christos 	}
   1315   1.8  christos     }
   1316   1.8  christos   if (me == 0)
   1317   1.8  christos     me = 32;
   1318   1.1     skrll 
   1319   1.8  christos   if (count != 2 && (count != 0 || ! last))
   1320   1.8  christos     *errmsg = _("illegal bitmask");
   1321   1.4  christos 
   1322   1.8  christos   return insn | (mb << 6) | ((me - 1) << 1);
   1323   1.8  christos }
   1324   1.1     skrll 
   1325   1.8  christos static int64_t
   1326   1.8  christos extract_mbe (uint64_t insn,
   1327   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1328   1.8  christos 	     int *invalid)
   1329   1.8  christos {
   1330   1.8  christos   int64_t ret;
   1331   1.8  christos   long mb, me;
   1332   1.8  christos   long i;
   1333   1.5  christos 
   1334   1.8  christos   *invalid = 1;
   1335   1.1     skrll 
   1336   1.8  christos   mb = (insn >> 6) & 0x1f;
   1337   1.8  christos   me = (insn >> 1) & 0x1f;
   1338   1.8  christos   if (mb < me + 1)
   1339   1.8  christos     {
   1340   1.8  christos       ret = 0;
   1341   1.8  christos       for (i = mb; i <= me; i++)
   1342   1.8  christos 	ret |= (uint64_t) 1 << (31 - i);
   1343   1.8  christos     }
   1344   1.8  christos   else if (mb == me + 1)
   1345   1.8  christos     ret = ~0;
   1346   1.8  christos   else /* (mb > me + 1) */
   1347   1.8  christos     {
   1348   1.8  christos       ret = ~0;
   1349   1.8  christos       for (i = me + 1; i < mb; i++)
   1350   1.8  christos 	ret &= ~((uint64_t) 1 << (31 - i));
   1351   1.8  christos     }
   1352   1.8  christos   return ret;
   1353   1.8  christos }
   1354   1.1     skrll 
   1355   1.8  christos /* The MB or ME field in an MD or MDS form instruction.  The high bit
   1356   1.8  christos    is wrapped to the low end.  */
   1357   1.1     skrll 
   1358   1.8  christos static uint64_t
   1359   1.8  christos insert_mb6 (uint64_t insn,
   1360   1.8  christos 	    int64_t value,
   1361   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1362   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   1363   1.8  christos {
   1364   1.8  christos   return insn | ((value & 0x1f) << 6) | (value & 0x20);
   1365   1.8  christos }
   1366   1.1     skrll 
   1367   1.8  christos static int64_t
   1368   1.8  christos extract_mb6 (uint64_t insn,
   1369   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1370   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   1371   1.8  christos {
   1372   1.8  christos   return ((insn >> 6) & 0x1f) | (insn & 0x20);
   1373   1.8  christos }
   1374   1.1     skrll 
   1375  1.11  christos /* The n operand of extrdi, which sets MB field.  */
   1376  1.11  christos 
   1377  1.11  christos static uint64_t
   1378  1.11  christos insert_erdn (uint64_t insn,
   1379  1.11  christos 	     int64_t value,
   1380  1.11  christos 	     ppc_cpu_t dialect,
   1381  1.11  christos 	     const char **errmsg)
   1382  1.11  christos {
   1383  1.11  christos   return insert_mb6 (insn, -value, dialect, errmsg);
   1384  1.11  christos }
   1385  1.11  christos 
   1386  1.11  christos static int64_t
   1387  1.11  christos extract_erdn (uint64_t insn,
   1388  1.11  christos 	      ppc_cpu_t dialect,
   1389  1.11  christos 	      int *invalid)
   1390  1.11  christos {
   1391  1.11  christos   return (~extract_mb6 (insn, dialect, invalid) & 63) + 1;
   1392  1.11  christos }
   1393  1.11  christos 
   1394  1.11  christos /* The n operand of extldi, which sets ME field.  */
   1395  1.11  christos 
   1396  1.11  christos static uint64_t
   1397  1.11  christos insert_eldn (uint64_t insn,
   1398  1.11  christos 	     int64_t value,
   1399  1.11  christos 	     ppc_cpu_t dialect,
   1400  1.11  christos 	     const char **errmsg)
   1401  1.11  christos {
   1402  1.11  christos   return insert_mb6 (insn, value - 1, dialect, errmsg);
   1403  1.11  christos }
   1404  1.11  christos 
   1405  1.11  christos static int64_t
   1406  1.11  christos extract_eldn (uint64_t insn,
   1407  1.11  christos 	      ppc_cpu_t dialect,
   1408  1.11  christos 	      int *invalid)
   1409  1.11  christos {
   1410  1.11  christos   return extract_mb6 (insn, dialect, invalid) + 1;
   1411  1.11  christos }
   1412  1.11  christos 
   1413  1.11  christos /* The n operand of clrrdi, which set ME field.  */
   1414  1.11  christos 
   1415  1.11  christos static uint64_t
   1416  1.11  christos insert_crdn (uint64_t insn,
   1417  1.11  christos 	     int64_t value,
   1418  1.11  christos 	     ppc_cpu_t dialect,
   1419  1.11  christos 	     const char **errmsg)
   1420  1.11  christos {
   1421  1.11  christos   return insert_mb6 (insn, 63 - value, dialect, errmsg);
   1422  1.11  christos }
   1423  1.11  christos 
   1424  1.11  christos static int64_t
   1425  1.11  christos extract_crdn (uint64_t insn,
   1426  1.11  christos 	      ppc_cpu_t dialect,
   1427  1.11  christos 	      int *invalid)
   1428  1.11  christos {
   1429  1.11  christos   return 63 - extract_mb6 (insn, dialect, invalid);
   1430  1.11  christos }
   1431  1.11  christos 
   1432   1.8  christos /* The NB field in an X form instruction.  The value 32 is stored as
   1433   1.8  christos    0.  */
   1434   1.1     skrll 
   1435   1.8  christos static int64_t
   1436   1.8  christos extract_nb (uint64_t insn,
   1437   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1438   1.8  christos 	    int *invalid ATTRIBUTE_UNUSED)
   1439   1.8  christos {
   1440   1.8  christos   int64_t ret;
   1441   1.1     skrll 
   1442   1.8  christos   ret = (insn >> 11) & 0x1f;
   1443   1.8  christos   if (ret == 0)
   1444   1.8  christos     ret = 32;
   1445   1.8  christos   return ret;
   1446   1.8  christos }
   1447   1.1     skrll 
   1448   1.8  christos /* The NB field in an lswi instruction, which has special value
   1449   1.8  christos    restrictions.  The value 32 is stored as 0.  */
   1450   1.1     skrll 
   1451   1.8  christos static uint64_t
   1452   1.8  christos insert_nbi (uint64_t insn,
   1453   1.8  christos 	    int64_t value,
   1454   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1455   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   1456   1.8  christos {
   1457   1.8  christos   int64_t rtvalue = (insn >> 21) & 0x1f;
   1458   1.8  christos   int64_t ravalue = (insn >> 16) & 0x1f;
   1459   1.4  christos 
   1460   1.8  christos   if (value == 0)
   1461   1.8  christos     value = 32;
   1462   1.8  christos   if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
   1463   1.8  christos 						     : ravalue))
   1464   1.8  christos     *errmsg = _("address register in load range");
   1465   1.8  christos   return insn | ((value & 0x1f) << 11);
   1466   1.8  christos }
   1467   1.7  christos 
   1468   1.8  christos /* The NSI field in a D form instruction.  This is the same as the SI
   1469   1.8  christos    field, only negated.  The extraction function always marks it as
   1470   1.8  christos    invalid, since we never want to recognize an instruction which uses
   1471   1.8  christos    a field of this type.  */
   1472   1.1     skrll 
   1473   1.8  christos static uint64_t
   1474   1.8  christos insert_nsi (uint64_t insn,
   1475   1.8  christos 	    int64_t value,
   1476   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1477   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   1478   1.8  christos {
   1479   1.8  christos   return insn | (-value & 0xffff);
   1480   1.8  christos }
   1481   1.1     skrll 
   1482   1.8  christos static int64_t
   1483   1.8  christos extract_nsi (uint64_t insn,
   1484   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1485   1.8  christos 	     int *invalid)
   1486   1.8  christos {
   1487   1.8  christos   *invalid = 1;
   1488   1.8  christos   return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
   1489   1.8  christos }
   1490   1.1     skrll 
   1491  1.11  christos /* The 2-bit SC field in a SYNC or PL field in a WAIT instruction.
   1492  1.11  christos    For WAIT, some PL values are reserved:
   1493  1.11  christos      * Values 1, 2 and 3 are reserved.  */
   1494  1.11  christos 
   1495  1.11  christos static uint64_t
   1496  1.11  christos insert_pl (uint64_t insn,
   1497  1.11  christos 	   int64_t value,
   1498  1.11  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1499  1.11  christos 	   const char **errmsg)
   1500  1.11  christos {
   1501  1.11  christos   /* For WAIT, some PL values are illegal.  */
   1502  1.11  christos   if (((insn >> 1) & 0x3ff) == 30
   1503  1.11  christos       && value != 0)
   1504  1.11  christos     *errmsg = _("illegal PL operand value");
   1505  1.11  christos   return insn | ((value & 0x3) << 16);
   1506  1.11  christos }
   1507  1.11  christos 
   1508  1.11  christos static int64_t
   1509  1.11  christos extract_pl (uint64_t insn,
   1510  1.11  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1511  1.11  christos 	    int *invalid)
   1512  1.11  christos {
   1513  1.11  christos   /* Missing optional operands have a value of zero.  */
   1514  1.11  christos   if (*invalid < 0)
   1515  1.11  christos     return 0;
   1516  1.11  christos 
   1517  1.11  christos   uint64_t value = (insn >> 16) & 0x3;
   1518  1.11  christos 
   1519  1.11  christos   /* For WAIT, some PL values are illegal.  */
   1520  1.11  christos   if (((insn >> 1) & 0x3ff) == 30
   1521  1.11  christos       && value != 0)
   1522  1.11  christos     *invalid = 1;
   1523  1.11  christos   return value;
   1524  1.11  christos }
   1525  1.11  christos 
   1526  1.12  christos /* The 2-bit P field in a MMA XX2-form instruction.  This is split.  */
   1527  1.12  christos 
   1528  1.12  christos static uint64_t
   1529  1.12  christos insert_p2 (uint64_t insn,
   1530  1.12  christos 	   int64_t value,
   1531  1.12  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1532  1.12  christos 	   const char **errmsg ATTRIBUTE_UNUSED)
   1533  1.12  christos {
   1534  1.12  christos   return insn | ((value & 0x2) << 15) | ((value & 0x1) << 11);
   1535  1.12  christos }
   1536  1.12  christos 
   1537  1.12  christos static int64_t
   1538  1.12  christos extract_p2 (uint64_t insn,
   1539  1.12  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1540  1.12  christos 	    int *invalid ATTRIBUTE_UNUSED)
   1541  1.12  christos {
   1542  1.12  christos   uint64_t value = ((insn >> 15) & 0x2) | ((insn >> 11) & 0x1);
   1543  1.12  christos   return value;
   1544  1.12  christos }
   1545  1.12  christos 
   1546   1.8  christos /* The RA field in a D or X form instruction which is an updating
   1547   1.8  christos    load, which means that the RA field may not be zero and may not
   1548   1.8  christos    equal the RT field.  */
   1549   1.1     skrll 
   1550   1.8  christos static uint64_t
   1551   1.8  christos insert_ral (uint64_t insn,
   1552   1.8  christos 	    int64_t value,
   1553   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1554   1.8  christos 	    const char **errmsg)
   1555   1.8  christos {
   1556   1.8  christos   if (value == 0
   1557   1.8  christos       || (uint64_t) value == ((insn >> 21) & 0x1f))
   1558   1.8  christos     *errmsg = "invalid register operand when updating";
   1559   1.8  christos   return insn | ((value & 0x1f) << 16);
   1560   1.8  christos }
   1561   1.1     skrll 
   1562   1.8  christos static int64_t
   1563   1.8  christos extract_ral (uint64_t insn,
   1564   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1565   1.8  christos 	     int *invalid)
   1566   1.8  christos {
   1567   1.8  christos   int64_t rtvalue = (insn >> 21) & 0x1f;
   1568   1.8  christos   int64_t ravalue = (insn >> 16) & 0x1f;
   1569   1.1     skrll 
   1570   1.8  christos   if (rtvalue == ravalue || ravalue == 0)
   1571   1.8  christos     *invalid = 1;
   1572   1.8  christos   return ravalue;
   1573   1.8  christos }
   1574   1.1     skrll 
   1575   1.8  christos /* The RA field in an lmw instruction, which has special value
   1576   1.8  christos    restrictions.  */
   1577   1.1     skrll 
   1578   1.8  christos static uint64_t
   1579   1.8  christos insert_ram (uint64_t insn,
   1580   1.8  christos 	    int64_t value,
   1581   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1582   1.8  christos 	    const char **errmsg)
   1583   1.8  christos {
   1584   1.8  christos   if ((uint64_t) value >= ((insn >> 21) & 0x1f))
   1585   1.8  christos     *errmsg = _("index register in load range");
   1586   1.8  christos   return insn | ((value & 0x1f) << 16);
   1587   1.8  christos }
   1588   1.1     skrll 
   1589   1.8  christos static int64_t
   1590   1.8  christos extract_ram (uint64_t insn,
   1591   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1592   1.8  christos 	     int *invalid)
   1593   1.8  christos {
   1594   1.8  christos   uint64_t rtvalue = (insn >> 21) & 0x1f;
   1595   1.8  christos   uint64_t ravalue = (insn >> 16) & 0x1f;
   1596   1.1     skrll 
   1597   1.8  christos   if (ravalue >= rtvalue)
   1598   1.8  christos     *invalid = 1;
   1599   1.8  christos   return ravalue;
   1600   1.8  christos }
   1601   1.4  christos 
   1602   1.8  christos /* The RA field in the DQ form lq or an lswx instruction, which have special
   1603   1.8  christos    value restrictions.  */
   1604   1.3  christos 
   1605   1.8  christos static uint64_t
   1606   1.8  christos insert_raq (uint64_t insn,
   1607   1.8  christos 	    int64_t value,
   1608   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1609   1.8  christos 	    const char **errmsg)
   1610   1.8  christos {
   1611   1.8  christos   int64_t rtvalue = (insn >> 21) & 0x1f;
   1612   1.5  christos 
   1613   1.8  christos   if (value == rtvalue)
   1614   1.8  christos     *errmsg = _("source and target register operands must be different");
   1615   1.8  christos   return insn | ((value & 0x1f) << 16);
   1616   1.8  christos }
   1617   1.1     skrll 
   1618   1.8  christos static int64_t
   1619   1.8  christos extract_raq (uint64_t insn,
   1620   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1621   1.8  christos 	     int *invalid)
   1622   1.8  christos {
   1623  1.10  christos   /* Missing optional operands have a value of zero.  */
   1624  1.10  christos   if (*invalid < 0)
   1625  1.10  christos     return 0;
   1626  1.10  christos 
   1627   1.8  christos   uint64_t rtvalue = (insn >> 21) & 0x1f;
   1628   1.8  christos   uint64_t ravalue = (insn >> 16) & 0x1f;
   1629   1.8  christos   if (ravalue == rtvalue)
   1630   1.8  christos     *invalid = 1;
   1631   1.8  christos   return ravalue;
   1632   1.8  christos }
   1633   1.1     skrll 
   1634   1.8  christos /* The RA field in a D or X form instruction which is an updating
   1635   1.8  christos    store or an updating floating point load, which means that the RA
   1636   1.8  christos    field may not be zero.  */
   1637   1.4  christos 
   1638   1.8  christos static uint64_t
   1639   1.8  christos insert_ras (uint64_t insn,
   1640   1.8  christos 	    int64_t value,
   1641   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1642   1.8  christos 	    const char **errmsg)
   1643   1.8  christos {
   1644   1.8  christos   if (value == 0)
   1645  1.13  christos     *errmsg = _("invalid base address register operand");
   1646   1.8  christos   return insn | ((value & 0x1f) << 16);
   1647   1.8  christos }
   1648   1.4  christos 
   1649   1.8  christos static int64_t
   1650   1.8  christos extract_ras (uint64_t insn,
   1651   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1652   1.8  christos 	     int *invalid)
   1653   1.8  christos {
   1654   1.8  christos   uint64_t ravalue = (insn >> 16) & 0x1f;
   1655   1.4  christos 
   1656   1.8  christos   if (ravalue == 0)
   1657   1.8  christos     *invalid = 1;
   1658   1.8  christos   return ravalue;
   1659   1.8  christos }
   1660   1.4  christos 
   1661   1.9  christos /* The RS and RB fields in an X form instruction when they must be the same.
   1662   1.9  christos    This is used for extended mnemonics like mr.  The extraction function
   1663   1.9  christos    enforces that the fields are the same.  */
   1664   1.4  christos 
   1665   1.8  christos static uint64_t
   1666   1.9  christos insert_rsb (uint64_t insn,
   1667   1.9  christos 	    int64_t value,
   1668   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1669   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   1670   1.8  christos {
   1671   1.9  christos   value &= 0x1f;
   1672   1.9  christos   return insn | (value << 21) | (value << 11);
   1673   1.8  christos }
   1674   1.4  christos 
   1675   1.8  christos static int64_t
   1676   1.9  christos extract_rsb (uint64_t insn,
   1677   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1678   1.8  christos 	     int *invalid)
   1679   1.8  christos {
   1680   1.9  christos   int64_t rs = (insn >> 21) & 0x1f;
   1681   1.9  christos   int64_t rb = (insn >> 11) & 0x1f;
   1682   1.9  christos 
   1683   1.9  christos   if (rs != rb)
   1684   1.8  christos     *invalid = 1;
   1685   1.9  christos   return rs;
   1686   1.8  christos }
   1687   1.4  christos 
   1688   1.8  christos /* The RB field in an lswx instruction, which has special value
   1689   1.8  christos    restrictions.  */
   1690   1.4  christos 
   1691   1.8  christos static uint64_t
   1692   1.8  christos insert_rbx (uint64_t insn,
   1693   1.8  christos 	    int64_t value,
   1694   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1695   1.8  christos 	    const char **errmsg)
   1696   1.8  christos {
   1697   1.8  christos   int64_t rtvalue = (insn >> 21) & 0x1f;
   1698   1.4  christos 
   1699   1.8  christos   if (value == rtvalue)
   1700   1.8  christos     *errmsg = _("source and target register operands must be different");
   1701   1.8  christos   return insn | ((value & 0x1f) << 11);
   1702   1.8  christos }
   1703   1.1     skrll 
   1704   1.8  christos static int64_t
   1705   1.8  christos extract_rbx (uint64_t insn,
   1706   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1707   1.8  christos 	     int *invalid)
   1708   1.8  christos {
   1709   1.8  christos   uint64_t rtvalue = (insn >> 21) & 0x1f;
   1710   1.8  christos   uint64_t rbvalue = (insn >> 11) & 0x1f;
   1711   1.5  christos 
   1712   1.8  christos   if (rbvalue == rtvalue)
   1713   1.8  christos     *invalid = 1;
   1714   1.8  christos   return rbvalue;
   1715   1.8  christos }
   1716   1.1     skrll 
   1717   1.8  christos /* The SCI8 field is made up of SCL and {U,N}I8 fields.  */
   1718   1.8  christos static uint64_t
   1719   1.8  christos insert_sci8 (uint64_t insn,
   1720   1.8  christos 	     int64_t value,
   1721   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1722   1.8  christos 	     const char **errmsg)
   1723   1.8  christos {
   1724   1.8  christos   uint64_t fill_scale = 0;
   1725   1.8  christos   uint64_t ui8 = value;
   1726   1.1     skrll 
   1727   1.8  christos   if ((ui8 & 0xffffff00) == 0)
   1728   1.8  christos     ;
   1729   1.8  christos   else if ((ui8 & 0xffffff00) == 0xffffff00)
   1730   1.8  christos     fill_scale = 0x400;
   1731   1.8  christos   else if ((ui8 & 0xffff00ff) == 0)
   1732   1.8  christos     {
   1733   1.8  christos       fill_scale = 1 << 8;
   1734   1.8  christos       ui8 >>= 8;
   1735   1.8  christos     }
   1736   1.8  christos   else if ((ui8 & 0xffff00ff) == 0xffff00ff)
   1737   1.8  christos     {
   1738   1.8  christos       fill_scale = 0x400 | (1 << 8);
   1739   1.8  christos       ui8 >>= 8;
   1740   1.8  christos     }
   1741   1.8  christos   else if ((ui8 & 0xff00ffff) == 0)
   1742   1.8  christos     {
   1743   1.8  christos       fill_scale = 2 << 8;
   1744   1.8  christos       ui8 >>= 16;
   1745   1.8  christos     }
   1746   1.8  christos   else if ((ui8 & 0xff00ffff) == 0xff00ffff)
   1747   1.8  christos     {
   1748   1.8  christos       fill_scale = 0x400 | (2 << 8);
   1749   1.8  christos       ui8 >>= 16;
   1750   1.8  christos     }
   1751   1.8  christos   else if ((ui8 & 0x00ffffff) == 0)
   1752   1.8  christos     {
   1753   1.8  christos       fill_scale = 3 << 8;
   1754   1.8  christos       ui8 >>= 24;
   1755   1.8  christos     }
   1756   1.8  christos   else if ((ui8 & 0x00ffffff) == 0x00ffffff)
   1757   1.8  christos     {
   1758   1.8  christos       fill_scale = 0x400 | (3 << 8);
   1759   1.8  christos       ui8 >>= 24;
   1760   1.8  christos     }
   1761   1.8  christos   else
   1762   1.8  christos     {
   1763   1.8  christos       *errmsg = _("illegal immediate value");
   1764   1.8  christos       ui8 = 0;
   1765   1.8  christos     }
   1766   1.1     skrll 
   1767   1.8  christos   return insn | fill_scale | (ui8 & 0xff);
   1768   1.8  christos }
   1769   1.1     skrll 
   1770   1.8  christos static int64_t
   1771   1.8  christos extract_sci8 (uint64_t insn,
   1772   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1773   1.8  christos 	      int *invalid ATTRIBUTE_UNUSED)
   1774   1.8  christos {
   1775   1.8  christos   int64_t fill = insn & 0x400;
   1776   1.8  christos   int64_t scale_factor = (insn & 0x300) >> 5;
   1777   1.8  christos   int64_t value = (insn & 0xff) << scale_factor;
   1778   1.4  christos 
   1779   1.8  christos   if (fill != 0)
   1780   1.8  christos     value |= ~((int64_t) 0xff << scale_factor);
   1781   1.8  christos   return value;
   1782   1.8  christos }
   1783   1.1     skrll 
   1784   1.8  christos static uint64_t
   1785   1.8  christos insert_sci8n (uint64_t insn,
   1786   1.8  christos 	      int64_t value,
   1787   1.8  christos 	      ppc_cpu_t dialect,
   1788   1.8  christos 	      const char **errmsg)
   1789   1.8  christos {
   1790   1.8  christos   return insert_sci8 (insn, -value, dialect, errmsg);
   1791   1.8  christos }
   1792   1.1     skrll 
   1793   1.8  christos static int64_t
   1794   1.8  christos extract_sci8n (uint64_t insn,
   1795   1.8  christos 	       ppc_cpu_t dialect,
   1796   1.8  christos 	       int *invalid)
   1797   1.8  christos {
   1798   1.8  christos   return -extract_sci8 (insn, dialect, invalid);
   1799   1.8  christos }
   1800   1.1     skrll 
   1801   1.8  christos static uint64_t
   1802   1.8  christos insert_oimm (uint64_t insn,
   1803   1.8  christos 	     int64_t value,
   1804   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1805   1.8  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1806   1.8  christos {
   1807   1.8  christos   return insn | (((value - 1) & 0x1f) << 4);
   1808   1.8  christos }
   1809   1.1     skrll 
   1810   1.8  christos static int64_t
   1811   1.8  christos extract_oimm (uint64_t insn,
   1812   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1813   1.8  christos 	      int *invalid ATTRIBUTE_UNUSED)
   1814   1.8  christos {
   1815   1.8  christos   return ((insn >> 4) & 0x1f) + 1;
   1816   1.8  christos }
   1817   1.1     skrll 
   1818  1.11  christos /* The n operand of rotrwi, sets SH = 32 - n.  */
   1819  1.11  christos 
   1820  1.11  christos static uint64_t
   1821  1.11  christos insert_rrwn (uint64_t insn,
   1822  1.11  christos 	     int64_t value,
   1823  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1824  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1825  1.11  christos {
   1826  1.11  christos   return insn | ((-value & 0x1f) << 11);
   1827  1.11  christos }
   1828  1.11  christos 
   1829  1.11  christos static int64_t
   1830  1.11  christos extract_rrwn (uint64_t insn,
   1831  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1832  1.11  christos 	      int *invalid ATTRIBUTE_UNUSED)
   1833  1.11  christos {
   1834  1.11  christos   return 31 & -(insn >> 11);
   1835  1.11  christos }
   1836  1.11  christos 
   1837  1.11  christos /* The n operand of slwi, sets SH = n and ME = 31 - n.  */
   1838  1.11  christos 
   1839  1.11  christos static uint64_t
   1840  1.11  christos insert_slwn (uint64_t insn,
   1841  1.11  christos 	     int64_t value,
   1842  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1843  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1844  1.11  christos {
   1845  1.11  christos   return insn | ((value & 0x1f) << 11) | ((~value & 0x1f) << 1);
   1846  1.11  christos }
   1847  1.11  christos 
   1848  1.11  christos static int64_t
   1849  1.11  christos extract_slwn (uint64_t insn,
   1850  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1851  1.11  christos 	      int *invalid)
   1852  1.11  christos {
   1853  1.11  christos   int64_t sh = (insn >> 11) & 0x1f;
   1854  1.11  christos   int64_t nme = ~(insn >> 1) & 0x1f;
   1855  1.11  christos   if (sh != nme)
   1856  1.11  christos     *invalid = 1;
   1857  1.11  christos   return sh;
   1858  1.11  christos }
   1859  1.11  christos 
   1860  1.11  christos /* The n operand of srwi, sets SH = 32 - n and MB = n.  */
   1861  1.11  christos 
   1862  1.11  christos static uint64_t
   1863  1.11  christos insert_srwn (uint64_t insn,
   1864  1.11  christos 	     int64_t value,
   1865  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1866  1.11  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   1867  1.11  christos {
   1868  1.11  christos   return insn | ((-value & 0x1f) << 11) | ((value & 0x1f) << 6);
   1869  1.11  christos }
   1870  1.11  christos 
   1871  1.11  christos static int64_t
   1872  1.11  christos extract_srwn (uint64_t insn,
   1873  1.11  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1874  1.11  christos 	      int *invalid)
   1875  1.11  christos {
   1876  1.11  christos   int64_t nsh = -(insn >> 11) & 0x1f;
   1877  1.11  christos   int64_t mb = (insn >> 6) & 0x1f;
   1878  1.11  christos   if (nsh != mb)
   1879  1.11  christos     *invalid = 1;
   1880  1.11  christos   return nsh;
   1881  1.11  christos }
   1882  1.11  christos 
   1883   1.8  christos /* The SH field in an MD form instruction.  This is split.  */
   1884   1.1     skrll 
   1885   1.8  christos static uint64_t
   1886   1.8  christos insert_sh6 (uint64_t insn,
   1887   1.8  christos 	    int64_t value,
   1888   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1889   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   1890   1.8  christos {
   1891  1.10  christos   return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
   1892   1.8  christos }
   1893   1.5  christos 
   1894   1.8  christos static int64_t
   1895   1.8  christos extract_sh6 (uint64_t insn,
   1896   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   1897   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   1898   1.8  christos {
   1899  1.10  christos   return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
   1900   1.8  christos }
   1901   1.4  christos 
   1902  1.11  christos /* The n operand of rotrdi, which writes to SH field.  */
   1903  1.11  christos 
   1904  1.11  christos static uint64_t
   1905  1.11  christos insert_rrdn (uint64_t insn,
   1906  1.11  christos 	     int64_t value,
   1907  1.11  christos 	     ppc_cpu_t dialect,
   1908  1.11  christos 	     const char **errmsg)
   1909  1.11  christos {
   1910  1.11  christos   return insert_sh6 (insn, -value, dialect, errmsg);
   1911  1.11  christos }
   1912  1.11  christos 
   1913  1.11  christos static int64_t
   1914  1.11  christos extract_rrdn (uint64_t insn,
   1915  1.11  christos 	      ppc_cpu_t dialect,
   1916  1.11  christos 	      int *invalid)
   1917  1.11  christos {
   1918  1.11  christos   return -extract_sh6 (insn, dialect, invalid) & 63;
   1919  1.11  christos }
   1920  1.11  christos 
   1921  1.11  christos /* The n operand of sldi, which writes to SH and ME fields.  */
   1922  1.11  christos 
   1923  1.11  christos static uint64_t
   1924  1.11  christos insert_sldn (uint64_t insn,
   1925  1.11  christos 	     int64_t value,
   1926  1.11  christos 	     ppc_cpu_t dialect,
   1927  1.11  christos 	     const char **errmsg)
   1928  1.11  christos {
   1929  1.11  christos   insn = insert_sh6 (insn, value, dialect, errmsg);
   1930  1.11  christos   return insert_crdn (insn, value, dialect, errmsg);
   1931  1.11  christos }
   1932  1.11  christos 
   1933  1.11  christos static int64_t
   1934  1.11  christos extract_sldn (uint64_t insn,
   1935  1.11  christos 	      ppc_cpu_t dialect,
   1936  1.11  christos 	      int *invalid)
   1937  1.11  christos {
   1938  1.11  christos   int64_t sh = extract_sh6 (insn, dialect, invalid);
   1939  1.11  christos   int64_t me = extract_crdn (insn, dialect, invalid);
   1940  1.11  christos   if (me != sh)
   1941  1.11  christos     *invalid = 1;
   1942  1.11  christos   return sh;
   1943  1.11  christos }
   1944  1.11  christos 
   1945  1.11  christos /* The n operand of srdi, which writes to SH and MB fields.  */
   1946  1.11  christos 
   1947  1.11  christos static uint64_t
   1948  1.11  christos insert_srdn (uint64_t insn,
   1949  1.11  christos 	     int64_t value,
   1950  1.11  christos 	     ppc_cpu_t dialect,
   1951  1.11  christos 	     const char **errmsg)
   1952  1.11  christos {
   1953  1.11  christos   insn = insert_rrdn (insn, value, dialect, errmsg);
   1954  1.11  christos   return insert_mb6 (insn, value, dialect, errmsg);
   1955  1.11  christos }
   1956  1.11  christos 
   1957  1.11  christos static int64_t
   1958  1.11  christos extract_srdn (uint64_t insn,
   1959  1.11  christos 	      ppc_cpu_t dialect,
   1960  1.11  christos 	      int *invalid)
   1961  1.11  christos {
   1962  1.11  christos   int64_t sh = extract_rrdn (insn, dialect, invalid);
   1963  1.11  christos   int64_t mb = extract_mb6 (insn, dialect, invalid);
   1964  1.11  christos   if (mb != sh)
   1965  1.11  christos     *invalid = 1;
   1966  1.11  christos   return sh;
   1967  1.11  christos }
   1968  1.11  christos 
   1969  1.11  christos /* The b operand of extrdi, which sets SH field.  */
   1970  1.11  christos 
   1971  1.11  christos static uint64_t
   1972  1.11  christos insert_erdb (uint64_t insn,
   1973  1.11  christos 	     int64_t value,
   1974  1.11  christos 	     ppc_cpu_t dialect,
   1975  1.11  christos 	     const char **errmsg)
   1976  1.11  christos {
   1977  1.11  christos   int64_t n = extract_erdn (insn, dialect, NULL);
   1978  1.11  christos   return insert_sh6 (insn, value + n, dialect, errmsg);
   1979  1.11  christos }
   1980  1.11  christos 
   1981  1.11  christos static int64_t
   1982  1.11  christos extract_erdb (uint64_t insn,
   1983  1.11  christos 	      ppc_cpu_t dialect,
   1984  1.11  christos 	      int *invalid)
   1985  1.11  christos {
   1986  1.11  christos   int64_t sh = extract_sh6 (insn, dialect, invalid);
   1987  1.11  christos   int64_t n = extract_erdn (insn, dialect, invalid);
   1988  1.11  christos   return (sh - n) & 63;
   1989  1.11  christos }
   1990  1.11  christos 
   1991  1.11  christos /* The b and n operands of clrlsldi.  */
   1992  1.11  christos 
   1993  1.11  christos static uint64_t
   1994  1.11  christos insert_csldn (uint64_t insn,
   1995  1.11  christos 	      int64_t value,
   1996  1.11  christos 	      ppc_cpu_t dialect,
   1997  1.11  christos 	      const char **errmsg)
   1998  1.11  christos {
   1999  1.11  christos   uint64_t mb6 = 0x3f << 5;
   2000  1.11  christos   int64_t b = extract_mb6 (insn, dialect, NULL);
   2001  1.11  christos   insn = insert_mb6 (insn & ~mb6, b - value, dialect, errmsg);
   2002  1.11  christos   return insert_sh6 (insn, value, dialect, errmsg);
   2003  1.11  christos }
   2004  1.11  christos 
   2005  1.11  christos static int64_t
   2006  1.11  christos extract_csldb (uint64_t insn,
   2007  1.11  christos 	       ppc_cpu_t dialect,
   2008  1.11  christos 	       int *invalid)
   2009  1.11  christos {
   2010  1.11  christos   int64_t sh = extract_sh6 (insn, dialect, invalid);
   2011  1.11  christos   int64_t mb = extract_mb6 (insn, dialect, invalid);
   2012  1.11  christos   return (mb + sh) & 63;
   2013  1.11  christos }
   2014  1.11  christos 
   2015  1.11  christos /* The b and n operands of insrdi.  */
   2016  1.11  christos 
   2017  1.11  christos static uint64_t
   2018  1.11  christos insert_irdb (uint64_t insn,
   2019  1.11  christos 	     int64_t value,
   2020  1.11  christos 	     ppc_cpu_t dialect,
   2021  1.11  christos 	     const char **errmsg)
   2022  1.11  christos {
   2023  1.11  christos   uint64_t sh6 = (0x1f << 11) | 2;
   2024  1.11  christos   int64_t n = extract_sh6 (insn, dialect, NULL);
   2025  1.11  christos   insn = insert_sh6 (insn & ~sh6, -(value + n), dialect, errmsg);
   2026  1.11  christos   return insert_mb6 (insn, value, dialect, errmsg);
   2027  1.11  christos }
   2028  1.11  christos 
   2029  1.11  christos static int64_t
   2030  1.11  christos extract_irdn (uint64_t insn,
   2031  1.11  christos 	      ppc_cpu_t dialect,
   2032  1.11  christos 	      int *invalid)
   2033  1.11  christos {
   2034  1.11  christos   int64_t sh = extract_sh6 (insn, dialect, invalid);
   2035  1.11  christos   int64_t mb = extract_mb6 (insn, dialect, invalid);
   2036  1.11  christos   return (~(mb + sh) & 63) + 1;
   2037  1.11  christos }
   2038  1.11  christos 
   2039   1.8  christos /* The SPR field in an XFX form instruction.  This is flipped--the
   2040   1.8  christos    lower 5 bits are stored in the upper 5 and vice- versa.  */
   2041   1.4  christos 
   2042   1.8  christos static uint64_t
   2043   1.8  christos insert_spr (uint64_t insn,
   2044   1.8  christos 	    int64_t value,
   2045   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2046   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2047   1.8  christos {
   2048   1.8  christos   return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
   2049   1.8  christos }
   2050   1.4  christos 
   2051   1.8  christos static int64_t
   2052   1.8  christos extract_spr (uint64_t insn,
   2053   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2054   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2055   1.8  christos {
   2056   1.8  christos   return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
   2057   1.8  christos }
   2058   1.1     skrll 
   2059  1.10  christos /* Some dialects have 8 [DI]BAT registers instead of the standard 4.  */
   2060  1.10  christos #define ALLOW8_BAT (PPC_OPCODE_750)
   2061  1.10  christos 
   2062  1.10  christos static uint64_t
   2063  1.10  christos insert_sprbat (uint64_t insn,
   2064  1.10  christos 	       int64_t value,
   2065  1.10  christos 	       ppc_cpu_t dialect,
   2066  1.10  christos 	       const char **errmsg)
   2067  1.10  christos {
   2068  1.10  christos   if ((uint64_t) value > 7
   2069  1.10  christos       || ((uint64_t) value > 3 && (dialect & ALLOW8_BAT) == 0))
   2070  1.10  christos     *errmsg = _("invalid bat number");
   2071  1.10  christos 
   2072  1.10  christos   /* If this is [di]bat4..7 then use spr 560..575, otherwise 528..543.  */
   2073  1.10  christos   if ((uint64_t) value > 3)
   2074  1.10  christos     value = ((value & 3) << 6) | 1;
   2075  1.10  christos   else
   2076  1.10  christos     value = value << 6;
   2077  1.10  christos 
   2078  1.10  christos   return insn | (value << 11);
   2079  1.10  christos }
   2080  1.10  christos 
   2081  1.10  christos static int64_t
   2082  1.10  christos extract_sprbat (uint64_t insn,
   2083  1.10  christos 		ppc_cpu_t dialect,
   2084  1.10  christos 		int *invalid)
   2085  1.10  christos {
   2086  1.10  christos   uint64_t val = (insn >> 17) & 0x3;
   2087  1.10  christos 
   2088  1.10  christos   val = val + ((insn >> 9) & 0x4);
   2089  1.10  christos   if (val > 3 && (dialect & ALLOW8_BAT) == 0)
   2090  1.10  christos     *invalid = 1;
   2091  1.10  christos   return val;
   2092  1.10  christos }
   2093  1.10  christos 
   2094   1.8  christos /* Some dialects have 8 SPRG registers instead of the standard 4.  */
   2095   1.8  christos #define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
   2096   1.1     skrll 
   2097   1.8  christos static uint64_t
   2098   1.8  christos insert_sprg (uint64_t insn,
   2099   1.8  christos 	     int64_t value,
   2100   1.8  christos 	     ppc_cpu_t dialect,
   2101   1.8  christos 	     const char **errmsg)
   2102   1.8  christos {
   2103  1.10  christos   if ((uint64_t) value > 7
   2104  1.10  christos       || ((uint64_t) value > 3 && (dialect & ALLOW8_SPRG) == 0))
   2105   1.8  christos     *errmsg = _("invalid sprg number");
   2106   1.1     skrll 
   2107   1.8  christos   /* If this is mfsprg4..7 then use spr 260..263 which can be read in
   2108   1.8  christos      user mode.  Anything else must use spr 272..279.  */
   2109  1.10  christos   if ((uint64_t) value <= 3 || (insn & 0x100) != 0)
   2110   1.8  christos     value |= 0x10;
   2111   1.1     skrll 
   2112   1.8  christos   return insn | ((value & 0x17) << 16);
   2113   1.8  christos }
   2114   1.1     skrll 
   2115   1.8  christos static int64_t
   2116   1.8  christos extract_sprg (uint64_t insn,
   2117   1.8  christos 	      ppc_cpu_t dialect,
   2118   1.8  christos 	      int *invalid)
   2119   1.8  christos {
   2120   1.8  christos   uint64_t val = (insn >> 16) & 0x1f;
   2121   1.1     skrll 
   2122   1.8  christos   /* mfsprg can use 260..263 and 272..279.  mtsprg only uses spr 272..279
   2123   1.8  christos      If not BOOKE, 405 or VLE, then both use only 272..275.  */
   2124   1.8  christos   if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
   2125   1.8  christos       || (val - 0x10 > 7 && (insn & 0x100) != 0)
   2126   1.8  christos       || val <= 3
   2127   1.8  christos       || (val & 8) != 0)
   2128   1.8  christos     *invalid = 1;
   2129   1.8  christos   return val & 7;
   2130   1.8  christos }
   2131   1.4  christos 
   2132   1.8  christos /* The TBR field in an XFX instruction.  This is just like SPR, but it
   2133   1.8  christos    is optional.  */
   2134   1.5  christos 
   2135   1.8  christos static uint64_t
   2136   1.8  christos insert_tbr (uint64_t insn,
   2137   1.8  christos 	    int64_t value,
   2138   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2139   1.8  christos 	    const char **errmsg)
   2140   1.8  christos {
   2141   1.8  christos   if (value != 268 && value != 269)
   2142   1.8  christos     *errmsg = _("invalid tbr number");
   2143   1.8  christos   return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
   2144   1.8  christos }
   2145   1.5  christos 
   2146   1.8  christos static int64_t
   2147   1.8  christos extract_tbr (uint64_t insn,
   2148   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2149   1.8  christos 	     int *invalid)
   2150   1.8  christos {
   2151  1.10  christos   /* Missing optional operands have a value of 268.  */
   2152  1.10  christos   if (*invalid < 0)
   2153  1.10  christos     return 268;
   2154  1.10  christos 
   2155   1.8  christos   int64_t ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
   2156   1.8  christos   if (ret != 268 && ret != 269)
   2157   1.8  christos     *invalid = 1;
   2158   1.8  christos   return ret;
   2159   1.8  christos }
   2160   1.5  christos 
   2161   1.8  christos /* The XT and XS fields in an XX1 or XX3 form instruction.  This is split.  */
   2162   1.1     skrll 
   2163   1.8  christos static uint64_t
   2164   1.8  christos insert_xt6 (uint64_t insn,
   2165   1.8  christos 	    int64_t value,
   2166   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2167   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2168   1.8  christos {
   2169   1.8  christos   return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
   2170   1.8  christos }
   2171   1.1     skrll 
   2172   1.8  christos static int64_t
   2173   1.8  christos extract_xt6 (uint64_t insn,
   2174   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2175   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2176   1.8  christos {
   2177   1.8  christos   return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
   2178   1.8  christos }
   2179   1.1     skrll 
   2180   1.8  christos /* The XT and XS fields in an DQ form VSX instruction.  This is split.  */
   2181   1.8  christos static uint64_t
   2182   1.8  christos insert_xtq6 (uint64_t insn,
   2183   1.8  christos 	     int64_t value,
   2184   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2185   1.8  christos 	     const char **errmsg ATTRIBUTE_UNUSED)
   2186   1.8  christos {
   2187   1.8  christos   return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
   2188   1.8  christos }
   2189   1.1     skrll 
   2190   1.8  christos static int64_t
   2191   1.8  christos extract_xtq6 (uint64_t insn,
   2192   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2193   1.8  christos 	      int *invalid ATTRIBUTE_UNUSED)
   2194   1.8  christos {
   2195   1.8  christos   return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
   2196   1.8  christos }
   2197   1.1     skrll 
   2198  1.12  christos /* The 5-bit XAp field in an XX3 form instruction.  This is split.  */
   2199  1.12  christos 
   2200  1.12  christos static uint64_t
   2201  1.12  christos insert_xa5 (uint64_t insn,
   2202  1.12  christos 	    int64_t value,
   2203  1.12  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2204  1.12  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2205  1.12  christos {
   2206  1.12  christos   return insn | ((value & 0x1e) << 16) | ((value & 0x20) >> 3);
   2207  1.12  christos }
   2208  1.12  christos 
   2209  1.12  christos static int64_t
   2210  1.12  christos extract_xa5 (uint64_t insn,
   2211  1.12  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2212  1.12  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2213  1.12  christos {
   2214  1.12  christos   return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1e);
   2215  1.12  christos }
   2216  1.12  christos 
   2217   1.8  christos /* The XA field in an XX3 form instruction.  This is split.  */
   2218   1.1     skrll 
   2219   1.8  christos static uint64_t
   2220   1.8  christos insert_xa6 (uint64_t insn,
   2221   1.8  christos 	    int64_t value,
   2222   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2223   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2224   1.8  christos {
   2225   1.8  christos   return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
   2226   1.8  christos }
   2227   1.1     skrll 
   2228   1.8  christos static int64_t
   2229   1.8  christos extract_xa6 (uint64_t insn,
   2230   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2231   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2232   1.8  christos {
   2233   1.8  christos   return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
   2234   1.8  christos }
   2235   1.1     skrll 
   2236  1.11  christos /* The XA field in an MMA XX3 form instruction.  This is split
   2237  1.11  christos    and must not overlap with the ACC operand.  */
   2238  1.11  christos 
   2239  1.11  christos static uint64_t
   2240  1.11  christos insert_xa6a (uint64_t insn,
   2241  1.11  christos 	     int64_t value,
   2242  1.11  christos 	     ppc_cpu_t dialect,
   2243  1.11  christos 	     const char **errmsg)
   2244  1.11  christos {
   2245  1.11  christos   int64_t acc = (insn >> 23) & 0x7;
   2246  1.12  christos   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2247  1.12  christos   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2248  1.12  christos       && (value >> 2) == acc)
   2249  1.11  christos     *errmsg = _("VSR overlaps ACC operand");
   2250  1.11  christos   return insert_xa6 (insn, value, dialect, errmsg);
   2251  1.11  christos }
   2252  1.11  christos 
   2253  1.11  christos static int64_t
   2254  1.11  christos extract_xa6a (uint64_t insn,
   2255  1.11  christos 	      ppc_cpu_t dialect,
   2256  1.11  christos 	      int *invalid)
   2257  1.11  christos {
   2258  1.11  christos   int64_t acc = (insn >> 23) & 0x7;
   2259  1.11  christos   int64_t value = extract_xa6 (insn, dialect, invalid);
   2260  1.12  christos   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2261  1.12  christos   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2262  1.12  christos       && (value >> 2) == acc)
   2263  1.11  christos     *invalid = 1;
   2264  1.11  christos   return value;
   2265  1.11  christos }
   2266  1.11  christos 
   2267  1.12  christos /* The 5-bit XB field in an XX3 form instruction.  This is split.  */
   2268  1.12  christos 
   2269  1.12  christos static uint64_t
   2270  1.12  christos insert_xb5 (uint64_t insn,
   2271  1.12  christos 	    int64_t value,
   2272  1.12  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2273  1.12  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2274  1.12  christos {
   2275  1.12  christos   return insn | ((value & 0x1e) << 11) | ((value & 0x20) >> 4);
   2276  1.12  christos }
   2277  1.12  christos 
   2278  1.12  christos static int64_t
   2279  1.12  christos extract_xb5 (uint64_t insn,
   2280  1.12  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2281  1.12  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2282  1.12  christos {
   2283  1.12  christos   return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1e);
   2284  1.12  christos }
   2285   1.8  christos /* The XB field in an XX3 form instruction.  This is split.  */
   2286   1.1     skrll 
   2287   1.8  christos static uint64_t
   2288   1.8  christos insert_xb6 (uint64_t insn,
   2289   1.8  christos 	    int64_t value,
   2290   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2291   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2292   1.8  christos {
   2293   1.8  christos   return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
   2294   1.8  christos }
   2295   1.1     skrll 
   2296   1.8  christos static int64_t
   2297   1.8  christos extract_xb6 (uint64_t insn,
   2298   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2299   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2300   1.8  christos {
   2301   1.8  christos   return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
   2302   1.8  christos }
   2303   1.1     skrll 
   2304  1.11  christos /* The XB field in an MMA XX3 form instruction.  This is split
   2305  1.11  christos    and must not overlap with the ACC operand.  */
   2306  1.11  christos 
   2307  1.11  christos static uint64_t
   2308  1.11  christos insert_xb6a (uint64_t insn,
   2309  1.11  christos 	     int64_t value,
   2310  1.11  christos 	     ppc_cpu_t dialect,
   2311  1.11  christos 	     const char **errmsg)
   2312  1.11  christos {
   2313  1.11  christos   int64_t acc = (insn >> 23) & 0x7;
   2314  1.12  christos   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2315  1.12  christos   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2316  1.12  christos       && (value >> 2) == acc)
   2317  1.11  christos     *errmsg = _("VSR overlaps ACC operand");
   2318  1.11  christos   return insert_xb6 (insn, value, dialect, errmsg);
   2319  1.11  christos }
   2320  1.11  christos 
   2321  1.11  christos static int64_t
   2322  1.11  christos extract_xb6a (uint64_t insn,
   2323  1.11  christos 	      ppc_cpu_t dialect,
   2324  1.11  christos 	      int *invalid)
   2325  1.11  christos {
   2326  1.11  christos   int64_t acc = (insn >> 23) & 0x7;
   2327  1.11  christos   int64_t value = extract_xb6 (insn, dialect, invalid);
   2328  1.12  christos   /* Power10 doesn't allow VSRs to overlap ACCs in MMA instructions.  */
   2329  1.12  christos   if ((dialect & PPC_OPCODE_FUTURE) == 0
   2330  1.12  christos       && (value >> 2) == acc)
   2331  1.11  christos     *invalid = 1;
   2332  1.11  christos   return value;
   2333  1.11  christos }
   2334  1.11  christos 
   2335   1.9  christos /* The XA and XB fields in an XX3 form instruction when they must be the same.
   2336   1.9  christos    This is used for extended mnemonics like xvmovdp.  The extraction function
   2337   1.9  christos    enforces that the fields are the same.  */
   2338   1.5  christos 
   2339   1.8  christos static uint64_t
   2340   1.9  christos insert_xab6 (uint64_t insn,
   2341   1.9  christos 	     int64_t value,
   2342   1.9  christos 	     ppc_cpu_t dialect,
   2343   1.9  christos 	     const char **errmsg)
   2344   1.8  christos {
   2345   1.9  christos   return insert_xa6 (insn, value, dialect, errmsg)
   2346   1.9  christos 	 | insert_xb6 (insn, value, dialect, errmsg);
   2347   1.8  christos }
   2348   1.5  christos 
   2349   1.8  christos static int64_t
   2350   1.9  christos extract_xab6 (uint64_t insn,
   2351   1.9  christos 	      ppc_cpu_t dialect,
   2352   1.8  christos 	      int *invalid)
   2353   1.8  christos {
   2354   1.9  christos   int64_t xa6 = extract_xa6 (insn, dialect, invalid);
   2355   1.9  christos   int64_t xb6 = extract_xb6 (insn, dialect, invalid);
   2356   1.9  christos 
   2357   1.9  christos   if (xa6 != xb6)
   2358   1.8  christos     *invalid = 1;
   2359   1.9  christos   return xa6;
   2360   1.8  christos }
   2361   1.1     skrll 
   2362   1.8  christos /* The XC field in an XX4 form instruction.  This is split.  */
   2363   1.1     skrll 
   2364   1.8  christos static uint64_t
   2365   1.8  christos insert_xc6 (uint64_t insn,
   2366   1.8  christos 	    int64_t value,
   2367   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2368   1.8  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2369   1.8  christos {
   2370   1.8  christos   return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
   2371   1.8  christos }
   2372   1.5  christos 
   2373   1.8  christos static int64_t
   2374   1.8  christos extract_xc6 (uint64_t insn,
   2375   1.8  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2376   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2377   1.8  christos {
   2378   1.8  christos   return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
   2379   1.8  christos }
   2380   1.1     skrll 
   2381  1.12  christos /* The split XTp and XSp field in a vector paired insn.  */
   2382  1.11  christos 
   2383  1.11  christos static uint64_t
   2384  1.11  christos insert_xtp (uint64_t insn,
   2385  1.11  christos 	    int64_t value,
   2386  1.11  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2387  1.11  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2388  1.11  christos {
   2389  1.11  christos   return insn | ((value & 0x1e) << 21) | ((value & 0x20) << (21 - 5));
   2390  1.11  christos }
   2391  1.11  christos 
   2392  1.11  christos static int64_t
   2393  1.11  christos extract_xtp (uint64_t insn,
   2394  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2395  1.11  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2396  1.11  christos {
   2397  1.11  christos   return ((insn >> (21 - 5)) & 0x20) | ((insn >> 21) & 0x1e);
   2398  1.11  christos }
   2399  1.11  christos 
   2400  1.11  christos /* The split XT field in a vector splat insn.  */
   2401  1.11  christos 
   2402  1.11  christos static uint64_t
   2403  1.11  christos insert_xts (uint64_t insn,
   2404  1.11  christos 	    int64_t value,
   2405  1.11  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2406  1.11  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2407  1.11  christos {
   2408  1.11  christos   return insn | ((value & 0x1f) << 21) | ((value & 0x20) << (16 - 5));
   2409  1.11  christos }
   2410  1.11  christos 
   2411  1.11  christos static int64_t
   2412  1.11  christos extract_xts (uint64_t insn,
   2413  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2414  1.11  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2415  1.11  christos {
   2416  1.11  christos   return ((insn >> (16 - 5)) & 0x20) | ((insn >> 21) & 0x1f);
   2417  1.11  christos }
   2418  1.11  christos 
   2419   1.8  christos static uint64_t
   2420   1.8  christos insert_dm (uint64_t insn,
   2421   1.8  christos 	   int64_t value,
   2422   1.8  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2423   1.8  christos 	   const char **errmsg)
   2424   1.8  christos {
   2425   1.8  christos   if (value != 0 && value != 1)
   2426   1.8  christos     *errmsg = _("invalid constant");
   2427   1.8  christos   return insn | (((value) ? 3 : 0) << 8);
   2428   1.8  christos }
   2429   1.1     skrll 
   2430   1.8  christos static int64_t
   2431   1.8  christos extract_dm (uint64_t insn,
   2432   1.8  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2433   1.8  christos 	    int *invalid)
   2434   1.8  christos {
   2435   1.8  christos   int64_t value = (insn >> 8) & 3;
   2436   1.8  christos   if (value != 0 && value != 3)
   2437   1.8  christos     *invalid = 1;
   2438   1.8  christos   return (value) ? 1 : 0;
   2439   1.8  christos }
   2440   1.1     skrll 
   2441  1.13  christos static uint64_t
   2442  1.13  christos insert_m2 (uint64_t insn,
   2443  1.13  christos 	  int64_t value,
   2444  1.13  christos 	  ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2445  1.13  christos 	  const char **errmsg)
   2446  1.13  christos {
   2447  1.13  christos   if (value != 0 && value != 1 && value != 2)
   2448  1.13  christos     *errmsg = _("invalid M value");
   2449  1.13  christos   return insn | ((value & 0x2) << (15)) | ((value & 0x1) << 11);
   2450  1.13  christos }
   2451  1.13  christos 
   2452  1.13  christos static int64_t
   2453  1.13  christos extract_m2 (uint64_t insn,
   2454  1.13  christos 	   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2455  1.13  christos 	   int *invalid)
   2456  1.13  christos {
   2457  1.13  christos   int64_t value = ((insn >> 15) & 0x2) | ((insn >> 11) & 0x1);
   2458  1.13  christos   if (value == 3)
   2459  1.13  christos     *invalid = 1;
   2460  1.13  christos   return value;
   2461  1.13  christos }
   2462  1.13  christos 
   2463   1.8  christos /* The VLESIMM field in an I16A form instruction.  This is split.  */
   2464   1.1     skrll 
   2465   1.8  christos static uint64_t
   2466   1.8  christos insert_vlesi (uint64_t insn,
   2467   1.8  christos 	      int64_t value,
   2468   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2469   1.8  christos 	      const char **errmsg ATTRIBUTE_UNUSED)
   2470   1.8  christos {
   2471   1.8  christos   return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
   2472   1.8  christos }
   2473   1.1     skrll 
   2474   1.8  christos static int64_t
   2475   1.8  christos extract_vlesi (uint64_t insn,
   2476   1.8  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2477   1.8  christos 	       int *invalid ATTRIBUTE_UNUSED)
   2478   1.8  christos {
   2479   1.8  christos   int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
   2480   1.8  christos   value = (value ^ 0x8000) - 0x8000;
   2481   1.8  christos   return value;
   2482   1.8  christos }
   2483   1.1     skrll 
   2484   1.8  christos static uint64_t
   2485   1.8  christos insert_vlensi (uint64_t insn,
   2486   1.8  christos 	       int64_t value,
   2487   1.8  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2488   1.8  christos 	       const char **errmsg ATTRIBUTE_UNUSED)
   2489   1.8  christos {
   2490   1.8  christos   value = -value;
   2491   1.8  christos   return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
   2492   1.8  christos }
   2493   1.8  christos static int64_t
   2494   1.8  christos extract_vlensi (uint64_t insn,
   2495   1.8  christos 		ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2496  1.10  christos 		int *invalid)
   2497   1.8  christos {
   2498   1.8  christos   int64_t value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
   2499   1.8  christos   value = (value ^ 0x8000) - 0x8000;
   2500   1.8  christos   /* Don't use for disassembly.  */
   2501   1.8  christos   *invalid = 1;
   2502   1.8  christos   return -value;
   2503   1.8  christos }
   2504   1.1     skrll 
   2505   1.8  christos /* The VLEUIMM field in an I16A form instruction.  This is split.  */
   2506   1.1     skrll 
   2507   1.8  christos static uint64_t
   2508   1.8  christos insert_vleui (uint64_t insn,
   2509   1.8  christos 	      int64_t value,
   2510   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2511   1.8  christos 	      const char **errmsg ATTRIBUTE_UNUSED)
   2512   1.8  christos {
   2513   1.8  christos   return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
   2514   1.8  christos }
   2515   1.1     skrll 
   2516   1.8  christos static int64_t
   2517   1.8  christos extract_vleui (uint64_t insn,
   2518   1.8  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2519   1.8  christos 	       int *invalid ATTRIBUTE_UNUSED)
   2520   1.8  christos {
   2521   1.8  christos   return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
   2522   1.8  christos }
   2523   1.4  christos 
   2524   1.8  christos /* The VLEUIMML field in an I16L form instruction.  This is split.  */
   2525   1.4  christos 
   2526   1.8  christos static uint64_t
   2527   1.8  christos insert_vleil (uint64_t insn,
   2528   1.8  christos 	      int64_t value,
   2529   1.8  christos 	      ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2530   1.8  christos 	      const char **errmsg ATTRIBUTE_UNUSED)
   2531   1.8  christos {
   2532   1.8  christos   return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
   2533   1.8  christos }
   2534   1.4  christos 
   2535   1.8  christos static int64_t
   2536   1.8  christos extract_vleil (uint64_t insn,
   2537   1.8  christos 	       ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2538   1.8  christos 	       int *invalid ATTRIBUTE_UNUSED)
   2539   1.8  christos {
   2540   1.8  christos   return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
   2541   1.8  christos }
   2542   1.4  christos 
   2543   1.8  christos static uint64_t
   2544   1.8  christos insert_evuimm1_ex0 (uint64_t insn,
   2545   1.8  christos 		    int64_t value,
   2546   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2547   1.8  christos 		    const char **errmsg)
   2548   1.8  christos {
   2549  1.10  christos   if (value <= 0 || value > 0x1f)
   2550  1.10  christos     *errmsg = _("UIMM = 00000 is illegal");
   2551  1.10  christos   return insn | ((value & 0x1f) << 11);
   2552   1.8  christos }
   2553   1.1     skrll 
   2554   1.8  christos static int64_t
   2555   1.8  christos extract_evuimm1_ex0 (uint64_t insn,
   2556   1.8  christos 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2557   1.8  christos 		     int *invalid)
   2558   1.8  christos {
   2559   1.8  christos   int64_t value = ((insn >> 11) & 0x1f);
   2560   1.8  christos   if (value == 0)
   2561   1.8  christos     *invalid = 1;
   2562   1.5  christos 
   2563   1.8  christos   return value;
   2564   1.8  christos }
   2565   1.1     skrll 
   2566   1.8  christos static uint64_t
   2567   1.8  christos insert_evuimm2_ex0 (uint64_t insn,
   2568   1.8  christos 		    int64_t value,
   2569   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2570   1.8  christos 		    const char **errmsg)
   2571   1.8  christos {
   2572  1.10  christos   if (value <= 0 || value > 0x3e)
   2573  1.10  christos     *errmsg = _("UIMM = 00000 is illegal");
   2574  1.10  christos   return insn | ((value & 0x3e) << 10);
   2575   1.8  christos }
   2576   1.1     skrll 
   2577   1.8  christos static int64_t
   2578   1.8  christos extract_evuimm2_ex0 (uint64_t insn,
   2579   1.8  christos 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2580   1.8  christos 		     int *invalid)
   2581   1.8  christos {
   2582   1.8  christos   int64_t value = ((insn >> 10) & 0x3e);
   2583   1.8  christos   if (value == 0)
   2584   1.8  christos     *invalid = 1;
   2585   1.1     skrll 
   2586   1.8  christos   return value;
   2587   1.8  christos }
   2588   1.2     skrll 
   2589   1.8  christos static uint64_t
   2590   1.8  christos insert_evuimm4_ex0 (uint64_t insn,
   2591   1.8  christos 		    int64_t value,
   2592   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2593   1.8  christos 		    const char **errmsg)
   2594   1.8  christos {
   2595  1.10  christos   if (value <= 0 || value > 0x7c)
   2596  1.10  christos     *errmsg = _("UIMM = 00000 is illegal");
   2597  1.10  christos   return insn | ((value & 0x7c) << 9);
   2598   1.8  christos }
   2599   1.2     skrll 
   2600   1.8  christos static int64_t
   2601   1.8  christos extract_evuimm4_ex0 (uint64_t insn,
   2602   1.8  christos 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2603   1.8  christos 		     int *invalid)
   2604   1.8  christos {
   2605   1.8  christos   int64_t value = ((insn >> 9) & 0x7c);
   2606   1.8  christos   if (value == 0)
   2607   1.8  christos     *invalid = 1;
   2608   1.2     skrll 
   2609   1.8  christos   return value;
   2610   1.8  christos }
   2611   1.3  christos 
   2612   1.8  christos static uint64_t
   2613   1.8  christos insert_evuimm8_ex0 (uint64_t insn,
   2614   1.8  christos 		    int64_t value,
   2615   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2616   1.8  christos 		    const char **errmsg)
   2617   1.8  christos {
   2618  1.10  christos   if (value <= 0 || value > 0xf8)
   2619  1.10  christos     *errmsg = _("UIMM = 00000 is illegal");
   2620  1.10  christos   return insn | ((value & 0xf8) << 8);
   2621   1.8  christos }
   2622   1.5  christos 
   2623   1.8  christos static int64_t
   2624   1.8  christos extract_evuimm8_ex0 (uint64_t insn,
   2625   1.8  christos 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2626   1.8  christos 		     int *invalid)
   2627   1.8  christos {
   2628   1.8  christos   int64_t value = ((insn >> 8) & 0xf8);
   2629   1.8  christos   if (value == 0)
   2630   1.8  christos     *invalid = 1;
   2631   1.5  christos 
   2632   1.8  christos   return value;
   2633   1.8  christos }
   2634   1.1     skrll 
   2635   1.8  christos static uint64_t
   2636   1.8  christos insert_evuimm_lt8 (uint64_t insn,
   2637   1.8  christos 		   int64_t value,
   2638   1.8  christos 		   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2639   1.8  christos 		   const char **errmsg)
   2640   1.8  christos {
   2641  1.10  christos   if (value < 0 || value > 7)
   2642  1.10  christos     *errmsg = _("UIMM values >7 are illegal");
   2643  1.10  christos   return insn | ((value & 0x7) << 11);
   2644   1.8  christos }
   2645   1.1     skrll 
   2646   1.8  christos static int64_t
   2647   1.8  christos extract_evuimm_lt8 (uint64_t insn,
   2648   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2649   1.8  christos 		    int *invalid)
   2650   1.8  christos {
   2651   1.8  christos   int64_t value = ((insn >> 11) & 0x1f);
   2652   1.8  christos   if (value > 7)
   2653   1.8  christos     *invalid = 1;
   2654   1.1     skrll 
   2655   1.8  christos   return value;
   2656   1.8  christos }
   2657   1.4  christos 
   2658   1.8  christos static uint64_t
   2659   1.8  christos insert_evuimm_lt16 (uint64_t insn,
   2660   1.8  christos 		    int64_t value,
   2661   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2662   1.8  christos 		    const char **errmsg)
   2663   1.4  christos {
   2664  1.10  christos   if (value < 0 || value > 15)
   2665  1.10  christos     *errmsg = _("UIMM values >15 are illegal");
   2666  1.10  christos   return insn | ((value & 0xf) << 11);
   2667   1.4  christos }
   2668   1.4  christos 
   2669   1.8  christos static int64_t
   2670   1.8  christos extract_evuimm_lt16 (uint64_t insn,
   2671   1.8  christos 		     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2672   1.8  christos 		     int *invalid)
   2673   1.5  christos {
   2674   1.8  christos   int64_t value = ((insn >> 11) & 0x1f);
   2675   1.8  christos   if (value > 15)
   2676   1.8  christos     *invalid = 1;
   2677   1.8  christos 
   2678   1.8  christos   return value;
   2679   1.4  christos }
   2680   1.4  christos 
   2681   1.8  christos static uint64_t
   2682   1.8  christos insert_rD_rS_even (uint64_t insn,
   2683   1.8  christos 		   int64_t value,
   2684   1.8  christos 		   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2685   1.8  christos 		   const char **errmsg)
   2686   1.4  christos {
   2687  1.10  christos   if ((value & 0x1) != 0)
   2688  1.10  christos     *errmsg = _("GPR odd is illegal");
   2689  1.10  christos   return insn | ((value & 0x1e) << 21);
   2690   1.4  christos }
   2691   1.4  christos 
   2692   1.8  christos static int64_t
   2693   1.8  christos extract_rD_rS_even (uint64_t insn,
   2694   1.8  christos 		    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2695   1.8  christos 		    int *invalid)
   2696   1.4  christos {
   2697   1.8  christos   int64_t value = ((insn >> 21) & 0x1f);
   2698   1.8  christos   if ((value & 0x1) != 0)
   2699   1.8  christos     *invalid = 1;
   2700   1.8  christos 
   2701   1.8  christos   return value;
   2702   1.4  christos }
   2703   1.4  christos 
   2704   1.8  christos static uint64_t
   2705   1.8  christos insert_off_lsp (uint64_t insn,
   2706   1.8  christos 		int64_t value,
   2707   1.8  christos 		ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2708   1.8  christos 		const char **errmsg)
   2709   1.4  christos {
   2710  1.10  christos   if (value <= 0 || value > 0x3)
   2711  1.10  christos     *errmsg = _("invalid offset");
   2712  1.10  christos   return insn | (value & 0x3);
   2713   1.4  christos }
   2714   1.4  christos 
   2715   1.8  christos static int64_t
   2716   1.8  christos extract_off_lsp (uint64_t insn,
   2717   1.8  christos 		 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2718   1.8  christos 		 int *invalid)
   2719   1.4  christos {
   2720   1.8  christos   int64_t value = (insn & 0x3);
   2721   1.8  christos   if (value == 0)
   2722   1.8  christos     *invalid = 1;
   2723   1.8  christos 
   2724   1.8  christos   return value;
   2725   1.4  christos }
   2726   1.4  christos 
   2727   1.8  christos static uint64_t
   2728   1.8  christos insert_off_spe2 (uint64_t insn,
   2729   1.8  christos 		 int64_t value,
   2730   1.8  christos 		 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2731   1.8  christos 		 const char **errmsg)
   2732   1.4  christos {
   2733  1.10  christos   if (value <= 0 || value > 0x7)
   2734  1.10  christos     *errmsg = _("invalid offset");
   2735  1.10  christos   return insn | (value & 0x7);
   2736   1.4  christos }
   2737   1.4  christos 
   2738   1.8  christos static int64_t
   2739   1.8  christos extract_off_spe2 (uint64_t insn,
   2740   1.8  christos 		  ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2741   1.8  christos 		  int *invalid)
   2742   1.4  christos {
   2743   1.8  christos   int64_t value = (insn & 0x7);
   2744   1.8  christos   if (value == 0)
   2745   1.8  christos     *invalid = 1;
   2746   1.8  christos 
   2747   1.8  christos   return value;
   2748   1.4  christos }
   2749   1.4  christos 
   2750   1.8  christos static uint64_t
   2751   1.8  christos insert_Ddd (uint64_t insn,
   2752   1.8  christos 	    int64_t value,
   2753   1.1     skrll 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2754   1.8  christos 	    const char **errmsg)
   2755   1.1     skrll {
   2756  1.10  christos   if (value < 0 || value > 0x7)
   2757  1.10  christos     *errmsg = _("invalid Ddd value");
   2758  1.10  christos   return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
   2759   1.1     skrll }
   2760   1.1     skrll 
   2761   1.8  christos static int64_t
   2762   1.8  christos extract_Ddd (uint64_t insn,
   2763   1.1     skrll 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2764   1.8  christos 	     int *invalid ATTRIBUTE_UNUSED)
   2765   1.1     skrll {
   2766   1.8  christos   return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
   2767   1.1     skrll }
   2768  1.10  christos 
   2769  1.10  christos static uint64_t
   2770  1.10  christos insert_sxl (uint64_t insn,
   2771  1.10  christos 	    int64_t value,
   2772  1.10  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2773  1.10  christos 	    const char **errmsg ATTRIBUTE_UNUSED)
   2774  1.10  christos {
   2775  1.10  christos   return insn | ((value & 0x1) << 11);
   2776  1.10  christos }
   2777  1.10  christos 
   2778  1.10  christos static int64_t
   2779  1.10  christos extract_sxl (uint64_t insn,
   2780  1.10  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2781  1.10  christos 	     int *invalid)
   2782  1.10  christos {
   2783  1.10  christos   /* Missing optional operands have a value of one.  */
   2784  1.10  christos   if (*invalid < 0)
   2785  1.10  christos     return 1;
   2786  1.10  christos   return (insn >> 11) & 0x1;
   2787  1.10  christos }
   2788  1.11  christos 
   2789  1.11  christos /* The list of embedded processors that use the embedded operand ordering
   2790  1.11  christos    for the 3 operand dcbt and dcbtst instructions.  */
   2791  1.11  christos #define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
   2792  1.11  christos 		 | PPC_OPCODE_A2)
   2793  1.11  christos 
   2794  1.11  christos /* ISA 2.03 and later specify extended mnemonics dcbtct, dcbtds, and
   2795  1.11  christos    dcbtstct, dcbtstds with a note saying these should be used in new
   2796  1.11  christos    programs rather than the base mnemonics "so that it can be coded
   2797  1.11  christos    with TH as the last operand for all categories".  For that reason
   2798  1.11  christos    the extended mnemonics are enabled in the assembler for the
   2799  1.11  christos    embedded processors, but not for the disassembler so as to display
   2800  1.11  christos    the embedded dcbt or dcbtst expected form with TH first for
   2801  1.11  christos    embedded programmers.  */
   2802  1.11  christos 
   2803  1.11  christos static uint64_t
   2804  1.11  christos insert_thct (uint64_t insn,
   2805  1.11  christos 	    int64_t value,
   2806  1.11  christos 	    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2807  1.11  christos 	    const char **errmsg)
   2808  1.11  christos {
   2809  1.11  christos   if ((uint64_t) value > 7)
   2810  1.11  christos     *errmsg = _("invalid TH value");
   2811  1.11  christos   return insn | ((value & 7) << 21);
   2812  1.11  christos }
   2813  1.11  christos 
   2814  1.11  christos static int64_t
   2815  1.11  christos extract_thct (uint64_t insn,
   2816  1.11  christos 	      ppc_cpu_t dialect,
   2817  1.11  christos 	      int *invalid)
   2818  1.11  christos {
   2819  1.11  christos   /* Missing optional operands have a value of 0.  */
   2820  1.11  christos   if (*invalid < 0)
   2821  1.11  christos     return 0;
   2822  1.11  christos 
   2823  1.11  christos   int64_t value = (insn >> 21) & 0x1f;
   2824  1.11  christos   if (value > 7 || (dialect & DCBT_EO) != 0)
   2825  1.11  christos     *invalid = 1;
   2826  1.11  christos 
   2827  1.11  christos   return value;
   2828  1.11  christos }
   2829  1.11  christos 
   2830  1.11  christos static uint64_t
   2831  1.11  christos insert_thds (uint64_t insn,
   2832  1.11  christos 	     int64_t value,
   2833  1.11  christos 	     ppc_cpu_t dialect ATTRIBUTE_UNUSED,
   2834  1.11  christos 	     const char **errmsg)
   2835  1.11  christos {
   2836  1.11  christos   if (value < 8 || value > 15)
   2837  1.11  christos     *errmsg = _("invalid TH value");
   2838  1.11  christos   return insn | ((value & 0x1f) << 21);
   2839  1.11  christos }
   2840  1.11  christos 
   2841  1.11  christos static int64_t
   2842  1.11  christos extract_thds (uint64_t insn,
   2843  1.11  christos 	      ppc_cpu_t dialect,
   2844  1.11  christos 	      int *invalid)
   2845  1.11  christos {
   2846  1.11  christos   /* Missing optional operands have a value of 8.  */
   2847  1.11  christos   if (*invalid < 0)
   2848  1.11  christos     return 8;
   2849  1.11  christos 
   2850  1.11  christos   int64_t value = (insn >> 21) & 0x1f;
   2851  1.11  christos   if (value < 8 || value > 15 || (dialect & DCBT_EO) != 0)
   2852  1.11  christos     *invalid = 1;
   2853  1.11  christos 
   2854  1.11  christos   return value;
   2855  1.11  christos }
   2856   1.8  christos 
   2857   1.8  christos /* The operands table.
   2859   1.8  christos 
   2860   1.1     skrll    The fields are bitm, shift, insert, extract, flags.
   2861   1.8  christos 
   2862   1.8  christos    We used to put parens around the various additions, like the one
   2863   1.8  christos    for BA just below.  However, that caused trouble with feeble
   2864   1.8  christos    compilers with a limit on depth of a parenthesized expression, like
   2865   1.8  christos    (reportedly) the compiler in Microsoft Developer Studio 5.  So we
   2866   1.8  christos    omit the parens, since the macros are never used in a context where
   2867   1.1     skrll    the addition will be ambiguous.  */
   2868   1.8  christos 
   2869   1.1     skrll const struct powerpc_operand powerpc_operands[] =
   2870   1.8  christos {
   2871   1.8  christos   /* The zero index is used to indicate the end of the list of
   2872   1.8  christos      operands.  */
   2873   1.8  christos #define UNUSED 0
   2874   1.8  christos   { 0, 0, NULL, NULL, 0 },
   2875   1.8  christos 
   2876   1.8  christos   /* The BA field in an XL form instruction.  */
   2877   1.8  christos #define BA UNUSED + 1
   2878   1.8  christos   /* The BI field in a B form or XL form instruction.  */
   2879   1.8  christos #define BI BA
   2880   1.8  christos #define BI_MASK (0x1f << 16)
   2881   1.8  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
   2882   1.9  christos 
   2883   1.9  christos   /* The BT, BA and BB fields in a XL form instruction when they must all
   2884   1.9  christos      be the same.  */
   2885   1.9  christos #define BTAB BA + 1
   2886   1.8  christos   { 0x1f, 21, insert_btab, extract_btab, PPC_OPERAND_CR_BIT },
   2887   1.8  christos 
   2888   1.9  christos   /* The BB field in an XL form instruction.  */
   2889   1.8  christos #define BB BTAB + 1
   2890   1.8  christos #define BB_MASK (0x1f << 11)
   2891   1.8  christos   { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
   2892   1.9  christos 
   2893   1.9  christos   /* The BA and BB fields in a XL form instruction when they must be
   2894   1.9  christos      the same.  */
   2895   1.9  christos #define BAB BB + 1
   2896   1.9  christos   { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_CR_BIT },
   2897   1.9  christos 
   2898   1.9  christos   /* The VRA and VRB fields in a VX form instruction when they must be the same.
   2899   1.9  christos      This is used for extended mnemonics like vmr.  */
   2900   1.9  christos #define VAB BAB + 1
   2901   1.9  christos   { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_VR },
   2902   1.9  christos 
   2903   1.9  christos   /* The RA and RB fields in a VX form instruction when they must be the same.
   2904   1.9  christos      This is used for extended mnemonics like evmr.  */
   2905   1.9  christos #define RAB VAB + 1
   2906   1.8  christos   { 0x1f, 16, insert_bab, extract_bab, PPC_OPERAND_GPR },
   2907  1.11  christos 
   2908  1.11  christos #define BC RAB + 1
   2909  1.11  christos   { 0x1f, 6, NULL, NULL, PPC_OPERAND_CR_BIT },
   2910   1.8  christos 
   2911   1.8  christos   /* The BD field in a B form instruction.  The lower two bits are
   2912  1.11  christos      forced to zero.  */
   2913   1.8  christos #define BD BC + 1
   2914   1.8  christos   { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2915   1.8  christos 
   2916   1.8  christos   /* The BD field in a B form instruction when absolute addressing is
   2917   1.8  christos      used.  */
   2918   1.8  christos #define BDA BD + 1
   2919   1.8  christos   { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   2920   1.8  christos 
   2921   1.8  christos   /* The BD field in a B form instruction when the - modifier is used.
   2922   1.8  christos      This sets the y bit of the BO field appropriately.  */
   2923   1.8  christos #define BDM BDA + 1
   2924   1.8  christos   { 0xfffc, 0, insert_bdm, extract_bdm,
   2925   1.8  christos     PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2926   1.8  christos 
   2927   1.8  christos   /* The BD field in a B form instruction when the - modifier is used
   2928   1.8  christos      and absolute address is used.  */
   2929   1.8  christos #define BDMA BDM + 1
   2930   1.8  christos   { 0xfffc, 0, insert_bdm, extract_bdm,
   2931   1.8  christos     PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   2932   1.8  christos 
   2933   1.8  christos   /* The BD field in a B form instruction when the + modifier is used.
   2934   1.8  christos      This sets the y bit of the BO field appropriately.  */
   2935   1.8  christos #define BDP BDMA + 1
   2936   1.8  christos   { 0xfffc, 0, insert_bdp, extract_bdp,
   2937   1.8  christos     PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   2938   1.8  christos 
   2939   1.8  christos   /* The BD field in a B form instruction when the + modifier is used
   2940   1.8  christos      and absolute addressing is used.  */
   2941   1.8  christos #define BDPA BDP + 1
   2942   1.8  christos   { 0xfffc, 0, insert_bdp, extract_bdp,
   2943   1.8  christos     PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   2944   1.8  christos 
   2945   1.8  christos   /* The BF field in an X or XL form instruction.  */
   2946   1.8  christos #define BF BDPA + 1
   2947   1.8  christos   /* The CRFD field in an X form instruction.  */
   2948   1.8  christos #define CRFD BF
   2949   1.8  christos   /* The CRD field in an XL form instruction.  */
   2950   1.8  christos #define CRD BF
   2951   1.8  christos   { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
   2952   1.8  christos 
   2953   1.8  christos   /* The BF field in an X or XL form instruction.  */
   2954   1.8  christos #define BFF BF + 1
   2955   1.8  christos   { 0x7, 23, NULL, NULL, 0 },
   2956  1.11  christos 
   2957  1.11  christos   /* The ACC field in a VSX ACC 8LS:D-form instruction.  */
   2958  1.11  christos #define ACC BFF + 1
   2959  1.11  christos   { 0x7, 23, NULL, NULL, PPC_OPERAND_ACC },
   2960  1.12  christos 
   2961  1.12  christos   /* The DMR field in a MMA instruction.  */
   2962  1.12  christos #define DMR ACC + 1
   2963  1.12  christos   { 0x7, 23, NULL, NULL, PPC_OPERAND_DMR },
   2964  1.12  christos 
   2965  1.12  christos   /* The second DMR field in a two DMR operand MMA instruction.  */
   2966  1.12  christos #define DMRAB DMR + 1
   2967  1.12  christos   { 0x7, 13, NULL, NULL, PPC_OPERAND_DMR },
   2968   1.8  christos 
   2969   1.8  christos   /* An optional BF field.  This is used for comparison instructions,
   2970  1.12  christos      in which an omitted BF field is taken as zero.  */
   2971   1.8  christos #define OBF DMRAB + 1
   2972   1.8  christos   { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
   2973   1.8  christos 
   2974   1.8  christos   /* The BFA field in an X or XL form instruction.  */
   2975   1.8  christos #define BFA OBF + 1
   2976   1.8  christos   { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
   2977   1.8  christos 
   2978   1.8  christos   /* The BO field in a B form instruction.  Certain values are
   2979   1.8  christos      illegal.  */
   2980   1.8  christos #define BO BFA + 1
   2981   1.8  christos #define BO_MASK (0x1f << 21)
   2982   1.8  christos   { 0x1f, 21, insert_bo, extract_bo, 0 },
   2983  1.10  christos 
   2984  1.10  christos   /* The BO field in a B form instruction when the - modifier is used.  */
   2985  1.10  christos #define BOM BO + 1
   2986  1.10  christos   { 0x1f, 21, insert_bom, extract_bom, 0 },
   2987  1.10  christos 
   2988  1.10  christos   /* The BO field in a B form instruction when the + modifier is used.  */
   2989  1.10  christos #define BOP BOM + 1
   2990   1.8  christos   { 0x1f, 21, insert_bop, extract_bop, 0 },
   2991   1.8  christos 
   2992  1.10  christos   /* The RM field in an X form instruction.  */
   2993   1.8  christos #define RM BOP + 1
   2994  1.12  christos #define DD RM
   2995   1.8  christos #define mo1 RM
   2996   1.8  christos   { 0x3, 11, NULL, NULL, 0 },
   2997   1.8  christos 
   2998   1.8  christos #define BH RM + 1
   2999   1.8  christos   { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3000   1.8  christos 
   3001   1.8  christos   /* The BT field in an X or XL form instruction.  */
   3002   1.8  christos #define BT BH + 1
   3003   1.8  christos   { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
   3004  1.10  christos 
   3005  1.10  christos   /* The BT field in a mtfsb0 or mtfsb1 instruction.  */
   3006  1.10  christos #define BTF BT + 1
   3007  1.10  christos   { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT | PPC_OPERAND_CR_REG },
   3008   1.8  christos 
   3009  1.10  christos   /* The BI16 field in a BD8 form instruction.  */
   3010   1.8  christos #define BI16 BTF + 1
   3011   1.8  christos   { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
   3012   1.8  christos 
   3013   1.8  christos   /* The BI32 field in a BD15 form instruction.  */
   3014   1.8  christos #define BI32 BI16 + 1
   3015   1.8  christos   { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
   3016   1.8  christos 
   3017   1.8  christos   /* The BO32 field in a BD15 form instruction.  */
   3018   1.8  christos #define BO32 BI32 + 1
   3019   1.8  christos   { 0x3, 20, NULL, NULL, 0 },
   3020   1.8  christos 
   3021   1.8  christos   /* The B8 field in a BD8 form instruction.  */
   3022   1.8  christos #define B8 BO32 + 1
   3023   1.1     skrll   { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   3024   1.8  christos 
   3025   1.8  christos   /* The B15 field in a BD15 form instruction.  The lowest bit is
   3026   1.8  christos      forced to zero.  */
   3027   1.8  christos #define B15 B8 + 1
   3028   1.1     skrll   { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   3029   1.8  christos 
   3030   1.8  christos   /* The B24 field in a BD24 form instruction.  The lowest bit is
   3031   1.8  christos      forced to zero.  */
   3032   1.8  christos #define B24 B15 + 1
   3033   1.1     skrll   { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   3034   1.8  christos 
   3035   1.8  christos   /* The condition register number portion of the BI field in a B form
   3036   1.8  christos      or XL form instruction.  This is used for the extended
   3037   1.8  christos      conditional branch mnemonics, which set the lower two bits of the
   3038   1.8  christos      BI field.  This field is optional.  */
   3039   1.8  christos #define CR B24 + 1
   3040   1.4  christos   { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
   3041   1.8  christos 
   3042   1.8  christos   /* The CRB field in an X form instruction.  */
   3043   1.8  christos #define CRB CR + 1
   3044   1.8  christos   /* The MB field in an M form instruction.  */
   3045   1.8  christos #define MB CRB
   3046   1.8  christos #define MB_MASK (0x1f << 6)
   3047   1.1     skrll   { 0x1f, 6, NULL, NULL, 0 },
   3048   1.8  christos 
   3049   1.8  christos   /* The CRD32 field in an XL form instruction.  */
   3050   1.8  christos #define CRD32 CRB + 1
   3051   1.1     skrll   { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
   3052   1.8  christos 
   3053   1.8  christos   /* The CRFS field in an X form instruction.  */
   3054   1.8  christos #define CRFS CRD32 + 1
   3055   1.1     skrll   { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
   3056   1.8  christos 
   3057   1.8  christos #define CRS CRFS + 1
   3058   1.1     skrll   { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
   3059   1.8  christos 
   3060   1.8  christos   /* The CT field in an X form instruction.  */
   3061   1.8  christos #define CT CRS + 1
   3062   1.8  christos   /* The MO field in an mbar instruction.  */
   3063   1.8  christos #define MO CT
   3064   1.1     skrll   { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3065  1.11  christos 
   3066  1.11  christos   /* The TH field in dcbtct.  */
   3067  1.11  christos #define THCT CT + 1
   3068  1.11  christos   { 0x1f, 21, insert_thct, extract_thct, PPC_OPERAND_OPTIONAL },
   3069  1.11  christos 
   3070  1.11  christos   /* The TH field in dcbtds.  */
   3071  1.11  christos #define THDS THCT + 1
   3072  1.11  christos   { 0x1f, 21, insert_thds, extract_thds, PPC_OPERAND_OPTIONAL },
   3073   1.8  christos 
   3074   1.8  christos   /* The D field in a D form instruction.  This is a displacement off
   3075   1.8  christos      a register, and implies that the next operand is a register in
   3076  1.11  christos      parentheses.  */
   3077   1.8  christos #define D THDS + 1
   3078   1.1     skrll   { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3079   1.8  christos 
   3080   1.8  christos   /* The D8 field in a D form instruction.  This is a displacement off
   3081   1.8  christos      a register, and implies that the next operand is a register in
   3082   1.8  christos      parentheses.  */
   3083   1.8  christos #define D8 D + 1
   3084   1.1     skrll   { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3085   1.8  christos 
   3086   1.8  christos   /* The DCMX field in an X form instruction.  */
   3087   1.8  christos #define DCMX D8 + 1
   3088   1.1     skrll   { 0x7f, 16, NULL, NULL, 0 },
   3089   1.8  christos 
   3090   1.8  christos   /* The split DCMX field in an X form instruction.  */
   3091   1.8  christos #define DCMXS DCMX + 1
   3092   1.1     skrll   { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
   3093   1.8  christos 
   3094   1.8  christos   /* The DQ field in a DQ form instruction.  This is like D, but the
   3095   1.8  christos      lower four bits are forced to zero. */
   3096   1.8  christos #define DQ DCMXS + 1
   3097   1.8  christos   { 0xfff0, 0, NULL, NULL,
   3098   1.4  christos     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
   3099   1.8  christos 
   3100   1.8  christos   /* The DS field in a DS form instruction.  This is like D, but the
   3101   1.8  christos      lower two bits are forced to zero.  */
   3102   1.8  christos #define DS DQ + 1
   3103   1.8  christos   { 0xfffc, 0, NULL, NULL,
   3104   1.4  christos     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
   3105  1.10  christos 
   3106  1.10  christos   /* The D field in an 8-byte D form prefix instruction.  This is a displacement
   3107  1.10  christos      off a register, and implies that the next operand is a register in
   3108  1.10  christos      parentheses.  */
   3109  1.10  christos #define D34 DS + 1
   3110  1.10  christos   { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34,
   3111  1.10  christos     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3112  1.10  christos 
   3113  1.10  christos   /* The SI field in an 8-byte D form prefix instruction.  */
   3114  1.10  christos #define SI34 D34 + 1
   3115  1.10  christos   { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_d34, extract_d34, PPC_OPERAND_SIGNED },
   3116  1.10  christos 
   3117  1.10  christos   /* The NSI field in an 8-byte D form prefix instruction.  This is the
   3118  1.10  christos      same as the SI34 field, only negated.  */
   3119  1.10  christos #define NSI34 SI34 + 1
   3120  1.10  christos   { UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
   3121  1.10  christos     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3122  1.13  christos 
   3123  1.13  christos   /* The 32bit SI field in an 8-byte D form prefix instruction.  */
   3124  1.13  christos #define SI32 NSI34 + 1
   3125  1.13  christos   { UINT64_C(0xffffffff), PPC_OPSHIFT_INV, insert_si32, extract_si32, PPC_OPERAND_SIGNED },
   3126  1.13  christos 
   3127  1.13  christos   /* The NSI field in an 8-byte D form prefix instruction with 32bit SI field.  This is
   3128  1.13  christos      the same as the SI32 field, only negated.  */
   3129  1.13  christos #define NSI32 SI32 + 1
   3130  1.13  christos   { UINT64_C(0xffffffff), PPC_OPSHIFT_INV, insert_nsi32, extract_nsi32,
   3131  1.13  christos     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3132  1.11  christos 
   3133  1.13  christos   /* The IMM32 field in a vector splat immediate prefix instruction.  */
   3134  1.11  christos #define IMM32 NSI32 + 1
   3135  1.11  christos   { 0xffffffff, PPC_OPSHIFT_INV, insert_imm32, extract_imm32, 0},
   3136  1.11  christos 
   3137  1.11  christos   /* The UIM field in a vector permute extended prefix instruction.  */
   3138  1.11  christos #define UIM3 IMM32 + 1
   3139  1.11  christos   { 0x7, 32, NULL, NULL, 0},
   3140  1.11  christos 
   3141  1.11  christos   /* The UIM field in a vector eval prefix instruction.  */
   3142  1.11  christos #define UIM8 UIM3 + 1
   3143  1.11  christos   { 0xff, 32, NULL, NULL, 0},
   3144  1.11  christos 
   3145  1.11  christos   /* The IX field in xxsplti32dx.  */
   3146  1.11  christos #define IX UIM8 + 1
   3147  1.11  christos   { 0x1, 17, NULL, NULL, 0 },
   3148  1.11  christos 
   3149  1.11  christos   /* The PMSK field in GER rank 8 prefix instructions.  */
   3150  1.11  christos #define PMSK8 IX + 1
   3151  1.11  christos   { 0xff, 40, NULL, NULL, 0 },
   3152  1.11  christos 
   3153  1.11  christos   /* The PMSK field in GER rank 4 prefix instructions.  */
   3154  1.11  christos #define PMSK4 PMSK8 + 1
   3155  1.11  christos   { 0xf, 44, NULL, NULL, 0 },
   3156  1.11  christos 
   3157  1.11  christos   /* The PMSK field in GER rank 2 prefix instructions.  */
   3158  1.11  christos #define PMSK2 PMSK4 + 1
   3159  1.11  christos   { 0x3, 46, NULL, NULL, 0 },
   3160  1.11  christos 
   3161  1.11  christos   /* The XMSK field in GER prefix instructions.  */
   3162  1.11  christos #define XMSK PMSK2 + 1
   3163  1.11  christos   { 0xf, 36, NULL, NULL, 0 },
   3164  1.12  christos 
   3165  1.12  christos   /* The XMSK field in GERX prefix instructions.  */
   3166  1.12  christos #define XMSK8 XMSK + 1
   3167  1.12  christos   { 0xff, 36, NULL, NULL, 0 },
   3168  1.11  christos 
   3169  1.12  christos   /* The YMSK field in GER prefix instructions.  */
   3170  1.11  christos #define YMSK XMSK8 + 1
   3171  1.11  christos   { 0xf, 32, NULL, NULL, 0 },
   3172  1.11  christos 
   3173  1.11  christos   /* The YMSK field in 64-bit GER prefix instructions.  */
   3174  1.11  christos #define YMSK2 YMSK + 1
   3175  1.11  christos   { 0x3, 34, NULL, NULL, 0 },
   3176   1.8  christos 
   3177   1.8  christos   /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
   3178  1.11  christos      unsigned imediate */
   3179   1.8  christos #define DUIS YMSK2 + 1
   3180   1.8  christos #define BHRBE DUIS
   3181   1.4  christos   { 0x3ff, 11, NULL, NULL, 0 },
   3182  1.11  christos 
   3183  1.11  christos   /* The split DW field in a X form instruction.  */
   3184  1.11  christos #define DW DUIS + 1
   3185  1.11  christos   { -1, PPC_OPSHIFT_INV, insert_dw, extract_dw,
   3186  1.11  christos     PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED},
   3187   1.8  christos 
   3188  1.11  christos   /* The split D field in a DX form instruction.  */
   3189   1.8  christos #define DXD DW + 1
   3190   1.8  christos   { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
   3191   1.1     skrll     PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
   3192   1.8  christos 
   3193   1.8  christos   /* The split ND field in a DX form instruction.
   3194   1.8  christos      This is the same as the DX field, only negated.  */
   3195   1.8  christos #define NDXD DXD + 1
   3196   1.8  christos   { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
   3197   1.1     skrll     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
   3198   1.8  christos 
   3199   1.8  christos   /* The E field in a wrteei instruction.  */
   3200   1.8  christos   /* And the W bit in the pair singles instructions.  */
   3201   1.8  christos   /* And the ST field in a VX form instruction.  */
   3202   1.8  christos #define E NDXD + 1
   3203   1.8  christos #define PSW E
   3204   1.8  christos #define ST E
   3205   1.1     skrll   { 0x1, 15, NULL, NULL, 0 },
   3206   1.8  christos 
   3207   1.8  christos   /* The FL1 field in a POWER SC form instruction.  */
   3208   1.8  christos #define FL1 E + 1
   3209   1.8  christos   /* The U field in an X form instruction.  */
   3210   1.8  christos #define U FL1
   3211   1.1     skrll   { 0xf, 12, NULL, NULL, 0 },
   3212   1.8  christos 
   3213   1.8  christos   /* The FL2 field in a POWER SC form instruction.  */
   3214   1.8  christos #define FL2 FL1 + 1
   3215   1.1     skrll   { 0x7, 2, NULL, NULL, 0 },
   3216   1.8  christos 
   3217   1.8  christos   /* The FLM field in an XFL form instruction.  */
   3218   1.8  christos #define FLM FL2 + 1
   3219   1.1     skrll   { 0xff, 17, NULL, NULL, 0 },
   3220   1.8  christos 
   3221   1.8  christos   /* The FRA field in an X or A form instruction.  */
   3222   1.8  christos #define FRA FLM + 1
   3223   1.8  christos #define FRA_MASK (0x1f << 16)
   3224   1.1     skrll   { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
   3225   1.8  christos 
   3226   1.8  christos   /* The FRAp field of DFP instructions.  */
   3227   1.8  christos #define FRAp FRA + 1
   3228   1.1     skrll   { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
   3229   1.8  christos 
   3230   1.8  christos   /* The FRB field in an X or A form instruction.  */
   3231   1.8  christos #define FRB FRAp + 1
   3232   1.8  christos #define FRB_MASK (0x1f << 11)
   3233   1.1     skrll   { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
   3234   1.8  christos 
   3235   1.8  christos   /* The FRBp field of DFP instructions.  */
   3236   1.8  christos #define FRBp FRB + 1
   3237   1.5  christos   { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
   3238   1.8  christos 
   3239   1.8  christos   /* The FRC field in an A form instruction.  */
   3240   1.8  christos #define FRC FRBp + 1
   3241   1.8  christos #define FRC_MASK (0x1f << 6)
   3242   1.5  christos   { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
   3243   1.8  christos 
   3244   1.8  christos   /* The FRS field in an X form instruction or the FRT field in a D, X
   3245   1.8  christos      or A form instruction.  */
   3246   1.8  christos #define FRS FRC + 1
   3247   1.8  christos #define FRT FRS
   3248   1.5  christos   { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
   3249   1.8  christos 
   3250   1.8  christos   /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
   3251   1.8  christos      instructions.  */
   3252   1.8  christos #define FRSp FRS + 1
   3253   1.8  christos #define FRTp FRSp
   3254   1.5  christos   { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
   3255   1.8  christos 
   3256   1.8  christos   /* The FXM field in an XFX instruction.  */
   3257   1.8  christos #define FXM FRSp + 1
   3258   1.5  christos   { 0xff, 12, insert_fxm, extract_fxm, 0 },
   3259   1.8  christos 
   3260   1.8  christos   /* Power4 version for mfcr.  */
   3261  1.10  christos #define FXM4 FXM + 1
   3262   1.5  christos   { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL },
   3263   1.8  christos 
   3264  1.10  christos   /* The IMM20 field in an LI instruction.  */
   3265   1.8  christos #define IMM20 FXM4 + 1
   3266   1.5  christos   { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
   3267   1.8  christos 
   3268   1.8  christos   /* The L field in a D or X form instruction.  */
   3269   1.8  christos #define L IMM20 + 1
   3270   1.5  christos   { 0x1, 21, NULL, NULL, 0 },
   3271   1.8  christos 
   3272   1.8  christos   /* The optional L field in tlbie and tlbiel instructions.  */
   3273   1.8  christos #define LOPT L + 1
   3274   1.8  christos   /* The R field in a HTM X form instruction.  */
   3275   1.8  christos #define HTM_R LOPT
   3276   1.1     skrll   { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3277  1.11  christos 
   3278  1.11  christos   /* The optional L field in the paste. instruction. This is similar to LOPT
   3279  1.11  christos      above, but with a default value of 1.  */
   3280  1.11  christos #define L1OPT LOPT + 1
   3281  1.11  christos   { 0x1, 21, insert_l1opt, extract_l1opt, PPC_OPERAND_OPTIONAL },
   3282   1.8  christos 
   3283  1.11  christos   /* The optional (for 32-bit) L field in cmp[l][i] instructions.  */
   3284   1.8  christos #define L32OPT L1OPT + 1
   3285   1.8  christos   { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
   3286  1.11  christos 
   3287   1.8  christos   /* The 2-bit L or WC field in an X (sync, dcbf or wait) form instruction.  */
   3288  1.11  christos #define L2OPT L32OPT + 1
   3289  1.11  christos #define LS L2OPT
   3290  1.11  christos #define WC L2OPT
   3291   1.1     skrll   { 0x3, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
   3292   1.8  christos 
   3293   1.8  christos   /* The LEV field in a POWER SVC / POWER9 SCV form instruction.  */
   3294   1.8  christos #define SVC_LEV L2OPT + 1
   3295   1.1     skrll   { 0x7f, 5, NULL, NULL, 0 },
   3296   1.8  christos 
   3297   1.8  christos   /* The LEV field in an SC form instruction.  */
   3298   1.8  christos #define LEV SVC_LEV + 1
   3299   1.1     skrll   { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3300   1.8  christos 
   3301   1.8  christos   /* The LI field in an I form instruction.  The lower two bits are
   3302   1.8  christos      forced to zero.  */
   3303   1.8  christos #define LI LEV + 1
   3304   1.1     skrll   { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
   3305   1.8  christos 
   3306   1.8  christos   /* The LI field in an I form instruction when used as an absolute
   3307   1.8  christos      address.  */
   3308   1.8  christos #define LIA LI + 1
   3309   1.1     skrll   { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
   3310  1.11  christos 
   3311  1.11  christos   /* The 3-bit L field in a sync or dcbf instruction.  */
   3312  1.11  christos #define LS3 LIA + 1
   3313  1.11  christos #define L3OPT LS3
   3314   1.1     skrll   { 0x7, 21, insert_ls, extract_ls, PPC_OPERAND_OPTIONAL },
   3315   1.8  christos 
   3316  1.11  christos   /* The ME field in an M form instruction.  */
   3317   1.8  christos #define ME LS3 + 1
   3318   1.8  christos #define ME_MASK (0x1f << 1)
   3319   1.1     skrll   { 0x1f, 1, NULL, NULL, 0 },
   3320  1.11  christos 
   3321  1.11  christos #define CRWn ME + 1
   3322  1.11  christos   { 0x1f, 1, insert_crwn, extract_crwn, 0 },
   3323  1.11  christos 
   3324  1.11  christos #define ELWn CRWn + 1
   3325  1.11  christos   { 0x1f, 1, insert_elwn, extract_elwn, PPC_OPERAND_PLUS1 },
   3326  1.11  christos 
   3327  1.11  christos #define ERWn ELWn + 1
   3328  1.11  christos   { 0x1f, 6, insert_erwn, extract_erwn, 0 },
   3329  1.11  christos 
   3330  1.11  christos #define ERWb ERWn + 1
   3331  1.11  christos   { 0x1f, 11, insert_erwb, extract_erwb, 0 },
   3332  1.11  christos 
   3333  1.11  christos #define CSLWb ERWb + 1
   3334  1.11  christos   { 0x1f, 6, NULL, extract_cslwb, 0 },
   3335  1.11  christos 
   3336  1.11  christos #define CSLWn CSLWb + 1
   3337  1.11  christos   { 0x1f, 11, insert_cslwn, NULL, 0 },
   3338  1.11  christos 
   3339  1.11  christos #define ILWn CSLWn + 1
   3340  1.11  christos   { 0x1f, 1, NULL, extract_ilwn, PPC_OPERAND_PLUS1 },
   3341  1.11  christos 
   3342  1.11  christos #define ILWb ILWn + 1
   3343  1.11  christos   { 0x1f, 6, insert_ilwb, NULL, 0 },
   3344  1.11  christos 
   3345  1.11  christos #define IRWn ILWb + 1
   3346  1.11  christos   { 0x1f, 1, NULL, extract_irwn, PPC_OPERAND_PLUS1 },
   3347  1.11  christos 
   3348  1.11  christos #define IRWb IRWn + 1
   3349  1.11  christos   { 0x1f, 6, insert_irwb, NULL, 0 },
   3350   1.8  christos 
   3351   1.8  christos   /* The MB and ME fields in an M form instruction expressed a single
   3352   1.8  christos      operand which is a bitmask indicating which bits to select.  This
   3353   1.8  christos      is a two operand form using PPC_OPERAND_NEXT.  See the
   3354  1.11  christos      description in opcode/ppc.h for what this means.  */
   3355   1.8  christos #define MBE IRWb + 1
   3356   1.8  christos   { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
   3357   1.1     skrll   { -1, 0, insert_mbe, extract_mbe, 0 },
   3358   1.8  christos 
   3359   1.8  christos   /* The MB or ME field in an MD or MDS form instruction.  The high
   3360   1.8  christos      bit is wrapped to the low end.  */
   3361   1.8  christos #define MB6 MBE + 2
   3362   1.8  christos #define ME6 MB6
   3363   1.8  christos #define MB6_MASK (0x3f << 5)
   3364   1.5  christos   { 0x3f, 5, insert_mb6, extract_mb6, 0 },
   3365  1.11  christos 
   3366  1.11  christos #define ELDn MB6 + 1
   3367  1.11  christos   { 0x3f, 5, insert_eldn, extract_eldn, PPC_OPERAND_PLUS1 },
   3368  1.11  christos 
   3369  1.11  christos #define ERDn ELDn + 1
   3370  1.11  christos   { 0x3f, 5, insert_erdn, extract_erdn, 0 },
   3371  1.11  christos 
   3372  1.11  christos #define CRDn ERDn + 1
   3373  1.11  christos   { 0x3f, 5, insert_crdn, extract_crdn, 0 },
   3374   1.8  christos 
   3375   1.8  christos   /* The NB field in an X form instruction.  The value 32 is stored as
   3376  1.11  christos      0.  */
   3377   1.8  christos #define NB CRDn + 1
   3378   1.5  christos   { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
   3379   1.8  christos 
   3380   1.8  christos   /* The NBI field in an lswi instruction, which has special value
   3381   1.8  christos      restrictions.  The value 32 is stored as 0.  */
   3382   1.8  christos #define NBI NB + 1
   3383   1.5  christos   { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
   3384   1.8  christos 
   3385   1.8  christos   /* The NSI field in a D form instruction.  This is the same as the
   3386   1.8  christos      SI field, only negated.  */
   3387   1.8  christos #define NSI NBI + 1
   3388   1.8  christos   { 0xffff, 0, insert_nsi, extract_nsi,
   3389   1.5  christos     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3390   1.8  christos 
   3391   1.8  christos   /* The NSI field in a D form instruction when we accept a wide range
   3392   1.8  christos      of positive values.  */
   3393   1.8  christos #define NSISIGNOPT NSI + 1
   3394   1.8  christos   { 0xffff, 0, insert_nsi, extract_nsi,
   3395   1.5  christos     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3396   1.8  christos 
   3397   1.8  christos   /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction.  */
   3398   1.8  christos #define RA NSISIGNOPT + 1
   3399   1.8  christos #define RA_MASK (0x1f << 16)
   3400   1.5  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
   3401   1.8  christos 
   3402   1.8  christos   /* As above, but 0 in the RA field means zero, not r0.  */
   3403   1.8  christos #define RA0 RA + 1
   3404   1.5  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
   3405  1.10  christos 
   3406  1.10  christos   /* Similar to above, but optional.  */
   3407  1.10  christos #define PRA0 RA0 + 1
   3408  1.10  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
   3409   1.8  christos 
   3410   1.8  christos   /* The RA field in the DQ form lq or an lswx instruction, which have
   3411  1.10  christos      special value restrictions.  */
   3412   1.8  christos #define RAQ PRA0 + 1
   3413   1.8  christos #define RAX RAQ
   3414   1.5  christos   { 0x1f, 16, insert_raq, extract_raq, PPC_OPERAND_GPR_0 },
   3415  1.10  christos 
   3416  1.10  christos   /* Similar to above, but optional.  */
   3417  1.10  christos #define PRAQ RAQ + 1
   3418  1.10  christos   { 0x1f, 16, insert_raq, extract_raq,
   3419  1.10  christos     PPC_OPERAND_GPR_0 | PPC_OPERAND_OPTIONAL },
   3420  1.10  christos 
   3421  1.10  christos   /* The R field in an 8-byte D, DS, DQ or X form prefix instruction.  */
   3422  1.10  christos #define PCREL PRAQ + 1
   3423  1.10  christos #define PCREL_MASK (1ULL << 52)
   3424  1.10  christos   { 0x1, 52, insert_pcrel, extract_pcrel, PPC_OPERAND_OPTIONAL },
   3425  1.12  christos 
   3426  1.12  christos #define PCREL1 PCREL + 1
   3427  1.10  christos   { 0x1, 52, insert_pcrel, extract_pcrel1, PPC_OPERAND_OPTIONAL },
   3428   1.8  christos 
   3429   1.8  christos   /* The RA field in a D or X form instruction which is an updating
   3430   1.8  christos      load, which means that the RA field may not be zero and may not
   3431  1.12  christos      equal the RT field.  */
   3432   1.8  christos #define RAL PCREL1 + 1
   3433   1.4  christos   { 0x1f, 16, insert_ral, extract_ral, PPC_OPERAND_GPR_0 },
   3434   1.8  christos 
   3435   1.8  christos   /* The RA field in an lmw instruction, which has special value
   3436   1.8  christos      restrictions.  */
   3437   1.8  christos #define RAM RAL + 1
   3438   1.4  christos   { 0x1f, 16, insert_ram, extract_ram, PPC_OPERAND_GPR_0 },
   3439   1.8  christos 
   3440  1.13  christos   /* The RA field in a D or X form instruction which is an updating
   3441  1.13  christos      store or an updating floating point load or a hash store or check,
   3442   1.8  christos      which means that the RA field may not be zero.  */
   3443   1.8  christos #define RAS RAM + 1
   3444   1.4  christos   { 0x1f, 16, insert_ras, extract_ras, PPC_OPERAND_GPR_0 },
   3445   1.8  christos 
   3446   1.8  christos   /* The RA field of the tlbwe, dccci and iccci instructions,
   3447   1.8  christos      which are optional.  */
   3448   1.8  christos #define RAOPT RAS + 1
   3449   1.4  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
   3450   1.8  christos 
   3451   1.8  christos   /* The RB field in an X, XO, M, or MDS form instruction.  */
   3452   1.8  christos #define RB RAOPT + 1
   3453   1.8  christos #define RB_MASK (0x1f << 11)
   3454   1.5  christos   { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
   3455   1.9  christos 
   3456   1.9  christos   /* The RS and RB fields in an X form instruction when they must be the same.
   3457   1.9  christos      This is used for extended mnemonics like mr.  */
   3458   1.9  christos #define RSB RB + 1
   3459   1.5  christos   { 0x1f, 11, insert_rsb, extract_rsb, PPC_OPERAND_GPR },
   3460   1.8  christos 
   3461   1.8  christos   /* The RB field in an lswx instruction, which has special value
   3462   1.9  christos      restrictions.  */
   3463   1.8  christos #define RBX RSB + 1
   3464   1.5  christos   { 0x1f, 11, insert_rbx, extract_rbx, PPC_OPERAND_GPR },
   3465   1.8  christos 
   3466   1.8  christos   /* The RB field of the dccci and iccci instructions, which are optional.  */
   3467   1.8  christos #define RBOPT RBX + 1
   3468   1.4  christos   { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
   3469   1.8  christos 
   3470   1.8  christos   /* The RC register field in an maddld, maddhd or maddhdu instruction.  */
   3471   1.8  christos #define RC RBOPT + 1
   3472   1.5  christos   { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
   3473   1.8  christos 
   3474   1.8  christos   /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
   3475   1.8  christos      instruction or the RT field in a D, DS, X, XFX or XO form
   3476   1.8  christos      instruction.  */
   3477   1.8  christos #define RS RC + 1
   3478   1.8  christos #define RT RS
   3479   1.8  christos #define RT_MASK (0x1f << 21)
   3480   1.8  christos #define RD RS
   3481   1.4  christos   { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
   3482   1.8  christos 
   3483   1.8  christos #define RD_EVEN RS + 1
   3484   1.8  christos #define RS_EVEN RD_EVEN
   3485   1.1     skrll   { 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
   3486   1.8  christos 
   3487   1.8  christos   /* The RS and RT fields of the DS form stq and DQ form lq instructions,
   3488   1.8  christos      which have special value restrictions.  */
   3489   1.8  christos #define RSQ RS_EVEN + 1
   3490   1.8  christos #define RTQ RSQ
   3491   1.8  christos #define Q_MASK (1 << 21)
   3492   1.1     skrll   { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
   3493   1.8  christos 
   3494   1.8  christos   /* The RS field of the tlbwe instruction, which is optional.  */
   3495   1.8  christos #define RSO RSQ + 1
   3496   1.8  christos #define RTO RSO
   3497   1.1     skrll   { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
   3498   1.8  christos 
   3499   1.8  christos   /* The RX field of the SE_RR form instruction.  */
   3500   1.8  christos #define RX RSO + 1
   3501   1.1     skrll   { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
   3502   1.8  christos 
   3503   1.8  christos   /* The ARX field of the SE_RR form instruction.  */
   3504   1.8  christos #define ARX RX + 1
   3505   1.1     skrll   { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
   3506   1.8  christos 
   3507   1.8  christos   /* The RY field of the SE_RR form instruction.  */
   3508   1.8  christos #define RY ARX + 1
   3509   1.8  christos #define RZ RY
   3510   1.1     skrll   { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
   3511   1.8  christos 
   3512   1.8  christos   /* The ARY field of the SE_RR form instruction.  */
   3513   1.8  christos #define ARY RY + 1
   3514   1.1     skrll   { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
   3515   1.8  christos 
   3516   1.8  christos   /* The SCLSCI8 field in a D form instruction.  */
   3517   1.8  christos #define SCLSCI8 ARY + 1
   3518   1.1     skrll   { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
   3519   1.8  christos 
   3520   1.8  christos   /* The SCLSCI8N field in a D form instruction.  This is the same as the
   3521   1.8  christos      SCLSCI8 field, only negated.  */
   3522   1.8  christos #define SCLSCI8N SCLSCI8 + 1
   3523   1.8  christos   { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
   3524   1.1     skrll     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
   3525   1.8  christos 
   3526   1.8  christos   /* The SD field of the SD4 form instruction.  */
   3527   1.8  christos #define SE_SD SCLSCI8N + 1
   3528   1.1     skrll   { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
   3529   1.8  christos 
   3530   1.8  christos   /* The SD field of the SD4 form instruction, for halfword.  */
   3531  1.10  christos #define SE_SDH SE_SD + 1
   3532   1.1     skrll   { 0x1e, 7, NULL, NULL, PPC_OPERAND_PARENS },
   3533   1.8  christos 
   3534   1.8  christos   /* The SD field of the SD4 form instruction, for word.  */
   3535  1.10  christos #define SE_SDW SE_SDH + 1
   3536   1.1     skrll   { 0x3c, 6, NULL, NULL, PPC_OPERAND_PARENS },
   3537   1.8  christos 
   3538   1.8  christos   /* The SH field in an X or M form instruction.  */
   3539   1.8  christos #define SH SE_SDW + 1
   3540   1.8  christos #define SH_MASK (0x1f << 11)
   3541   1.8  christos   /* The other UIMM field in a EVX form instruction.  */
   3542   1.8  christos #define EVUIMM SH
   3543   1.8  christos   /* The FC field in an atomic X form instruction.  */
   3544  1.11  christos #define FC SH
   3545   1.8  christos #define UIM5 SH
   3546   1.1     skrll   { 0x1f, 11, NULL, NULL, 0 },
   3547  1.11  christos 
   3548  1.11  christos #define RRWn SH + 1
   3549  1.11  christos   { 0x1f, 11, insert_rrwn, extract_rrwn, 0 },
   3550  1.11  christos 
   3551  1.11  christos #define SLWn RRWn + 1
   3552  1.11  christos   { 0x1f, 11, insert_slwn, extract_slwn, 0 },
   3553  1.11  christos 
   3554  1.11  christos #define SRWn SLWn + 1
   3555  1.11  christos   { 0x1f, 11, insert_srwn, extract_srwn, 0 },
   3556  1.11  christos 
   3557   1.8  christos #define EVUIMM_LT8 SRWn + 1
   3558   1.1     skrll   { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
   3559   1.8  christos 
   3560   1.8  christos #define EVUIMM_LT16 EVUIMM_LT8 + 1
   3561   1.1     skrll   { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
   3562   1.8  christos 
   3563   1.8  christos   /* The SI field in a HTM X form instruction.  */
   3564   1.8  christos #define HTM_SI EVUIMM_LT16 + 1
   3565   1.1     skrll   { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
   3566   1.8  christos 
   3567   1.8  christos   /* The SH field in an MD form instruction.  This is split.  */
   3568   1.8  christos #define SH6 HTM_SI + 1
   3569   1.8  christos #define SH6_MASK ((0x1f << 11) | (1 << 1))
   3570   1.1     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
   3571  1.11  christos 
   3572  1.11  christos #define RRDn SH6 + 1
   3573  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_rrdn, extract_rrdn, 0 },
   3574  1.11  christos 
   3575  1.11  christos #define SLDn RRDn + 1
   3576  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_sldn, extract_sldn, 0 },
   3577  1.11  christos 
   3578  1.11  christos #define SRDn SLDn + 1
   3579  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_srdn, extract_srdn, 0 },
   3580  1.11  christos 
   3581  1.11  christos #define ERDb SRDn + 1
   3582  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_erdb, extract_erdb, 0 },
   3583  1.11  christos 
   3584  1.11  christos #define CSLDn ERDb + 1
   3585  1.11  christos   { 0x3f, PPC_OPSHIFT_SH6, insert_csldn, extract_sh6, 0 },
   3586  1.11  christos 
   3587  1.11  christos #define CSLDb CSLDn + 1
   3588  1.11  christos   { 0x3f, 5, insert_mb6, extract_csldb, 0 },
   3589  1.11  christos 
   3590  1.11  christos #define IRDn CSLDb + 1
   3591  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_irdn, PPC_OPERAND_PLUS1 },
   3592  1.11  christos 
   3593  1.11  christos #define IRDb IRDn + 1
   3594  1.11  christos   { 0x3f, 5, insert_irdb, extract_mb6, 0 },
   3595   1.8  christos 
   3596   1.8  christos   /* The SH field of some variants of the tlbre and tlbwe
   3597  1.11  christos      instructions, and the ELEV field of the e_sc instruction.  */
   3598   1.8  christos #define SHO IRDb + 1
   3599   1.8  christos #define ELEV SHO
   3600   1.1     skrll   { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3601   1.8  christos 
   3602   1.8  christos   /* The SI field in a D form instruction.  */
   3603   1.8  christos #define SI SHO + 1
   3604   1.4  christos   { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
   3605   1.8  christos 
   3606   1.8  christos   /* The SI field in a D form instruction when we accept a wide range
   3607   1.8  christos      of positive values.  */
   3608   1.8  christos #define SISIGNOPT SI + 1
   3609   1.4  christos   { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3610   1.8  christos 
   3611   1.8  christos   /* The SI8 field in a D form instruction.  */
   3612   1.8  christos #define SI8 SISIGNOPT + 1
   3613   1.4  christos   { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
   3614   1.8  christos 
   3615   1.8  christos   /* The SPR field in an XFX form instruction.  This is flipped--the
   3616   1.8  christos      lower 5 bits are stored in the upper 5 and vice- versa.  */
   3617   1.8  christos #define SPR SI8 + 1
   3618   1.8  christos #define PMR SPR
   3619   1.8  christos #define TMR SPR
   3620   1.8  christos #define SPR_MASK (0x3ff << 11)
   3621   1.1     skrll   { 0x3ff, 11, insert_spr, extract_spr, PPC_OPERAND_SPR },
   3622   1.8  christos 
   3623   1.8  christos   /* The BAT index number in an XFX form m[ft]ibat[lu] instruction.  */
   3624  1.10  christos #define SPRBAT SPR + 1
   3625  1.10  christos #define SPRBAT_MASK (0xc1 << 11)
   3626  1.10  christos   { 0x7, PPC_OPSHIFT_INV, insert_sprbat, extract_sprbat, PPC_OPERAND_SPR },
   3627  1.10  christos 
   3628  1.10  christos   /* The GQR index number in an XFX form m[ft]gqr instruction.  */
   3629  1.10  christos #define SPRGQR SPRBAT + 1
   3630  1.10  christos #define SPRGQR_MASK (0x7 << 16)
   3631   1.1     skrll   { 0x7, 16, NULL, NULL, PPC_OPERAND_GQR },
   3632   1.8  christos 
   3633  1.10  christos   /* The SPRG register number in an XFX form m[ft]sprg instruction.  */
   3634   1.8  christos #define SPRG SPRGQR + 1
   3635   1.1     skrll   { 0x1f, 16, insert_sprg, extract_sprg, PPC_OPERAND_SPR },
   3636   1.8  christos 
   3637   1.8  christos   /* The SR field in an X form instruction.  */
   3638   1.8  christos #define SR SPRG + 1
   3639   1.8  christos   /* The 4-bit UIMM field in a VX form instruction.  */
   3640   1.8  christos #define UIMM4 SR
   3641   1.1     skrll   { 0xf, 16, NULL, NULL, 0 },
   3642   1.8  christos 
   3643   1.8  christos   /* The STRM field in an X AltiVec form instruction.  */
   3644   1.8  christos #define STRM SR + 1
   3645   1.8  christos   /* The T field in a tlbilx form instruction.  */
   3646   1.8  christos #define T STRM
   3647   1.8  christos   /* The L field in wclr instructions.  */
   3648   1.8  christos #define L2 STRM
   3649   1.1     skrll   { 0x3, 21, NULL, NULL, 0 },
   3650   1.8  christos 
   3651   1.8  christos   /* The ESYNC field in an X (sync) form instruction.  */
   3652   1.8  christos #define ESYNC STRM + 1
   3653   1.1     skrll   { 0xf, 16, insert_esync, extract_esync, PPC_OPERAND_OPTIONAL },
   3654   1.8  christos 
   3655   1.8  christos   /* The SV field in a POWER SC form instruction.  */
   3656   1.8  christos #define SV ESYNC + 1
   3657   1.1     skrll   { 0x3fff, 2, NULL, NULL, 0 },
   3658   1.8  christos 
   3659   1.8  christos   /* The TBR field in an XFX form instruction.  This is like the SPR
   3660   1.8  christos      field, but it is optional.  */
   3661   1.8  christos #define TBR SV + 1
   3662  1.10  christos   { 0x3ff, 11, insert_tbr, extract_tbr,
   3663   1.1     skrll     PPC_OPERAND_SPR | PPC_OPERAND_OPTIONAL },
   3664   1.8  christos 
   3665  1.10  christos   /* The TO field in a D or X form instruction.  */
   3666   1.8  christos #define TO TBR + 1
   3667  1.12  christos #define DUI TO
   3668  1.12  christos #define SVme TO
   3669   1.8  christos #define SVG TO
   3670   1.8  christos #define TO_MASK (0x1f << 21)
   3671   1.1     skrll   { 0x1f, 21, NULL, NULL, 0 },
   3672   1.8  christos 
   3673   1.8  christos   /* The UI field in a D form instruction.  */
   3674   1.8  christos #define UI TO + 1
   3675   1.1     skrll   { 0xffff, 0, NULL, NULL, 0 },
   3676   1.8  christos 
   3677   1.8  christos #define UISIGNOPT UI + 1
   3678   1.1     skrll   { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
   3679   1.8  christos 
   3680   1.8  christos   /* The IMM field in an SE_IM5 instruction.  */
   3681   1.8  christos #define UI5 UISIGNOPT + 1
   3682   1.1     skrll   { 0x1f, 4, NULL, NULL, 0 },
   3683   1.8  christos 
   3684   1.8  christos   /* The OIMM field in an SE_OIM5 instruction.  */
   3685  1.10  christos #define OIMM5 UI5 + 1
   3686   1.1     skrll   { 0x1f, 4, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
   3687   1.8  christos 
   3688   1.8  christos   /* The UI7 field in an SE_LI instruction.  */
   3689   1.8  christos #define UI7 OIMM5 + 1
   3690   1.1     skrll   { 0x7f, 4, NULL, NULL, 0 },
   3691   1.8  christos 
   3692   1.8  christos   /* The VA field in a VA, VX or VXR form instruction.  */
   3693   1.8  christos #define VA UI7 + 1
   3694   1.1     skrll   { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
   3695   1.8  christos 
   3696   1.8  christos   /* The VB field in a VA, VX or VXR form instruction.  */
   3697   1.8  christos #define VB VA + 1
   3698   1.4  christos   { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
   3699   1.8  christos 
   3700   1.8  christos   /* The VC field in a VA form instruction.  */
   3701   1.8  christos #define VC VB + 1
   3702   1.4  christos   { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
   3703   1.8  christos 
   3704   1.8  christos   /* The VD or VS field in a VA, VX, VXR or X form instruction.  */
   3705   1.8  christos #define VD VC + 1
   3706   1.8  christos #define VS VD
   3707   1.4  christos   { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
   3708   1.8  christos 
   3709   1.8  christos   /* The SIMM field in a VX form instruction, and TE in Z form.  */
   3710   1.8  christos #define SIMM VD + 1
   3711   1.8  christos #define TE SIMM
   3712   1.4  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
   3713   1.8  christos 
   3714   1.8  christos   /* The UIMM field in a VX form instruction.  */
   3715   1.8  christos #define UIMM SIMM + 1
   3716  1.12  christos #define DCTL UIMM
   3717   1.8  christos #define rmm UIMM
   3718   1.4  christos   { 0x1f, 16, NULL, NULL, 0 },
   3719   1.8  christos 
   3720   1.8  christos   /* The 3-bit UIMM field in a VX form instruction.  */
   3721   1.8  christos #define UIMM3 UIMM + 1
   3722   1.4  christos   { 0x7, 16, NULL, NULL, 0 },
   3723   1.8  christos 
   3724   1.8  christos   /* The 6-bit UIM field in a X form instruction.  */
   3725   1.8  christos #define UIM6 UIMM3 + 1
   3726   1.4  christos   { 0x3f, 16, NULL, NULL, 0 },
   3727   1.8  christos 
   3728   1.8  christos   /* The SIX field in a VX form instruction.  */
   3729   1.8  christos #define SIX UIM6 + 1
   3730   1.8  christos #define MMMM SIX
   3731   1.4  christos   { 0xf, 11, NULL, NULL, 0 },
   3732   1.8  christos 
   3733   1.8  christos   /* The PS field in a VX form instruction.  */
   3734   1.8  christos #define PS SIX + 1
   3735   1.4  christos   { 0x1, 9, NULL, NULL, 0 },
   3736  1.11  christos 
   3737  1.11  christos   /* The SH field in a vector shift double by bit immediate instruction.  */
   3738  1.11  christos #define SH3 PS + 1
   3739  1.11  christos   { 0x7, 6, NULL, NULL, 0 },
   3740   1.8  christos 
   3741  1.11  christos   /* The SHB field in a VA form instruction.  */
   3742   1.8  christos #define SHB SH3 + 1
   3743   1.4  christos   { 0xf, 6, NULL, NULL, 0 },
   3744   1.8  christos 
   3745   1.8  christos   /* The other UIMM field in a half word EVX form instruction.  */
   3746   1.8  christos #define EVUIMM_1 SHB + 1
   3747   1.4  christos   { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
   3748   1.8  christos 
   3749   1.8  christos #define EVUIMM_1_EX0 EVUIMM_1 + 1
   3750   1.4  christos   { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
   3751   1.8  christos 
   3752   1.8  christos #define EVUIMM_2 EVUIMM_1_EX0 + 1
   3753   1.4  christos   { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
   3754   1.8  christos 
   3755   1.8  christos #define EVUIMM_2_EX0 EVUIMM_2 + 1
   3756   1.4  christos   { 0x3e, 10, insert_evuimm2_ex0, extract_evuimm2_ex0, PPC_OPERAND_PARENS },
   3757   1.8  christos 
   3758   1.8  christos   /* The other UIMM field in a word EVX form instruction.  */
   3759   1.8  christos #define EVUIMM_4 EVUIMM_2_EX0 + 1
   3760   1.4  christos   { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
   3761   1.8  christos 
   3762   1.8  christos #define EVUIMM_4_EX0 EVUIMM_4 + 1
   3763   1.4  christos   { 0x7c, 9, insert_evuimm4_ex0, extract_evuimm4_ex0, PPC_OPERAND_PARENS },
   3764   1.8  christos 
   3765   1.8  christos   /* The other UIMM field in a double EVX form instruction.  */
   3766   1.8  christos #define EVUIMM_8 EVUIMM_4_EX0 + 1
   3767   1.1     skrll   { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
   3768   1.8  christos 
   3769   1.8  christos #define EVUIMM_8_EX0 EVUIMM_8 + 1
   3770   1.1     skrll   { 0xf8, 8, insert_evuimm8_ex0, extract_evuimm8_ex0, PPC_OPERAND_PARENS },
   3771   1.8  christos 
   3772   1.8  christos   /* The WS or DRM field in an X form instruction.  */
   3773   1.8  christos #define WS EVUIMM_8_EX0 + 1
   3774   1.8  christos #define DRM WS
   3775   1.8  christos   /* The NNN field in a VX form instruction for SPE2  */
   3776   1.8  christos #define NNN WS
   3777   1.1     skrll   { 0x7, 11, NULL, NULL, 0 },
   3778   1.8  christos 
   3779   1.8  christos   /* PowerPC paired singles extensions.  */
   3780   1.8  christos   /* W bit in the pair singles instructions for x type instructions.  */
   3781   1.8  christos #define PSWM WS + 1
   3782   1.8  christos   /* The BO16 field in a BD8 form instruction.  */
   3783  1.12  christos #define BO16 PSWM
   3784  1.12  christos   /* The pst field in a SVRM form instruction.  */
   3785  1.12  christos #define pst PSWM
   3786  1.12  christos   /* The L field in a XO form instruction.  */
   3787   1.8  christos #define XOL PSWM
   3788   1.1     skrll   {  0x1, 10, 0, 0, 0 },
   3789   1.8  christos 
   3790   1.8  christos   /* IDX bits for quantization in the pair singles instructions.  */
   3791   1.8  christos #define PSQ PSWM + 1
   3792   1.1     skrll   {  0x7, 12, 0, 0, PPC_OPERAND_GQR },
   3793   1.8  christos 
   3794   1.8  christos   /* IDX bits for quantization in the pair singles x-type instructions.  */
   3795   1.8  christos #define PSQM PSQ + 1
   3796   1.1     skrll   {  0x7, 7, 0, 0, PPC_OPERAND_GQR },
   3797   1.8  christos 
   3798   1.8  christos   /* Smaller D field for quantization in the pair singles instructions.  */
   3799   1.8  christos #define PSD PSQM + 1
   3800   1.1     skrll   {  0xfff, 0, 0, 0,  PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
   3801   1.8  christos 
   3802   1.8  christos   /* The L field in an mtmsrd or A form instruction or R or W in an
   3803   1.8  christos      X form.  */
   3804   1.8  christos #define A_L PSD + 1
   3805   1.8  christos #define W A_L
   3806   1.8  christos #define X_R A_L
   3807   1.1     skrll   { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3808   1.8  christos 
   3809   1.8  christos   /* The RMC or CY field in a Z23 form instruction.  */
   3810   1.8  christos #define RMC A_L + 1
   3811  1.12  christos #define CY RMC
   3812   1.8  christos #define ew RMC
   3813   1.1     skrll   { 0x3, 9, NULL, NULL, 0 },
   3814   1.8  christos 
   3815  1.11  christos #define R RMC + 1
   3816  1.14  christos #define MP R
   3817  1.12  christos #define UIMM1 R
   3818   1.8  christos #define P1 R
   3819   1.1     skrll   { 0x1, 16, NULL, NULL, 0 },
   3820   1.8  christos 
   3821   1.8  christos #define RIC R + 1
   3822   1.1     skrll   { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3823   1.8  christos 
   3824   1.8  christos #define PRS RIC + 1
   3825   1.1     skrll   { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3826   1.8  christos 
   3827  1.12  christos #define SP PRS + 1
   3828   1.8  christos #define mi0 SP
   3829   1.1     skrll   { 0x3, 19, NULL, NULL, 0 },
   3830   1.8  christos 
   3831   1.8  christos #define S SP + 1
   3832   1.1     skrll   { 0x1, 20, NULL, NULL, 0 },
   3833   1.8  christos 
   3834   1.8  christos   /* The S field in a XL form instruction.  */
   3835  1.10  christos #define SXL S + 1
   3836   1.1     skrll   { 0x1, 11, insert_sxl, extract_sxl, PPC_OPERAND_OPTIONAL },
   3837   1.8  christos 
   3838  1.10  christos   /* SH field starting at bit position 16.  */
   3839   1.8  christos #define SH16 SXL + 1
   3840   1.8  christos   /* The DCM and DGM fields in a Z form instruction.  */
   3841   1.8  christos #define DCM SH16
   3842   1.8  christos #define DGM DCM
   3843   1.1     skrll   { 0x3f, 10, NULL, NULL, 0 },
   3844   1.8  christos 
   3845   1.8  christos   /* The EH field in larx instruction.  */
   3846   1.8  christos #define EH SH16 + 1
   3847   1.1     skrll   { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3848   1.8  christos 
   3849   1.8  christos   /* The L field in an mtfsf or XFL form instruction.  */
   3850   1.8  christos   /* The A field in a HTM X form instruction.  */
   3851   1.8  christos #define XFL_L EH + 1
   3852   1.8  christos #define HTM_A XFL_L
   3853   1.1     skrll   { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
   3854   1.8  christos 
   3855   1.8  christos   /* Xilinx APU related masks and macros */
   3856   1.8  christos #define FCRT XFL_L + 1
   3857   1.8  christos #define FCRT_MASK (0x1f << 21)
   3858   1.5  christos   { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
   3859   1.8  christos 
   3860   1.8  christos   /* Xilinx FSL related masks and macros */
   3861   1.8  christos #define FSL FCRT + 1
   3862   1.8  christos #define FSL_MASK (0x1f << 11)
   3863   1.5  christos   { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
   3864   1.8  christos 
   3865   1.8  christos   /* Xilinx UDI related masks and macros */
   3866   1.8  christos #define URT FSL + 1
   3867   1.1     skrll   { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
   3868   1.8  christos 
   3869   1.8  christos #define URA URT + 1
   3870   1.1     skrll   { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
   3871   1.8  christos 
   3872   1.8  christos #define URB URA + 1
   3873   1.1     skrll   { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
   3874   1.8  christos 
   3875   1.8  christos #define URC URB + 1
   3876   1.1     skrll   { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
   3877   1.8  christos 
   3878   1.8  christos   /* The VLESIMM field in a D form instruction.  */
   3879   1.8  christos #define VLESIMM URC + 1
   3880   1.8  christos   { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
   3881   1.1     skrll     PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3882   1.8  christos 
   3883   1.8  christos   /* The VLENSIMM field in a D form instruction.  */
   3884   1.8  christos #define VLENSIMM VLESIMM + 1
   3885   1.8  christos   { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
   3886   1.1     skrll     PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
   3887   1.8  christos 
   3888   1.8  christos   /* The VLEUIMM field in a D form instruction.  */
   3889   1.8  christos #define VLEUIMM VLENSIMM + 1
   3890   1.1     skrll   { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
   3891   1.8  christos 
   3892   1.8  christos   /* The VLEUIMML field in a D form instruction.  */
   3893   1.8  christos #define VLEUIMML VLEUIMM + 1
   3894   1.1     skrll   { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
   3895   1.8  christos 
   3896   1.8  christos   /* The XT and XS fields in an XX1 or XX3 form instruction.  This is
   3897   1.8  christos      split.  */
   3898   1.8  christos #define XS6 VLEUIMML + 1
   3899   1.8  christos #define XT6 XS6
   3900   1.2     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
   3901   1.8  christos 
   3902   1.8  christos   /* The XT and XS fields in an DQ form VSX instruction.  This is split.  */
   3903   1.8  christos #define XSQ6 XT6 + 1
   3904   1.8  christos #define XTQ6 XSQ6
   3905   1.2     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
   3906  1.12  christos 
   3907  1.11  christos   /* The split XTp and XSp field in a vector paired instruction.  */
   3908  1.12  christos #define XTP XSQ6 + 1
   3909  1.11  christos #define XSP XTP
   3910  1.11  christos   { 0x3e, PPC_OPSHIFT_INV, insert_xtp, extract_xtp, PPC_OPERAND_VSR },
   3911  1.11  christos 
   3912  1.11  christos #define XTS XTP + 1
   3913  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_xts, extract_xts, PPC_OPERAND_VSR },
   3914  1.10  christos 
   3915  1.11  christos   /* The XT field in a plxv instruction.  Runs into the OP field.  */
   3916  1.10  christos #define XTOP XTS + 1
   3917  1.10  christos   { 0x3f, 21, NULL, NULL, PPC_OPERAND_VSR },
   3918   1.8  christos 
   3919  1.10  christos   /* The XA field in an XX3 form instruction.  This is split.  */
   3920   1.8  christos #define XA6 XTOP + 1
   3921   1.2     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
   3922  1.11  christos 
   3923  1.11  christos   /* The XA field in an MMA XX3 form instruction.  This is split and
   3924  1.11  christos      must not overlap with the ACC operand.  */
   3925  1.11  christos #define XA6a XA6 + 1
   3926  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
   3927  1.11  christos 
   3928  1.11  christos   /* The XAp field in an MMA XX3 form instruction.  This is split.
   3929  1.11  christos      This is like XA6a, but must be even.  */
   3930  1.11  christos #define XA6ap XA6a + 1
   3931  1.11  christos   { 0x3e, PPC_OPSHIFT_INV, insert_xa6a, extract_xa6a, PPC_OPERAND_VSR },
   3932  1.12  christos 
   3933  1.12  christos   /* The 5-bit XAp field in an MMA XX3 form instruction.  This is split.
   3934  1.12  christos      This is like XA6, but must be even.  */
   3935  1.12  christos #define XA5p XA6ap + 1
   3936  1.12  christos   { 0x3e, PPC_OPSHIFT_INV, insert_xa5, extract_xa5, PPC_OPERAND_VSR },
   3937   1.8  christos 
   3938  1.12  christos   /* The XB field in an XX2 or XX3 form instruction.  This is split.  */
   3939   1.8  christos #define XB6 XA5p + 1
   3940   1.2     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
   3941  1.11  christos 
   3942  1.11  christos   /* The XB field in an XX3 form instruction.  This is split and
   3943  1.11  christos      must not overlap with the ACC operand.  */
   3944  1.11  christos #define XB6a XB6 + 1
   3945  1.11  christos   { 0x3f, PPC_OPSHIFT_INV, insert_xb6a, extract_xb6a, PPC_OPERAND_VSR },
   3946  1.12  christos 
   3947  1.12  christos   /* The 5-bit XBp field in an MMA XX3 form instruction.  This is split.
   3948  1.12  christos      This is like XB6, but must be even.  */
   3949  1.12  christos #define XB5p XB6a + 1
   3950  1.12  christos   { 0x3e, PPC_OPSHIFT_INV, insert_xb5, extract_xb5, PPC_OPERAND_VSR },
   3951   1.9  christos 
   3952   1.9  christos   /* The XA and XB fields in an XX3 form instruction when they must be the same.
   3953  1.12  christos      This is used in extended mnemonics like xvmovdp.  This is split.  */
   3954   1.9  christos #define XAB6 XB5p + 1
   3955   1.2     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_xab6, extract_xab6, PPC_OPERAND_VSR },
   3956   1.8  christos 
   3957   1.9  christos   /* The XC field in an XX4 form instruction.  This is split.  */
   3958   1.8  christos #define XC6 XAB6 + 1
   3959   1.2     skrll   { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
   3960   1.8  christos 
   3961   1.8  christos   /* The DM or SHW field in an XX3 form instruction.  */
   3962   1.8  christos #define DM XC6 + 1
   3963   1.8  christos #define SHW DM
   3964   1.5  christos   { 0x3, 8, NULL, NULL, 0 },
   3965   1.8  christos 
   3966   1.8  christos   /* The DM field in an extended mnemonic XX3 form instruction.  */
   3967   1.8  christos #define DMEX DM + 1
   3968   1.4  christos   { 0x3, 8, insert_dm, extract_dm, 0 },
   3969  1.13  christos 
   3970  1.13  christos   /* The 2-bit M field in an AES XX2/XX3 form instruction. This is split.  */
   3971  1.13  christos #define AESM DMEX + 1
   3972  1.13  christos   { 0x3, PPC_OPSHIFT_INV, insert_m2, extract_m2, 0 },
   3973   1.8  christos 
   3974  1.13  christos   /* The UIM field in an XX2 form instruction.  */
   3975   1.8  christos #define UIM AESM + 1
   3976   1.8  christos   /* The 2-bit UIMM field in a VX form instruction.  */
   3977   1.8  christos #define UIMM2 UIM
   3978   1.8  christos   /* The 2-bit L field in a darn instruction.  */
   3979   1.8  christos #define LRAND UIM
   3980   1.4  christos   { 0x3, 16, NULL, NULL, 0 },
   3981   1.8  christos 
   3982   1.8  christos #define ERAT_T UIM + 1
   3983   1.4  christos   { 0x7, 21, NULL, NULL, 0 },
   3984   1.8  christos 
   3985   1.8  christos #define IH ERAT_T + 1
   3986   1.4  christos   { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
   3987  1.11  christos 
   3988  1.11  christos   /* The 2-bit SC or PL field in an X form instruction.  */
   3989  1.11  christos #define SC2 IH + 1
   3990  1.11  christos #define PL SC2
   3991  1.11  christos   { 0x3, 16, insert_pl, extract_pl, PPC_OPERAND_OPTIONAL },
   3992  1.12  christos 
   3993  1.12  christos #define P2 PL + 1
   3994  1.12  christos   { 0x3, PPC_OPSHIFT_INV, insert_p2, extract_p2, 0 },
   3995   1.8  christos 
   3996  1.12  christos   /* The 8-bit IMM8 field in a XX1 form instruction.  */
   3997   1.8  christos #define IMM8 P2 + 1
   3998   1.4  christos   { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
   3999   1.8  christos 
   4000   1.8  christos #define VX_OFF IMM8 + 1
   4001   1.4  christos   { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
   4002   1.8  christos 
   4003   1.8  christos #define VX_OFF_SPE2 VX_OFF + 1
   4004   1.4  christos   { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
   4005   1.8  christos 
   4006   1.8  christos #define BBB VX_OFF_SPE2 + 1
   4007   1.4  christos   { 0x7, 13, NULL, NULL, 0 },
   4008   1.8  christos 
   4009   1.8  christos #define DDD BBB + 1
   4010   1.8  christos #define VX_MASK_DDD  (VX_MASK & ~0x1)
   4011   1.4  christos   { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
   4012   1.8  christos 
   4013  1.12  christos #define HH DDD + 1
   4014   1.8  christos #define mo0 HH
   4015  1.12  christos   { 0x3, 13, NULL, NULL, 0 },
   4016  1.12  christos 
   4017  1.12  christos #define SVi HH + 1
   4018  1.12  christos   { 0x3f, 9, NULL, NULL, PPC_OPERAND_NONZERO },
   4019  1.12  christos 
   4020  1.12  christos #define vf SVi + 1
   4021  1.12  christos #define sk vf
   4022  1.12  christos   { 0x1, 6, NULL, NULL, 0 },
   4023  1.12  christos 
   4024  1.12  christos #define vs vf + 1
   4025  1.12  christos #define mm vs
   4026  1.12  christos   { 0x1, 7, NULL, NULL, 0 },
   4027  1.12  christos 
   4028  1.12  christos #define ms vs + 1
   4029  1.13  christos #define yx ms
   4030  1.13  christos   /* The P field in Galois Field XX3 form instruction.  */
   4031  1.12  christos #define PGF1 yx
   4032  1.12  christos   { 0x1, 8, NULL, NULL, 0 },
   4033  1.12  christos 
   4034  1.12  christos #define SVLcr ms + 1
   4035  1.12  christos   { 0x1, 5, NULL, NULL, 0 },
   4036  1.12  christos 
   4037  1.12  christos #define SVxd SVLcr + 1
   4038  1.12  christos   { 0x1f, 21, NULL, NULL, PPC_OPERAND_NONZERO },
   4039  1.12  christos 
   4040  1.12  christos #define SVyd SVxd + 1
   4041  1.12  christos   { 0x1f, 16, NULL, NULL, PPC_OPERAND_NONZERO },
   4042  1.12  christos 
   4043  1.12  christos #define SVzd SVyd + 1
   4044  1.12  christos #define SVd SVzd
   4045  1.12  christos   { 0x1f, 11, NULL, NULL, PPC_OPERAND_NONZERO },
   4046  1.12  christos 
   4047  1.12  christos #define SVrm SVzd + 1
   4048  1.12  christos   { 0xf, 7, NULL, NULL, 0 },
   4049  1.12  christos 
   4050  1.12  christos #define mi1 SVrm + 1
   4051  1.12  christos   { 0x3, 17, NULL, NULL, 0 },
   4052  1.12  christos 
   4053  1.12  christos #define mi2 mi1 + 1
   4054   1.8  christos   { 0x3, 15, NULL, NULL, 0 },
   4055   1.4  christos };
   4056  1.12  christos 
   4057   1.1     skrll const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
   4058   1.1     skrll 
   4059   1.1     skrll /* Macros used to form opcodes.  */
   4061   1.8  christos 
   4062   1.1     skrll /* The main opcode.  */
   4063   1.1     skrll #define OP(x) ((((uint64_t)(x)) & 0x3f) << 26)
   4064  1.10  christos #define OP_MASK OP (0x3f)
   4065  1.10  christos 
   4066  1.10  christos /* The prefix opcode.  */
   4067  1.10  christos #define PREFIX_OP (1ULL << 58)
   4068  1.10  christos 
   4069  1.10  christos /* The 2-bit prefix form.  */
   4070  1.10  christos #define PREFIX_FORM(x) ((x & 3ULL) << 56)
   4071  1.10  christos 
   4072  1.10  christos #define SUFFIX_MASK ((1ULL << 32) - 1)
   4073  1.10  christos #define PREFIX_MASK (SUFFIX_MASK << 32)
   4074  1.10  christos 
   4075  1.10  christos /* Prefix insn, eight byte load/store form 8LS.  */
   4076  1.11  christos #define P8LS (PREFIX_OP | PREFIX_FORM (0))
   4077  1.11  christos 
   4078  1.11  christos /* Prefix insn, eight byte register to register form 8RR.  */
   4079  1.10  christos #define P8RR (PREFIX_OP | PREFIX_FORM (1))
   4080  1.10  christos 
   4081  1.10  christos /* Prefix insn, modified load/store form MLS.  */
   4082  1.10  christos #define PMLS (PREFIX_OP | PREFIX_FORM (2))
   4083  1.10  christos 
   4084  1.10  christos /* Prefix insn, modified register to register form MRR.  */
   4085  1.11  christos #define PMRR (PREFIX_OP | PREFIX_FORM (3))
   4086  1.11  christos 
   4087  1.11  christos /* Prefix insn, modified masked immediate register to register form MMIRR.  */
   4088  1.10  christos #define PMMIRR (PREFIX_OP | PREFIX_FORM (3) | (9ULL << 52))
   4089  1.10  christos 
   4090  1.10  christos /* An 8-byte D form prefix instruction.  */
   4091  1.13  christos #define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
   4092  1.13  christos 
   4093  1.13  christos /* An 8-byte D form prefix instruction with 32bit SI field.  */
   4094  1.10  christos #define P_D_SI32_MASK (((-1ULL << 48) & ~PCREL_MASK) | OP_MASK)
   4095  1.10  christos 
   4096  1.10  christos /* The same as P_D_MASK, but with the RA and PCREL fields specified.  */
   4097  1.13  christos #define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
   4098  1.13  christos 
   4099  1.13  christos /* The same as P_D_SI32_MASK, but with the RA and PCREL fields specified.  */
   4100  1.11  christos #define P_DRAPCREL_SI32_MASK (P_D_SI32_MASK | PCREL_MASK | RA_MASK)
   4101  1.11  christos 
   4102  1.11  christos /* Mask for prefix X form instructions.  */
   4103  1.11  christos #define P_X_MASK (PREFIX_MASK | X_MASK)
   4104  1.11  christos #define P_XX1_MASK (PREFIX_MASK | XX1_MASK)
   4105  1.11  christos 
   4106  1.11  christos /* Mask for prefix vector permute insns.  */
   4107  1.11  christos #define P_XX4_MASK (PREFIX_MASK | XX4_MASK)
   4108  1.11  christos #define P_UXX4_MASK (P_XX4_MASK & ~(7ULL << 32))
   4109  1.11  christos #define P_U8XX4_MASK (P_XX4_MASK & ~(0xffULL << 32))
   4110  1.11  christos 
   4111  1.11  christos /* MMIRR:XX3-form 8-byte outer product instructions.  */
   4112  1.11  christos #define P_GER_MASK ((-1ULL << 40) | XX3ACC_MASK)
   4113  1.11  christos #define P_GER2_MASK (P_GER_MASK & ~(3ULL << 46))
   4114  1.11  christos #define P_GER4_MASK (P_GER_MASK & ~(15ULL << 44))
   4115  1.12  christos #define P_GER8_MASK (P_GER_MASK & ~(255ULL << 40))
   4116  1.12  christos #define P_GER64_MASK (P_GER_MASK | (3ULL << 32))
   4117  1.11  christos #define P_GERX4_MASK ((-1ULL << 48) | XX3GERX_MASK)
   4118  1.11  christos #define P_GERX2_MASK (P_GERX4_MASK & ~(3ULL << 46))
   4119  1.11  christos 
   4120  1.11  christos /* Vector splat immediate op.  */
   4121  1.11  christos #define VSOP(op, xop) (OP (op) | (xop << 17))
   4122  1.11  christos #define P_VS_MASK ((-1ULL << 48) | VSOP (0x3f, 0xf))
   4123   1.1     skrll #define P_VSI_MASK ((-1ULL << 48) | VSOP (0x3f, 0xe))
   4124   1.1     skrll 
   4125   1.1     skrll /* The main opcode combined with a trap code in the TO field of a D
   4126   1.8  christos    form instruction.  Used for extended mnemonics for the trap
   4127   1.1     skrll    instructions.  */
   4128   1.1     skrll #define OPTO(x,to) (OP (x) | ((((uint64_t)(to)) & 0x1f) << 21))
   4129   1.1     skrll #define OPTO_MASK (OP_MASK | TO_MASK)
   4130   1.1     skrll 
   4131   1.1     skrll /* The main opcode combined with a comparison size bit in the L field
   4132   1.8  christos    of a D form or X form instruction.  Used for extended mnemonics for
   4133   1.1     skrll    the comparison instructions.  */
   4134   1.1     skrll #define OPL(x,l) (OP (x) | ((((uint64_t)(l)) & 1) << 21))
   4135   1.4  christos #define OPL_MASK OPL (0x3f,1)
   4136   1.4  christos 
   4137   1.8  christos /* The main opcode combined with an update code in D form instruction.
   4138   1.4  christos    Used for extended mnemonics for VLE memory instructions.  */
   4139   1.4  christos #define OPVUP(x,vup) (OP (x) | ((((uint64_t)(vup)) & 0xff) << 8))
   4140   1.8  christos #define OPVUP_MASK OPVUP (0x3f,  0xff)
   4141   1.8  christos 
   4142   1.8  christos /* The main opcode combined with an update code and the RT fields
   4143   1.8  christos    specified in D form instruction.  Used for VLE volatile context
   4144   1.8  christos    save/restore instructions.  */
   4145   1.8  christos #define OPVUPRT(x,vup,rt)			\
   4146   1.8  christos   (OPVUP (x, vup)				\
   4147   1.8  christos    | ((((uint64_t)(rt)) & 0x1f) << 21))
   4148   1.1     skrll #define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
   4149   1.8  christos 
   4150   1.8  christos /* An A form instruction.  */
   4151   1.8  christos #define A(op, xop, rc)				\
   4152   1.8  christos   (OP (op)					\
   4153   1.1     skrll    | ((((uint64_t)(xop)) & 0x1f) << 1)	\
   4154   1.1     skrll    | (((uint64_t)(rc)) & 1))
   4155   1.1     skrll #define A_MASK A (0x3f, 0x1f, 1)
   4156   1.1     skrll 
   4157   1.1     skrll /* An A_MASK with the FRB field fixed.  */
   4158   1.1     skrll #define AFRB_MASK (A_MASK | FRB_MASK)
   4159   1.1     skrll 
   4160   1.1     skrll /* An A_MASK with the FRC field fixed.  */
   4161   1.1     skrll #define AFRC_MASK (A_MASK | FRC_MASK)
   4162   1.1     skrll 
   4163   1.1     skrll /* An A_MASK with the FRA and FRC fields fixed.  */
   4164   1.1     skrll #define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
   4165   1.8  christos 
   4166   1.1     skrll /* An AFRAFRC_MASK, but with L bit clear.  */
   4167   1.1     skrll #define AFRALFRC_MASK (AFRAFRC_MASK & ~((uint64_t) 1 << 16))
   4168   1.8  christos 
   4169   1.8  christos /* A B form instruction.  */
   4170   1.8  christos #define B(op, aa, lk)				\
   4171   1.8  christos   (OP (op)					\
   4172   1.1     skrll    | ((((uint64_t)(aa)) & 1) << 1)		\
   4173   1.1     skrll    | ((lk) & 1))
   4174   1.4  christos #define B_MASK B (0x3f, 1, 1)
   4175   1.8  christos 
   4176   1.8  christos /* A BD8 form instruction.  This is a 16-bit instruction.  */
   4177   1.8  christos #define BD8(op, aa, lk)				\
   4178   1.8  christos   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4179   1.4  christos    | (((aa) & 1) << 9)				\
   4180   1.4  christos    | (((lk) & 1) << 8))
   4181   1.4  christos #define BD8_MASK BD8 (0x3f, 1, 1)
   4182   1.8  christos 
   4183   1.4  christos /* Another BD8 form instruction.  This is a 16-bit instruction.  */
   4184   1.4  christos #define BD8IO(op) ((((uint64_t)(op)) & 0x1f) << 11)
   4185   1.4  christos #define BD8IO_MASK BD8IO (0x1f)
   4186   1.4  christos 
   4187   1.4  christos /* A BD8 form instruction for simplified mnemonics.  */
   4188   1.4  christos #define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
   4189   1.4  christos /* A mask that excludes BO32 and BI32.  */
   4190   1.4  christos #define EBD8IO1_MASK 0xf800
   4191   1.4  christos /* A mask that includes BO32 and excludes BI32.  */
   4192   1.4  christos #define EBD8IO2_MASK 0xfc00
   4193   1.4  christos /* A mask that include BO32 AND BI32.  */
   4194   1.4  christos #define EBD8IO3_MASK 0xff00
   4195   1.8  christos 
   4196   1.8  christos /* A BD15 form instruction.  */
   4197   1.8  christos #define BD15(op, aa, lk)			\
   4198   1.8  christos   (OP (op)					\
   4199   1.4  christos    | ((((uint64_t)(aa)) & 0xf) << 22)	\
   4200   1.4  christos    | ((lk) & 1))
   4201   1.4  christos #define BD15_MASK BD15 (0x3f, 0xf, 1)
   4202   1.8  christos 
   4203  1.10  christos /* A BD15 form instruction for extended conditional branch mnemonics.  */
   4204   1.8  christos #define EBD15(op, aa, bo, lk)			\
   4205   1.8  christos   (((op) & 0x3fu) << 26)			\
   4206   1.8  christos   | (((aa) & 0xf) << 22)			\
   4207   1.4  christos   | (((bo) & 0x3) << 20)			\
   4208   1.4  christos   | ((lk) & 1)
   4209   1.8  christos #define EBD15_MASK 0xfff00001
   4210   1.8  christos 
   4211   1.8  christos /* A BD15 form instruction for extended conditional branch mnemonics
   4212  1.10  christos    with BI.  */
   4213   1.8  christos #define EBD15BI(op, aa, bo, bi, lk)		\
   4214   1.8  christos   ((((op) & 0x3fu) << 26)			\
   4215   1.8  christos    | (((aa) & 0xf) << 22)			\
   4216   1.8  christos    | (((bo) & 0x3) << 20)			\
   4217   1.8  christos    | (((bi) & 0x3) << 16)			\
   4218   1.4  christos    | ((lk) & 1))
   4219   1.4  christos 
   4220   1.4  christos #define EBD15BI_MASK  0xfff30001
   4221   1.8  christos 
   4222   1.8  christos /* A BD24 form instruction.  */
   4223   1.8  christos #define BD24(op, aa, lk)			\
   4224   1.8  christos   (OP (op)					\
   4225   1.4  christos    | ((((uint64_t)(aa)) & 1) << 25)	\
   4226   1.4  christos    | ((lk) & 1))
   4227   1.1     skrll #define BD24_MASK BD24 (0x3f, 1, 1)
   4228   1.8  christos 
   4229   1.8  christos /* A B form instruction setting the BO field.  */
   4230   1.8  christos #define BBO(op, bo, aa, lk)			\
   4231   1.1     skrll   (B ((op), (aa), (lk))				\
   4232   1.1     skrll    | ((((uint64_t)(bo)) & 0x1f) << 21))
   4233   1.1     skrll #define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
   4234   1.1     skrll 
   4235   1.1     skrll /* A BBO_MASK with the y bit of the BO field removed.  This permits
   4236   1.8  christos    matching a conditional branch regardless of the setting of the y
   4237   1.8  christos    bit.  Similarly for the 'at' bits used for power4 branch hints.  */
   4238   1.8  christos #define Y_MASK	 (((uint64_t) 1) << 21)
   4239   1.1     skrll #define AT1_MASK (((uint64_t) 3) << 21)
   4240   1.1     skrll #define AT2_MASK (((uint64_t) 9) << 21)
   4241   1.1     skrll #define BBOY_MASK  (BBO_MASK &~ Y_MASK)
   4242   1.1     skrll #define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
   4243   1.1     skrll 
   4244   1.1     skrll /* A B form instruction setting the BO field and the condition bits of
   4245   1.8  christos    the BI field.  */
   4246   1.1     skrll #define BBOCB(op, bo, cb, aa, lk) \
   4247   1.1     skrll   (BBO ((op), (bo), (aa), (lk)) | ((((uint64_t)(cb)) & 0x3) << 16))
   4248   1.1     skrll #define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
   4249   1.1     skrll 
   4250   1.1     skrll /* A BBOCB_MASK with the y bit of the BO field removed.  */
   4251   1.1     skrll #define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
   4252   1.1     skrll #define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
   4253   1.1     skrll #define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
   4254   1.1     skrll 
   4255   1.1     skrll /* A BBOYCB_MASK in which the BI field is fixed.  */
   4256   1.1     skrll #define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
   4257   1.4  christos #define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
   4258   1.8  christos 
   4259   1.4  christos /* A VLE C form instruction.  */
   4260   1.8  christos #define C_LK(x, lk) (((((uint64_t)(x)) & 0x7fff) << 1) | ((lk) & 1))
   4261   1.4  christos #define C_LK_MASK C_LK(0x7fff, 1)
   4262   1.4  christos #define C(x) ((((uint64_t)(x)) & 0xffff))
   4263   1.1     skrll #define C_MASK C(0xffff)
   4264   1.8  christos 
   4265   1.1     skrll /* An Context form instruction.  */
   4266   1.1     skrll #define CTX(op, xop)   (OP (op) | (((uint64_t)(xop)) & 0x7))
   4267   1.1     skrll #define CTX_MASK CTX(0x3f, 0x7)
   4268   1.8  christos 
   4269   1.1     skrll /* An User Context form instruction.  */
   4270   1.1     skrll #define UCTX(op, xop)  (OP (op) | (((uint64_t)(xop)) & 0x1f))
   4271   1.1     skrll #define UCTX_MASK UCTX(0x3f, 0x1f)
   4272   1.1     skrll 
   4273   1.1     skrll /* The main opcode mask with the RA field clear.  */
   4274   1.5  christos #define DRA_MASK (OP_MASK | RA_MASK)
   4275   1.5  christos 
   4276   1.5  christos /* A DQ form VSX instruction.  */
   4277   1.5  christos #define DQX(op, xop) (OP (op) | ((xop) & 0x7))
   4278  1.11  christos #define DQX_MASK DQX (0x3f, 7)
   4279  1.11  christos 
   4280  1.11  christos /* A DQ form VSX vector paired instruction.  */
   4281  1.11  christos #define DQXP(op, xop) (OP (op) | ((xop) & 0xf))
   4282   1.1     skrll #define DQXP_MASK DQXP (0x3f, 0xf)
   4283   1.1     skrll 
   4284   1.1     skrll /* A DS form instruction.  */
   4285   1.1     skrll #define DSO(op, xop) (OP (op) | ((xop) & 0x3))
   4286   1.5  christos #define DS_MASK DSO (0x3f, 3)
   4287   1.8  christos 
   4288   1.5  christos /* An DX form instruction.  */
   4289   1.8  christos #define DX(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
   4290   1.8  christos #define DX_MASK DX (0x3f, 0x1f)
   4291   1.5  christos /* An DX form instruction with the D bits specified.  */
   4292   1.1     skrll #define NODX_MASK (DX_MASK | 0x1fffc1)
   4293   1.8  christos 
   4294   1.1     skrll /* An EVSEL form instruction.  */
   4295   1.1     skrll #define EVSEL(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xff) << 3)
   4296   1.4  christos #define EVSEL_MASK EVSEL(0x3f, 0xff)
   4297   1.8  christos 
   4298   1.4  christos /* An IA16 form instruction.  */
   4299   1.4  christos #define IA16(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
   4300   1.4  christos #define IA16_MASK IA16(0x3f, 0x1f)
   4301   1.8  christos 
   4302   1.4  christos /* An I16A form instruction.  */
   4303   1.4  christos #define I16A(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
   4304   1.4  christos #define I16A_MASK I16A(0x3f, 0x1f)
   4305   1.8  christos 
   4306   1.4  christos /* An I16L form instruction.  */
   4307   1.4  christos #define I16L(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1f) << 11)
   4308   1.4  christos #define I16L_MASK I16L(0x3f, 0x1f)
   4309   1.8  christos 
   4310   1.4  christos /* An IM7 form instruction.  */
   4311   1.4  christos #define IM7(op) ((((uint64_t)(op)) & 0x1f) << 11)
   4312   1.1     skrll #define IM7_MASK IM7(0x1f)
   4313   1.1     skrll 
   4314   1.1     skrll /* An M form instruction.  */
   4315   1.1     skrll #define M(op, rc) (OP (op) | ((rc) & 1))
   4316   1.4  christos #define M_MASK M (0x3f, 1)
   4317   1.8  christos 
   4318   1.4  christos /* An LI20 form instruction.  */
   4319   1.4  christos #define LI20(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x1) << 15)
   4320   1.1     skrll #define LI20_MASK LI20(0x3f, 0x1)
   4321   1.8  christos 
   4322   1.8  christos /* An M form instruction with the ME field specified.  */
   4323   1.8  christos #define MME(op, me, rc)				\
   4324   1.1     skrll   (M ((op), (rc))				\
   4325  1.11  christos    | ((((uint64_t)(me)) & 0x1f) << 1))
   4326  1.11  christos 
   4327  1.11  christos /* An M_MASK with the MB field fixed.  */
   4328  1.11  christos #define MMB_MASK (M_MASK | MB_MASK)
   4329  1.11  christos 
   4330  1.11  christos /* An M_MASK with the ME field fixed.  */
   4331   1.1     skrll #define MME_MASK (M_MASK | ME_MASK)
   4332   1.1     skrll 
   4333   1.1     skrll /* An M_MASK with the MB and ME fields fixed.  */
   4334   1.1     skrll #define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
   4335   1.1     skrll 
   4336   1.1     skrll /* An M_MASK with the SH and ME fields fixed.  */
   4337  1.11  christos #define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
   4338  1.11  christos 
   4339  1.11  christos /* An M_MASK with the SH and MB fields fixed.  */
   4340   1.1     skrll #define MSHMB_MASK (M_MASK | SH_MASK | MB_MASK)
   4341   1.8  christos 
   4342   1.8  christos /* An MD form instruction.  */
   4343   1.8  christos #define MD(op, xop, rc)				\
   4344   1.8  christos   (OP (op)					\
   4345   1.1     skrll    | ((((uint64_t)(xop)) & 0x7) << 2)	\
   4346   1.1     skrll    | ((rc) & 1))
   4347   1.1     skrll #define MD_MASK MD (0x3f, 0x7, 1)
   4348   1.1     skrll 
   4349   1.1     skrll /* An MD_MASK with the MB field fixed.  */
   4350   1.1     skrll #define MDMB_MASK (MD_MASK | MB6_MASK)
   4351   1.1     skrll 
   4352   1.1     skrll /* An MD_MASK with the SH field fixed.  */
   4353   1.1     skrll #define MDSH_MASK (MD_MASK | SH6_MASK)
   4354   1.8  christos 
   4355   1.8  christos /* An MDS form instruction.  */
   4356   1.8  christos #define MDS(op, xop, rc)			\
   4357   1.8  christos   (OP (op)					\
   4358   1.1     skrll    | ((((uint64_t)(xop)) & 0xf) << 1)	\
   4359   1.1     skrll    | ((rc) & 1))
   4360   1.1     skrll #define MDS_MASK MDS (0x3f, 0xf, 1)
   4361   1.1     skrll 
   4362   1.1     skrll /* An MDS_MASK with the MB field fixed.  */
   4363   1.1     skrll #define MDSMB_MASK (MDS_MASK | MB6_MASK)
   4364   1.8  christos 
   4365   1.8  christos /* An SC form instruction.  */
   4366   1.8  christos #define SC(op, sa, lk)				\
   4367   1.8  christos   (OP (op)					\
   4368   1.8  christos    | ((((uint64_t)(sa)) & 1) << 1)		\
   4369   1.8  christos    | ((lk) & 1))
   4370   1.8  christos #define SC_MASK					\
   4371   1.8  christos   (OP_MASK					\
   4372   1.8  christos    | (((uint64_t) 0x3ff) << 16)		\
   4373   1.1     skrll    | (((uint64_t) 1) << 1)			\
   4374   1.4  christos    | 1)
   4375   1.8  christos 
   4376   1.4  christos /* An SCI8 form instruction.  */
   4377   1.4  christos #define SCI8(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 11))
   4378   1.4  christos #define SCI8_MASK SCI8(0x3f, 0x1f)
   4379   1.8  christos 
   4380   1.8  christos /* An SCI8 form instruction.  */
   4381   1.8  christos #define SCI8BF(op, fop, xop)			\
   4382   1.8  christos   (OP (op)					\
   4383   1.4  christos    | ((((uint64_t)(xop)) & 0x1f) << 11)	\
   4384   1.4  christos    | (((fop) & 7) << 23))
   4385   1.4  christos #define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
   4386   1.8  christos 
   4387   1.4  christos /* An SD4 form instruction.  This is a 16-bit instruction.  */
   4388   1.4  christos #define SD4(op) ((((uint64_t)(op)) & 0xf) << 12)
   4389   1.4  christos #define SD4_MASK SD4(0xf)
   4390   1.8  christos 
   4391   1.8  christos /* An SE_IM5 form instruction.  This is a 16-bit instruction.  */
   4392   1.8  christos #define SE_IM5(op, xop)				\
   4393   1.4  christos   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4394   1.4  christos    | (((xop) & 0x1) << 9))
   4395   1.4  christos #define SE_IM5_MASK SE_IM5(0x3f, 1)
   4396   1.8  christos 
   4397   1.8  christos /* An SE_R form instruction.  This is a 16-bit instruction.  */
   4398   1.8  christos #define SE_R(op, xop)				\
   4399   1.4  christos   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4400   1.4  christos    | (((xop) & 0x3f) << 4))
   4401   1.4  christos #define SE_R_MASK SE_R(0x3f, 0x3f)
   4402   1.8  christos 
   4403   1.8  christos /* An SE_RR form instruction.  This is a 16-bit instruction.  */
   4404   1.8  christos #define SE_RR(op, xop)				\
   4405   1.4  christos   (((((uint64_t)(op)) & 0x3f) << 10)	\
   4406   1.4  christos    | (((xop) & 0x3) << 8))
   4407   1.4  christos #define SE_RR_MASK SE_RR(0x3f, 3)
   4408   1.8  christos 
   4409   1.1     skrll /* A VX form instruction.  */
   4410  1.14  christos #define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
   4411  1.14  christos 
   4412  1.14  christos /* A VX form instruction with selector bit  */
   4413  1.14  christos #define VXSEL5(op, xop, sel) (VX(op, xop) | (((sel) & 0x1f) << 16))
   4414  1.14  christos #define VXSEL4(op, xop, sel) (VX(op, xop) | (((sel) & 0xf) << 17))
   4415  1.14  christos #define VXSEL3(op, xop, sel) (VX(op, xop) | (((sel) & 0x7) << 18))
   4416   1.1     skrll #define VXSEL2(op, xop, sel) (VX(op, xop) | (((sel) & 0x3) << 19))
   4417   1.1     skrll 
   4418   1.1     skrll /* The mask for an VX form instruction.  */
   4419   1.8  christos #define VX_MASK	VX(0x3f, 0x7ff)
   4420   1.8  christos 
   4421   1.8  christos /* A VX LSP form instruction.  */
   4422   1.8  christos #define VX_LSP(op, xop) (OP (op) | (((uint64_t)(xop)) & 0xffff))
   4423   1.8  christos 
   4424   1.8  christos /* The mask for an VX LSP form instruction.  */
   4425   1.8  christos #define VX_LSP_MASK	VX_LSP(0x3f, 0xffff)
   4426   1.8  christos #define VX_LSP_OFF_MASK	VX_LSP(0x3f, 0x7fc)
   4427   1.8  christos 
   4428   1.8  christos /* Additional format of VX SPE2 form instruction.   */
   4429   1.8  christos #define VX_RA_CONST(op, xop, bits11_15)			\
   4430   1.8  christos   (OP (op)						\
   4431   1.8  christos    | (((uint64_t)(bits11_15) & 0x1f) << 16)	\
   4432   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4433   1.8  christos #define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
   4434   1.8  christos 
   4435   1.8  christos #define VX_RB_CONST(op, xop, bits16_20)			\
   4436   1.8  christos   (OP (op)						\
   4437   1.8  christos    | (((uint64_t)(bits16_20) & 0x1f) << 11)	\
   4438   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4439   1.8  christos #define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
   4440   1.8  christos 
   4441   1.8  christos #define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
   4442   1.8  christos 
   4443   1.8  christos #define VX_SPE_CRFD(op, xop, bits9_10)			\
   4444   1.8  christos   (OP (op)						\
   4445   1.8  christos    | (((uint64_t)(bits9_10) & 0x3) << 21)		\
   4446   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4447   1.8  christos #define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
   4448   1.8  christos 
   4449   1.8  christos #define VX_SPE2_CLR(op, xop, bit16)			\
   4450   1.8  christos   (OP (op)						\
   4451   1.8  christos    | (((uint64_t)(bit16) & 0x1) << 15)		\
   4452   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4453   1.8  christos #define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
   4454   1.8  christos 
   4455   1.8  christos #define VX_SPE2_SPLATB(op, xop, bits19_20)		\
   4456   1.8  christos   (OP (op)						\
   4457   1.8  christos    | (((uint64_t)(bits19_20) & 0x3) << 11)		\
   4458   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4459   1.8  christos #define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
   4460   1.8  christos 
   4461   1.8  christos #define VX_SPE2_OCTET(op, xop, bits16_17)		\
   4462   1.8  christos   (OP (op)						\
   4463   1.8  christos    | (((uint64_t)(bits16_17) & 0x3) << 14)		\
   4464   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4465   1.8  christos #define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
   4466   1.8  christos 
   4467   1.8  christos #define VX_SPE2_DDHH(op, xop, bit16) 			\
   4468   1.8  christos   (OP (op)						\
   4469   1.8  christos    | (((uint64_t)(bit16) & 0x1) << 15)		\
   4470   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4471   1.8  christos #define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
   4472   1.8  christos 
   4473   1.8  christos #define VX_SPE2_HH(op, xop, bit16, bits19_20)		\
   4474   1.8  christos   (OP (op)						\
   4475   1.8  christos    | (((uint64_t)(bit16) & 0x1) << 15)		\
   4476   1.8  christos    | (((uint64_t)(bits19_20) & 0x3) << 11)	\
   4477   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4478   1.8  christos #define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
   4479   1.8  christos 
   4480   1.8  christos #define VX_SPE2_EVMAR(op, xop)				\
   4481   1.8  christos   (OP (op)						\
   4482   1.8  christos    | ((uint64_t)(0x1) << 11)			\
   4483   1.8  christos    | (((uint64_t)(xop)) & 0x7ff))
   4484   1.8  christos #define VX_SPE2_EVMAR_MASK				\
   4485   1.8  christos   (VX_SPE2_EVMAR(0x3f, 0x7ff)				\
   4486   1.4  christos    | ((uint64_t)(0x1) << 11))
   4487   1.4  christos 
   4488   1.4  christos /* A VX_MASK with the VA field fixed.  */
   4489   1.4  christos #define VXVA_MASK (VX_MASK | (0x1f << 16))
   4490   1.4  christos 
   4491   1.4  christos /* A VX_MASK with the VB field fixed.  */
   4492   1.4  christos #define VXVB_MASK (VX_MASK | (0x1f << 11))
   4493   1.4  christos 
   4494   1.4  christos /* A VX_MASK with the VA and VB fields fixed.  */
   4495   1.4  christos #define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
   4496   1.4  christos 
   4497   1.4  christos /* A VX_MASK with the VD and VA fields fixed.  */
   4498   1.5  christos #define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
   4499   1.4  christos 
   4500   1.4  christos /* A VX_MASK with a UIMM4 field.  */
   4501   1.5  christos #define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
   4502   1.4  christos 
   4503   1.4  christos /* A VX_MASK with a UIMM3 field.  */
   4504   1.5  christos #define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
   4505   1.4  christos 
   4506   1.4  christos /* A VX_MASK with a UIMM2 field.  */
   4507  1.14  christos #define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
   4508  1.14  christos 
   4509  1.14  christos /* A VX_MASK with a UIMM1 field.  */
   4510   1.5  christos #define VXUIMM1_MASK (VX_MASK | (0xf << 17))
   4511   1.5  christos 
   4512   1.5  christos /* A VX_MASK with a PS field.  */
   4513   1.5  christos #define VXPS_MASK (VX_MASK & ~(0x1 << 9))
   4514  1.11  christos 
   4515  1.11  christos /* A VX_MASK with the VA field fixed with a PS field.  */
   4516  1.11  christos #define VXVAPS_MASK (VXVA_MASK & ~(0x1 << 9))
   4517  1.11  christos 
   4518  1.11  christos /* A VX_MASK with the VA field fixed with a MP field.  */
   4519  1.11  christos #define VXVAM_MASK (VXVA_MASK & ~(0x1 << 16))
   4520  1.11  christos 
   4521  1.11  christos /* A VX_MASK for instructions using a BF field.  */
   4522  1.11  christos #define VXBF_MASK (VX_MASK | (3 << 21))
   4523  1.11  christos 
   4524  1.11  christos /* A VX_MASK for instructions with an RC field.  */
   4525  1.11  christos #define VXRC_MASK (VX_MASK & ~(0x1f << 6))
   4526  1.11  christos 
   4527   1.5  christos /* A VX_MASK for instructions with a SH field.  */
   4528   1.4  christos #define VXSH_MASK (VX_MASK & ~(0x7 << 6))
   4529   1.8  christos 
   4530   1.1     skrll /* A VA form instruction.  */
   4531   1.1     skrll #define VXA(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x03f))
   4532   1.1     skrll 
   4533   1.1     skrll /* The mask for an VA form instruction.  */
   4534   1.4  christos #define VXA_MASK VXA(0x3f, 0x3f)
   4535   1.4  christos 
   4536   1.4  christos /* A VXA_MASK with a SHB field.  */
   4537   1.4  christos #define VXASHB_MASK (VXA_MASK | (1 << 10))
   4538   1.8  christos 
   4539   1.8  christos /* A VXR form instruction.  */
   4540   1.8  christos #define VXR(op, xop, rc)			\
   4541   1.8  christos   (OP (op)					\
   4542   1.1     skrll    | (((uint64_t)(rc) & 1) << 10)		\
   4543   1.1     skrll    | (((uint64_t)(xop)) & 0x3ff))
   4544   1.1     skrll 
   4545   1.1     skrll /* The mask for a VXR form instruction.  */
   4546   1.5  christos #define VXR_MASK VXR(0x3f, 0x3ff, 1)
   4547   1.5  christos 
   4548   1.5  christos /* A VX form instruction with a VA tertiary opcode.  */
   4549   1.8  christos #define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
   4550   1.6  christos 
   4551   1.6  christos #define VXASH(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1f) << 1))
   4552   1.1     skrll #define VXASH_MASK VXASH (0x3f, 0x1f)
   4553   1.8  christos 
   4554   1.1     skrll /* An X form instruction.  */
   4555   1.5  christos #define X(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
   4556   1.5  christos 
   4557   1.5  christos /* A X form instruction for Quad-Precision FP Instructions.  */
   4558   1.4  christos #define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
   4559   1.8  christos 
   4560   1.4  christos /* An EX form instruction.  */
   4561   1.4  christos #define EX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
   4562   1.4  christos 
   4563   1.4  christos /* The mask for an EX form instruction.  */
   4564   1.2     skrll #define EX_MASK EX (0x3f, 0x7ff)
   4565   1.8  christos 
   4566   1.2     skrll /* An XX2 form instruction.  */
   4567   1.5  christos #define XX2(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 2))
   4568   1.5  christos 
   4569   1.5  christos /* A XX2 form instruction with the VA bits specified.  */
   4570  1.13  christos #define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
   4571  1.13  christos 
   4572  1.13  christos /* An XX2 form instruction with the M bits specified.  */
   4573  1.13  christos #define XX2M(op, xop, m)			\
   4574  1.13  christos   (XX2 (op, xop)				\
   4575  1.13  christos    | (((uint64_t)(m) & 0x2) << 15)		\
   4576   1.1     skrll    | (((uint64_t)(m) & 0x1) << 11))
   4577   1.8  christos 
   4578   1.1     skrll /* An XX3 form instruction.  */
   4579   1.2     skrll #define XX3(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0xff) << 3))
   4580   1.8  christos 
   4581   1.8  christos /* An XX3 form instruction with the RC bit specified.  */
   4582   1.8  christos #define XX3RC(op, xop, rc)			\
   4583   1.8  christos   (OP (op)					\
   4584   1.2     skrll    | (((uint64_t)(rc) & 1) << 10)		\
   4585  1.13  christos    | ((((uint64_t)(xop)) & 0x7f) << 3))
   4586  1.13  christos 
   4587  1.13  christos /* An XX3 form instruction with the M bits specified.  */
   4588  1.13  christos #define XX3M(op, xop, m)			\
   4589  1.13  christos   (XX3 (op, xop)				\
   4590  1.13  christos    | (((uint64_t)(m) & 0x2) << 15)		\
   4591  1.13  christos    | (((uint64_t)(m) & 0x1) << 11))
   4592  1.13  christos 
   4593  1.13  christos /* A GF XX3 form instruction with the P bit specified.  */
   4594  1.13  christos #define XX3GF(op, xop, xop1, p)			\
   4595  1.13  christos   (XX3 (op, xop)				\
   4596  1.13  christos    | (((uint64_t)(xop1) & 3) << 9)		\
   4597   1.2     skrll    | (((uint64_t)(p) & 1) << 8))
   4598   1.8  christos 
   4599   1.1     skrll /* An XX4 form instruction.  */
   4600   1.1     skrll #define XX4(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3) << 4))
   4601   1.8  christos 
   4602   1.1     skrll /* A Z form instruction.  */
   4603   1.1     skrll #define Z(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x1ff) << 1))
   4604   1.1     skrll 
   4605   1.1     skrll /* An X form instruction with the RC bit specified.  */
   4606   1.5  christos #define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
   4607   1.5  christos 
   4608   1.5  christos /* A X form instruction for Quad-Precision FP Instructions with RC bit.  */
   4609   1.6  christos #define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
   4610   1.8  christos 
   4611   1.8  christos /* An X form instruction with the RA bits specified as two ops.  */
   4612   1.8  christos #define XMMF(op, xop, mop0, mop1)		\
   4613   1.8  christos   (X ((op), (xop))				\
   4614   1.6  christos    | ((mop0) & 3) << 19				\
   4615   1.1     skrll    | ((mop1) & 7) << 16)
   4616   1.1     skrll 
   4617   1.1     skrll /* A Z form instruction with the RC bit specified.  */
   4618   1.1     skrll #define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
   4619   1.1     skrll 
   4620   1.1     skrll /* The mask for an X form instruction.  */
   4621   1.5  christos #define X_MASK XRC (0x3f, 0x3ff, 1)
   4622   1.5  christos 
   4623   1.5  christos /* The mask for an X form instruction with the BF bits specified.  */
   4624  1.11  christos #define XBF_MASK (X_MASK | (3 << 21))
   4625  1.11  christos 
   4626  1.11  christos /* An X form instruction without the RC field specified.  */
   4627   1.8  christos #define XRC_MASK XRC (0x3f, 0x3ff, 0)
   4628   1.8  christos 
   4629   1.3  christos /* An X form wait instruction with everything filled in except the WC
   4630   1.3  christos    field.  */
   4631  1.14  christos #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
   4632  1.14  christos 
   4633  1.14  christos /* The mask of TLB invalidate Entry with 20th bit specified.  */
   4634  1.14  christos #define XTLBIE_MASK (X_MASK | (1<<20))
   4635  1.14  christos 
   4636  1.14  christos /* The mask of TLB invalidate Entry for I/O device.  */
   4637  1.11  christos #define XTLBIEIO_MASK (XTLBIE_MASK | (3<<16))
   4638  1.11  christos 
   4639  1.11  christos /* An X form wait instruction with everything filled in except the WC
   4640  1.11  christos    and PL fields.  */
   4641   1.1     skrll #define XWCPL_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | (3 << 18) | RB_MASK)
   4642   1.1     skrll 
   4643   1.1     skrll /* The mask for an XX1 form instruction.  */
   4644   1.5  christos #define XX1_MASK X (0x3f, 0x3ff)
   4645   1.5  christos 
   4646   1.5  christos /* An XX1_MASK with the RB field fixed.  */
   4647   1.2     skrll #define XX1RB_MASK (XX1_MASK | RB_MASK)
   4648   1.2     skrll 
   4649   1.2     skrll /* The mask for an XX2 form instruction.  */
   4650   1.2     skrll #define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
   4651   1.2     skrll 
   4652   1.2     skrll /* The mask for an XX2 form instruction with the UIM bits specified.  */
   4653   1.5  christos #define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
   4654   1.5  christos 
   4655   1.5  christos /* The mask for an XX2 form instruction with the 4 UIM bits specified.  */
   4656   1.2     skrll #define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
   4657   1.2     skrll 
   4658   1.2     skrll /* The mask for an XX2 form instruction with the BF bits specified.  */
   4659   1.8  christos #define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
   4660   1.8  christos 
   4661   1.5  christos /* The mask for an XX2 form instruction with the BF and DCMX bits
   4662   1.5  christos    specified.  */
   4663   1.8  christos #define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
   4664   1.8  christos 
   4665   1.5  christos /* The mask for an XX2 form instruction with a split DCMX bits
   4666   1.5  christos    specified.  */
   4667   1.1     skrll #define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
   4668   1.1     skrll 
   4669   1.1     skrll /* The mask for an XX3 form instruction.  */
   4670   1.2     skrll #define XX3_MASK XX3 (0x3f, 0xff)
   4671   1.2     skrll 
   4672   1.2     skrll /* The mask for an XX3 form instruction with the BF bits specified.  */
   4673  1.11  christos #define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
   4674  1.11  christos 
   4675  1.12  christos /* An X_MASK with an accumulator register and the RA and RB fields fixed.  */
   4676  1.11  christos #define XACC_MASK (X_MASK | RA_MASK | RB_MASK | (3 << 21))
   4677  1.12  christos #define XDMR_MASK XACC_MASK
   4678  1.12  christos 
   4679  1.11  christos /* An X_MASK with two dense math register.  */
   4680   1.8  christos #define XDMRDMR_MASK (X_MASK | RA_MASK | (3 << 21) | (3 << 11))
   4681   1.8  christos 
   4682   1.1     skrll /* The mask for an XX3 form instruction with the DM or SHW bits
   4683   1.2     skrll    specified.  */
   4684   1.2     skrll #define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
   4685  1.12  christos #define XX3SHW_MASK XX3DM_MASK
   4686  1.12  christos 
   4687  1.12  christos /* The masks for X* form instructions with an ACC/DMR register.  */
   4688  1.12  christos #define XX2ACC_MASK (XX2 (0x3f, 0x1ff) | (3 << 21) | 1)
   4689  1.12  christos #define XX3ACC_MASK (XX3_MASK | (3 << 21) | 1)
   4690  1.12  christos #define XX3DMR_MASK (XX3ACC_MASK | (1 << 11))
   4691  1.12  christos #define XX2DMR_MASK (XX2ACC_MASK | (0xf << 17))
   4692  1.13  christos #define XX3GERX_MASK (XX3ACC_MASK | (1 << 16))
   4693  1.13  christos 
   4694  1.13  christos /* The masks for XX2 AES instructions with m0, m1 bits.  */
   4695  1.13  christos #define XX2AES_MASK (XX2 (0x3f, 0x1ff) | (0xf << 17) | 1)
   4696  1.13  christos #define XX2AESM_MASK (XX2AES_MASK | (1 << 16) | (1 << 11))
   4697  1.13  christos 
   4698  1.13  christos /* The masks for XX3 AES instructions with m0, m1 bits.  */
   4699  1.13  christos #define XX3AES_MASK (XX3 (0x3f, 0xff) | 1)
   4700  1.13  christos #define XX3AESM_MASK (XX3AES_MASK | (1 << 16) | (1 << 11))
   4701  1.13  christos 
   4702  1.13  christos /* The masks for XX3 GF instructions with P bit.  */
   4703   1.2     skrll #define XX3GF_MASK (XX3 (0x3f, 0xff) & ~(1 << 8))
   4704   1.2     skrll 
   4705   1.2     skrll /* The mask for an XX4 form instruction.  */
   4706   1.8  christos #define XX4_MASK XX4 (0x3f, 0x3)
   4707   1.8  christos 
   4708   1.2     skrll /* An X form wait instruction with everything filled in except the WC
   4709   1.1     skrll    field.  */
   4710   1.6  christos #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
   4711   1.6  christos 
   4712   1.6  christos /* The mask for an XMMF form instruction.  */
   4713   1.1     skrll #define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
   4714   1.1     skrll 
   4715   1.1     skrll /* The mask for a Z form instruction.  */
   4716   1.1     skrll #define Z_MASK ZRC (0x3f, 0x1ff, 1)
   4717   1.5  christos #define Z2_MASK ZRC (0x3f, 0xff, 1)
   4718   1.1     skrll 
   4719   1.5  christos /* An X_MASK with the RA/VA field fixed.  */
   4720   1.1     skrll #define XRA_MASK (X_MASK | RA_MASK)
   4721   1.5  christos #define XVA_MASK XRA_MASK
   4722   1.8  christos 
   4723   1.5  christos /* An XRA_MASK with the A_L/W field clear.  */
   4724   1.1     skrll #define XWRA_MASK (XRA_MASK & ~((uint64_t) 1 << 16))
   4725   1.1     skrll #define XRLA_MASK XWRA_MASK
   4726   1.1     skrll 
   4727   1.1     skrll /* An X_MASK with the RB field fixed.  */
   4728   1.1     skrll #define XRB_MASK (X_MASK | RB_MASK)
   4729   1.1     skrll 
   4730   1.1     skrll /* An X_MASK with the RT field fixed.  */
   4731  1.11  christos #define XRT_MASK (X_MASK | RT_MASK)
   4732   1.8  christos 
   4733   1.1     skrll /* An XRT_MASK mask with the 2 L bits clear.  */
   4734  1.11  christos #define XLRT_MASK (XRT_MASK & ~((uint64_t) 0x3 << 21))
   4735  1.11  christos 
   4736  1.11  christos /* An XRT_MASK mask with the 3 L bits clear.  */
   4737   1.1     skrll #define XL3RT_MASK (XRT_MASK & ~((uint64_t) 0x7 << 21))
   4738   1.1     skrll 
   4739   1.1     skrll /* An X_MASK with the RA and RB fields fixed.  */
   4740   1.5  christos #define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
   4741   1.5  christos 
   4742   1.5  christos /* An XBF_MASK with the RA and RB fields fixed.  */
   4743   1.1     skrll #define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
   4744   1.8  christos 
   4745   1.1     skrll /* An XRARB_MASK, but with the L bit clear.  */
   4746   1.5  christos #define XRLARB_MASK (XRARB_MASK & ~((uint64_t) 1 << 16))
   4747   1.8  christos 
   4748   1.5  christos /* An XRARB_MASK, but with the L bits in a darn instruction clear.  */
   4749   1.1     skrll #define XLRAND_MASK (XRARB_MASK & ~((uint64_t) 3 << 16))
   4750   1.1     skrll 
   4751   1.1     skrll /* An X_MASK with the RT and RA fields fixed.  */
   4752   1.5  christos #define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
   4753   1.5  christos 
   4754   1.5  christos /* An X_MASK with the RT and RB fields fixed.  */
   4755   1.1     skrll #define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
   4756   1.8  christos 
   4757   1.1     skrll /* An XRTRA_MASK, but with L bit clear.  */
   4758   1.5  christos #define XRTLRA_MASK (XRTRA_MASK & ~((uint64_t) 1 << 21))
   4759   1.5  christos 
   4760   1.5  christos /* An X_MASK with the RT, RA and RB fields fixed.  */
   4761   1.5  christos #define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
   4762   1.8  christos 
   4763   1.5  christos /* An XRTRARB_MASK, but with L bit clear.  */
   4764   1.5  christos #define XRTLRARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 21))
   4765   1.8  christos 
   4766   1.5  christos /* An XRTRARB_MASK, but with A bit clear.  */
   4767   1.5  christos #define XRTARARB_MASK (XRTRARB_MASK & ~((uint64_t) 1 << 25))
   4768   1.8  christos 
   4769   1.5  christos /* An XRTRARB_MASK, but with BF bits clear.  */
   4770   1.1     skrll #define XRTBFRARB_MASK (XRTRARB_MASK & ~((uint64_t) 7 << 23))
   4771   1.8  christos 
   4772   1.8  christos /* An X form instruction with the L bit specified.  */
   4773   1.8  christos #define XOPL(op, xop, l)			\
   4774   1.1     skrll   (X ((op), (xop))				\
   4775  1.11  christos    | ((((uint64_t)(l)) & 1) << 21))
   4776   1.8  christos 
   4777   1.8  christos /* An X form instruction with the 2 L bits specified.  */
   4778   1.8  christos #define XOPL2(op, xop, l)			\
   4779   1.3  christos   (X ((op), (xop))				\
   4780  1.11  christos    | ((((uint64_t)(l)) & 3) << 21))
   4781  1.11  christos 
   4782  1.11  christos /* An X form instruction with the 3 L bits specified.  */
   4783  1.11  christos #define XOPL3(op, xop, l)			\
   4784  1.11  christos   (X ((op), (xop))				\
   4785  1.11  christos    | ((((uint64_t)(l)) & 7) << 21))
   4786  1.11  christos 
   4787  1.11  christos /* An X form instruction with the WC and PL bits specified.  */
   4788  1.11  christos #define XWCPL(op, xop, wc, pl)			\
   4789  1.11  christos   (XOPL3 ((op), (xop), (wc))			\
   4790   1.5  christos    | ((((uint64_t)(pl)) & 3) << 16))
   4791   1.8  christos 
   4792   1.8  christos /* An X form instruction with the L bit and RC bit specified.  */
   4793   1.8  christos #define XRCL(op, xop, l, rc)			\
   4794   1.5  christos   (XRC ((op), (xop), (rc))			\
   4795   1.1     skrll    | ((((uint64_t)(l)) & 1) << 21))
   4796   1.8  christos 
   4797   1.8  christos /* An X form instruction with RT fields specified */
   4798   1.8  christos #define XRT(op, xop, rt)			\
   4799   1.1     skrll   (X ((op), (xop))				\
   4800   1.1     skrll    | ((((uint64_t)(rt)) & 0x1f) << 21))
   4801   1.8  christos 
   4802   1.8  christos /* An X form instruction with RT and RA fields specified */
   4803   1.8  christos #define XRTRA(op, xop, rt, ra)			\
   4804   1.8  christos   (X ((op), (xop))				\
   4805   1.1     skrll    | ((((uint64_t)(rt)) & 0x1f) << 21)	\
   4806   1.1     skrll    | ((((uint64_t)(ra)) & 0x1f) << 16))
   4807   1.8  christos 
   4808   1.1     skrll /* The mask for an X form comparison instruction.  */
   4809   1.1     skrll #define XCMP_MASK (X_MASK | (((uint64_t)1) << 22))
   4810   1.1     skrll 
   4811   1.8  christos /* The mask for an X form comparison instruction with the L field
   4812   1.1     skrll    fixed.  */
   4813   1.1     skrll #define XCMPL_MASK (XCMP_MASK | (((uint64_t)1) << 21))
   4814   1.8  christos 
   4815   1.8  christos /* An X form trap instruction with the TO field specified.  */
   4816   1.8  christos #define XTO(op, xop, to)			\
   4817   1.1     skrll   (X ((op), (xop))				\
   4818   1.1     skrll    | ((((uint64_t)(to)) & 0x1f) << 21))
   4819   1.1     skrll #define XTO_MASK (X_MASK | TO_MASK)
   4820   1.8  christos 
   4821   1.8  christos /* An X form tlb instruction with the SH field specified.  */
   4822   1.8  christos #define XTLB(op, xop, sh)			\
   4823   1.1     skrll   (X ((op), (xop))				\
   4824   1.1     skrll    | ((((uint64_t)(sh)) & 0x1f) << 11))
   4825   1.1     skrll #define XTLB_MASK (X_MASK | SH_MASK)
   4826   1.8  christos 
   4827   1.8  christos /* An X form sync instruction.  */
   4828   1.8  christos #define XSYNC(op, xop, l)			\
   4829   1.1     skrll   (X ((op), (xop))				\
   4830   1.8  christos    | ((((uint64_t)(l)) & 3) << 21))
   4831   1.8  christos 
   4832   1.1     skrll /* An X form sync instruction with everything filled in except the LS
   4833   1.1     skrll    field.  */
   4834   1.8  christos #define XSYNC_MASK (0xff9fffff)
   4835   1.8  christos 
   4836   1.4  christos /* An X form sync instruction with everything filled in except the L
   4837   1.4  christos    and E fields.  */
   4838  1.11  christos #define XSYNCLE_MASK (0xff90ffff)
   4839  1.11  christos 
   4840  1.11  christos /* An X form sync instruction.  */
   4841  1.11  christos #define XSYNCLS(op, xop, l, s)			\
   4842  1.11  christos   (X ((op), (xop))				\
   4843  1.11  christos    | ((((uint64_t)(l)) & 7) << 21)		\
   4844  1.11  christos    | ((((uint64_t)(s)) & 3) << 16))
   4845  1.11  christos 
   4846  1.11  christos /* An X form sync instruction with everything filled in except the
   4847  1.11  christos    L and SC fields.  */
   4848   1.1     skrll #define XSYNCLS_MASK (0xff1cffff)
   4849   1.8  christos 
   4850   1.1     skrll /* An X_MASK, but with the EH bit clear.  */
   4851   1.1     skrll #define XEH_MASK (X_MASK & ~((uint64_t )1))
   4852   1.8  christos 
   4853   1.1     skrll /* An X form AltiVec dss instruction.  */
   4854   1.1     skrll #define XDSS(op, xop, a) (X ((op), (xop)) | ((((uint64_t)(a)) & 1) << 25))
   4855   1.1     skrll #define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
   4856   1.8  christos 
   4857   1.8  christos /* An XFL form instruction.  */
   4858   1.8  christos #define XFL(op, xop, rc)			\
   4859   1.8  christos   (OP (op)					\
   4860   1.1     skrll    | ((((uint64_t)(xop)) & 0x3ff) << 1)	\
   4861   1.1     skrll    | (((uint64_t)(rc)) & 1))
   4862   1.1     skrll #define XFL_MASK XFL (0x3f, 0x3ff, 1)
   4863  1.11  christos 
   4864  1.11  christos /* An X form isel instruction.  */
   4865   1.1     skrll #define XISEL(op, xop, cr)	(OP (op) | ((xop) << 1) | ((cr) << 6))
   4866   1.1     skrll #define XISEL_MASK	XISEL(0x3f, 0x1f, 0)
   4867   1.8  christos 
   4868   1.1     skrll /* An XL form instruction with the LK field set to 0.  */
   4869   1.1     skrll #define XL(op, xop) (OP (op) | ((((uint64_t)(xop)) & 0x3ff) << 1))
   4870   1.1     skrll 
   4871   1.1     skrll /* An XL form instruction which uses the LK field.  */
   4872   1.1     skrll #define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
   4873   1.1     skrll 
   4874   1.1     skrll /* The mask for an XL form instruction.  */
   4875   1.5  christos #define XL_MASK XLLK (0x3f, 0x3ff, 1)
   4876   1.5  christos 
   4877   1.5  christos /* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear.  */
   4878   1.1     skrll #define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
   4879   1.1     skrll 
   4880   1.8  christos /* An XL form instruction which explicitly sets the BO field.  */
   4881   1.1     skrll #define XLO(op, bo, xop, lk) \
   4882   1.1     skrll   (XLLK ((op), (xop), (lk)) | ((((uint64_t)(bo)) & 0x1f) << 21))
   4883   1.1     skrll #define XLO_MASK (XL_MASK | BO_MASK)
   4884   1.1     skrll 
   4885   1.1     skrll /* An XL form instruction which sets the BO field and the condition
   4886   1.8  christos    bits of the BI field.  */
   4887   1.1     skrll #define XLOCB(op, bo, cb, xop, lk) \
   4888  1.11  christos   (XLO ((op), (bo), (xop), (lk)) | ((((uint64_t)(cb)) & 3) << 16))
   4889   1.1     skrll 
   4890   1.1     skrll /* An XL_MASK with the BB field fixed.  */
   4891   1.1     skrll #define XLBB_MASK (XL_MASK | BB_MASK)
   4892  1.10  christos 
   4893   1.1     skrll /* A mask for branch instructions using the BH field.  */
   4894  1.11  christos #define XLBH_MASK (XL_MASK | (BB_MASK & ~(3 << 11)))
   4895  1.11  christos 
   4896  1.11  christos /* An XLBH_MASK with the BO field fixed.  */
   4897  1.11  christos #define XLBOBB_MASK (XLBH_MASK | BO_MASK)
   4898  1.11  christos 
   4899   1.1     skrll /* An XLBH_MASK with the BO and BI fields fixed.  */
   4900  1.11  christos #define XLBOBIBB_MASK (XLBOBB_MASK | BI_MASK)
   4901  1.11  christos 
   4902   1.1     skrll /* An XLBH_MASK with the BO and condition bits of the BI fields fixed.  */
   4903   1.3  christos #define XLBOCBBB_MASK (XLBOBB_MASK | (3 << 16))
   4904   1.8  christos 
   4905   1.8  christos /* An X form mbar instruction with MO field.  */
   4906   1.8  christos #define XMBAR(op, xop, mo)			\
   4907   1.3  christos   (X ((op), (xop))				\
   4908   1.1     skrll    | ((((uint64_t)(mo)) & 1) << 21))
   4909   1.8  christos 
   4910   1.8  christos /* An XO form instruction.  */
   4911   1.8  christos #define XO(op, xop, oe, rc)			\
   4912   1.8  christos   (OP (op)					\
   4913   1.8  christos    | ((((uint64_t)(xop)) & 0x1ff) << 1)	\
   4914   1.1     skrll    | ((((uint64_t)(oe)) & 1) << 10)	\
   4915  1.12  christos    | (((unsigned long)(rc)) & 1))
   4916   1.1     skrll #define XO_MASK XO (0x3f, 0x1ff, 1, 1)
   4917   1.1     skrll #define XOL_MASK XO (0x3f, 0x1ff, 0, 1)
   4918   1.1     skrll 
   4919   1.1     skrll /* An XO_MASK with the RB field fixed.  */
   4920   1.1     skrll #define XORB_MASK (XO_MASK | RB_MASK)
   4921   1.8  christos 
   4922   1.8  christos /* An XOPS form instruction for paired singles.  */
   4923   1.8  christos #define XOPS(op, xop, rc)			\
   4924   1.8  christos   (OP (op)					\
   4925   1.1     skrll    | ((((uint64_t)(xop)) & 0x3ff) << 1)	\
   4926   1.1     skrll    | (((uint64_t)(rc)) & 1))
   4927   1.1     skrll #define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
   4928   1.1     skrll 
   4929   1.8  christos 
   4930   1.8  christos /* An XS form instruction.  */
   4931   1.8  christos #define XS(op, xop, rc)				\
   4932   1.8  christos   (OP (op)					\
   4933   1.1     skrll    | ((((uint64_t)(xop)) & 0x1ff) << 2)	\
   4934   1.1     skrll    | (((uint64_t)(rc)) & 1))
   4935   1.1     skrll #define XS_MASK XS (0x3f, 0x1ff, 1)
   4936   1.1     skrll 
   4937   1.1     skrll /* A mask for the FXM version of an XFX form instruction.  */
   4938   1.1     skrll #define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
   4939   1.8  christos 
   4940   1.8  christos /* An XFX form instruction with the FXM field filled in.  */
   4941   1.8  christos #define XFXM(op, xop, fxm, p4)			\
   4942   1.8  christos   (X ((op), (xop))				\
   4943   1.1     skrll    | ((((uint64_t)(fxm)) & 0xff) << 12)	\
   4944   1.1     skrll    | ((uint64_t)(p4) << 20))
   4945   1.8  christos 
   4946   1.8  christos /* An XFX form instruction with the SPR field filled in.  */
   4947   1.8  christos #define XSPR(op, xop, spr)			\
   4948   1.8  christos   (X ((op), (xop))				\
   4949   1.1     skrll    | ((((uint64_t)(spr)) & 0x1f) << 16)	\
   4950   1.1     skrll    | ((((uint64_t)(spr)) & 0x3e0) << 6))
   4951   1.1     skrll #define XSPR_MASK (X_MASK | SPR_MASK)
   4952   1.1     skrll 
   4953   1.1     skrll /* An XFX form instruction with the SPR field filled in except for the
   4954   1.1     skrll    SPRBAT field.  */
   4955   1.1     skrll #define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
   4956  1.10  christos 
   4957  1.10  christos /* An XFX form instruction with the SPR field filled in except for the
   4958  1.10  christos    SPRGQR field.  */
   4959  1.10  christos #define XSPRGQR_MASK (XSPR_MASK &~ SPRGQR_MASK)
   4960   1.1     skrll 
   4961   1.1     skrll /* An XFX form instruction with the SPR field filled in except for the
   4962   1.1     skrll    SPRG field.  */
   4963   1.1     skrll #define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
   4964   1.1     skrll 
   4965   1.1     skrll /* An X form instruction with everything filled in except the E field.  */
   4966   1.1     skrll #define XE_MASK (0xffff7fff)
   4967   1.8  christos 
   4968   1.1     skrll /* An X form user context instruction.  */
   4969   1.1     skrll #define XUC(op, xop)  (OP (op) | (((uint64_t)(xop)) & 0x1f))
   4970   1.1     skrll #define XUC_MASK      XUC(0x3f, 0x1f)
   4971   1.8  christos 
   4972   1.8  christos /* An XW form instruction.  */
   4973   1.8  christos #define XW(op, xop, rc)				\
   4974   1.8  christos   (OP (op)					\
   4975   1.1     skrll    | ((((uint64_t)(xop)) & 0x3f) << 1)	\
   4976   1.1     skrll    | ((rc) & 1))
   4977   1.1     skrll /* The mask for a G form instruction. rc not supported at present.  */
   4978   1.1     skrll #define XW_MASK XW (0x3f, 0x3f, 0)
   4979   1.8  christos 
   4980   1.8  christos /* An APU form instruction.  */
   4981   1.8  christos #define APU(op, xop, rc)			\
   4982   1.8  christos   (OP (op)					\
   4983   1.1     skrll    | (((uint64_t)(xop)) & 0x3ff) << 1	\
   4984   1.1     skrll    | ((rc) & 1))
   4985   1.1     skrll 
   4986   1.1     skrll /* The mask for an APU form instruction.  */
   4987   1.1     skrll #define APU_MASK APU (0x3f, 0x3ff, 1)
   4988   1.1     skrll #define APU_RT_MASK (APU_MASK | RT_MASK)
   4989  1.12  christos #define APU_RA_MASK (APU_MASK | RA_MASK)
   4990  1.12  christos 
   4991  1.12  christos /* An SVL form instruction. */
   4992  1.12  christos #define SVL(op, xop, rc)			\
   4993  1.12  christos   (OP (op)					\
   4994  1.12  christos    | ((((uint64_t)(xop)) & 0x1f) << 1)		\
   4995  1.12  christos    | (((uint64_t)(rc)) & 1))
   4996  1.12  christos #define SVL_MASK	SVL (0x3f, 0x1f, 1)
   4997  1.12  christos 
   4998  1.12  christos /* An SVM form instruction. */
   4999  1.12  christos #define SVM(op, xop)				\
   5000  1.12  christos   (OP (op)					\
   5001  1.12  christos    | (((uint64_t)(xop)) & 0x3f))
   5002  1.12  christos #define SVM_MASK	SVM (0x3f, 0x3f)
   5003  1.12  christos 
   5004  1.12  christos /* An SVRM form instruction. */
   5005  1.12  christos #define SVRM(op, xop)				\
   5006  1.12  christos   (OP (op)					\
   5007  1.12  christos    | (((uint64_t)(xop)) & 0x3f))
   5008  1.12  christos #define SVRM_MASK	SVRM (0x3f, 0x3f)
   5009  1.12  christos 
   5010  1.12  christos /* An SVI form instruction. */
   5011  1.12  christos #define SVI(op, xop)				\
   5012  1.12  christos   (OP (op)					\
   5013  1.12  christos    | (((uint64_t)(xop)) & 0x3f))
   5014   1.1     skrll #define SVI_MASK	SVI (0x3f, 0x3f)
   5015   1.1     skrll 
   5016   1.1     skrll /* The BO encodings used in extended conditional branch mnemonics.  */
   5017   1.1     skrll #define BODNZF	(0x0)
   5018   1.1     skrll #define BODNZFP	(0x1)
   5019   1.1     skrll #define BODZF	(0x2)
   5020   1.1     skrll #define BODZFP	(0x3)
   5021   1.1     skrll #define BODNZT	(0x8)
   5022   1.1     skrll #define BODNZTP	(0x9)
   5023   1.1     skrll #define BODZT	(0xa)
   5024   1.1     skrll #define BODZTP	(0xb)
   5025   1.1     skrll 
   5026   1.1     skrll #define BOF	(0x4)
   5027   1.1     skrll #define BOFP	(0x5)
   5028   1.1     skrll #define BOFM4	(0x6)
   5029   1.1     skrll #define BOFP4	(0x7)
   5030   1.1     skrll #define BOT	(0xc)
   5031   1.1     skrll #define BOTP	(0xd)
   5032   1.1     skrll #define BOTM4	(0xe)
   5033   1.1     skrll #define BOTP4	(0xf)
   5034   1.1     skrll 
   5035   1.1     skrll #define BODNZ	(0x10)
   5036   1.1     skrll #define BODNZP	(0x11)
   5037   1.1     skrll #define BODZ	(0x12)
   5038   1.1     skrll #define BODZP	(0x13)
   5039   1.1     skrll #define BODNZM4 (0x18)
   5040   1.1     skrll #define BODNZP4 (0x19)
   5041   1.1     skrll #define BODZM4	(0x1a)
   5042   1.1     skrll #define BODZP4	(0x1b)
   5043   1.1     skrll 
   5044   1.4  christos #define BOU	(0x14)
   5045   1.4  christos 
   5046   1.4  christos /* The BO16 encodings used in extended VLE conditional branch mnemonics.  */
   5047   1.4  christos #define BO16F   (0x0)
   5048   1.4  christos #define BO16T   (0x1)
   5049   1.4  christos 
   5050   1.4  christos /* The BO32 encodings used in extended VLE conditional branch mnemonics.  */
   5051   1.4  christos #define BO32F   (0x0)
   5052   1.4  christos #define BO32T   (0x1)
   5053   1.4  christos #define BO32DNZ (0x2)
   5054   1.1     skrll #define BO32DZ  (0x3)
   5055   1.1     skrll 
   5056   1.1     skrll /* The BI condition bit encodings used in extended conditional branch
   5057   1.1     skrll    mnemonics.  */
   5058   1.1     skrll #define CBLT	(0)
   5059   1.1     skrll #define CBGT	(1)
   5060   1.1     skrll #define CBEQ	(2)
   5061   1.1     skrll #define CBSO	(3)
   5062   1.1     skrll 
   5063   1.1     skrll /* The TO encodings used in extended trap mnemonics.  */
   5064   1.1     skrll #define TOLGT	(0x1)
   5065   1.1     skrll #define TOLLT	(0x2)
   5066   1.1     skrll #define TOEQ	(0x4)
   5067   1.1     skrll #define TOLGE	(0x5)
   5068   1.1     skrll #define TOLNL	(0x5)
   5069   1.1     skrll #define TOLLE	(0x6)
   5070   1.1     skrll #define TOLNG	(0x6)
   5071   1.1     skrll #define TOGT	(0x8)
   5072   1.1     skrll #define TOGE	(0xc)
   5073   1.1     skrll #define TONL	(0xc)
   5074   1.1     skrll #define TOLT	(0x10)
   5075   1.1     skrll #define TOLE	(0x14)
   5076   1.1     skrll #define TONG	(0x14)
   5077   1.1     skrll #define TONE	(0x18)
   5078   1.1     skrll #define TOU	(0x1f)
   5079   1.1     skrll 
   5080   1.1     skrll /* Smaller names for the flags so each entry in the opcodes table will
   5082   1.1     skrll    fit on a single line.  */
   5083   1.1     skrll #undef	PPC
   5084   1.1     skrll #define PPC	PPC_OPCODE_PPC
   5085   1.1     skrll #define PPCCOM	PPC_OPCODE_PPC | PPC_OPCODE_COMMON
   5086   1.2     skrll #define POWER4	PPC_OPCODE_POWER4
   5087   1.5  christos #define POWER5	PPC_OPCODE_POWER5
   5088   1.5  christos #define POWER6	PPC_OPCODE_POWER6
   5089  1.11  christos #define POWER7	PPC_OPCODE_POWER7
   5090  1.12  christos #define POWER8	PPC_OPCODE_POWER8
   5091   1.1     skrll #define POWER9	PPC_OPCODE_POWER9
   5092   1.3  christos #define POWER10 PPC_OPCODE_POWER10
   5093   1.3  christos #define FUTURE	PPC_OPCODE_FUTURE
   5094   1.3  christos #define CELL	PPC_OPCODE_CELL
   5095   1.1     skrll #define PPC64	PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
   5096   1.1     skrll #define NON32	(PPC_OPCODE_64 | PPC_OPCODE_POWER4	\
   5097   1.1     skrll 		 | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
   5098   1.1     skrll #define PPC403	PPC_OPCODE_403
   5099   1.3  christos #define PPC405	PPC_OPCODE_405
   5100   1.5  christos #define PPC440	PPC_OPCODE_440
   5101  1.10  christos #define PPC464	PPC440
   5102  1.10  christos #define PPC476	PPC_OPCODE_476
   5103   1.5  christos #define PPC750	PPC_OPCODE_750
   5104   1.5  christos #define GEKKO	PPC_OPCODE_750
   5105   1.1     skrll #define BROADWAY PPC_OPCODE_750
   5106   1.1     skrll #define PPC7450 PPC_OPCODE_7450
   5107   1.8  christos #define PPC860	PPC_OPCODE_860
   5108   1.8  christos #define PPCPS	PPC_OPCODE_PPCPS
   5109   1.1     skrll #define PPCVEC	PPC_OPCODE_ALTIVEC
   5110   1.8  christos #define PPCVEC2	(PPC_OPCODE_POWER8 | PPC_OPCODE_E6500)
   5111   1.8  christos #define PPCVEC3	PPC_OPCODE_POWER9
   5112  1.11  christos #define PPCVSX	PPC_OPCODE_VSX
   5113  1.12  christos #define PPCVSX2	PPC_OPCODE_POWER8
   5114   1.1     skrll #define PPCVSX3	PPC_OPCODE_POWER9
   5115   1.1     skrll #define PPCVSX4	PPC_OPCODE_POWER10
   5116   1.3  christos #define PPCVSXF	PPC_OPCODE_FUTURE
   5117   1.8  christos #define POWER	PPC_OPCODE_POWER
   5118   1.8  christos #define POWER2	PPC_OPCODE_POWER | PPC_OPCODE_POWER2
   5119   1.1     skrll #define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
   5120   1.1     skrll #define PPCPWR2 (PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 \
   5121   1.1     skrll 		 | PPC_OPCODE_COMMON)
   5122   1.1     skrll #define COM	PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
   5123   1.8  christos #define M601	PPC_OPCODE_POWER | PPC_OPCODE_601
   5124   1.8  christos #define PWRCOM	PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
   5125   1.1     skrll #define MFDEC1	PPC_OPCODE_POWER
   5126   1.7  christos #define MFDEC2	(PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
   5127   1.1     skrll 		 | PPC_OPCODE_TITAN)
   5128   1.7  christos #define BOOKE	PPC_OPCODE_BOOKE
   5129   1.8  christos #define NO371	PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
   5130   1.7  christos #define PPCE300 PPC_OPCODE_E300
   5131   1.7  christos #define PPCSPE	PPC_OPCODE_SPE
   5132   1.8  christos #define PPCSPE2 PPC_OPCODE_SPE2
   5133   1.1     skrll #define PPCISEL PPC_OPCODE_ISEL
   5134   1.1     skrll #define PPCEFS	PPC_OPCODE_EFS
   5135  1.12  christos #define PPCEFS2	PPC_OPCODE_EFS2
   5136   1.1     skrll #define PPCBRLK PPC_OPCODE_BRLOCK
   5137  1.10  christos #define PPCPMR	PPC_OPCODE_PMR
   5138  1.12  christos #define PPCTMR	PPC_OPCODE_TMR
   5139   1.3  christos #define PPCCHLK PPC_OPCODE_CACHELCK
   5140  1.12  christos #define PPCRFMCI PPC_OPCODE_RFMCI
   5141  1.12  christos #define E500MC	PPC_OPCODE_E500MC
   5142   1.3  christos #define PPCA2	PPC_OPCODE_A2
   5143   1.4  christos #define TITAN	PPC_OPCODE_TITAN
   5144  1.12  christos #define MULHW	PPC_OPCODE_405 | PPC_OPCODE_440 | PPC_OPCODE_476 | TITAN
   5145  1.12  christos #define E500	PPC_OPCODE_E500
   5146  1.12  christos #define E6500	PPC_OPCODE_E6500
   5147  1.12  christos #define PPCVLE	PPC_OPCODE_VLE
   5148  1.12  christos #define PPCHTM	PPC_OPCODE_POWER8
   5149  1.11  christos #define E200Z4	PPC_OPCODE_E200Z4
   5150  1.11  christos #define PPCLSP	PPC_OPCODE_LSP
   5151  1.11  christos #define SVP64	PPC_OPCODE_SVP64
   5152   1.1     skrll /* Used to mark extended mnemonic in deprecated field so that -Mraw
   5153   1.1     skrll    won't use this variant in disassembly.  */
   5154   1.1     skrll #define EXT	PPC_OPCODE_RAW
   5155   1.1     skrll 
   5156   1.1     skrll /* The opcode table.
   5158   1.1     skrll 
   5159   1.1     skrll    The format of the opcode table is:
   5160   1.1     skrll 
   5161   1.1     skrll    NAME		OPCODE		MASK	     FLAGS	ANTI		{OPERANDS}
   5162   1.1     skrll 
   5163   1.4  christos    NAME is the name of the instruction.
   5164   1.4  christos    OPCODE is the instruction opcode.
   5165   1.1     skrll    MASK is the opcode mask; this is used to tell the disassembler
   5166   1.1     skrll      which bits in the actual opcode must match OPCODE.
   5167   1.1     skrll    FLAGS are flags indicating which processors support the instruction.
   5168   1.1     skrll    ANTI indicates which processors don't support the instruction.
   5169   1.1     skrll    OPERANDS is the list of operands.
   5170   1.1     skrll 
   5171   1.1     skrll    The disassembler reads the table in order and prints the first
   5172   1.1     skrll    instruction which matches, so this table is sorted to put more
   5173   1.1     skrll    specific instructions before more general instructions.
   5174   1.1     skrll 
   5175   1.1     skrll    This table must be sorted by major opcode.  Please try to keep it
   5176   1.7  christos    vaguely sorted within major opcode too, except of course where
   5177  1.11  christos    constrained otherwise by disassembler operation.  */
   5178  1.11  christos 
   5179  1.11  christos const struct powerpc_opcode powerpc_opcodes[] = {
   5180  1.11  christos {"attn",	X(0,256),	X_MASK,	  POWER4|PPCA2,	PPC476|PPCVLE,	{0}},
   5181  1.11  christos {"tdlgti",	OPTO(2,TOLGT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5182  1.11  christos {"tdllti",	OPTO(2,TOLLT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5183  1.11  christos {"tdeqi",	OPTO(2,TOEQ),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5184  1.11  christos {"tdlgei",	OPTO(2,TOLGE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5185  1.11  christos {"tdlnli",	OPTO(2,TOLNL),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5186  1.11  christos {"tdllei",	OPTO(2,TOLLE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5187  1.11  christos {"tdlngi",	OPTO(2,TOLNG),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5188  1.11  christos {"tdgti",	OPTO(2,TOGT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5189  1.11  christos {"tdgei",	OPTO(2,TOGE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5190  1.11  christos {"tdnli",	OPTO(2,TONL),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5191  1.11  christos {"tdlti",	OPTO(2,TOLT),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5192   1.7  christos {"tdlei",	OPTO(2,TOLE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5193   1.7  christos {"tdngi",	OPTO(2,TONG),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5194  1.11  christos {"tdnei",	OPTO(2,TONE),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5195  1.11  christos {"tdui",	OPTO(2,TOU),	OPTO_MASK,   PPC64,	PPCVLE|EXT,	{RA, SI}},
   5196  1.11  christos {"tdi",		OP(2),		OP_MASK,     PPC64,	PPCVLE,		{TO, RA, SI}},
   5197  1.11  christos 
   5198  1.11  christos {"twlgti",	OPTO(3,TOLGT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5199  1.11  christos {"tlgti",	OPTO(3,TOLGT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5200  1.11  christos {"twllti",	OPTO(3,TOLLT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5201  1.11  christos {"tllti",	OPTO(3,TOLLT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5202  1.11  christos {"tweqi",	OPTO(3,TOEQ),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5203  1.11  christos {"teqi",	OPTO(3,TOEQ),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5204  1.11  christos {"twlgei",	OPTO(3,TOLGE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5205  1.11  christos {"tlgei",	OPTO(3,TOLGE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5206  1.11  christos {"twlnli",	OPTO(3,TOLNL),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5207  1.11  christos {"tlnli",	OPTO(3,TOLNL),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5208  1.11  christos {"twllei",	OPTO(3,TOLLE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5209  1.11  christos {"tllei",	OPTO(3,TOLLE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5210  1.11  christos {"twlngi",	OPTO(3,TOLNG),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5211  1.11  christos {"tlngi",	OPTO(3,TOLNG),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5212  1.11  christos {"twgti",	OPTO(3,TOGT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5213  1.11  christos {"tgti",	OPTO(3,TOGT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5214  1.11  christos {"twgei",	OPTO(3,TOGE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5215  1.11  christos {"tgei",	OPTO(3,TOGE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5216  1.11  christos {"twnli",	OPTO(3,TONL),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5217  1.11  christos {"tnli",	OPTO(3,TONL),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5218  1.11  christos {"twlti",	OPTO(3,TOLT),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5219  1.11  christos {"tlti",	OPTO(3,TOLT),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5220  1.11  christos {"twlei",	OPTO(3,TOLE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5221  1.11  christos {"tlei",	OPTO(3,TOLE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5222  1.11  christos {"twngi",	OPTO(3,TONG),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5223  1.11  christos {"tngi",	OPTO(3,TONG),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5224   1.7  christos {"twnei",	OPTO(3,TONE),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5225   1.7  christos {"tnei",	OPTO(3,TONE),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5226   1.7  christos {"twui",	OPTO(3,TOU),	OPTO_MASK,   PPCCOM,	PPCVLE|EXT,	{RA, SI}},
   5227   1.7  christos {"tui",		OPTO(3,TOU),	OPTO_MASK,   PWRCOM,	PPCVLE|EXT,	{RA, SI}},
   5228   1.7  christos {"twi",		OP(3),		OP_MASK,     PPCCOM,	PPCVLE,		{TO, RA, SI}},
   5229   1.7  christos {"ti",		OP(3),		OP_MASK,     PWRCOM,	PPCVLE,		{TO, RA, SI}},
   5230   1.7  christos 
   5231  1.14  christos {"ps_cmpu0",	X  (4,	 0),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5232   1.7  christos {"vaddubm",	VX (4,	 0),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5233  1.11  christos {"vmul10cuq",	VX (4,	 1),	VXVB_MASK,   PPCVEC3,	0,		{VD, VA}},
   5234   1.7  christos {"vmaxub",	VX (4,	 2),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5235   1.7  christos {"vucmprhn",	VX (4,	 3),	VX_MASK,     FUTURE,	0,		{VD, VA, VB}},
   5236   1.7  christos {"vrlb",	VX (4,	 4),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5237   1.7  christos {"vrlq",	VX (4,	 5),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5238  1.11  christos {"vcmpequb",	VXR(4,	 6,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5239   1.7  christos {"vcmpneb",	VXR(4,	 7,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5240   1.7  christos {"vmuloub",	VX (4,	 8),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5241  1.11  christos {"vaddfp",	VX (4,	10),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5242  1.11  christos {"vdivuq",	VX (4,  11),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5243  1.11  christos {"psq_lx",	XW (4,	 6,0),	XW_MASK,     PPCPS,	0,		{FRT,RA,RB,PSWM,PSQM}},
   5244  1.11  christos {"vmrghb",	VX (4,	12),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5245   1.7  christos {"vstribl",	VXVA(4,13,0),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5246   1.7  christos {"vstribr",	VXVA(4,13,1),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5247  1.11  christos {"vstrihl",	VXVA(4,13,2),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5248   1.7  christos {"vstrihr",	VXVA(4,13,3),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5249   1.7  christos {"psq_stx",	XW (4,	 7,0),	XW_MASK,     PPCPS,	0,		{FRS,RA,RB,PSWM,PSQM}},
   5250  1.11  christos {"vpkuhum",	VX (4,	14),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5251   1.7  christos {"vinsbvlx",	VX (4,  15),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5252   1.7  christos {"mulhhwu",	XRC(4,	 8,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5253  1.11  christos {"mulhhwu.",	XRC(4,	 8,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5254   1.7  christos {"mtvsrbmi",	DX (4,10),	DX_MASK,     POWER10,	0,		{VD, DXD}},
   5255   1.7  christos {"ps_sum0",	A  (4,	10,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5256  1.11  christos {"ps_sum0.",	A  (4,	10,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5257   1.7  christos {"vsldbi",	VX (4,  22),	VXSH_MASK,   POWER10,	0,		{VD, VA, VB, SH3}},
   5258   1.7  christos {"ps_sum1",	A  (4,	11,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5259  1.11  christos {"ps_sum1.",	A  (4,	11,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5260   1.7  christos {"vextdubvlx",	VX (4,  24),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5261   1.7  christos {"ps_muls0",	A  (4,	12,0),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5262  1.11  christos {"machhwu",	XO (4,	12,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5263   1.7  christos {"vextdubvrx",	VX (4,  25),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5264  1.11  christos {"ps_muls0.",	A  (4,	12,1),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5265   1.7  christos {"machhwu.",	XO (4,	12,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5266  1.11  christos {"vextduhvlx",	VX (4,  26),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5267   1.7  christos {"ps_muls1",	A  (4,	13,0),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5268  1.11  christos {"vextduhvrx",	VX (4,  27),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5269   1.7  christos {"ps_muls1.",	A  (4,	13,1),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5270  1.11  christos {"vextduwvlx",	VX (4,  28),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5271   1.7  christos {"ps_madds0",	A  (4,	14,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5272  1.11  christos {"vextduwvrx",	VX (4,  29),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5273   1.7  christos {"ps_madds0.",	A  (4,	14,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5274   1.7  christos {"vextddvlx",	VX (4,  30),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5275   1.7  christos {"ps_madds1",	A  (4,	15,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5276   1.7  christos {"vextddvrx",	VX (4,  31),	VXRC_MASK,   POWER10,	0,		{VD, VA, VB, RC}},
   5277   1.7  christos {"ps_madds1.",	A  (4,	15,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5278   1.7  christos {"vmhaddshs",	VXA(4,	32),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5279  1.11  christos {"vmhraddshs",	VXA(4,	33),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5280   1.7  christos {"vmladduhm",	VXA(4,	34),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5281   1.7  christos {"vmsumudm",	VXA(4,	35),	VXA_MASK,    PPCVEC3,	0,		{VD, VA, VB, VC}},
   5282   1.7  christos {"ps_div",	A  (4,	18,0),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5283   1.7  christos {"vmsumcud",	VXA(4,  23),	VXA_MASK,    POWER10,	0,		{VD, VA, VB, VC}},
   5284   1.7  christos {"vmsumubm",	VXA(4,	36),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5285   1.7  christos {"ps_div.",	A  (4,	18,1),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5286   1.7  christos {"vmsummbm",	VXA(4,	37),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5287   1.7  christos {"vmsumuhm",	VXA(4,	38),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5288   1.7  christos {"vmsumuhs",	VXA(4,	39),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5289   1.7  christos {"ps_sub",	A  (4,	20,0),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5290   1.7  christos {"vmsumshm",	VXA(4,	40),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5291   1.7  christos {"ps_sub.",	A  (4,	20,1),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5292   1.7  christos {"vmsumshs",	VXA(4,	41),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5293   1.7  christos {"ps_add",	A  (4,	21,0),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5294   1.7  christos {"vsel",	VXA(4,	42),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5295   1.7  christos {"ps_add.",	A  (4,	21,1),	AFRC_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5296   1.7  christos {"vperm",	VXA(4,	43),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VB, VC}},
   5297   1.7  christos {"vsldoi",	VXA(4,	44),	VXASHB_MASK, PPCVEC,	0,		{VD, VA, VB, SHB}},
   5298   1.7  christos {"vpermxor",	VXA(4,	45),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5299   1.7  christos {"ps_sel",	A  (4,	23,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5300   1.7  christos {"vmaddfp",	VXA(4,	46),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VC, VB}},
   5301   1.7  christos {"ps_sel.",	A  (4,	23,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5302   1.7  christos {"vnmsubfp",	VXA(4,	47),	VXA_MASK,    PPCVEC,	0,		{VD, VA, VC, VB}},
   5303   1.7  christos {"ps_res",	A  (4,	24,0), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5304   1.7  christos {"maddhd",	VXA(4,	48),	VXA_MASK,    POWER9,	0,		{RT, RA, RB, RC}},
   5305   1.7  christos {"ps_res.",	A  (4,	24,1), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5306   1.7  christos {"maddhdu",	VXA(4,	49),	VXA_MASK,    POWER9,	0,		{RT, RA, RB, RC}},
   5307   1.7  christos {"ps_mul",	A  (4,	25,0),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5308   1.7  christos {"ps_mul.",	A  (4,	25,1),	AFRB_MASK,   PPCPS,	0,		{FRT, FRA, FRC}},
   5309   1.7  christos {"maddld",	VXA(4,	51),	VXA_MASK,    POWER9,	0,		{RT, RA, RB, RC}},
   5310   1.7  christos {"ps_rsqrte",	A  (4,	26,0), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5311   1.7  christos {"ps_rsqrte.",	A  (4,	26,1), AFRAFRC_MASK, PPCPS,	0,		{FRT, FRB}},
   5312   1.7  christos {"ps_msub",	A  (4,	28,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5313   1.7  christos {"ps_msub.",	A  (4,	28,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5314   1.7  christos {"ps_madd",	A  (4,	29,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5315   1.7  christos {"ps_madd.",	A  (4,	29,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5316   1.7  christos {"vpermr",	VXA(4,	59),	VXA_MASK,    PPCVEC3,	0,		{VD, VA, VB, VC}},
   5317   1.7  christos {"ps_nmsub",	A  (4,	30,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5318   1.7  christos {"vaddeuqm",	VXA(4,	60),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5319   1.7  christos {"ps_nmsub.",	A  (4,	30,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5320   1.7  christos {"vaddecuq",	VXA(4,	61),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5321   1.7  christos {"ps_nmadd",	A  (4,	31,0),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5322   1.7  christos {"vsubeuqm",	VXA(4,	62),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5323   1.7  christos {"ps_nmadd.",	A  (4,	31,1),	A_MASK,	     PPCPS,	0,		{FRT, FRA, FRC, FRB}},
   5324   1.7  christos {"vsubecuq",	VXA(4,	63),	VXA_MASK,    PPCVEC2,	0,		{VD, VA, VB, VC}},
   5325  1.14  christos {"ps_cmpo0",	X  (4,	32),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5326   1.7  christos {"vadduhm",	VX (4,	64),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5327  1.11  christos {"vmul10ecuq",	VX (4,	65),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5328   1.7  christos {"vmaxuh",	VX (4,	66),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5329   1.7  christos {"vucmprln",	VX (4,	67),	VX_MASK,     FUTURE,	0,		{VD, VA, VB}},
   5330   1.7  christos {"vrlh",	VX (4,	68),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5331   1.7  christos {"vrlqmi",	VX (4,	69),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5332   1.7  christos {"vcmpequh",	VXR(4,	70,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5333   1.7  christos {"vcmpneh",	VXR(4,	71,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5334   1.7  christos {"vmulouh",	VX (4,	72),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5335   1.7  christos {"vsubfp",	VX (4,	74),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5336  1.11  christos {"psq_lux",	XW (4,	38,0),	XW_MASK,     PPCPS,	0,		{FRT,RA,RB,PSWM,PSQM}},
   5337   1.7  christos {"vmrghh",	VX (4,	76),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5338   1.7  christos {"psq_stux",	XW (4,	39,0),	XW_MASK,     PPCPS,	0,		{FRS,RA,RB,PSWM,PSQM}},
   5339   1.7  christos {"vpkuwum",	VX (4,	78),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5340   1.7  christos {"vinshvlx",	VX (4,  79),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5341   1.7  christos {"ps_neg",	XRC(4,	40,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5342   1.7  christos {"mulhhw",	XRC(4,	40,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5343   1.7  christos {"ps_neg.",	XRC(4,	40,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5344   1.7  christos {"mulhhw.",	XRC(4,	40,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5345   1.7  christos {"machhw",	XO (4,	44,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5346   1.7  christos {"machhw.",	XO (4,	44,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5347   1.7  christos {"nmachhw",	XO (4,	46,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5348  1.14  christos {"nmachhw.",	XO (4,	46,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5349   1.7  christos {"ps_cmpu1",	X  (4,	64),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5350   1.7  christos {"vadduwm",	VX (4,	128),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5351   1.7  christos {"vmaxuw",	VX (4,	130),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5352   1.7  christos {"vucmprhb",	VX (4,	131),	VX_MASK,     FUTURE,	0,		{VD, VA, VB}},
   5353   1.7  christos {"vrlw",	VX (4,	132),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5354   1.7  christos {"vrlwmi",	VX (4,	133),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5355  1.11  christos {"vcmpequw",	VXR(4,	134,0), VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5356   1.7  christos {"vcmpnew",	VXR(4,	135,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5357   1.7  christos {"vmulouw",	VX (4,	136),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5358  1.11  christos {"vmuluwm",	VX (4,	137),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5359   1.7  christos {"vdivuw",	VX (4,  139),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5360   1.7  christos {"vmrghw",	VX (4,	140),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5361   1.7  christos {"vpkuhus",	VX (4,	142),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5362   1.7  christos {"vinswvlx",	VX (4,  143),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5363   1.7  christos {"ps_mr",	XRC(4,	72,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5364   1.7  christos {"ps_mr.",	XRC(4,	72,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5365   1.7  christos {"machhwsu",	XO (4,	76,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5366  1.14  christos {"machhwsu.",	XO (4,	76,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5367   1.7  christos {"ps_cmpo1",	X  (4,	96),	XBF_MASK,    PPCPS,	0,		{BF, FRA, FRB}},
   5368   1.7  christos {"vaddudm",	VX (4, 192),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5369   1.7  christos {"vmaxud",	VX (4, 194),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5370   1.7  christos {"vucmprlb",	VX (4, 195),	VX_MASK,     FUTURE,	0,		{VD, VA, VB}},
   5371  1.11  christos {"vrld",	VX (4, 196),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5372  1.11  christos {"vrldmi",	VX (4, 197),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5373   1.7  christos {"vcmpeqfp",	VXR(4, 198,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5374  1.11  christos {"vcmpequd",	VXR(4, 199,0),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5375   1.7  christos {"vmuloud",	VX (4, 200),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5376   1.7  christos {"vdivud",	VX (4, 203),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5377   1.7  christos {"vpkuwus",	VX (4, 206),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5378   1.7  christos {"vinsw",	VX (4, 207),   VXUIMM4_MASK, POWER10,	0,		{VD, RB, UIMM4}},
   5379   1.7  christos {"machhws",	XO (4, 108,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5380  1.11  christos {"machhws.",	XO (4, 108,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5381   1.7  christos {"nmachhws",	XO (4, 110,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5382  1.14  christos {"nmachhws.",	XO (4, 110,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5383   1.7  christos {"vadduqm",	VX (4, 256),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5384  1.11  christos {"vcmpuq",	VX (4, 257),	VXBF_MASK,   POWER10,	0,		{BF, VA, VB}},
   5385   1.7  christos {"vmaxsb",	VX (4, 258),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5386   1.7  christos {"vucmprhh",	VX (4, 259),	VX_MASK,     FUTURE,	0,		{VD, VA, VB}},
   5387   1.7  christos {"vslb",	VX (4, 260),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5388  1.11  christos {"vslq",	VX (4, 261),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5389   1.7  christos {"vcmpnezb",	VXR(4, 263,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5390   1.7  christos {"vmulosb",	VX (4, 264),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5391  1.11  christos {"vrefp",	VX (4, 266),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5392   1.7  christos {"vdivsq",	VX (4, 267),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5393   1.7  christos {"vmrglb",	VX (4, 268),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5394   1.7  christos {"vpkshus",	VX (4, 270),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5395   1.7  christos {"vinsbvrx",	VX (4, 271),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5396   1.7  christos {"ps_nabs",	XRC(4, 136,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5397   1.7  christos {"mulchwu",	XRC(4, 136,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5398   1.7  christos {"ps_nabs.",	XRC(4, 136,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5399  1.11  christos {"mulchwu.",	XRC(4, 136,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5400   1.7  christos {"macchwu",	XO (4, 140,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5401  1.14  christos {"macchwu.",	XO (4, 140,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5402   1.7  christos {"vaddcuq",	VX (4, 320),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5403  1.11  christos {"vcmpsq",	VX (4, 321),	VXBF_MASK,   POWER10,	0,		{BF, VA, VB}},
   5404   1.7  christos {"vmaxsh",	VX (4, 322),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5405   1.7  christos {"vucmprlh",	VX (4, 323),	VX_MASK,     FUTURE,	0,		{VD, VA, VB}},
   5406   1.7  christos {"vslh",	VX (4, 324),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5407   1.7  christos {"vrlqnm",	VX (4, 325),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5408   1.7  christos {"vcmpnezh",	VXR(4, 327,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5409  1.11  christos {"vmulosh",	VX (4, 328),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5410   1.7  christos {"vrsqrtefp",	VX (4, 330),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5411   1.7  christos {"vmrglh",	VX (4, 332),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5412   1.7  christos {"vpkswus",	VX (4, 334),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5413   1.7  christos {"vinshvrx",	VX (4, 335),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5414   1.7  christos {"mulchw",	XRC(4, 168,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5415   1.7  christos {"mulchw.",	XRC(4, 168,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5416   1.7  christos {"macchw",	XO (4, 172,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5417   1.7  christos {"macchw.",	XO (4, 172,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5418  1.14  christos {"nmacchw",	XO (4, 174,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5419  1.14  christos {"nmacchw.",	XO (4, 174,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5420  1.14  christos {"vaddcuw",	VX (4, 384),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5421  1.14  christos {"vmaxsw",	VX (4, 386),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5422  1.14  christos {"vupkhsntob",	VXSEL5 (4, 387,0),	VXVA_MASK,	FUTURE,	0,	{VD, VB}},
   5423  1.14  christos {"vupklsntob",	VXSEL5 (4, 387,1),	VXVA_MASK,	FUTURE,	0,	{VD, VB}},
   5424   1.7  christos {"vupkint8tobf16", VXSEL4 (4, 387,1),	VXUIMM1_MASK,	FUTURE,	0,	{VD, VB, UIMM1}},
   5425   1.7  christos {"vupkint4tobf16", VXSEL3 (4, 387,2),	VXUIMM2_MASK,	FUTURE,	0,	{VD, VB, UIMM2}},
   5426   1.7  christos {"vupkint8tofp32", VXSEL3 (4, 387,3),	VXUIMM2_MASK,	FUTURE,	0,	{VD, VB, UIMM2}},
   5427   1.7  christos {"vupkint4tofp32", VXSEL2 (4, 387,2),	VXUIMM3_MASK,	FUTURE,	0,	{VD, VB, UIMM3}},
   5428   1.7  christos {"vslw",	VX (4, 388),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5429  1.11  christos {"vrlwnm",	VX (4, 389),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5430   1.7  christos {"vcmpnezw",	VXR(4, 391,0),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5431  1.11  christos {"vmulosw",	VX (4, 392),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5432   1.7  christos {"vexptefp",	VX (4, 394),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5433  1.11  christos {"vdivsw",	VX (4, 395),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5434   1.7  christos {"vmrglw",	VX (4, 396),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5435   1.7  christos {"vclrlb",	VX (4, 397),	VX_MASK,     POWER10,	0,		{VD, VA, RB}},
   5436   1.7  christos {"vpkshss",	VX (4, 398),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5437   1.7  christos {"vinswvrx",	VX (4, 399),	VX_MASK,     POWER10,	0,		{VD, RA, VB}},
   5438   1.7  christos {"macchwsu",	XO (4, 204,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5439   1.7  christos {"macchwsu.",	XO (4, 204,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5440  1.11  christos {"vmaxsd",	VX (4, 450),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5441  1.11  christos {"vsl",		VX (4, 452),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5442  1.11  christos {"vrldnm",	VX (4, 453),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5443   1.7  christos {"vcmpgefp",	VXR(4, 454,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5444  1.11  christos {"vcmpequq",	VXR(4, 455,0),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5445  1.11  christos {"vmulosd",	VX (4, 456),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5446   1.7  christos {"vmulld",	VX (4, 457),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5447  1.11  christos {"vlogefp",	VX (4, 458),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5448   1.7  christos {"vdivsd",	VX (4, 459),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5449   1.7  christos {"vclrrb",	VX (4, 461),	VX_MASK,     POWER10,	0,		{VD, VA, RB}},
   5450   1.7  christos {"vpkswss",	VX (4, 462),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5451   1.7  christos {"vinsd",	VX (4, 463),   VXUIMM4_MASK, POWER10,	0,		{VD, RB, UIMM4}},
   5452   1.7  christos {"macchws",	XO (4, 236,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5453   1.7  christos {"macchws.",	XO (4, 236,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5454   1.7  christos {"nmacchws",	XO (4, 238,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5455   1.7  christos {"nmacchws.",	XO (4, 238,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5456   1.7  christos {"evaddw",	VX (4, 512),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5457  1.12  christos {"vaddubs",	VX (4, 512),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5458   1.7  christos {"vmul10uq",	VX (4, 513),	VXVB_MASK,   PPCVEC3,	0,		{VD, VA}},
   5459   1.7  christos {"evaddiw",	VX (4, 514),	VX_MASK,     PPCSPE,	0,		{RS, RB, UIMM}},
   5460  1.11  christos {"vminub",	VX (4, 514),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5461  1.12  christos {"evsubw",	VX (4, 516),	VX_MASK,     PPCSPE,	EXT,		{RS, RB, RA}},
   5462   1.7  christos {"evsubfw",	VX (4, 516),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5463   1.7  christos {"vsrb",	VX (4, 516),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5464   1.7  christos {"vsrq",	VX (4, 517),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5465   1.7  christos {"evsubiw",	VX (4, 518),	VX_MASK,     PPCSPE,	EXT,		{RS, RB, UIMM}},
   5466   1.7  christos {"evsubifw",	VX (4, 518),	VX_MASK,     PPCSPE,	0,		{RS, UIMM, RB}},
   5467   1.7  christos {"vcmpgtub",	VXR(4, 518,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5468   1.7  christos {"evabs",	VX (4, 520),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5469  1.11  christos {"vmuleub",	VX (4, 520),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5470   1.7  christos {"evneg",	VX (4, 521),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5471   1.7  christos {"evextsb",	VX (4, 522),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5472   1.7  christos {"vrfin",	VX (4, 522),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5473   1.7  christos {"vdiveuq",	VX (4, 523),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5474   1.7  christos {"evextsh",	VX (4, 523),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5475   1.7  christos {"evrndw",	VX (4, 524),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5476   1.7  christos {"vspltb",	VX (4, 524),   VXUIMM4_MASK, PPCVEC,	0,		{VD, VB, UIMM4}},
   5477  1.11  christos {"vextractub",	VX (4, 525),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5478   1.7  christos {"evcntlzw",	VX (4, 525),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5479   1.7  christos {"evcntlsw",	VX (4, 526),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5480   1.7  christos {"vupkhsb",	VX (4, 526),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5481   1.7  christos {"vinsblx",	VX (4, 527),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5482   1.7  christos {"brinc",	VX (4, 527),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5483  1.11  christos {"ps_abs",	XRC(4, 264,0),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5484   1.7  christos {"ps_abs.",	XRC(4, 264,1),	XRA_MASK,    PPCPS,	0,		{FRT, FRB}},
   5485  1.11  christos {"evand",	VX (4, 529),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5486   1.7  christos {"evandc",	VX (4, 530),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5487  1.11  christos {"vsrdbi",	VX (4, 534),	VXSH_MASK,   POWER10,	0,		{VD, VA, VB, SH3}},
   5488   1.7  christos {"evxor",	VX (4, 534),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5489   1.7  christos {"evmr",	VX (4, 535),	VX_MASK,     PPCSPE,	EXT,		{RS, RAB}},
   5490   1.7  christos {"evor",	VX (4, 535),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5491   1.7  christos {"evnot",	VX (4, 536),	VX_MASK,     PPCSPE,	EXT,		{RS, RAB}},
   5492   1.7  christos {"evnor",	VX (4, 536),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5493   1.7  christos {"get",		APU(4, 268,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5494   1.7  christos {"eveqv",	VX (4, 537),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5495   1.7  christos {"evorc",	VX (4, 539),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5496   1.7  christos {"evnand",	VX (4, 542),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5497   1.7  christos {"evsrwu",	VX (4, 544),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5498   1.7  christos {"evsrws",	VX (4, 545),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5499   1.7  christos {"evsrwiu",	VX (4, 546),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5500   1.7  christos {"evsrwis",	VX (4, 547),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5501   1.7  christos {"evslw",	VX (4, 548),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5502   1.7  christos {"evslwi",	VX (4, 550),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5503   1.7  christos {"evrlw",	VX (4, 552),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5504   1.7  christos {"evsplati",	VX (4, 553),	VX_MASK,     PPCSPE,	0,		{RS, SIMM}},
   5505   1.7  christos {"evrlwi",	VX (4, 554),	VX_MASK,     PPCSPE,	0,		{RS, RA, EVUIMM}},
   5506   1.7  christos {"evsplatfi",	VX (4, 555),	VX_MASK,     PPCSPE,	0,		{RS, SIMM}},
   5507   1.7  christos {"evmergehi",	VX (4, 556),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5508   1.7  christos {"evmergelo",	VX (4, 557),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5509   1.7  christos {"evmergehilo",	VX (4, 558),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5510   1.7  christos {"evmergelohi",	VX (4, 559),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5511   1.7  christos {"evcmpgtu",	VX (4, 560),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5512   1.7  christos {"evcmpgts",	VX (4, 561),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5513   1.7  christos {"evcmpltu",	VX (4, 562),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5514   1.7  christos {"evcmplts",	VX (4, 563),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5515   1.7  christos {"evcmpeq",	VX (4, 564),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5516   1.7  christos {"cget",	APU(4, 284,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5517   1.7  christos {"vadduhs",	VX (4, 576),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5518   1.7  christos {"vmul10euq",	VX (4, 577),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5519   1.7  christos {"vminuh",	VX (4, 578),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5520   1.7  christos {"vsrh",	VX (4, 580),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5521   1.7  christos {"vcmpgtuh",	VXR(4, 582,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5522   1.7  christos {"vmuleuh",	VX (4, 584),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5523  1.11  christos {"vrfiz",	VX (4, 586),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5524   1.7  christos {"vsplth",	VX (4, 588),   VXUIMM3_MASK, PPCVEC,	0,		{VD, VB, UIMM3}},
   5525   1.7  christos {"vextractuh",	VX (4, 589),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5526   1.7  christos {"vupkhsh",	VX (4, 590),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5527   1.7  christos {"vinshlx",	VX (4, 591),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5528   1.7  christos {"nget",	APU(4, 300,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5529   1.7  christos {"evsel",	EVSEL(4,79),	EVSEL_MASK,  PPCSPE,	0,		{RS, RA, RB, CRFS}},
   5530   1.8  christos {"ncget",	APU(4, 316,0),	APU_RA_MASK, PPC405,	0,		{RT, FSL}},
   5531   1.7  christos {"evfsadd",	VX (4, 640),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5532   1.8  christos {"vadduws",	VX (4, 640),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5533   1.7  christos {"evfssub",	VX (4, 641),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5534   1.7  christos {"evfsmadd",	VX (4, 642),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5535   1.7  christos {"vminuw",	VX (4, 642),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5536   1.7  christos {"evfsmsub",	VX (4, 643),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5537   1.7  christos {"evfsabs",	VX (4, 644),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5538  1.11  christos {"vsrw",	VX (4, 644),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5539   1.8  christos {"evfsnabs",	VX (4, 645),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5540   1.7  christos {"evfsneg",	VX (4, 646),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5541   1.7  christos {"vcmpgtuw",	VXR(4, 646,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5542  1.11  christos {"vcmpgtuq",	VXR(4, 647,0),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5543   1.7  christos {"evfssqrt",	VX_RB_CONST(4, 647, 0),  VX_RB_CONST_MASK,	PPCEFS2,	0,		{RD, RA}},
   5544   1.8  christos {"vmuleuw",	VX (4, 648),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5545   1.7  christos {"evfsmul",	VX (4, 648),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5546  1.11  christos {"vmulhuw",	VX (4, 649),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5547   1.8  christos {"evfsdiv",	VX (4, 649),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5548   1.7  christos {"evfsnmadd",	VX (4, 650),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5549   1.7  christos {"vrfip",	VX (4, 650),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5550   1.7  christos {"vdiveuw",	VX (4, 651),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5551   1.7  christos {"evfsnmsub",	VX (4, 651),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5552   1.7  christos {"evfscmpgt",	VX (4, 652),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5553   1.7  christos {"vspltw",	VX (4, 652),   VXUIMM2_MASK, PPCVEC,	0,		{VD, VB, UIMM2}},
   5554  1.11  christos {"vextractuw",	VX (4, 653),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5555   1.7  christos {"evfscmplt",	VX (4, 653),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5556   1.8  christos {"evfscmpeq",	VX (4, 654),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5557   1.7  christos {"vupklsb",	VX (4, 654),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5558   1.7  christos {"vinswlx",	VX (4, 655),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5559   1.7  christos {"evfscfui",	VX (4, 656),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5560   1.7  christos {"evfscfh",	VX_RA_CONST(4, 657, 4),  VX_RA_CONST_MASK,	PPCEFS2,	0,		{RD, RB}},
   5561   1.8  christos {"evfscfsi",	VX (4, 657),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5562   1.7  christos {"evfscfuf",	VX (4, 658),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5563   1.7  christos {"evfscfsf",	VX (4, 659),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5564   1.7  christos {"evfsctui",	VX (4, 660),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5565   1.7  christos {"evfscth",	VX_RA_CONST(4, 661, 4),  VX_RA_CONST_MASK,	PPCEFS2,	0,		{RD, RB}},
   5566   1.7  christos {"evfsctsi",	VX (4, 661),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5567   1.7  christos {"evfsctuf",	VX (4, 662),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5568   1.7  christos {"evfsctsf",	VX (4, 663),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5569   1.7  christos {"evfsctuiz",	VX (4, 664),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5570   1.7  christos {"put",		APU(4, 332,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5571   1.8  christos {"evfsctsiz",	VX (4, 666),	VX_MASK,     PPCSPE,	0,		{RS, RB}},
   5572   1.8  christos {"evfststgt",	VX (4, 668),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5573   1.8  christos {"evfststlt",	VX (4, 669),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5574   1.8  christos {"evfststeq",	VX (4, 670),	VX_MASK,     PPCSPE,	0,		{CRFD, RA, RB}},
   5575   1.8  christos {"evfsmax",	VX (4, 672),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5576   1.8  christos {"evfsmin",	VX (4, 673),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5577   1.8  christos {"evfsaddsub",	VX (4, 674),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5578   1.8  christos {"evfssubadd",	VX (4, 675),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5579   1.8  christos {"evfssum",	VX (4, 676),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5580   1.8  christos {"evfsdiff",	VX (4, 677),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5581   1.8  christos {"evfssumdiff",	VX (4, 678),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5582   1.8  christos {"evfsdiffsum",	VX (4, 679),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5583   1.8  christos {"evfsaddx",	VX (4, 680),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5584   1.8  christos {"evfssubx",	VX (4, 681),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5585   1.8  christos {"evfsaddsubx",	VX (4, 682),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5586   1.8  christos {"evfssubaddx",	VX (4, 683),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5587   1.8  christos {"evfsmulx",	VX (4, 684),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5588   1.8  christos {"evfsmule",	VX (4, 686),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5589   1.7  christos {"evfsmulo",	VX (4, 687),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5590   1.8  christos {"efsmax",	VX (4, 688),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5591   1.7  christos {"efsmin",	VX (4, 689),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5592  1.11  christos {"efdmax",	VX (4, 696),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5593   1.7  christos {"cput",	APU(4, 348,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5594  1.11  christos {"efdmin",	VX (4, 697),	VX_MASK,     PPCEFS2,	0,		{RD, RA, RB}},
   5595   1.8  christos {"efsadd",	VX (4, 704),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5596   1.7  christos {"evsadd",	VX (4, 704),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5597   1.8  christos {"efssub",	VX (4, 705),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5598   1.7  christos {"evssub",	VX (4, 705),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5599  1.11  christos {"efsmadd",	VX (4, 706),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5600   1.7  christos {"vminud",	VX (4, 706),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5601   1.7  christos {"efsmsub",	VX (4, 707),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5602  1.11  christos {"efsabs",	VX (4, 708),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5603   1.7  christos {"evsabs",	VX (4, 708),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5604  1.11  christos {"vsr",		VX (4, 708),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5605   1.7  christos {"efsnabs",	VX (4, 709),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5606   1.8  christos {"evsnabs",	VX (4, 709),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5607   1.7  christos {"efsneg",	VX (4, 710),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5608  1.11  christos {"evsneg",	VX (4, 710),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5609   1.7  christos {"vcmpgtfp",	VXR(4, 710,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5610  1.11  christos {"efssqrt",	VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0,	{RD, RA}},
   5611  1.11  christos {"vcmpgtud",	VXR(4, 711,0),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5612   1.7  christos {"vmuleud",	VX (4, 712),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5613  1.11  christos {"efsmul",	VX (4, 712),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5614   1.8  christos {"evsmul",	VX (4, 712),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5615   1.7  christos {"vmulhud",	VX (4, 713),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5616  1.11  christos {"efsdiv",	VX (4, 713),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5617   1.8  christos {"evsdiv",	VX (4, 713),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5618   1.7  christos {"efsnmadd",	VX (4, 714),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5619  1.11  christos {"vrfim",	VX (4, 714),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5620   1.7  christos {"vdiveud",	VX (4, 715),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5621   1.7  christos {"efsnmsub",	VX (4, 715),	VX_MASK,     PPCEFS2,	0,		{RS, RA, RB}},
   5622  1.11  christos {"efscmpgt",	VX (4, 716),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5623   1.7  christos {"evscmpgt",	VX (4, 716),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5624  1.11  christos {"vextractd",	VX (4, 717),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5625   1.7  christos {"efscmplt",	VX (4, 717),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5626  1.11  christos {"evsgmplt",	VX (4, 717),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5627   1.7  christos {"efscmpeq",	VX (4, 718),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5628   1.7  christos {"evsgmpeq",	VX (4, 718),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5629  1.11  christos {"vupklsh",	VX (4, 718),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5630   1.8  christos {"vinsdlx",	VX (4, 719),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5631   1.7  christos {"efscfd",	VX (4, 719),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5632  1.11  christos {"efscfui",	VX (4, 720),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5633   1.7  christos {"evscfui",	VX (4, 720),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5634  1.11  christos {"efscfh",	VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5635   1.7  christos {"efscfsi",	VX (4, 721),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5636  1.11  christos {"evscfsi",	VX (4, 721),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5637   1.7  christos {"efscfuf",	VX (4, 722),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5638  1.11  christos {"evscfuf",	VX (4, 722),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5639   1.8  christos {"efscfsf",	VX (4, 723),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5640   1.7  christos {"evscfsf",	VX (4, 723),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5641  1.11  christos {"efsctui",	VX (4, 724),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5642   1.7  christos {"evsctui",	VX (4, 724),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5643  1.11  christos {"efscth",	VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5644   1.7  christos {"efsctsi",	VX (4, 725),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5645  1.11  christos {"evsctsi",	VX (4, 725),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5646   1.7  christos {"efsctuf",	VX (4, 726),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5647  1.11  christos {"evsctuf",	VX (4, 726),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5648   1.7  christos {"efsctsf",	VX (4, 727),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5649   1.7  christos {"evsctsf",	VX (4, 727),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5650  1.11  christos {"efsctuiz",	VX (4, 728),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5651   1.7  christos {"evsctuiz",	VX (4, 728),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5652  1.11  christos {"nput",	APU(4, 364,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5653   1.7  christos {"efsctsiz",	VX (4, 730),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5654  1.11  christos {"evsctsiz",	VX (4, 730),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5655   1.7  christos {"efststgt",	VX (4, 732),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5656  1.11  christos {"evststgt",	VX (4, 732),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5657   1.7  christos {"efststlt",	VX (4, 733),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5658   1.7  christos {"evststlt",	VX (4, 733),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5659   1.8  christos {"efststeq",	VX (4, 734),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5660   1.8  christos {"evststeq",	VX (4, 734),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5661   1.8  christos {"efdadd",	VX (4, 736),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5662   1.8  christos {"efdsub",	VX (4, 737),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5663   1.7  christos {"efdmadd",	VX (4, 738),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5664   1.7  christos {"efdcfuid",	VX (4, 738),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5665   1.7  christos {"efdmsub",	VX (4, 739),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5666   1.8  christos {"efdcfsid",	VX (4, 739),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5667   1.7  christos {"efdabs",	VX (4, 740),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5668   1.7  christos {"efdnabs",	VX (4, 741),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5669   1.8  christos {"efdneg",	VX (4, 742),	VX_MASK,     PPCEFS,	0,		{RS, RA}},
   5670   1.8  christos {"efdsqrt",	VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0,	{RD, RA}},
   5671   1.8  christos {"efdmul",	VX (4, 744),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5672   1.8  christos {"efddiv",	VX (4, 745),	VX_MASK,     PPCEFS,	0,		{RS, RA, RB}},
   5673   1.7  christos {"efdnmadd",	VX (4, 746),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5674   1.7  christos {"efdctuidz",	VX (4, 746),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5675   1.7  christos {"efdnmsub",	VX (4, 747),	VX_MASK,     PPCEFS2, 	E500|E500MC,	{RD, RA, RB}},
   5676   1.7  christos {"efdctsidz",	VX (4, 747),	VX_MASK,     E500|E500MC,0,		{RS, RB}},
   5677   1.8  christos {"efdcmpgt",	VX (4, 748),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5678   1.8  christos {"efdcmplt",	VX (4, 749),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5679   1.8  christos {"efdcmpeq",	VX (4, 750),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5680   1.8  christos {"efdcfs",	VX (4, 751),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5681   1.8  christos {"efdcfui",	VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5682   1.7  christos {"efdcfuid",	VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5683   1.7  christos {"efdcfsi",	VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5684   1.7  christos {"efdcfsid",	VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5685   1.8  christos {"efdcfh",	VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5686   1.7  christos {"efdcfuf",	VX (4, 754),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5687   1.7  christos {"efdcfsf",	VX (4, 755),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5688   1.7  christos {"efdctui",	VX (4, 756),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5689   1.8  christos {"efdcth",	VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0,	{RD, RB}},
   5690   1.8  christos {"efdctsi",	VX (4, 757),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5691   1.7  christos {"efdctuf",	VX (4, 758),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5692   1.8  christos {"efdctsf",	VX (4, 759),	VX_MASK,     PPCEFS,	0,		{RS, RB}},
   5693   1.8  christos {"efdctuiz",	VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5694   1.7  christos {"efdctuidz",	VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5695   1.7  christos {"ncput",	APU(4, 380,0),	APU_RT_MASK, PPC405,	0,		{RA, FSL}},
   5696   1.7  christos {"efdctsiz",	VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0,	{RS, RB}},
   5697   1.7  christos {"efdctsidz",	VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,	{RS, RB}},
   5698   1.7  christos {"efdtstgt",	VX (4, 764),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5699   1.7  christos {"efdtstlt",	VX (4, 765),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5700   1.7  christos {"efdtsteq",	VX (4, 766),	VX_MASK,     PPCEFS,	0,		{CRFD, RA, RB}},
   5701   1.7  christos {"evlddx",	VX (4, 768),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5702   1.7  christos {"vaddsbs",	VX (4, 768),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5703   1.7  christos {"evldd",	VX (4, 769),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5704   1.7  christos {"evldwx",	VX (4, 770),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5705  1.11  christos {"vminsb",	VX (4, 770),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5706   1.7  christos {"evldw",	VX (4, 771),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5707   1.7  christos {"evldhx",	VX (4, 772),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5708   1.7  christos {"vsrab",	VX (4, 772),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5709   1.7  christos {"vsraq",	VX (4, 773),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5710   1.7  christos {"evldh",	VX (4, 773),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5711   1.7  christos {"vcmpgtsb",	VXR(4, 774,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5712  1.11  christos {"evlhhesplatx",VX (4, 776),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5713  1.11  christos {"vmulesb",	VX (4, 776),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5714   1.7  christos {"evlhhesplat",	VX (4, 777),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_2, RA}},
   5715   1.7  christos {"vcfux",	VX (4, 778),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5716   1.7  christos {"vcuxwfp",	VX (4, 778),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5717   1.7  christos {"vdivesq",	VX (4, 779),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5718   1.7  christos {"evlhhousplatx",VX(4, 780),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5719   1.7  christos {"vspltisb",	VX (4, 780),	VXVB_MASK,   PPCVEC,	0,		{VD, SIMM}},
   5720  1.11  christos {"vinsertb",	VX (4, 781),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5721   1.7  christos {"evlhhousplat",VX (4, 781),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_2, RA}},
   5722   1.7  christos {"evlhhossplatx",VX(4, 782),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5723   1.7  christos {"vpkpx",	VX (4, 782),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5724   1.7  christos {"vinsbrx",	VX (4, 783),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5725   1.7  christos {"evlhhossplat",VX (4, 783),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_2, RA}},
   5726   1.7  christos {"mullhwu",	XRC(4, 392,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5727   1.7  christos {"evlwhex",	VX (4, 784),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5728   1.7  christos {"mullhwu.",	XRC(4, 392,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5729   1.7  christos {"evlwhe",	VX (4, 785),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5730   1.7  christos {"evlwhoux",	VX (4, 788),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5731   1.7  christos {"evlwhou",	VX (4, 789),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5732   1.7  christos {"evlwhosx",	VX (4, 790),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5733   1.7  christos {"evlwhos",	VX (4, 791),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5734   1.7  christos {"maclhwu",	XO (4, 396,0,0),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5735   1.7  christos {"evlwwsplatx",	VX (4, 792),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5736   1.7  christos {"maclhwu.",	XO (4, 396,0,1),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5737   1.7  christos {"evlwwsplat",	VX (4, 793),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5738   1.7  christos {"evlwhsplatx",	VX (4, 796),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5739   1.7  christos {"evlwhsplat",	VX (4, 797),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5740   1.7  christos {"evstddx",	VX (4, 800),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5741   1.7  christos {"evstdd",	VX (4, 801),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5742   1.7  christos {"evstdwx",	VX (4, 802),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5743   1.7  christos {"evstdw",	VX (4, 803),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5744   1.7  christos {"evstdhx",	VX (4, 804),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5745   1.7  christos {"evstdh",	VX (4, 805),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_8, RA}},
   5746   1.7  christos {"evstwhex",	VX (4, 816),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5747   1.7  christos {"evstwhe",	VX (4, 817),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5748   1.7  christos {"evstwhox",	VX (4, 820),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5749   1.7  christos {"evstwho",	VX (4, 821),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5750   1.7  christos {"evstwwex",	VX (4, 824),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5751   1.7  christos {"evstwwe",	VX (4, 825),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5752   1.7  christos {"evstwwox",	VX (4, 828),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5753   1.7  christos {"evstwwo",	VX (4, 829),	VX_MASK,     PPCSPE,	0,		{RS, EVUIMM_4, RA}},
   5754   1.7  christos {"vaddshs",	VX (4, 832),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5755   1.7  christos {"bcdcpsgn.",	VX (4, 833),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5756   1.7  christos {"vminsh",	VX (4, 834),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5757  1.11  christos {"vsrah",	VX (4, 836),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5758   1.7  christos {"vcmpgtsh",	VXR(4, 838,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5759   1.7  christos {"vmulesh",	VX (4, 840),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5760   1.7  christos {"vcfsx",	VX (4, 842),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5761  1.11  christos {"vcsxwfp",	VX (4, 842),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5762   1.7  christos {"vspltish",	VX (4, 844),	VXVB_MASK,   PPCVEC,	0,		{VD, SIMM}},
   5763   1.7  christos {"vinserth",	VX (4, 845),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5764   1.7  christos {"vupkhpx",	VX (4, 846),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5765   1.7  christos {"vinshrx",	VX (4, 847),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5766   1.7  christos {"mullhw",	XRC(4, 424,0),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5767   1.7  christos {"mullhw.",	XRC(4, 424,1),	X_MASK,	     MULHW,	0,		{RT, RA, RB}},
   5768   1.7  christos {"maclhw",	XO (4, 428,0,0),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5769   1.7  christos {"maclhw.",	XO (4, 428,0,1),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5770   1.7  christos {"nmaclhw",	XO (4, 430,0,0),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5771   1.7  christos {"nmaclhw.",	XO (4, 430,0,1),XO_MASK,     MULHW,	0,		{RT, RA, RB}},
   5772  1.11  christos {"vaddsws",	VX (4, 896),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5773   1.7  christos {"vminsw",	VX (4, 898),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5774  1.11  christos {"vsraw",	VX (4, 900),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5775   1.7  christos {"vcmpgtsw",	VXR(4, 902,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5776  1.11  christos {"vcmpgtsq",	VXR(4, 903,0),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   5777  1.11  christos {"vmulesw",	VX (4, 904),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5778   1.7  christos {"vmulhsw",	VX (4, 905),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5779   1.7  christos {"vctuxs",	VX (4, 906),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5780  1.11  christos {"vcfpuxws",	VX (4, 906),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5781   1.7  christos {"vdivesw",	VX (4, 907),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5782   1.7  christos {"vspltisw",	VX (4, 908),	VXVB_MASK,   PPCVEC,	0,		{VD, SIMM}},
   5783   1.7  christos {"vinsertw",	VX (4, 909),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5784   1.7  christos {"vinswrx",	VX (4, 911),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5785   1.7  christos {"maclhwsu",	XO (4, 460,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5786   1.7  christos {"maclhwsu.",	XO (4, 460,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5787  1.11  christos {"vminsd",	VX (4, 962),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5788  1.11  christos {"vsrad",	VX (4, 964),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5789   1.7  christos {"vcmpbfp",	VXR(4, 966,0),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5790  1.11  christos {"vcmpgtsd",	VXR(4, 967,0),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5791  1.11  christos {"vmulesd",	VX (4, 968),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5792   1.7  christos {"vmulhsd",	VX (4, 969),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5793   1.7  christos {"vctsxs",	VX (4, 970),	VX_MASK,     PPCVEC,	0,		{VD, VB, UIMM}},
   5794  1.11  christos {"vcfpsxws",	VX (4, 970),	VX_MASK,     PPCVEC,	EXT,		{VD, VB, UIMM}},
   5795   1.7  christos {"vdivesd",	VX (4, 971),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5796   1.7  christos {"vinsertd",	VX (4, 973),   VXUIMM4_MASK, PPCVEC3,	0,		{VD, VB, UIMM4}},
   5797   1.7  christos {"vupklpx",	VX (4, 974),	VXVA_MASK,   PPCVEC,	0,		{VD, VB}},
   5798   1.7  christos {"vinsdrx",	VX (4, 975),	VX_MASK,     POWER10,	0,		{VD, RA, RB}},
   5799   1.7  christos {"maclhws",	XO (4, 492,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5800   1.7  christos {"maclhws.",	XO (4, 492,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5801   1.7  christos {"nmaclhws",	XO (4, 494,0,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5802   1.7  christos {"nmaclhws.",	XO (4, 494,0,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5803   1.7  christos {"vsububm",	VX (4,1024),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5804   1.7  christos {"bcdadd.",	VX (4,1025),	VXPS_MASK,   PPCVEC2,	0,		{VD, VA, VB, PS}},
   5805   1.7  christos {"vavgub",	VX (4,1026),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5806   1.7  christos {"vabsdub",	VX (4,1027),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5807   1.8  christos {"evmhessf",	VX (4,1027),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5808   1.8  christos {"vand",	VX (4,1028),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5809   1.7  christos {"vcmpequb.",	VXR(4,	 6,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5810   1.7  christos {"vcmpneb.",	VXR(4,	 7,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5811   1.7  christos {"udi0fcm.",	APU(4, 515,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5812   1.7  christos {"udi0fcm",	APU(4, 515,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5813   1.7  christos {"evmhossf",	VX (4,1031),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5814   1.7  christos {"vpmsumb",	VX (4,1032),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5815   1.7  christos {"evmheumi",	VX (4,1032),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5816   1.7  christos {"evmhesmi",	VX (4,1033),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5817  1.11  christos {"vmaxfp",	VX (4,1034),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5818  1.11  christos {"evmhesmf",	VX (4,1035),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5819  1.11  christos {"evmhoumi",	VX (4,1036),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5820  1.11  christos {"vslo",	VX (4,1036),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5821   1.7  christos {"vstribl.",	VXVA(4,1037,0),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5822   1.7  christos {"vstribr.",	VXVA(4,1037,1),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5823   1.7  christos {"vstrihl.",	VXVA(4,1037,2),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5824   1.7  christos {"vstrihr.",	VXVA(4,1037,3),	VXVA_MASK,   POWER10,	0,		{VD, VB}},
   5825   1.7  christos {"evmhosmi",	VX (4,1037),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5826   1.7  christos {"evmhosmf",	VX (4,1039),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5827   1.7  christos {"machhwuo",	XO (4,	12,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5828   1.7  christos {"machhwuo.",	XO (4,	12,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5829   1.7  christos {"ps_merge00",	XOPS(4,528,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5830   1.7  christos {"ps_merge00.",	XOPS(4,528,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5831   1.7  christos {"evmhessfa",	VX (4,1059),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5832   1.7  christos {"evmhossfa",	VX (4,1063),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5833   1.7  christos {"evmheumia",	VX (4,1064),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5834   1.7  christos {"evmhesmia",	VX (4,1065),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5835   1.7  christos {"evmhesmfa",	VX (4,1067),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5836   1.7  christos {"evmhoumia",	VX (4,1068),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5837   1.7  christos {"evmhosmia",	VX (4,1069),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5838   1.8  christos {"evmhosmfa",	VX (4,1071),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5839   1.7  christos {"vsubuhm",	VX (4,1088),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5840   1.7  christos {"bcdsub.",	VX (4,1089),	VXPS_MASK,   PPCVEC2,	0,		{VD, VA, VB, PS}},
   5841   1.7  christos {"vavguh",	VX (4,1090),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5842   1.8  christos {"evmwlssf",	VX (4,1091),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5843   1.8  christos {"vabsduh",	VX (4,1091),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5844   1.7  christos {"vandc",	VX (4,1092),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5845   1.7  christos {"vcmpequh.",	VXR(4,	70,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5846   1.7  christos {"udi1fcm.",	APU(4, 547,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5847   1.7  christos {"udi1fcm",	APU(4, 547,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5848   1.7  christos {"vcmpneh.",	VXR(4,	71,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5849   1.8  christos {"evmwhssf",	VX (4,1095),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5850   1.7  christos {"vpmsumh",	VX (4,1096),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5851   1.7  christos {"evmwlumi",	VX (4,1096),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5852   1.7  christos {"vminfp",	VX (4,1098),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5853   1.7  christos {"evmwlsmf",	VX (4,1099),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5854   1.7  christos {"evmwhumi",	VX (4,1100),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5855   1.7  christos {"vsro",	VX (4,1100),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5856   1.7  christos {"evmwhsmi",	VX (4,1101),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5857   1.7  christos {"vpkudum",	VX (4,1102),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5858   1.7  christos {"evmwhsmf",	VX (4,1103),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5859   1.7  christos {"evmwssf",	VX (4,1107),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5860   1.7  christos {"machhwo",	XO (4,	44,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5861   1.7  christos {"evmwumi",	VX (4,1112),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5862   1.7  christos {"machhwo.",	XO (4,	44,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5863   1.7  christos {"evmwsmi",	VX (4,1113),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5864   1.7  christos {"evmwsmf",	VX (4,1115),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5865   1.8  christos {"nmachhwo",	XO (4,	46,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5866   1.7  christos {"nmachhwo.",	XO (4,	46,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5867   1.7  christos {"ps_merge01",	XOPS(4,560,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5868   1.8  christos {"ps_merge01.",	XOPS(4,560,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5869   1.7  christos {"evmwlssfa",	VX (4,1123),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5870   1.7  christos {"evmwhssfa",	VX (4,1127),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5871   1.7  christos {"evmwlumia",	VX (4,1128),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5872   1.7  christos {"evmwlsmfa",	VX (4,1131),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5873   1.7  christos {"evmwhumia",	VX (4,1132),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5874   1.7  christos {"evmwhsmia",	VX (4,1133),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5875   1.7  christos {"evmwhsmfa",	VX (4,1135),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5876   1.7  christos {"evmwssfa",	VX (4,1139),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5877   1.7  christos {"evmwumia",	VX (4,1144),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5878   1.7  christos {"evmwsmia",	VX (4,1145),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5879   1.7  christos {"evmwsmfa",	VX (4,1147),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5880  1.11  christos {"vsubuwm",	VX (4,1152),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5881   1.7  christos {"bcdus.",	VX (4,1153),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5882   1.7  christos {"vavguw",	VX (4,1154),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5883   1.7  christos {"vabsduw",	VX (4,1155),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5884   1.7  christos {"vmr",		VX (4,1156),	VX_MASK,     PPCVEC,	EXT,		{VD, VAB}},
   5885   1.8  christos {"vor",		VX (4,1156),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5886   1.8  christos {"vcmpnew.",	VXR(4, 135,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5887   1.7  christos {"vpmsumw",	VX (4,1160),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5888   1.7  christos {"vcmpequw.",	VXR(4, 134,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5889   1.7  christos {"udi2fcm.",	APU(4, 579,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5890   1.7  christos {"udi2fcm",	APU(4, 579,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5891   1.7  christos {"machhwsuo",	XO (4,	76,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5892   1.7  christos {"machhwsuo.",	XO (4,	76,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5893   1.7  christos {"ps_merge10",	XOPS(4,592,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5894   1.7  christos {"ps_merge10.",	XOPS(4,592,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5895   1.7  christos {"vsubudm",	VX (4,1216),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5896   1.7  christos {"evaddusiaaw",	VX (4,1216),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5897   1.7  christos {"bcds.",	VX (4,1217),	VXPS_MASK,   PPCVEC3,	0,		{VD, VA, VB, PS}},
   5898   1.7  christos {"evaddssiaaw",	VX (4,1217),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5899   1.7  christos {"evsubfusiaaw",VX (4,1218),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5900   1.7  christos {"evsubfssiaaw",VX (4,1219),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5901   1.8  christos {"evmra",	VX (4,1220),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5902   1.7  christos {"vxor",	VX (4,1220),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5903   1.8  christos {"evdivws",	VX (4,1222),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5904   1.7  christos {"vcmpeqfp.",	VXR(4, 198,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   5905   1.7  christos {"udi3fcm.",	APU(4, 611,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5906   1.7  christos {"vcmpequd.",	VXR(4, 199,1),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   5907   1.7  christos {"udi3fcm",	APU(4, 611,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5908   1.7  christos {"evdivwu",	VX (4,1223),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5909   1.7  christos {"vpmsumd",	VX (4,1224),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5910  1.11  christos {"evaddumiaaw",	VX (4,1224),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5911   1.7  christos {"evaddsmiaaw",	VX (4,1225),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5912   1.7  christos {"evsubfumiaaw",VX (4,1226),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5913   1.7  christos {"evsubfsmiaaw",VX (4,1227),	VX_MASK,     PPCSPE,	0,		{RS, RA}},
   5914   1.7  christos {"vgnb",	VX (4,1228),	VX_MASK,     POWER10,	0,		{RT, VB, UIMM3}},
   5915   1.7  christos {"vpkudus",	VX (4,1230),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5916   1.7  christos {"machhwso",	XO (4, 108,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5917   1.7  christos {"machhwso.",	XO (4, 108,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5918   1.7  christos {"nmachhwso",	XO (4, 110,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5919   1.7  christos {"nmachhwso.",	XO (4, 110,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5920   1.7  christos {"ps_merge11",	XOPS(4,624,0),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5921   1.7  christos {"ps_merge11.",	XOPS(4,624,1),	XOPS_MASK,   PPCPS,	0,		{FRT, FRA, FRB}},
   5922   1.7  christos {"vsubuqm",	VX (4,1280),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5923   1.7  christos {"evmheusiaaw",	VX (4,1280),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5924   1.7  christos {"bcdtrunc.",	VX (4,1281),	VXPS_MASK,   PPCVEC3,	0,		{VD, VA, VB, PS}},
   5925  1.11  christos {"evmhessiaaw",	VX (4,1281),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5926   1.7  christos {"vavgsb",	VX (4,1282),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5927   1.7  christos {"evmhessfaaw",	VX (4,1283),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5928   1.8  christos {"evmhousiaaw",	VX (4,1284),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5929   1.8  christos {"vnot",	VX (4,1284),	VX_MASK,     PPCVEC,	EXT,		{VD, VAB}},
   5930   1.7  christos {"vnor",	VX (4,1284),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5931   1.7  christos {"evmhossiaaw",	VX (4,1285),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5932   1.7  christos {"udi4fcm.",	APU(4, 643,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5933   1.7  christos {"udi4fcm",	APU(4, 643,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5934   1.7  christos {"vcmpnezb.",	VXR(4, 263,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5935   1.7  christos {"evmhossfaaw",	VX (4,1287),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5936   1.7  christos {"evmheumiaaw",	VX (4,1288),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5937   1.7  christos {"vcipher",	VX (4,1288),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5938   1.7  christos {"vcipherlast",	VX (4,1289),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5939   1.7  christos {"evmhesmiaaw",	VX (4,1289),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5940   1.7  christos {"evmhesmfaaw",	VX (4,1291),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5941   1.7  christos {"vgbbd",	VX (4,1292),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   5942   1.7  christos {"evmhoumiaaw",	VX (4,1292),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5943   1.7  christos {"evmhosmiaaw",	VX (4,1293),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5944   1.7  christos {"evmhosmfaaw",	VX (4,1295),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5945   1.7  christos {"macchwuo",	XO (4, 140,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5946   1.7  christos {"macchwuo.",	XO (4, 140,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5947   1.7  christos {"evmhegumiaa",	VX (4,1320),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5948   1.7  christos {"evmhegsmiaa",	VX (4,1321),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5949   1.7  christos {"evmhegsmfaa",	VX (4,1323),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5950   1.7  christos {"evmhogumiaa",	VX (4,1324),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5951   1.7  christos {"evmhogsmiaa",	VX (4,1325),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5952   1.7  christos {"evmhogsmfaa",	VX (4,1327),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5953   1.7  christos {"vsubcuq",	VX (4,1344),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5954   1.8  christos {"evmwlusiaaw",	VX (4,1344),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5955   1.8  christos {"bcdutrunc.",	VX (4,1345),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   5956   1.7  christos {"evmwlssiaaw",	VX (4,1345),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5957   1.8  christos {"vavgsh",	VX (4,1346),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5958   1.8  christos {"evmwlssfaaw",	VX (4,1347),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5959   1.8  christos {"evmwhusiaa",	VX (4,1348),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5960   1.7  christos {"vorc",	VX (4,1348),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5961   1.8  christos {"evmwhssmaa",	VX (4,1349),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5962   1.7  christos {"udi5fcm.",	APU(4, 675,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5963   1.7  christos {"udi5fcm",	APU(4, 675,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   5964   1.7  christos {"vcmpnezh.",	VXR(4, 327,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   5965   1.7  christos {"evmwhssfaa",	VX (4,1351),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5966   1.8  christos {"vncipher",	VX (4,1352),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5967   1.8  christos {"evmwlumiaaw",	VX (4,1352),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5968   1.7  christos {"vncipherlast",VX (4,1353),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5969  1.11  christos {"evmwlsmiaaw",	VX (4,1353),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5970   1.8  christos {"evmwlsmfaaw",	VX (4,1355),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5971   1.7  christos {"evmwhumiaa",	VX (4,1356),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5972   1.8  christos {"vbpermq",	VX (4,1356),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5973   1.7  christos {"vcfuged",	VX (4,1357),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   5974   1.7  christos {"evmwhsmiaa",	VX (4,1357),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5975   1.7  christos {"vpksdus",	VX (4,1358),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   5976   1.7  christos {"evmwhsmfaa",	VX (4,1359),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5977   1.7  christos {"evmwssfaa",	VX (4,1363),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5978   1.7  christos {"macchwo",	XO (4, 172,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5979   1.7  christos {"evmwumiaa",	VX (4,1368),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5980   1.7  christos {"macchwo.",	XO (4, 172,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5981   1.8  christos {"evmwsmiaa",	VX (4,1369),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5982   1.8  christos {"evmwsmfaa",	VX (4,1371),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5983   1.8  christos {"nmacchwo",	XO (4, 174,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5984   1.8  christos {"nmacchwo.",	XO (4, 174,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   5985   1.7  christos {"evmwhgumiaa",	VX (4,1380),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5986   1.7  christos {"evmwhgsmiaa",	VX (4,1381),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5987   1.7  christos {"evmwhgssfaa",	VX (4,1383),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5988   1.7  christos {"evmwhgsmfaa",	VX (4,1391),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   5989   1.7  christos {"evmheusianw",	VX (4,1408),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5990   1.7  christos {"vsubcuw",	VX (4,1408),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   5991   1.7  christos {"evmhessianw",	VX (4,1409),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   5992   1.7  christos {"bcdctsq.",	VXVA(4,1409,0),	VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5993   1.7  christos {"bcdcfsq.",	VXVA(4,1409,2),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5994   1.7  christos {"bcdctz.",	VXVA(4,1409,4),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5995   1.7  christos {"bcdctn.",	VXVA(4,1409,5),	VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   5996   1.7  christos {"bcdcfz.",	VXVA(4,1409,6),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5997   1.7  christos {"bcdcfn.",	VXVA(4,1409,7),	VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5998   1.7  christos {"bcdsetsgn.",	VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3,	0,		{VD, VB, PS}},
   5999   1.7  christos {"vavgsw",	VX (4,1410),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6000   1.8  christos {"evmhessfanw",	VX (4,1411),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6001   1.8  christos {"vnand",	VX (4,1412),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6002   1.7  christos {"evmhousianw",	VX (4,1412),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6003   1.7  christos {"evmhossianw",	VX (4,1413),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6004   1.7  christos {"udi6fcm.",	APU(4, 707,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   6005   1.7  christos {"udi6fcm",	APU(4, 707,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   6006   1.7  christos {"vcmpnezw.",	VXR(4, 391,1),	VXR_MASK,    PPCVEC3,	0,		{VD, VA, VB}},
   6007   1.7  christos {"evmhossfanw",	VX (4,1415),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6008  1.11  christos {"evmheumianw",	VX (4,1416),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6009   1.7  christos {"evmhesmianw",	VX (4,1417),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6010   1.7  christos {"evmhesmfanw",	VX (4,1419),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6011   1.7  christos {"evmhoumianw",	VX (4,1420),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6012   1.7  christos {"vpextd",	VX (4,1421),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6013   1.7  christos {"evmhosmianw",	VX (4,1421),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6014   1.7  christos {"evmhosmfanw",	VX (4,1423),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6015   1.7  christos {"macchwsuo",	XO (4, 204,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6016   1.7  christos {"macchwsuo.",	XO (4, 204,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6017   1.7  christos {"evmhegumian",	VX (4,1448),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6018   1.7  christos {"evmhegsmian",	VX (4,1449),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6019   1.7  christos {"evmhegsmfan",	VX (4,1451),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6020   1.7  christos {"evmhogumian",	VX (4,1452),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6021   1.7  christos {"evmhogsmian",	VX (4,1453),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6022   1.8  christos {"evmhogsmfan",	VX (4,1455),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6023   1.8  christos {"evmwlusianw",	VX (4,1472),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6024   1.7  christos {"bcdsr.",	VX (4,1473),	VXPS_MASK,   PPCVEC3,	0,		{VD, VA, VB, PS}},
   6025   1.8  christos {"evmwlssianw",	VX (4,1473),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6026   1.7  christos {"evmwlssfanw",	VX (4,1475),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6027   1.8  christos {"evmwhusian",	VX (4,1476),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6028   1.8  christos {"vsld",	VX (4,1476),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6029  1.11  christos {"evmwhssian",	VX (4,1477),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6030   1.8  christos {"vcmpgefp.",	VXR(4, 454,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6031   1.7  christos {"udi7fcm.",	APU(4, 739,0),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   6032   1.7  christos {"udi7fcm",	APU(4, 739,1),	APU_MASK, PPC405|PPC440, 0,		{URT, URA, URB}},
   6033   1.7  christos {"vcmpequq.",	VXR(4, 455,1),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   6034   1.8  christos {"evmwhssfan",	VX (4,1479),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6035   1.8  christos {"vsbox",	VX (4,1480),	VXVB_MASK,   PPCVEC2,	0,		{VD, VA}},
   6036   1.7  christos {"evmwlumianw",	VX (4,1480),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6037  1.11  christos {"evmwlsmianw",	VX (4,1481),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6038   1.8  christos {"evmwlsmfanw",	VX (4,1483),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6039   1.7  christos {"evmwhumian",	VX (4,1484),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6040   1.8  christos {"vbpermd",	VX (4,1484),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   6041   1.7  christos {"vpdepd",	VX (4,1485),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6042   1.7  christos {"evmwhsmian",	VX (4,1485),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6043   1.7  christos {"vpksdss",	VX (4,1486),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6044   1.7  christos {"evmwhsmfan",	VX (4,1487),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6045   1.7  christos {"evmwssfan",	VX (4,1491),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6046   1.7  christos {"macchwso",	XO (4, 236,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6047   1.8  christos {"evmwumian",	VX (4,1496),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6048   1.8  christos {"macchwso.",	XO (4, 236,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6049   1.8  christos {"evmwsmian",	VX (4,1497),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6050   1.8  christos {"evmwsmfan",	VX (4,1499),	VX_MASK,     PPCSPE,	0,		{RS, RA, RB}},
   6051   1.7  christos {"evmwhgumian",	VX (4,1508),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6052   1.7  christos {"evmwhgsmian",	VX (4,1509),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6053   1.7  christos {"evmwhgssfan",	VX (4,1511),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6054   1.7  christos {"evmwhgsmfan",	VX (4,1519),	VX_MASK,     PPCSPE,	0,		{RD, RA, RB}},
   6055   1.7  christos {"nmacchwso",	XO (4, 238,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6056   1.7  christos {"nmacchwso.",	XO (4, 238,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6057   1.7  christos {"vsububs",	VX (4,1536),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6058   1.7  christos {"vclzlsbb",	VXVA(4,1538,0), VXVA_MASK,   PPCVEC3,	0,		{RT, VB}},
   6059   1.7  christos {"vctzlsbb",	VXVA(4,1538,1), VXVA_MASK,   PPCVEC3,	0,		{RT, VB}},
   6060   1.7  christos {"vnegw",	VXVA(4,1538,6), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   6061   1.7  christos {"vnegd",	VXVA(4,1538,7), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   6062   1.7  christos {"vprtybw",	VXVA(4,1538,8), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   6063   1.7  christos {"vprtybd",	VXVA(4,1538,9), VXVA_MASK,   PPCVEC3,	0,		{VD, VB}},
   6064   1.7  christos {"vprtybq",	VXVA(4,1538,10), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6065   1.7  christos {"vextsb2w",	VXVA(4,1538,16), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6066  1.11  christos {"vextsh2w",	VXVA(4,1538,17), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6067   1.7  christos {"vextsb2d",	VXVA(4,1538,24), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6068   1.7  christos {"vextsh2d",	VXVA(4,1538,25), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6069   1.7  christos {"vextsw2d",	VXVA(4,1538,26), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6070   1.7  christos {"vextsd2q",	VXVA(4,1538,27), VXVA_MASK,  POWER10,	0,		{VD, VB}},
   6071   1.7  christos {"vctzb",	VXVA(4,1538,28), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6072   1.7  christos {"vctzh",	VXVA(4,1538,29), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6073   1.8  christos {"vctzw",	VXVA(4,1538,30), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6074   1.8  christos {"vctzd",	VXVA(4,1538,31), VXVA_MASK,  PPCVEC3,	0,		{VD, VB}},
   6075   1.7  christos {"mfvscr",	VX (4,1540),	VXVAVB_MASK, PPCVEC,	0,		{VD}},
   6076  1.11  christos {"vcmpgtub.",	VXR(4, 518,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6077   1.7  christos {"udi8fcm.",	APU(4, 771,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6078   1.7  christos {"udi8fcm",	APU(4, 771,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6079  1.11  christos {"vsum4ubs",	VX (4,1544),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6080  1.11  christos {"vmoduq",	VX (4,1547),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6081  1.11  christos {"vextublx",	VX (4,1549),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6082  1.11  christos {"vsubuhs",	VX (4,1600),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6083  1.11  christos 
   6084  1.11  christos {"vexpandbm",	VXVA(4,1602,0),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   6085  1.11  christos {"vexpandhm",	VXVA(4,1602,1),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   6086  1.11  christos {"vexpandwm",	VXVA(4,1602,2),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   6087  1.11  christos {"vexpanddm",	VXVA(4,1602,3),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   6088  1.11  christos {"vexpandqm",	VXVA(4,1602,4),  VXVA_MASK,  POWER10,	0,		{VD, VB}},
   6089  1.11  christos {"vextractbm",	VXVA(4,1602,8),  VXVA_MASK,  POWER10,	0,		{RT, VB}},
   6090  1.11  christos {"vextracthm",	VXVA(4,1602,9),  VXVA_MASK,  POWER10,	0,		{RT, VB}},
   6091  1.11  christos {"vextractwm",	VXVA(4,1602,10), VXVA_MASK,  POWER10,	0,		{RT, VB}},
   6092  1.11  christos {"vextractdm",	VXVA(4,1602,11), VXVA_MASK,  POWER10,	0,		{RT, VB}},
   6093  1.11  christos {"vextractqm",	VXVA(4,1602,12), VXVA_MASK,  POWER10,	0,		{RT, VB}},
   6094  1.11  christos {"mtvsrbm",	VXVA(4,1602,16), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   6095  1.11  christos {"mtvsrhm",	VXVA(4,1602,17), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   6096  1.11  christos {"mtvsrwm",	VXVA(4,1602,18), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   6097  1.11  christos {"mtvsrdm",	VXVA(4,1602,19), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   6098  1.11  christos {"mtvsrqm",	VXVA(4,1602,20), VXVA_MASK,  POWER10,	0,		{VD, RB}},
   6099  1.11  christos {"vcntmbb",	VXVA(4,1602,24), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   6100   1.7  christos {"vcntmbh",	VXVA(4,1602,26), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   6101   1.7  christos {"vcntmbw",	VXVA(4,1602,28), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   6102   1.7  christos {"vcntmbd",	VXVA(4,1602,30), VXVAM_MASK, POWER10,	0,		{RT, VB, MP}},
   6103   1.8  christos 
   6104   1.8  christos {"mtvscr",	VX (4,1604),	VXVDVA_MASK, PPCVEC,	0,		{VB}},
   6105   1.7  christos {"vcmpgtuh.",	VXR(4, 582,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6106   1.7  christos {"vsum4shs",	VX (4,1608),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6107   1.7  christos {"udi9fcm.",	APU(4, 804,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6108   1.7  christos {"udi9fcm",	APU(4, 804,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6109   1.7  christos {"vextuhlx",	VX (4,1613),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6110   1.7  christos {"vupkhsw",	VX (4,1614),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6111   1.8  christos {"vsubuws",	VX (4,1664),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6112  1.11  christos {"vshasigmaw",	VX (4,1666),	VX_MASK,     PPCVEC2,	0,		{VD, VA, ST, SIX}},
   6113   1.8  christos {"veqv",	VX (4,1668),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6114   1.7  christos {"vcmpgtuw.",	VXR(4, 646,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6115  1.11  christos {"udi10fcm.",	APU(4, 835,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6116   1.7  christos {"vcmpgtuq.",	VXR(4, 647,1),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   6117   1.7  christos {"udi10fcm",	APU(4, 835,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6118   1.7  christos {"vsum2sws",	VX (4,1672),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6119   1.7  christos {"vmoduw",	VX (4,1675),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6120   1.7  christos {"vmrgow",	VX (4,1676),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6121   1.8  christos {"vextuwlx",	VX (4,1677),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6122   1.7  christos {"vshasigmad",	VX (4,1730),	VX_MASK,     PPCVEC2,	0,		{VD, VA, ST, SIX}},
   6123   1.8  christos {"vsrd",	VX (4,1732),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6124  1.11  christos {"vcmpgtfp.",	VXR(4, 710,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6125   1.7  christos {"udi11fcm.",	APU(4, 867,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6126   1.7  christos {"vcmpgtud.",	VXR(4, 711,1),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   6127   1.7  christos {"udi11fcm",	APU(4, 867,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6128   1.7  christos {"vmodud",	VX (4,1739),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6129   1.7  christos {"vupklsw",	VX (4,1742),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6130   1.7  christos {"vsubsbs",	VX (4,1792),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6131   1.8  christos {"vclzb",	VX (4,1794),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6132   1.8  christos {"vpopcntb",	VX (4,1795),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6133   1.7  christos {"vsrv",	VX (4,1796),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   6134  1.11  christos {"vcmpgtsb.",	VXR(4, 774,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6135   1.7  christos {"udi12fcm.",	APU(4, 899,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6136   1.7  christos {"udi12fcm",	APU(4, 899,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6137   1.7  christos {"vsum4sbs",	VX (4,1800),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6138   1.7  christos {"vmodsq",	VX (4,1803),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6139   1.7  christos {"vextubrx",	VX (4,1805),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6140   1.7  christos {"maclhwuo",	XO (4, 396,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6141   1.7  christos {"maclhwuo.",	XO (4, 396,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6142   1.7  christos {"vsubshs",	VX (4,1856),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6143   1.7  christos {"vclzh",	VX (4,1858),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6144   1.8  christos {"vpopcnth",	VX (4,1859),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6145   1.8  christos {"vslv",	VX (4,1860),	VX_MASK,     PPCVEC3,	0,		{VD, VA, VB}},
   6146   1.7  christos {"vcmpgtsh.",	VXR(4, 838,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6147   1.7  christos {"vextuhrx",	VX (4,1869),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6148   1.7  christos {"udi13fcm.",	APU(4, 931,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6149   1.7  christos {"udi13fcm",	APU(4, 931,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6150   1.7  christos {"maclhwo",	XO (4, 428,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6151   1.7  christos {"maclhwo.",	XO (4, 428,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6152   1.7  christos {"nmaclhwo",	XO (4, 430,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6153  1.11  christos {"nmaclhwo.",	XO (4, 430,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6154   1.7  christos {"vsubsws",	VX (4,1920),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6155   1.8  christos {"vclzw",	VX (4,1922),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6156  1.11  christos {"vpopcntw",	VX (4,1923),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6157   1.8  christos {"vclzdm",	VX (4,1924),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6158   1.7  christos {"vcmpgtsw.",	VXR(4, 902,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6159  1.11  christos {"udi14fcm.",	APU(4, 963,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6160   1.7  christos {"vcmpgtsq.",	VXR(4, 903,1),	VXR_MASK,    POWER10,	0,		{VD, VA, VB}},
   6161   1.7  christos {"udi14fcm",	APU(4, 963,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6162   1.7  christos {"vsumsws",	VX (4,1928),	VX_MASK,     PPCVEC,	0,		{VD, VA, VB}},
   6163   1.7  christos {"vmodsw",	VX (4,1931),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6164   1.7  christos {"vmrgew",	VX (4,1932),	VX_MASK,     PPCVEC2,	0,		{VD, VA, VB}},
   6165   1.7  christos {"vextuwrx",	VX (4,1933),	VX_MASK,     PPCVEC3,	0,		{RT, RA, VB}},
   6166  1.11  christos {"maclhwsuo",	XO (4, 460,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6167   1.7  christos {"maclhwsuo.",	XO (4, 460,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6168   1.8  christos {"vclzd",	VX (4,1986),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6169   1.7  christos {"vpopcntd",	VX (4,1987),	VXVA_MASK,   PPCVEC2,	0,		{VD, VB}},
   6170   1.8  christos {"vctzdm",	VX (4,1988),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6171  1.11  christos {"vcmpbfp.",	VXR(4, 966,1),	VXR_MASK,    PPCVEC,	0,		{VD, VA, VB}},
   6172   1.7  christos {"udi15fcm.",	APU(4, 995,0),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6173   1.7  christos {"vcmpgtsd.",	VXR(4, 967,1),	VXR_MASK,    PPCVEC2,	0,		{VD, VA, VB}},
   6174   1.7  christos {"udi15fcm",	APU(4, 995,1),	APU_MASK,    PPC440,	0,		{URT, URA, URB}},
   6175   1.7  christos {"vmodsd",	VX (4,1995),	VX_MASK,     POWER10,	0,		{VD, VA, VB}},
   6176   1.7  christos {"maclhwso",	XO (4, 492,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6177   1.7  christos {"maclhwso.",	XO (4, 492,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6178  1.11  christos {"nmaclhwso",	XO (4, 494,1,0), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6179  1.12  christos {"nmaclhwso.",	XO (4, 494,1,1), XO_MASK,    MULHW,	0,		{RT, RA, RB}},
   6180  1.11  christos {"dcbz_l",	X  (4,1014),	XRT_MASK,    PPCPS,	0,		{RA, RB}},
   6181   1.7  christos 
   6182   1.7  christos {"lxvp",	DQXP(6,0),	DQXP_MASK,   POWER10,	PPCVLE,		{XTP, DQ, RA0}},
   6183   1.7  christos {"stxvp",	DQXP(6,1),	DQXP_MASK,   POWER10,	PPCVLE,		{XSP, DQ, RA0}},
   6184   1.7  christos 
   6185   1.7  christos {"mulli",	OP(7),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6186   1.7  christos {"muli",	OP(7),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6187   1.7  christos 
   6188   1.7  christos {"subfic",	OP(8),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6189  1.11  christos {"sfi",		OP(8),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6190  1.11  christos 
   6191   1.8  christos {"dozi",	OP(9),		OP_MASK,     M601,	PPCVLE,		{RT, RA, SI}},
   6192   1.7  christos 
   6193   1.7  christos {"cmplwi",	OPL(10,0),	OPL_MASK,    PPCCOM,	PPCVLE|EXT,	{OBF, RA, UISIGNOPT}},
   6194  1.11  christos {"cmpldi",	OPL(10,1),	OPL_MASK,    PPC64,	PPCVLE|EXT,	{OBF, RA, UISIGNOPT}},
   6195  1.11  christos {"cmpli",	OP(10),		OP_MASK,     PPC,	PPCVLE,		{BF, L32OPT, RA, UISIGNOPT}},
   6196   1.8  christos {"cmpli",	OP(10),		OP_MASK,     PWRCOM,	PPC|PPCVLE,	{BF, RA, UISIGNOPT}},
   6197   1.7  christos 
   6198   1.7  christos {"cmpwi",	OPL(11,0),	OPL_MASK,    PPCCOM,	PPCVLE|EXT,	{OBF, RA, SI}},
   6199   1.7  christos {"cmpdi",	OPL(11,1),	OPL_MASK,    PPC64,	PPCVLE|EXT,	{OBF, RA, SI}},
   6200   1.7  christos {"cmpi",	OP(11),		OP_MASK,     PPC,	PPCVLE,		{BF, L32OPT, RA, SI}},
   6201  1.11  christos {"cmpi",	OP(11),		OP_MASK,     PWRCOM,	PPC|PPCVLE,	{BF, RA, SI}},
   6202   1.7  christos 
   6203   1.7  christos {"addic",	OP(12),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6204   1.7  christos {"ai",		OP(12),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6205  1.11  christos {"subic",	OP(12),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA, NSI}},
   6206   1.7  christos 
   6207  1.11  christos {"addic.",	OP(13),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA, SI}},
   6208  1.11  christos {"ai.",		OP(13),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA, SI}},
   6209   1.7  christos {"subic.",	OP(13),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA, NSI}},
   6210   1.7  christos 
   6211  1.11  christos {"li",		OP(14),		DRA_MASK,    PPCCOM,	PPCVLE|EXT,	{RT, SI}},
   6212  1.11  christos {"lil",		OP(14),		DRA_MASK,    PWRCOM,	PPCVLE|EXT,	{RT, SI}},
   6213   1.7  christos {"addi",	OP(14),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA0, SI}},
   6214  1.11  christos {"cal",		OP(14),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   6215  1.11  christos {"subi",	OP(14),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA0, NSI}},
   6216   1.7  christos {"la",		OP(14),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, D, RA0}},
   6217   1.7  christos 
   6218  1.11  christos {"lis",		OP(15),		DRA_MASK,    PPCCOM,	PPCVLE|EXT,	{RT, SISIGNOPT}},
   6219   1.7  christos {"liu",		OP(15),		DRA_MASK,    PWRCOM,	PPCVLE|EXT,	{RT, SISIGNOPT}},
   6220  1.11  christos {"addis",	OP(15),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, RA0, SISIGNOPT}},
   6221  1.11  christos {"cau",		OP(15),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, RA0, SISIGNOPT}},
   6222  1.11  christos {"subis",	OP(15),		OP_MASK,     PPCCOM,	PPCVLE|EXT,	{RT, RA0, NSISIGNOPT}},
   6223  1.11  christos 
   6224  1.11  christos {"bdnz-",    BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6225  1.11  christos {"bdnz+",    BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6226  1.11  christos {"bdnz",     BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BD}},
   6227  1.11  christos {"bdn",	     BBO(16,BODNZ,0,0),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BD}},
   6228  1.11  christos {"bdnzl-",   BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6229  1.11  christos {"bdnzl+",   BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6230  1.11  christos {"bdnzl",    BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BD}},
   6231  1.11  christos {"bdnl",     BBO(16,BODNZ,0,1),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BD}},
   6232  1.11  christos {"bdnza-",   BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6233  1.11  christos {"bdnza+",   BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6234  1.11  christos {"bdnza",    BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDA}},
   6235  1.11  christos {"bdna",     BBO(16,BODNZ,1,0),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BDA}},
   6236  1.11  christos {"bdnzla-",  BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6237  1.11  christos {"bdnzla+",  BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6238  1.11  christos {"bdnzla",   BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDA}},
   6239  1.11  christos {"bdnla",    BBO(16,BODNZ,1,1),		BBOATBI_MASK,  PWRCOM,	 PPCVLE|EXT,	{BDA}},
   6240  1.11  christos {"bdz-",     BBO(16,BODZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6241  1.11  christos {"bdz+",     BBO(16,BODZ,0,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6242  1.11  christos {"bdz",	     BBO(16,BODZ,0,0),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BD}},
   6243  1.11  christos {"bdzl-",    BBO(16,BODZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDM}},
   6244  1.11  christos {"bdzl+",    BBO(16,BODZ,0,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDP}},
   6245  1.11  christos {"bdzl",     BBO(16,BODZ,0,1),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BD}},
   6246  1.11  christos {"bdza-",    BBO(16,BODZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6247  1.11  christos {"bdza+",    BBO(16,BODZ,1,0),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6248  1.11  christos {"bdza",     BBO(16,BODZ,1,0),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BDA}},
   6249  1.11  christos {"bdzla-",   BBO(16,BODZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDMA}},
   6250  1.11  christos {"bdzla+",   BBO(16,BODZ,1,1),		BBOATBI_MASK,  PPCCOM,	 PPCVLE|EXT,	{BDPA}},
   6251  1.11  christos {"bdzla",    BBO(16,BODZ,1,1),		BBOATBI_MASK,  COM,	 PPCVLE|EXT,	{BDA}},
   6252  1.11  christos 
   6253  1.11  christos {"bge-",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6254  1.11  christos {"bge+",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6255  1.11  christos {"bge",	     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6256  1.11  christos {"bnl-",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6257  1.11  christos {"bnl+",     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6258  1.11  christos {"bnl",	     BBOCB(16,BOF,CBLT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6259  1.11  christos {"bgel-",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6260  1.11  christos {"bgel+",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6261  1.11  christos {"bgel",     BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6262  1.11  christos {"bnll-",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6263  1.11  christos {"bnll+",    BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6264  1.11  christos {"bnll",     BBOCB(16,BOF,CBLT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6265  1.11  christos {"bgea-",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6266  1.11  christos {"bgea+",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6267  1.11  christos {"bgea",     BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6268  1.11  christos {"bnla-",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6269  1.11  christos {"bnla+",    BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6270  1.11  christos {"bnla",     BBOCB(16,BOF,CBLT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6271  1.11  christos {"bgela-",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6272  1.11  christos {"bgela+",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6273  1.11  christos {"bgela",    BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6274  1.11  christos {"bnlla-",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6275  1.11  christos {"bnlla+",   BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6276  1.11  christos {"bnlla",    BBOCB(16,BOF,CBLT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6277  1.11  christos {"ble-",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6278  1.11  christos {"ble+",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6279  1.11  christos {"ble",	     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6280  1.11  christos {"bng-",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6281  1.11  christos {"bng+",     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6282  1.11  christos {"bng",	     BBOCB(16,BOF,CBGT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6283  1.11  christos {"blel-",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6284  1.11  christos {"blel+",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6285  1.11  christos {"blel",     BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6286  1.11  christos {"bngl-",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6287  1.11  christos {"bngl+",    BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6288  1.11  christos {"bngl",     BBOCB(16,BOF,CBGT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6289  1.11  christos {"blea-",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6290  1.11  christos {"blea+",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6291  1.11  christos {"blea",     BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6292  1.11  christos {"bnga-",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6293  1.11  christos {"bnga+",    BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6294  1.11  christos {"bnga",     BBOCB(16,BOF,CBGT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6295  1.11  christos {"blela-",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6296  1.11  christos {"blela+",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6297  1.11  christos {"blela",    BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6298  1.11  christos {"bngla-",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6299  1.11  christos {"bngla+",   BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6300  1.11  christos {"bngla",    BBOCB(16,BOF,CBGT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6301  1.11  christos {"bne-",     BBOCB(16,BOF,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6302  1.11  christos {"bne+",     BBOCB(16,BOF,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6303  1.11  christos {"bne",	     BBOCB(16,BOF,CBEQ,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6304  1.11  christos {"bnel-",    BBOCB(16,BOF,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6305  1.11  christos {"bnel+",    BBOCB(16,BOF,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6306  1.11  christos {"bnel",     BBOCB(16,BOF,CBEQ,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6307  1.11  christos {"bnea-",    BBOCB(16,BOF,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6308  1.11  christos {"bnea+",    BBOCB(16,BOF,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6309  1.11  christos {"bnea",     BBOCB(16,BOF,CBEQ,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6310  1.11  christos {"bnela-",   BBOCB(16,BOF,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6311  1.11  christos {"bnela+",   BBOCB(16,BOF,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6312  1.11  christos {"bnela",    BBOCB(16,BOF,CBEQ,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6313  1.11  christos {"bns-",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6314  1.11  christos {"bns+",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6315  1.11  christos {"bns",	     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6316  1.11  christos {"bnu-",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6317  1.11  christos {"bnu+",     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6318  1.11  christos {"bnu",	     BBOCB(16,BOF,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6319  1.11  christos {"bnsl-",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6320  1.11  christos {"bnsl+",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6321  1.11  christos {"bnsl",     BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6322  1.11  christos {"bnul-",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6323  1.11  christos {"bnul+",    BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6324  1.11  christos {"bnul",     BBOCB(16,BOF,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6325  1.11  christos {"bnsa-",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6326  1.11  christos {"bnsa+",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6327  1.11  christos {"bnsa",     BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6328  1.11  christos {"bnua-",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6329  1.11  christos {"bnua+",    BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6330  1.11  christos {"bnua",     BBOCB(16,BOF,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6331  1.11  christos {"bnsla-",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6332  1.11  christos {"bnsla+",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6333  1.11  christos {"bnsla",    BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6334  1.11  christos {"bnula-",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6335  1.11  christos {"bnula+",   BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6336  1.11  christos {"bnula",    BBOCB(16,BOF,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6337  1.11  christos 
   6338  1.11  christos {"blt-",     BBOCB(16,BOT,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6339  1.11  christos {"blt+",     BBOCB(16,BOT,CBLT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6340  1.11  christos {"blt",	     BBOCB(16,BOT,CBLT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6341  1.11  christos {"bltl-",    BBOCB(16,BOT,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6342  1.11  christos {"bltl+",    BBOCB(16,BOT,CBLT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6343  1.11  christos {"bltl",     BBOCB(16,BOT,CBLT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6344  1.11  christos {"blta-",    BBOCB(16,BOT,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6345  1.11  christos {"blta+",    BBOCB(16,BOT,CBLT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6346  1.11  christos {"blta",     BBOCB(16,BOT,CBLT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6347  1.11  christos {"bltla-",   BBOCB(16,BOT,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6348  1.11  christos {"bltla+",   BBOCB(16,BOT,CBLT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6349  1.11  christos {"bltla",    BBOCB(16,BOT,CBLT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6350  1.11  christos {"bgt-",     BBOCB(16,BOT,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6351  1.11  christos {"bgt+",     BBOCB(16,BOT,CBGT,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6352  1.11  christos {"bgt",	     BBOCB(16,BOT,CBGT,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6353  1.11  christos {"bgtl-",    BBOCB(16,BOT,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6354  1.11  christos {"bgtl+",    BBOCB(16,BOT,CBGT,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6355  1.11  christos {"bgtl",     BBOCB(16,BOT,CBGT,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6356  1.11  christos {"bgta-",    BBOCB(16,BOT,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6357  1.11  christos {"bgta+",    BBOCB(16,BOT,CBGT,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6358  1.11  christos {"bgta",     BBOCB(16,BOT,CBGT,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6359  1.11  christos {"bgtla-",   BBOCB(16,BOT,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6360  1.11  christos {"bgtla+",   BBOCB(16,BOT,CBGT,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6361  1.11  christos {"bgtla",    BBOCB(16,BOT,CBGT,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6362  1.11  christos {"beq-",     BBOCB(16,BOT,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6363  1.11  christos {"beq+",     BBOCB(16,BOT,CBEQ,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6364  1.11  christos {"beq",	     BBOCB(16,BOT,CBEQ,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6365  1.11  christos {"beql-",    BBOCB(16,BOT,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6366  1.11  christos {"beql+",    BBOCB(16,BOT,CBEQ,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6367  1.11  christos {"beql",     BBOCB(16,BOT,CBEQ,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6368  1.11  christos {"beqa-",    BBOCB(16,BOT,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6369  1.11  christos {"beqa+",    BBOCB(16,BOT,CBEQ,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6370  1.11  christos {"beqa",     BBOCB(16,BOT,CBEQ,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6371  1.11  christos {"beqla-",   BBOCB(16,BOT,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6372  1.11  christos {"beqla+",   BBOCB(16,BOT,CBEQ,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6373  1.11  christos {"beqla",    BBOCB(16,BOT,CBEQ,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6374  1.11  christos {"bso-",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6375  1.11  christos {"bso+",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6376  1.11  christos {"bso",	     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6377  1.11  christos {"bun-",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6378  1.11  christos {"bun+",     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6379  1.11  christos {"bun",	     BBOCB(16,BOT,CBSO,0,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6380  1.11  christos {"bsol-",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6381  1.11  christos {"bsol+",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6382  1.11  christos {"bsol",     BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BD}},
   6383  1.11  christos {"bunl-",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDM}},
   6384  1.11  christos {"bunl+",    BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDP}},
   6385  1.11  christos {"bunl",     BBOCB(16,BOT,CBSO,0,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BD}},
   6386  1.11  christos {"bsoa-",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6387  1.11  christos {"bsoa+",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6388  1.11  christos {"bsoa",     BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6389  1.11  christos {"buna-",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6390  1.11  christos {"buna+",    BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6391  1.11  christos {"buna",     BBOCB(16,BOT,CBSO,1,0),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6392  1.11  christos {"bsola-",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6393  1.11  christos {"bsola+",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6394  1.11  christos {"bsola",    BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  COM,	 PPCVLE|EXT,	{CR, BDA}},
   6395  1.11  christos {"bunla-",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDMA}},
   6396  1.11  christos {"bunla+",   BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDPA}},
   6397  1.11  christos {"bunla",    BBOCB(16,BOT,CBSO,1,1),	BBOATCB_MASK,  PPCCOM,	 PPCVLE|EXT,	{CR, BDA}},
   6398  1.11  christos 
   6399  1.11  christos {"bdnzf-",   BBO(16,BODNZF,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6400  1.11  christos {"bdnzf+",   BBO(16,BODNZF,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6401  1.11  christos {"bdnzf",    BBO(16,BODNZF,0,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6402  1.11  christos {"bdnzfl-",  BBO(16,BODNZF,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6403  1.11  christos {"bdnzfl+",  BBO(16,BODNZF,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6404  1.11  christos {"bdnzfl",   BBO(16,BODNZF,0,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6405  1.11  christos {"bdnzfa-",  BBO(16,BODNZF,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6406  1.11  christos {"bdnzfa+",  BBO(16,BODNZF,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6407  1.11  christos {"bdnzfa",   BBO(16,BODNZF,1,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6408  1.11  christos {"bdnzfla-", BBO(16,BODNZF,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6409  1.11  christos {"bdnzfla+", BBO(16,BODNZF,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6410  1.11  christos {"bdnzfla",  BBO(16,BODNZF,1,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6411  1.11  christos {"bdzf-",    BBO(16,BODZF,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6412  1.11  christos {"bdzf+",    BBO(16,BODZF,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6413  1.11  christos {"bdzf",     BBO(16,BODZF,0,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6414  1.11  christos {"bdzfl-",   BBO(16,BODZF,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6415  1.11  christos {"bdzfl+",   BBO(16,BODZF,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6416  1.11  christos {"bdzfl",    BBO(16,BODZF,0,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6417  1.11  christos {"bdzfa-",   BBO(16,BODZF,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6418  1.11  christos {"bdzfa+",   BBO(16,BODZF,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6419  1.11  christos {"bdzfa",    BBO(16,BODZF,1,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6420  1.11  christos {"bdzfla-",  BBO(16,BODZF,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6421  1.11  christos {"bdzfla+",  BBO(16,BODZF,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6422  1.11  christos {"bdzfla",   BBO(16,BODZF,1,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6423  1.11  christos 
   6424  1.11  christos {"bf-",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6425  1.11  christos {"bf+",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6426  1.11  christos {"bf",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6427  1.11  christos {"bbf",	     BBO(16,BOF,0,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6428  1.11  christos {"bfl-",     BBO(16,BOF,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6429  1.11  christos {"bfl+",     BBO(16,BOF,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6430  1.11  christos {"bfl",	     BBO(16,BOF,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6431  1.11  christos {"bbfl",     BBO(16,BOF,0,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6432  1.11  christos {"bfa-",     BBO(16,BOF,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6433  1.11  christos {"bfa+",     BBO(16,BOF,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6434  1.11  christos {"bfa",	     BBO(16,BOF,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6435  1.11  christos {"bbfa",     BBO(16,BOF,1,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6436  1.11  christos {"bfla-",    BBO(16,BOF,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6437  1.11  christos {"bfla+",    BBO(16,BOF,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6438  1.11  christos {"bfla",     BBO(16,BOF,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6439  1.11  christos {"bbfla",    BBO(16,BOF,1,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6440  1.11  christos 
   6441  1.11  christos {"bdnzt-",   BBO(16,BODNZT,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6442  1.11  christos {"bdnzt+",   BBO(16,BODNZT,0,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6443  1.11  christos {"bdnzt",    BBO(16,BODNZT,0,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6444  1.11  christos {"bdnztl-",  BBO(16,BODNZT,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6445  1.11  christos {"bdnztl+",  BBO(16,BODNZT,0,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6446  1.11  christos {"bdnztl",   BBO(16,BODNZT,0,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6447  1.11  christos {"bdnzta-",  BBO(16,BODNZT,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6448  1.11  christos {"bdnzta+",  BBO(16,BODNZT,1,0),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6449  1.11  christos {"bdnzta",   BBO(16,BODNZT,1,0),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6450  1.11  christos {"bdnztla-", BBO(16,BODNZT,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6451  1.11  christos {"bdnztla+", BBO(16,BODNZT,1,1),	BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6452  1.11  christos {"bdnztla",  BBO(16,BODNZT,1,1),	BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6453  1.11  christos {"bdzt-",    BBO(16,BODZT,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6454  1.11  christos {"bdzt+",    BBO(16,BODZT,0,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6455  1.11  christos {"bdzt",     BBO(16,BODZT,0,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6456  1.11  christos {"bdztl-",   BBO(16,BODZT,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDM}},
   6457  1.11  christos {"bdztl+",   BBO(16,BODZT,0,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDP}},
   6458  1.11  christos {"bdztl",    BBO(16,BODZT,0,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BD}},
   6459  1.11  christos {"bdzta-",   BBO(16,BODZT,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6460  1.11  christos {"bdzta+",   BBO(16,BODZT,1,0),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6461  1.11  christos {"bdzta",    BBO(16,BODZT,1,0),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6462  1.11  christos {"bdztla-",  BBO(16,BODZT,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDMA}},
   6463  1.11  christos {"bdztla+",  BBO(16,BODZT,1,1),		BBOY_MASK,     PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BDPA}},
   6464  1.11  christos {"bdztla",   BBO(16,BODZT,1,1),		BBOY_MASK,     PPCCOM,	 PPCVLE|EXT,		{BI, BDA}},
   6465  1.11  christos 
   6466  1.11  christos {"bt-",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6467  1.11  christos {"bt+",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6468  1.11  christos {"bt",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6469  1.11  christos {"bbt",	     BBO(16,BOT,0,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6470  1.11  christos {"btl-",     BBO(16,BOT,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDM}},
   6471  1.11  christos {"btl+",     BBO(16,BOT,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDP}},
   6472  1.11  christos {"btl",	     BBO(16,BOT,0,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BD}},
   6473  1.11  christos {"bbtl",     BBO(16,BOT,0,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BD}},
   6474  1.11  christos {"bta-",     BBO(16,BOT,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6475  1.11  christos {"bta+",     BBO(16,BOT,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6476  1.11  christos {"bta",	     BBO(16,BOT,1,0),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6477  1.11  christos {"bbta",     BBO(16,BOT,1,0),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6478   1.7  christos {"btla-",    BBO(16,BOT,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDMA}},
   6479  1.11  christos {"btla+",    BBO(16,BOT,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDPA}},
   6480  1.11  christos {"btla",     BBO(16,BOT,1,1),		BBOAT_MASK,    PPCCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6481   1.7  christos {"bbtla",    BBO(16,BOT,1,1),		BBOAT_MASK,    PWRCOM,	 PPCVLE|EXT,	{BI, BDA}},
   6482  1.11  christos 
   6483  1.11  christos {"bc-",		B(16,0,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDM}},
   6484   1.7  christos {"bc+",		B(16,0,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDP}},
   6485  1.11  christos {"bc",		B(16,0,0),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BD}},
   6486  1.11  christos {"bcl-",	B(16,0,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDM}},
   6487   1.7  christos {"bcl+",	B(16,0,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDP}},
   6488  1.11  christos {"bcl",		B(16,0,1),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BD}},
   6489  1.11  christos {"bca-",	B(16,1,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDMA}},
   6490   1.7  christos {"bca+",	B(16,1,0),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDPA}},
   6491   1.7  christos {"bca",		B(16,1,0),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BDA}},
   6492   1.7  christos {"bcla-",	B(16,1,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOM, BI, BDMA}},
   6493   1.8  christos {"bcla+",	B(16,1,1),	B_MASK,	     PPCCOM,	PPCVLE|EXT,	{BOP, BI, BDPA}},
   6494   1.7  christos {"bcla",	B(16,1,1),	B_MASK,	     COM,	PPCVLE,		{BO, BI, BDA}},
   6495   1.7  christos 
   6496   1.7  christos {"svc",		SC(17,0,0),	SC_MASK,     POWER,	PPCVLE,		{SVC_LEV, FL1, FL2}},
   6497   1.7  christos {"scv",		SC(17,0,1),	SC_MASK,     POWER9,	PPCVLE,		{SVC_LEV}},
   6498   1.7  christos {"svcl",	SC(17,0,1),	SC_MASK,     POWER,	PPCVLE,		{SVC_LEV, FL1, FL2}},
   6499   1.7  christos {"sc",		SC(17,1,0),	SC_MASK,     PPC,	PPCVLE,		{LEV}},
   6500   1.7  christos {"svca",	SC(17,1,0),	SC_MASK,     PWRCOM,	PPCVLE,		{SV}},
   6501   1.7  christos {"svcla",	SC(17,1,1),	SC_MASK,     POWER,	PPCVLE,		{SV}},
   6502   1.7  christos 
   6503   1.7  christos {"b",		B(18,0,0),	B_MASK,	     COM,	PPCVLE,		{LI}},
   6504   1.7  christos {"bl",		B(18,0,1),	B_MASK,	     COM,	PPCVLE,		{LI}},
   6505   1.7  christos {"ba",		B(18,1,0),	B_MASK,	     COM,	PPCVLE,		{LIA}},
   6506  1.11  christos {"bla",		B(18,1,1),	B_MASK,	     COM,	PPCVLE,		{LIA}},
   6507   1.7  christos 
   6508  1.11  christos {"mcrf",     XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM,	PPCVLE,		{BF, BFA}},
   6509   1.7  christos 
   6510  1.11  christos {"lnia",     DX(19,2),		NODX_MASK,   POWER9,	PPCVLE|EXT,	{RT}},
   6511  1.11  christos {"addpcis",  DX(19,2),		DX_MASK,     POWER9,	PPCVLE,		{RT, DXD}},
   6512  1.11  christos {"subpcis",  DX(19,2),		DX_MASK,     POWER9,	PPCVLE|EXT,	{RT, NDXD}},
   6513  1.11  christos 
   6514  1.11  christos {"bdnzlr-",  XLO(19,BODNZ,16,0),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6515  1.11  christos {"bdnzlr+",  XLO(19,BODNZP,16,0),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6516  1.11  christos {"bdnzlr",   XLO(19,BODNZ,16,0),	XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6517  1.11  christos {"bdnzlrl-", XLO(19,BODNZ,16,1),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6518  1.11  christos {"bdnzlrl+", XLO(19,BODNZP,16,1),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6519  1.11  christos {"bdnzlrl",  XLO(19,BODNZ,16,1),	XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6520  1.11  christos {"bdzlr-",   XLO(19,BODZ,16,0),		XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6521  1.11  christos {"bdzlr+",   XLO(19,BODZP,16,0),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6522  1.11  christos {"bdzlr",    XLO(19,BODZ,16,0),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6523  1.11  christos {"bdzlrl-",  XLO(19,BODZ,16,1),		XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6524  1.11  christos {"bdzlrl+",  XLO(19,BODZP,16,1),	XLBOBIBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BH}},
   6525  1.11  christos {"bdzlrl",   XLO(19,BODZ,16,1),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6526  1.11  christos {"blr",	     XLO(19,BOU,16,0),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6527  1.11  christos {"br",	     XLO(19,BOU,16,0),		XLBOBIBB_MASK, PWRCOM,	 PPCVLE|EXT,		{BH}},
   6528  1.11  christos {"blrl",     XLO(19,BOU,16,1),		XLBOBIBB_MASK, PPCCOM,	 PPCVLE|EXT,		{BH}},
   6529  1.11  christos {"brl",	     XLO(19,BOU,16,1),		XLBOBIBB_MASK, PWRCOM,	 PPCVLE|EXT,		{BH}},
   6530  1.11  christos {"bdnzlr-",  XLO(19,BODNZM4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6531  1.11  christos {"bdnzlrl-", XLO(19,BODNZM4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6532  1.11  christos {"bdnzlr+",  XLO(19,BODNZP4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6533  1.11  christos {"bdnzlrl+", XLO(19,BODNZP4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6534  1.11  christos {"bdzlr-",   XLO(19,BODZM4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6535  1.11  christos {"bdzlrl-",  XLO(19,BODZM4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6536  1.11  christos {"bdzlr+",   XLO(19,BODZP4,16,0),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6537  1.11  christos {"bdzlrl+",  XLO(19,BODZP4,16,1),	XLBOBIBB_MASK, ISA_V2,	 PPCVLE|EXT,		{BH}},
   6538  1.11  christos 
   6539  1.11  christos {"bgelr-",   XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6540  1.11  christos {"bgelr+",   XLOCB(19,BOFP,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6541  1.11  christos {"bgelr",    XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6542  1.11  christos {"bger",     XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6543  1.11  christos {"bnllr-",   XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6544  1.11  christos {"bnllr+",   XLOCB(19,BOFP,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6545  1.11  christos {"bnllr",    XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6546  1.11  christos {"bnlr",     XLOCB(19,BOF,CBLT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6547  1.11  christos {"bgelrl-",  XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6548  1.11  christos {"bgelrl+",  XLOCB(19,BOFP,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6549  1.11  christos {"bgelrl",   XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6550  1.11  christos {"bgerl",    XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6551  1.11  christos {"bnllrl-",  XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6552  1.11  christos {"bnllrl+",  XLOCB(19,BOFP,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6553  1.11  christos {"bnllrl",   XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6554  1.11  christos {"bnlrl",    XLOCB(19,BOF,CBLT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6555  1.11  christos {"blelr-",   XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6556  1.11  christos {"blelr+",   XLOCB(19,BOFP,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6557  1.11  christos {"blelr",    XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6558  1.11  christos {"bler",     XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6559  1.11  christos {"bnglr-",   XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6560  1.11  christos {"bnglr+",   XLOCB(19,BOFP,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6561  1.11  christos {"bnglr",    XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6562  1.11  christos {"bngr",     XLOCB(19,BOF,CBGT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6563  1.11  christos {"blelrl-",  XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6564  1.11  christos {"blelrl+",  XLOCB(19,BOFP,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6565  1.11  christos {"blelrl",   XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6566  1.11  christos {"blerl",    XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6567  1.11  christos {"bnglrl-",  XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6568  1.11  christos {"bnglrl+",  XLOCB(19,BOFP,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6569  1.11  christos {"bnglrl",   XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6570  1.11  christos {"bngrl",    XLOCB(19,BOF,CBGT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6571  1.11  christos {"bnelr-",   XLOCB(19,BOF,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6572  1.11  christos {"bnelr+",   XLOCB(19,BOFP,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6573  1.11  christos {"bnelr",    XLOCB(19,BOF,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6574  1.11  christos {"bner",     XLOCB(19,BOF,CBEQ,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6575  1.11  christos {"bnelrl-",  XLOCB(19,BOF,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6576  1.11  christos {"bnelrl+",  XLOCB(19,BOFP,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6577  1.11  christos {"bnelrl",   XLOCB(19,BOF,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6578  1.11  christos {"bnerl",    XLOCB(19,BOF,CBEQ,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6579  1.11  christos {"bnslr-",   XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6580  1.11  christos {"bnslr+",   XLOCB(19,BOFP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6581  1.11  christos {"bnslr",    XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6582  1.11  christos {"bnsr",     XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6583  1.11  christos {"bnulr-",   XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6584  1.11  christos {"bnulr+",   XLOCB(19,BOFP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6585  1.11  christos {"bnulr",    XLOCB(19,BOF,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6586  1.11  christos {"bnslrl-",  XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6587  1.11  christos {"bnslrl+",  XLOCB(19,BOFP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6588  1.11  christos {"bnslrl",   XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6589  1.11  christos {"bnsrl",    XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6590  1.11  christos {"bnulrl-",  XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6591  1.11  christos {"bnulrl+",  XLOCB(19,BOFP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6592  1.11  christos {"bnulrl",   XLOCB(19,BOF,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6593  1.11  christos {"bgelr-",   XLOCB(19,BOFM4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6594  1.11  christos {"bnllr-",   XLOCB(19,BOFM4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6595  1.11  christos {"bgelrl-",  XLOCB(19,BOFM4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6596  1.11  christos {"bnllrl-",  XLOCB(19,BOFM4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6597  1.11  christos {"blelr-",   XLOCB(19,BOFM4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6598  1.11  christos {"bnglr-",   XLOCB(19,BOFM4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6599  1.11  christos {"blelrl-",  XLOCB(19,BOFM4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6600  1.11  christos {"bnglrl-",  XLOCB(19,BOFM4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6601  1.11  christos {"bnelr-",   XLOCB(19,BOFM4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6602  1.11  christos {"bnelrl-",  XLOCB(19,BOFM4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6603  1.11  christos {"bnslr-",   XLOCB(19,BOFM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6604  1.11  christos {"bnulr-",   XLOCB(19,BOFM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6605  1.11  christos {"bnslrl-",  XLOCB(19,BOFM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6606  1.11  christos {"bnulrl-",  XLOCB(19,BOFM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6607  1.11  christos {"bgelr+",   XLOCB(19,BOFP4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6608  1.11  christos {"bnllr+",   XLOCB(19,BOFP4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6609  1.11  christos {"bgelrl+",  XLOCB(19,BOFP4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6610  1.11  christos {"bnllrl+",  XLOCB(19,BOFP4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6611  1.11  christos {"blelr+",   XLOCB(19,BOFP4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6612  1.11  christos {"bnglr+",   XLOCB(19,BOFP4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6613  1.11  christos {"blelrl+",  XLOCB(19,BOFP4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6614  1.11  christos {"bnglrl+",  XLOCB(19,BOFP4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6615  1.11  christos {"bnelr+",   XLOCB(19,BOFP4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6616  1.11  christos {"bnelrl+",  XLOCB(19,BOFP4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6617  1.11  christos {"bnslr+",   XLOCB(19,BOFP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6618  1.11  christos {"bnulr+",   XLOCB(19,BOFP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6619  1.11  christos {"bnslrl+",  XLOCB(19,BOFP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6620  1.11  christos {"bnulrl+",  XLOCB(19,BOFP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6621  1.11  christos {"bltlr-",   XLOCB(19,BOT,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6622  1.11  christos {"bltlr+",   XLOCB(19,BOTP,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6623  1.11  christos {"bltlr",    XLOCB(19,BOT,CBLT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6624  1.11  christos {"bltr",     XLOCB(19,BOT,CBLT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6625  1.11  christos {"bltlrl-",  XLOCB(19,BOT,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6626  1.11  christos {"bltlrl+",  XLOCB(19,BOTP,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6627  1.11  christos {"bltlrl",   XLOCB(19,BOT,CBLT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6628  1.11  christos {"bltrl",    XLOCB(19,BOT,CBLT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6629  1.11  christos {"bgtlr-",   XLOCB(19,BOT,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6630  1.11  christos {"bgtlr+",   XLOCB(19,BOTP,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6631  1.11  christos {"bgtlr",    XLOCB(19,BOT,CBGT,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6632  1.11  christos {"bgtr",     XLOCB(19,BOT,CBGT,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6633  1.11  christos {"bgtlrl-",  XLOCB(19,BOT,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6634  1.11  christos {"bgtlrl+",  XLOCB(19,BOTP,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6635  1.11  christos {"bgtlrl",   XLOCB(19,BOT,CBGT,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6636  1.11  christos {"bgtrl",    XLOCB(19,BOT,CBGT,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6637  1.11  christos {"beqlr-",   XLOCB(19,BOT,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6638  1.11  christos {"beqlr+",   XLOCB(19,BOTP,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6639  1.11  christos {"beqlr",    XLOCB(19,BOT,CBEQ,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6640  1.11  christos {"beqr",     XLOCB(19,BOT,CBEQ,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6641  1.11  christos {"beqlrl-",  XLOCB(19,BOT,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6642  1.11  christos {"beqlrl+",  XLOCB(19,BOTP,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6643  1.11  christos {"beqlrl",   XLOCB(19,BOT,CBEQ,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6644  1.11  christos {"beqrl",    XLOCB(19,BOT,CBEQ,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6645  1.11  christos {"bsolr-",   XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6646  1.11  christos {"bsolr+",   XLOCB(19,BOTP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6647  1.11  christos {"bsolr",    XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6648  1.11  christos {"bsor",     XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6649  1.11  christos {"bunlr-",   XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6650  1.11  christos {"bunlr+",   XLOCB(19,BOTP,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6651  1.11  christos {"bunlr",    XLOCB(19,BOT,CBSO,16,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6652  1.11  christos {"bsolrl-",  XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6653  1.11  christos {"bsolrl+",  XLOCB(19,BOTP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6654  1.11  christos {"bsolrl",   XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6655  1.11  christos {"bsorl",    XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PWRCOM,	 PPCVLE|EXT,		{CR, BH}},
   6656  1.11  christos {"bunlrl-",  XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6657  1.11  christos {"bunlrl+",  XLOCB(19,BOTP,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6658  1.11  christos {"bunlrl",   XLOCB(19,BOT,CBSO,16,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6659  1.11  christos {"bltlr-",   XLOCB(19,BOTM4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6660  1.11  christos {"bltlrl-",  XLOCB(19,BOTM4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6661  1.11  christos {"bgtlr-",   XLOCB(19,BOTM4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6662  1.11  christos {"bgtlrl-",  XLOCB(19,BOTM4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6663  1.11  christos {"beqlr-",   XLOCB(19,BOTM4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6664  1.11  christos {"beqlrl-",  XLOCB(19,BOTM4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6665  1.11  christos {"bsolr-",   XLOCB(19,BOTM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6666  1.11  christos {"bunlr-",   XLOCB(19,BOTM4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6667  1.11  christos {"bsolrl-",  XLOCB(19,BOTM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6668  1.11  christos {"bunlrl-",  XLOCB(19,BOTM4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6669  1.11  christos {"bltlr+",   XLOCB(19,BOTP4,CBLT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6670  1.11  christos {"bltlrl+",  XLOCB(19,BOTP4,CBLT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6671  1.11  christos {"bgtlr+",   XLOCB(19,BOTP4,CBGT,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6672  1.11  christos {"bgtlrl+",  XLOCB(19,BOTP4,CBGT,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6673  1.11  christos {"beqlr+",   XLOCB(19,BOTP4,CBEQ,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6674  1.11  christos {"beqlrl+",  XLOCB(19,BOTP4,CBEQ,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6675  1.11  christos {"bsolr+",   XLOCB(19,BOTP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6676  1.11  christos {"bunlr+",   XLOCB(19,BOTP4,CBSO,16,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6677  1.11  christos {"bsolrl+",  XLOCB(19,BOTP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6678  1.11  christos {"bunlrl+",  XLOCB(19,BOTP4,CBSO,16,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6679  1.11  christos 
   6680  1.11  christos {"bdnzflr-", XLO(19,BODNZF,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6681  1.11  christos {"bdnzflr+", XLO(19,BODNZFP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6682  1.11  christos {"bdnzflr",  XLO(19,BODNZF,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6683  1.11  christos {"bdnzflrl-",XLO(19,BODNZF,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6684  1.11  christos {"bdnzflrl+",XLO(19,BODNZFP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6685  1.11  christos {"bdnzflrl", XLO(19,BODNZF,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6686  1.11  christos {"bdzflr-",  XLO(19,BODZF,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6687  1.11  christos {"bdzflr+",  XLO(19,BODZFP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6688  1.11  christos {"bdzflr",   XLO(19,BODZF,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6689  1.11  christos {"bdzflrl-", XLO(19,BODZF,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6690  1.11  christos {"bdzflrl+", XLO(19,BODZFP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6691  1.11  christos {"bdzflrl",  XLO(19,BODZF,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6692  1.11  christos {"bflr-",    XLO(19,BOF,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6693  1.11  christos {"bflr+",    XLO(19,BOFP,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6694  1.11  christos {"bflr",     XLO(19,BOF,16,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6695  1.11  christos {"bbfr",     XLO(19,BOF,16,0),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6696  1.11  christos {"bflrl-",   XLO(19,BOF,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6697  1.11  christos {"bflrl+",   XLO(19,BOFP,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6698  1.11  christos {"bflrl",    XLO(19,BOF,16,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6699  1.11  christos {"bbfrl",    XLO(19,BOF,16,1),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6700  1.11  christos {"bflr-",    XLO(19,BOFM4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6701  1.11  christos {"bflrl-",   XLO(19,BOFM4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6702  1.11  christos {"bflr+",    XLO(19,BOFP4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6703  1.11  christos {"bflrl+",   XLO(19,BOFP4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6704  1.11  christos {"bdnztlr-", XLO(19,BODNZT,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6705  1.11  christos {"bdnztlr+", XLO(19,BODNZTP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6706  1.11  christos {"bdnztlr",  XLO(19,BODNZT,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6707  1.11  christos {"bdnztlrl-", XLO(19,BODNZT,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6708  1.11  christos {"bdnztlrl+", XLO(19,BODNZTP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6709  1.11  christos {"bdnztlrl", XLO(19,BODNZT,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6710  1.11  christos {"bdztlr-",  XLO(19,BODZT,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6711  1.11  christos {"bdztlr+",  XLO(19,BODZTP,16,0),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6712  1.11  christos {"bdztlr",   XLO(19,BODZT,16,0),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6713  1.11  christos {"bdztlrl-", XLO(19,BODZT,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6714  1.11  christos {"bdztlrl+", XLO(19,BODZTP,16,1),	XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6715  1.11  christos {"bdztlrl",  XLO(19,BODZT,16,1),	XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6716  1.11  christos {"btlr-",    XLO(19,BOT,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6717  1.11  christos {"btlr+",    XLO(19,BOTP,16,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6718  1.11  christos {"btlr",     XLO(19,BOT,16,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6719  1.11  christos {"bbtr",     XLO(19,BOT,16,0),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6720  1.11  christos {"btlrl-",   XLO(19,BOT,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6721  1.11  christos {"btlrl+",   XLO(19,BOTP,16,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6722  1.11  christos {"btlrl",    XLO(19,BOT,16,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6723  1.11  christos {"bbtrl",    XLO(19,BOT,16,1),		XLBOBB_MASK,   PWRCOM,	 PPCVLE|EXT,		{BI, BH}},
   6724   1.7  christos {"btlr-",    XLO(19,BOTM4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6725  1.11  christos {"btlrl-",   XLO(19,BOTM4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6726  1.11  christos {"btlr+",    XLO(19,BOTP4,16,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6727   1.7  christos {"btlrl+",   XLO(19,BOTP4,16,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6728  1.10  christos 
   6729  1.11  christos {"bclr-",    XLLK(19,16,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6730  1.11  christos {"bclr+",    XLLK(19,16,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6731   1.7  christos {"bclr",     XLLK(19,16,0),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6732  1.10  christos {"bcr",	     XLLK(19,16,0),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6733   1.7  christos {"bclrl-",   XLLK(19,16,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6734   1.7  christos {"bclrl+",   XLLK(19,16,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6735   1.7  christos {"bclrl",    XLLK(19,16,1),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6736  1.11  christos {"bcrl",     XLLK(19,16,1),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6737   1.7  christos 
   6738  1.11  christos {"rfid",	XL(19,18),	0xffffffff,  PPC64,	PPCVLE,	{0}},
   6739   1.7  christos 
   6740   1.7  christos {"crnot",	XL(19,33),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BT, BAB}},
   6741   1.7  christos {"crnor",	XL(19,33),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6742   1.7  christos 
   6743   1.7  christos {"rfmci",	X(19,38),    0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE,	{0}},
   6744   1.8  christos {"rfdi",	XL(19,39),	0xffffffff,  E500MC,	PPCVLE,		{0}},
   6745   1.7  christos {"rfi",		XL(19,50),	0xffffffff,  COM,	PPCVLE,		{0}},
   6746   1.7  christos {"rfci",	XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
   6747   1.7  christos 
   6748   1.7  christos {"rfscv",	XL(19,82),	0xffffffff,  POWER9,	PPCVLE,		{0}},
   6749   1.7  christos {"rfsvc",	XL(19,82),	0xffffffff,  POWER,	PPCVLE,		{0}},
   6750   1.7  christos 
   6751   1.7  christos {"rfgi",	XL(19,102),   0xffffffff, E500MC|PPCA2,	PPCVLE,		{0}},
   6752   1.7  christos 
   6753   1.7  christos {"crandc",	XL(19,129),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6754   1.7  christos 
   6755   1.7  christos {"rfebb",	XL(19,146),	XLS_MASK,    POWER8,	PPCVLE,		{SXL}},
   6756  1.11  christos 
   6757   1.7  christos {"isync",	XL(19,150),	0xffffffff,  PPCCOM,	PPCVLE,		{0}},
   6758   1.7  christos {"ics",		XL(19,150),	0xffffffff,  PWRCOM,	PPCVLE,		{0}},
   6759   1.7  christos 
   6760   1.7  christos {"crclr",	XL(19,193),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BTAB}},
   6761   1.7  christos {"crxor",	XL(19,193),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6762   1.7  christos 
   6763   1.7  christos {"dnh",		X(19,198),	X_MASK,	     E500MC,	PPCVLE,		{DUI, DUIS}},
   6764   1.7  christos 
   6765   1.7  christos {"crnand",	XL(19,225),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6766   1.7  christos 
   6767  1.11  christos {"crand",	XL(19,257),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6768   1.7  christos 
   6769   1.7  christos {"hrfid",	XL(19,274),    0xffffffff, POWER5|CELL, PPC476|PPCVLE,	{0}},
   6770   1.7  christos 
   6771   1.7  christos {"crset",	XL(19,289),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BTAB}},
   6772   1.7  christos {"creqv",	XL(19,289),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6773   1.7  christos 
   6774   1.7  christos {"urfid",	XL(19,306),	0xffffffff,  POWER9,	PPCVLE,		{0}},
   6775   1.7  christos {"stop",	XL(19,370),	0xffffffff,  POWER9,	PPCVLE,		{0}},
   6776   1.7  christos 
   6777   1.7  christos {"doze",	XL(19,402),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6778   1.7  christos 
   6779  1.11  christos {"crorc",	XL(19,417),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6780   1.7  christos 
   6781   1.7  christos {"nap",		XL(19,434),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6782   1.7  christos 
   6783   1.7  christos {"crmove",	XL(19,449),	XL_MASK,     PPCCOM,	PPCVLE|EXT,	{BT, BAB}},
   6784   1.7  christos {"cror",	XL(19,449),	XL_MASK,     COM,	PPCVLE,		{BT, BA, BB}},
   6785  1.11  christos 
   6786  1.11  christos {"sleep",	XL(19,466),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6787  1.11  christos {"rvwinkle",	XL(19,498),	0xffffffff,  POWER6,	POWER9|PPCVLE,	{0}},
   6788  1.11  christos 
   6789  1.11  christos {"bctr",    XLO(19,BOU,528,0),		XLBOBIBB_MASK, COM,	 PPCVLE|EXT,		{BH}},
   6790  1.11  christos {"bctrl",   XLO(19,BOU,528,1),		XLBOBIBB_MASK, COM,	 PPCVLE|EXT,		{BH}},
   6791  1.11  christos {"bgectr-", XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6792  1.11  christos {"bgectr+", XLOCB(19,BOFP,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6793  1.11  christos {"bgectr",  XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6794  1.11  christos {"bnlctr-", XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6795  1.11  christos {"bnlctr+", XLOCB(19,BOFP,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6796  1.11  christos {"bnlctr",  XLOCB(19,BOF,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6797  1.11  christos {"bgectrl-",XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6798  1.11  christos {"bgectrl+",XLOCB(19,BOFP,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6799  1.11  christos {"bgectrl", XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6800  1.11  christos {"bnlctrl-",XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6801  1.11  christos {"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6802  1.11  christos {"bnlctrl", XLOCB(19,BOF,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6803  1.11  christos {"blectr-", XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6804  1.11  christos {"blectr+", XLOCB(19,BOFP,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6805  1.11  christos {"blectr",  XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6806  1.11  christos {"bngctr-", XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6807  1.11  christos {"bngctr+", XLOCB(19,BOFP,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6808  1.11  christos {"bngctr",  XLOCB(19,BOF,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6809  1.11  christos {"blectrl-",XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6810  1.11  christos {"blectrl+",XLOCB(19,BOFP,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6811  1.11  christos {"blectrl", XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6812  1.11  christos {"bngctrl-",XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6813  1.11  christos {"bngctrl+",XLOCB(19,BOFP,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6814  1.11  christos {"bngctrl", XLOCB(19,BOF,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6815  1.11  christos {"bnectr-", XLOCB(19,BOF,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6816  1.11  christos {"bnectr+", XLOCB(19,BOFP,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6817  1.11  christos {"bnectr",  XLOCB(19,BOF,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6818  1.11  christos {"bnectrl-",XLOCB(19,BOF,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6819  1.11  christos {"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6820  1.11  christos {"bnectrl", XLOCB(19,BOF,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6821  1.11  christos {"bnsctr-", XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6822  1.11  christos {"bnsctr+", XLOCB(19,BOFP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6823  1.11  christos {"bnsctr",  XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6824  1.11  christos {"bnuctr-", XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6825  1.11  christos {"bnuctr+", XLOCB(19,BOFP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6826  1.11  christos {"bnuctr",  XLOCB(19,BOF,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6827  1.11  christos {"bnsctrl-",XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6828  1.11  christos {"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6829  1.11  christos {"bnsctrl", XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6830  1.11  christos {"bnuctrl-",XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6831  1.11  christos {"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6832  1.11  christos {"bnuctrl", XLOCB(19,BOF,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6833  1.11  christos {"bgectr-", XLOCB(19,BOFM4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6834  1.11  christos {"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6835  1.11  christos {"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6836  1.11  christos {"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6837  1.11  christos {"blectr-", XLOCB(19,BOFM4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6838  1.11  christos {"bngctr-", XLOCB(19,BOFM4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6839  1.11  christos {"blectrl-",XLOCB(19,BOFM4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6840  1.11  christos {"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6841  1.11  christos {"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6842  1.11  christos {"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6843  1.11  christos {"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6844  1.11  christos {"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6845  1.11  christos {"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6846  1.11  christos {"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6847  1.11  christos {"bgectr+", XLOCB(19,BOFP4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6848  1.11  christos {"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6849  1.11  christos {"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6850  1.11  christos {"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6851  1.11  christos {"blectr+", XLOCB(19,BOFP4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6852  1.11  christos {"bngctr+", XLOCB(19,BOFP4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6853  1.11  christos {"blectrl+",XLOCB(19,BOFP4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6854  1.11  christos {"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6855  1.11  christos {"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6856  1.11  christos {"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6857  1.11  christos {"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6858  1.11  christos {"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6859  1.11  christos {"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6860  1.11  christos {"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6861  1.11  christos {"bltctr-", XLOCB(19,BOT,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6862  1.11  christos {"bltctr+", XLOCB(19,BOTP,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6863  1.11  christos {"bltctr",  XLOCB(19,BOT,CBLT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6864  1.11  christos {"bltctrl-",XLOCB(19,BOT,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6865  1.11  christos {"bltctrl+",XLOCB(19,BOTP,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6866  1.11  christos {"bltctrl", XLOCB(19,BOT,CBLT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6867  1.11  christos {"bgtctr-", XLOCB(19,BOT,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6868  1.11  christos {"bgtctr+", XLOCB(19,BOTP,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6869  1.11  christos {"bgtctr",  XLOCB(19,BOT,CBGT,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6870  1.11  christos {"bgtctrl-",XLOCB(19,BOT,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6871  1.11  christos {"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6872  1.11  christos {"bgtctrl", XLOCB(19,BOT,CBGT,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6873  1.11  christos {"beqctr-", XLOCB(19,BOT,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6874  1.11  christos {"beqctr+", XLOCB(19,BOTP,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6875  1.11  christos {"beqctr",  XLOCB(19,BOT,CBEQ,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6876  1.11  christos {"beqctrl-",XLOCB(19,BOT,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6877  1.11  christos {"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6878  1.11  christos {"beqctrl", XLOCB(19,BOT,CBEQ,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6879  1.11  christos {"bsoctr-", XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6880  1.11  christos {"bsoctr+", XLOCB(19,BOTP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6881  1.11  christos {"bsoctr",  XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6882  1.11  christos {"bunctr-", XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6883  1.11  christos {"bunctr+", XLOCB(19,BOTP,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6884  1.11  christos {"bunctr",  XLOCB(19,BOT,CBSO,528,0),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6885  1.11  christos {"bsoctrl-",XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6886  1.11  christos {"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6887  1.11  christos {"bsoctrl", XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6888  1.11  christos {"bunctrl-",XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6889  1.11  christos {"bunctrl+",XLOCB(19,BOTP,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 ISA_V2|PPCVLE|EXT,	{CR, BH}},
   6890  1.11  christos {"bunctrl", XLOCB(19,BOT,CBSO,528,1),	XLBOCBBB_MASK, PPCCOM,	 PPCVLE|EXT,		{CR, BH}},
   6891  1.11  christos {"bltctr-", XLOCB(19,BOTM4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6892  1.11  christos {"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6893  1.11  christos {"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6894  1.11  christos {"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6895  1.11  christos {"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6896  1.11  christos {"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6897  1.11  christos {"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6898  1.11  christos {"bunctr-", XLOCB(19,BOTM4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6899  1.11  christos {"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6900  1.11  christos {"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6901  1.11  christos {"bltctr+", XLOCB(19,BOTP4,CBLT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6902  1.11  christos {"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6903  1.11  christos {"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6904  1.11  christos {"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6905  1.11  christos {"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6906  1.11  christos {"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6907  1.11  christos {"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6908  1.11  christos {"bunctr+", XLOCB(19,BOTP4,CBSO,528,0),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6909  1.11  christos {"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6910  1.11  christos {"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1),	XLBOCBBB_MASK, ISA_V2,	 PPCVLE|EXT,		{CR, BH}},
   6911  1.11  christos 
   6912  1.11  christos {"bfctr-",  XLO(19,BOF,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6913  1.11  christos {"bfctr+",  XLO(19,BOFP,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6914  1.11  christos {"bfctr",   XLO(19,BOF,528,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6915  1.11  christos {"bfctrl-", XLO(19,BOF,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6916  1.11  christos {"bfctrl+", XLO(19,BOFP,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6917  1.11  christos {"bfctrl",  XLO(19,BOF,528,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6918  1.11  christos {"bfctr-",  XLO(19,BOFM4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6919  1.11  christos {"bfctrl-", XLO(19,BOFM4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6920  1.11  christos {"bfctr+",  XLO(19,BOFP4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6921  1.11  christos {"bfctrl+", XLO(19,BOFP4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6922  1.11  christos {"btctr-",  XLO(19,BOT,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6923  1.11  christos {"btctr+",  XLO(19,BOTP,528,0),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6924  1.11  christos {"btctr",   XLO(19,BOT,528,0),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6925  1.11  christos {"btctrl-", XLO(19,BOT,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6926  1.11  christos {"btctrl+", XLO(19,BOTP,528,1),		XLBOBB_MASK,   PPCCOM,	 ISA_V2|PPCVLE|EXT,	{BI, BH}},
   6927  1.11  christos {"btctrl",  XLO(19,BOT,528,1),		XLBOBB_MASK,   PPCCOM,	 PPCVLE|EXT,		{BI, BH}},
   6928   1.7  christos {"btctr-",  XLO(19,BOTM4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6929  1.11  christos {"btctrl-", XLO(19,BOTM4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6930  1.11  christos {"btctr+",  XLO(19,BOTP4,528,0),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6931   1.7  christos {"btctrl+", XLO(19,BOTP4,528,1),	XLBOBB_MASK,   ISA_V2,	 PPCVLE|EXT,		{BI, BH}},
   6932  1.10  christos 
   6933  1.11  christos {"bcctr-",  XLLK(19,528,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6934  1.11  christos {"bcctr+",  XLLK(19,528,0),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6935   1.7  christos {"bcctr",   XLLK(19,528,0),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6936  1.10  christos {"bcc",	    XLLK(19,528,0),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6937   1.7  christos {"bcctrl-", XLLK(19,528,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOM, BI, BH}},
   6938  1.11  christos {"bcctrl+", XLLK(19,528,1),		XLBH_MASK,     PPCCOM,	 PPCVLE|EXT,	{BOP, BI, BH}},
   6939  1.11  christos {"bcctrl",  XLLK(19,528,1),		XLBH_MASK,     PPCCOM,	 PPCVLE,	{BO, BI, BH}},
   6940  1.11  christos {"bccl",    XLLK(19,528,1),		XLBH_MASK,     PWRCOM,	 PPCVLE,	{BO, BI, BH}},
   6941  1.11  christos 
   6942  1.11  christos {"bdnztar",   XLO(19,BODNZ,560,0),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6943  1.11  christos {"bdnztarl",  XLO(19,BODNZ,560,1),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6944  1.11  christos {"bdztar",    XLO(19,BODZ,560,0),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6945  1.11  christos {"bdztarl",   XLO(19,BODZ,560,1),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6946  1.11  christos {"btar",      XLO(19,BOU,560,0),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6947  1.11  christos {"btarl",     XLO(19,BOU,560,1),	XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6948  1.11  christos {"bdnztar-",  XLO(19,BODNZM4,560,0),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6949  1.11  christos {"bdnztarl-", XLO(19,BODNZM4,560,1),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6950  1.11  christos {"bdnztar+",  XLO(19,BODNZP4,560,0),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6951  1.11  christos {"bdnztarl+", XLO(19,BODNZP4,560,1),    XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6952  1.11  christos {"bdztar-",   XLO(19,BODZM4,560,0),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6953  1.11  christos {"bdztarl-",  XLO(19,BODZM4,560,1),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6954  1.11  christos {"bdztar+",   XLO(19,BODZP4,560,0),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6955  1.11  christos {"bdztarl+",  XLO(19,BODZP4,560,1),     XLBOBIBB_MASK, POWER8,   PPCVLE|EXT,	{BH}},
   6956  1.11  christos 
   6957  1.11  christos {"bgetar",  XLOCB(19,BOF,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6958  1.11  christos {"bnltar",  XLOCB(19,BOF,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6959  1.11  christos {"bgetarl", XLOCB(19,BOF,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6960  1.11  christos {"bnltarl", XLOCB(19,BOF,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6961  1.11  christos {"bletar",  XLOCB(19,BOF,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6962  1.11  christos {"bngtar",  XLOCB(19,BOF,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6963  1.11  christos {"bletarl", XLOCB(19,BOF,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6964  1.11  christos {"bngtarl", XLOCB(19,BOF,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6965  1.11  christos {"bnetar",  XLOCB(19,BOF,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6966  1.11  christos {"bnetarl", XLOCB(19,BOF,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6967  1.11  christos {"bnstar",  XLOCB(19,BOF,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6968  1.11  christos {"bnutar",  XLOCB(19,BOF,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6969  1.11  christos {"bnstarl", XLOCB(19,BOF,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6970  1.11  christos {"bnutarl", XLOCB(19,BOF,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6971  1.11  christos {"bgetar-", XLOCB(19,BOFM4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6972  1.11  christos {"bnltar-", XLOCB(19,BOFM4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6973  1.11  christos {"bgetarl-",XLOCB(19,BOFM4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6974  1.11  christos {"bnltarl-",XLOCB(19,BOFM4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6975  1.11  christos {"bletar-", XLOCB(19,BOFM4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6976  1.11  christos {"bngtar-", XLOCB(19,BOFM4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6977  1.11  christos {"bletarl-",XLOCB(19,BOFM4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6978  1.11  christos {"bngtarl-",XLOCB(19,BOFM4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6979  1.11  christos {"bnetar-", XLOCB(19,BOFM4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6980  1.11  christos {"bnetarl-",XLOCB(19,BOFM4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6981  1.11  christos {"bnstar-", XLOCB(19,BOFM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6982  1.11  christos {"bnutar-", XLOCB(19,BOFM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6983  1.11  christos {"bnstarl-",XLOCB(19,BOFM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6984  1.11  christos {"bnutarl-",XLOCB(19,BOFM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6985  1.11  christos {"bgetar+", XLOCB(19,BOFP4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6986  1.11  christos {"bnltar+", XLOCB(19,BOFP4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6987  1.11  christos {"bgetarl+",XLOCB(19,BOFP4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6988  1.11  christos {"bnltarl+",XLOCB(19,BOFP4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6989  1.11  christos {"bletar+", XLOCB(19,BOFP4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6990  1.11  christos {"bngtar+", XLOCB(19,BOFP4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6991  1.11  christos {"bletarl+",XLOCB(19,BOFP4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6992  1.11  christos {"bngtarl+",XLOCB(19,BOFP4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6993  1.11  christos {"bnetar+", XLOCB(19,BOFP4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6994  1.11  christos {"bnetarl+",XLOCB(19,BOFP4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6995  1.11  christos {"bnstar+", XLOCB(19,BOFP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6996  1.11  christos {"bnutar+", XLOCB(19,BOFP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6997  1.11  christos {"bnstarl+",XLOCB(19,BOFP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6998  1.11  christos {"bnutarl+",XLOCB(19,BOFP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   6999  1.11  christos {"blttar",  XLOCB(19,BOT,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7000  1.11  christos {"blttarl", XLOCB(19,BOT,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7001  1.11  christos {"bgttar",  XLOCB(19,BOT,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7002  1.11  christos {"bgttarl", XLOCB(19,BOT,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7003  1.11  christos {"beqtar",  XLOCB(19,BOT,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7004  1.11  christos {"beqtarl", XLOCB(19,BOT,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7005  1.11  christos {"bsotar",  XLOCB(19,BOT,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7006  1.11  christos {"buntar",  XLOCB(19,BOT,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7007  1.11  christos {"bsotarl", XLOCB(19,BOT,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7008  1.11  christos {"buntarl", XLOCB(19,BOT,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7009  1.11  christos {"blttar-", XLOCB(19,BOTM4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7010  1.11  christos {"blttarl-",XLOCB(19,BOTM4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7011  1.11  christos {"bgttar-", XLOCB(19,BOTM4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7012  1.11  christos {"bgttarl-",XLOCB(19,BOTM4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7013  1.11  christos {"beqtar-", XLOCB(19,BOTM4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7014  1.11  christos {"beqtarl-",XLOCB(19,BOTM4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7015  1.11  christos {"bsotar-", XLOCB(19,BOTM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7016  1.11  christos {"buntar-", XLOCB(19,BOTM4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7017  1.11  christos {"bsotarl-",XLOCB(19,BOTM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7018  1.11  christos {"buntarl-",XLOCB(19,BOTM4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7019  1.11  christos {"blttar+", XLOCB(19,BOTP4,CBLT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7020  1.11  christos {"blttarl+",XLOCB(19,BOTP4,CBLT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7021  1.11  christos {"bgttar+", XLOCB(19,BOTP4,CBGT,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7022  1.11  christos {"bgttarl+",XLOCB(19,BOTP4,CBGT,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7023  1.11  christos {"beqtar+", XLOCB(19,BOTP4,CBEQ,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7024  1.11  christos {"beqtarl+",XLOCB(19,BOTP4,CBEQ,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7025  1.11  christos {"bsotar+", XLOCB(19,BOTP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7026  1.11  christos {"buntar+", XLOCB(19,BOTP4,CBSO,560,0),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7027  1.11  christos {"bsotarl+",XLOCB(19,BOTP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7028  1.11  christos {"buntarl+",XLOCB(19,BOTP4,CBSO,560,1),	XLBOCBBB_MASK, POWER8,	 PPCVLE|EXT,	{CR, BH}},
   7029  1.11  christos 
   7030  1.11  christos {"bdnzftar",  XLO(19,BODNZF,560,0),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7031  1.11  christos {"bdnzftarl", XLO(19,BODNZF,560,1),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7032  1.11  christos {"bdzftar",   XLO(19,BODZF,560,0),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7033  1.11  christos {"bdzftarl",  XLO(19,BODZF,560,1),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7034  1.11  christos 
   7035  1.11  christos {"bftar",     XLO(19,BOF,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7036  1.11  christos {"bftarl",    XLO(19,BOF,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7037  1.11  christos {"bftar-",    XLO(19,BOFM4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7038  1.11  christos {"bftarl-",   XLO(19,BOFM4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7039  1.11  christos {"bftar+",    XLO(19,BOFP4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7040  1.11  christos {"bftarl+",   XLO(19,BOFP4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7041  1.11  christos 
   7042  1.11  christos {"bdnzttar",  XLO(19,BODNZT,560,0),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7043  1.11  christos {"bdnzttarl", XLO(19,BODNZT,560,1),     XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7044  1.11  christos {"bdzttar",   XLO(19,BODZT,560,0),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7045  1.11  christos {"bdzttarl",  XLO(19,BODZT,560,1),	XLBOBB_MASK,   POWER8,   PPCVLE|EXT,	{BI, BH}},
   7046  1.11  christos 
   7047  1.11  christos {"bttar",     XLO(19,BOT,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7048  1.11  christos {"bttarl",    XLO(19,BOT,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7049  1.10  christos {"bttar-",    XLO(19,BOTM4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7050  1.11  christos {"bttarl-",   XLO(19,BOTM4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7051  1.11  christos {"bttar+",    XLO(19,BOTP4,560,0),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7052   1.7  christos {"bttarl+",   XLO(19,BOTP4,560,1),	XLBOBB_MASK,   POWER8,	 PPCVLE|EXT,	{BI, BH}},
   7053  1.11  christos 
   7054  1.11  christos {"bctar-",  XLLK(19,560,0),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOM, BI, BH}},
   7055   1.7  christos {"bctar+",  XLLK(19,560,0),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOP, BI, BH}},
   7056   1.7  christos {"bctar",   XLLK(19,560,0),		XLBH_MASK,     POWER8,	 PPCVLE,	{BO, BI, BH}},
   7057   1.7  christos {"bctarl-", XLLK(19,560,1),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOM, BI, BH}},
   7058  1.11  christos {"bctarl+", XLLK(19,560,1),		XLBH_MASK,     POWER8,	 PPCVLE|EXT,	{BOP, BI, BH}},
   7059  1.11  christos {"bctarl",  XLLK(19,560,1),		XLBH_MASK,     POWER8,	 PPCVLE,	{BO, BI, BH}},
   7060   1.7  christos 
   7061   1.7  christos {"rlwimi",	M(20,0),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7062   1.7  christos {"inslwi",	M(20,0),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, ILWn, ILWb}},
   7063  1.11  christos {"insrwi",	M(20,0),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, IRWn, IRWb}},
   7064  1.11  christos {"rlimi",	M(20,0),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7065   1.7  christos 
   7066   1.7  christos {"rlwimi.",	M(20,1),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7067  1.11  christos {"inslwi.",	M(20,1),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, ILWn, ILWb}},
   7068  1.11  christos {"insrwi.",	M(20,1),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, IRWn, IRWb}},
   7069  1.11  christos {"rlimi.",	M(20,1),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7070  1.11  christos 
   7071  1.11  christos {"rotlwi",	MME(21,31,0),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, SH}},
   7072  1.11  christos {"rotrwi",	MME(21,31,0),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RRWn}},
   7073   1.7  christos {"clrlwi",	MME(21,31,0),	MSHME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, MB}},
   7074  1.11  christos {"clrrwi",	M(21,0),	MSHMB_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, CRWn}},
   7075  1.11  christos {"slwi",	M(21,0),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   7076  1.11  christos {"srwi",	MME(21,31,0),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   7077  1.11  christos {"rlwinm",	M(21,0),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7078  1.11  christos {"extlwi",	M(21,0),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ELWn, SH}},
   7079   1.7  christos {"extrwi",	MME(21,31,0),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ERWn, ERWb}},
   7080  1.11  christos {"clrlslwi",	M(21,0),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, CSLWb, CSLWn}},
   7081  1.11  christos {"sli",		M(21,0),	MMB_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   7082  1.11  christos {"sri",		MME(21,31,0),	MME_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   7083  1.11  christos {"rlinm",	M(21,0),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7084  1.11  christos {"rotlwi.",	MME(21,31,1),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, SH}},
   7085  1.11  christos {"rotrwi.",	MME(21,31,1),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RRWn}},
   7086   1.7  christos {"clrlwi.",	MME(21,31,1),	MSHME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, MB}},
   7087  1.11  christos {"clrrwi.",	M(21,1),	MSHMB_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, CRWn}},
   7088  1.11  christos {"slwi.",	M(21,1),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   7089  1.11  christos {"srwi.",	MME(21,31,1),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   7090  1.11  christos {"rlwinm.",	M(21,1),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7091  1.11  christos {"extlwi.",	M(21,1),	MMB_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ELWn, SH}},
   7092   1.7  christos {"extrwi.",	MME(21,31,1),	MME_MASK,    PPCCOM,	PPCVLE|EXT,	{RA, RS, ERWn, ERWb}},
   7093   1.7  christos {"clrlslwi.",	M(21,1),	M_MASK,	     PPCCOM,	PPCVLE|EXT,	{RA, RS, CSLWb, CSLWn}},
   7094   1.7  christos {"sli.",	M(21,1),	MMB_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SLWn}},
   7095   1.7  christos {"sri.",	MME(21,31,1),	MME_MASK,    PWRCOM,	PPCVLE|EXT,	{RA, RS, SRWn}},
   7096   1.7  christos {"rlinm.",	M(21,1),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, SH, MBE, ME}},
   7097  1.12  christos 
   7098  1.12  christos {"rlmi",	M(22,0),	M_MASK,	     M601,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   7099  1.12  christos {"rlmi.",	M(22,1),	M_MASK,	     M601,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   7100  1.12  christos 
   7101  1.12  christos {"svstep",	SVL(22,19,0),	SVL_MASK,	SVP64,	PPCVLE,	{RT, SVi, vf}},
   7102  1.12  christos {"svstep.",	SVL(22,19,1),	SVL_MASK,	SVP64,	PPCVLE,	{RT, SVi, vf}},
   7103  1.12  christos 
   7104  1.12  christos {"svshape",	SVM(22,25),	SVM_MASK,	SVP64,	PPCVLE,	{SVxd, SVyd, SVzd, SVrm, vf}},
   7105  1.12  christos 
   7106  1.12  christos {"setvl",	SVL(22,27,0),	SVL_MASK,	SVP64,	PPCVLE,	{RT, RA, SVi, vf, vs, ms}},
   7107  1.12  christos {"setvl.",	SVL(22,27,1),	SVL_MASK,	SVP64,	PPCVLE,	{RT, RA, SVi, vf, vs, ms}},
   7108  1.12  christos 
   7109  1.11  christos {"svindex",	SVI(22,41),	SVI_MASK,	SVP64,	PPCVLE,	{SVG, rmm, SVd, ew, yx, mm, sk}},
   7110   1.7  christos 
   7111   1.7  christos {"svremap",	SVRM(22,57),	SVRM_MASK,	SVP64,	PPCVLE,	{SVme, mi0, mi1, mi2, mo0, mo1, pst}},
   7112  1.11  christos 
   7113   1.7  christos {"rotlw",	MME(23,31,0),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RB}},
   7114   1.7  christos {"rlwnm",	M(23,0),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   7115   1.7  christos {"rlnm",	M(23,0),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   7116  1.11  christos {"rotlw.",	MME(23,31,1),	MMBME_MASK,  PPCCOM,	PPCVLE|EXT,	{RA, RS, RB}},
   7117  1.11  christos {"rlwnm.",	M(23,1),	M_MASK,	     PPCCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   7118   1.7  christos {"rlnm.",	M(23,1),	M_MASK,	     PWRCOM,	PPCVLE,		{RA, RS, RB, MBE, ME}},
   7119   1.7  christos 
   7120   1.7  christos {"nop",		OP(24),		0xffffffff,  PPCCOM,	PPCVLE|EXT,	{0}},
   7121   1.7  christos {"exser",	0x63ff0000,	0xffffffff,  POWER9,	PPCVLE|EXT,	{0}},
   7122   1.7  christos {"ori",		OP(24),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   7123   1.7  christos {"oril",	OP(24),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   7124  1.11  christos 
   7125   1.7  christos {"oris",	OP(25),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   7126   1.7  christos {"oriu",	OP(25),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   7127   1.7  christos 
   7128   1.7  christos {"xnop",	OP(26),		0xffffffff,  PPCCOM,	PPCVLE|EXT,	{0}},
   7129   1.7  christos {"xori",	OP(26),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   7130   1.7  christos {"xoril",	OP(26),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   7131   1.7  christos 
   7132   1.7  christos {"xoris",	OP(27),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   7133   1.7  christos {"xoriu",	OP(27),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   7134   1.7  christos 
   7135   1.7  christos {"andi.",	OP(28),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   7136   1.7  christos {"andil.",	OP(28),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   7137  1.11  christos 
   7138  1.11  christos {"andis.",	OP(29),		OP_MASK,     PPCCOM,	PPCVLE,		{RA, RS, UI}},
   7139  1.11  christos {"andiu.",	OP(29),		OP_MASK,     PWRCOM,	PPCVLE,		{RA, RS, UI}},
   7140  1.11  christos 
   7141   1.7  christos {"rotldi",	MD(30,0,0),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, SH6}},
   7142  1.11  christos {"rotrdi",	MD(30,0,0),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, RRDn}},
   7143  1.11  christos {"clrldi",	MD(30,0,0),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, MB6}},
   7144  1.11  christos {"srdi",	MD(30,0,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SRDn}},
   7145  1.11  christos {"rldicl",	MD(30,0,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7146  1.11  christos {"extrdi",	MD(30,0,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, ERDn, ERDb}},
   7147   1.7  christos {"rotldi.",	MD(30,0,1),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, SH6}},
   7148  1.11  christos {"rotrdi.",	MD(30,0,1),	MDMB_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, RRDn}},
   7149   1.7  christos {"clrldi.",	MD(30,0,1),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, MB6}},
   7150  1.11  christos {"srdi.",	MD(30,0,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SRDn}},
   7151  1.11  christos {"rldicl.",	MD(30,0,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7152   1.7  christos {"extrdi.",	MD(30,0,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, ERDn, ERDb}},
   7153  1.11  christos 
   7154  1.11  christos {"clrrdi",	MD(30,1,0),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, CRDn}},
   7155  1.11  christos {"sldi",	MD(30,1,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SLDn}},
   7156   1.7  christos {"rldicr",	MD(30,1,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, ME6}},
   7157  1.11  christos {"extldi",	MD(30,1,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, ELDn, SH6}},
   7158   1.7  christos {"clrrdi.",	MD(30,1,1),	MDSH_MASK,   PPC64,	PPCVLE|EXT,	{RA, RS, CRDn}},
   7159   1.7  christos {"sldi.",	MD(30,1,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, SLDn}},
   7160  1.11  christos {"rldicr.",	MD(30,1,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, ME6}},
   7161   1.7  christos {"extldi.",	MD(30,1,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, ELDn, SH6}},
   7162  1.11  christos 
   7163   1.7  christos {"rldic",	MD(30,2,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7164   1.7  christos {"clrlsldi",	MD(30,2,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, CSLDb, CSLDn}},
   7165  1.11  christos {"rldic.",	MD(30,2,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7166   1.7  christos {"clrlsldi.",	MD(30,2,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, CSLDb, CSLDn}},
   7167  1.11  christos 
   7168   1.7  christos {"rldimi",	MD(30,3,0),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7169  1.11  christos {"insrdi",	MD(30,3,0),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, IRDn, IRDb}},
   7170   1.7  christos {"rldimi.",	MD(30,3,1),	MD_MASK,     PPC64,	PPCVLE,		{RA, RS, SH6, MB6}},
   7171  1.11  christos {"insrdi.",	MD(30,3,1),	MD_MASK,     PPC64,	PPCVLE|EXT,	{RA, RS, IRDn, IRDb}},
   7172   1.7  christos 
   7173   1.7  christos {"rotld",	MDS(30,8,0),	MDSMB_MASK,  PPC64,	PPCVLE|EXT,	{RA, RS, RB}},
   7174   1.7  christos {"rldcl",	MDS(30,8,0),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, MB6}},
   7175   1.7  christos {"rotld.",	MDS(30,8,1),	MDSMB_MASK,  PPC64,	PPCVLE|EXT,	{RA, RS, RB}},
   7176   1.7  christos {"rldcl.",	MDS(30,8,1),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, MB6}},
   7177  1.11  christos 
   7178  1.11  christos {"rldcr",	MDS(30,9,0),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, ME6}},
   7179   1.8  christos {"rldcr.",	MDS(30,9,1),	MDS_MASK,    PPC64,	PPCVLE,		{RA, RS, RB, ME6}},
   7180   1.3  christos 
   7181   1.2     skrll {"cmpw",	XOPL(31,0,0),	XCMPL_MASK,  PPCCOM,	EXT,		{OBF, RA, RB}},
   7182  1.11  christos {"cmpd",	XOPL(31,0,1),	XCMPL_MASK,  PPC64,	EXT,		{OBF, RA, RB}},
   7183  1.11  christos {"cmp",		X(31,0),	XCMP_MASK,   PPC,	0,		{BF, L32OPT, RA, RB}},
   7184  1.11  christos {"cmp",		X(31,0),	XCMPL_MASK,  PWRCOM,	PPC,		{BF, RA, RB}},
   7185  1.11  christos 
   7186  1.11  christos {"twlgt",	XTO(31,4,TOLGT), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7187  1.11  christos {"tlgt",	XTO(31,4,TOLGT), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7188  1.11  christos {"twllt",	XTO(31,4,TOLLT), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7189  1.11  christos {"tllt",	XTO(31,4,TOLLT), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7190  1.11  christos {"tweq",	XTO(31,4,TOEQ),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7191  1.11  christos {"teq",		XTO(31,4,TOEQ),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7192  1.11  christos {"twlge",	XTO(31,4,TOLGE), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7193  1.11  christos {"tlge",	XTO(31,4,TOLGE), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7194  1.11  christos {"twlnl",	XTO(31,4,TOLNL), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7195  1.11  christos {"tlnl",	XTO(31,4,TOLNL), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7196  1.11  christos {"twlle",	XTO(31,4,TOLLE), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7197  1.11  christos {"tlle",	XTO(31,4,TOLLE), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7198  1.11  christos {"twlng",	XTO(31,4,TOLNG), XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7199  1.11  christos {"tlng",	XTO(31,4,TOLNG), XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7200  1.11  christos {"twgt",	XTO(31,4,TOGT),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7201  1.11  christos {"tgt",		XTO(31,4,TOGT),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7202  1.11  christos {"twge",	XTO(31,4,TOGE),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7203  1.11  christos {"tge",		XTO(31,4,TOGE),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7204  1.11  christos {"twnl",	XTO(31,4,TONL),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7205  1.11  christos {"tnl",		XTO(31,4,TONL),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7206  1.11  christos {"twlt",	XTO(31,4,TOLT),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7207  1.11  christos {"tlt",		XTO(31,4,TOLT),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7208  1.11  christos {"twle",	XTO(31,4,TOLE),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7209  1.11  christos {"tle",		XTO(31,4,TOLE),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7210  1.11  christos {"twng",	XTO(31,4,TONG),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7211  1.11  christos {"tng",		XTO(31,4,TONG),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7212  1.11  christos {"twne",	XTO(31,4,TONE),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7213   1.7  christos {"tne",		XTO(31,4,TONE),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7214   1.7  christos {"trap",	XTO(31,4,TOU),	 0xffffffff, PPCCOM,	EXT,		{0}},
   7215   1.7  christos {"twu",		XTO(31,4,TOU),	 XTO_MASK,   PPCCOM,	EXT,		{RA, RB}},
   7216   1.7  christos {"tu",		XTO(31,4,TOU),	 XTO_MASK,   PWRCOM,	EXT,		{RA, RB}},
   7217   1.7  christos {"tw",		X(31,4),	 X_MASK,     PPCCOM,	0,		{TO, RA, RB}},
   7218   1.7  christos {"t",		X(31,4),	 X_MASK,     PWRCOM,	0,		{TO, RA, RB}},
   7219   1.7  christos 
   7220   1.7  christos {"lvsl",	X(31,6),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7221   1.7  christos {"lvebx",	X(31,7),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7222  1.11  christos {"lbfcmx",	APU(31,7,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7223   1.7  christos 
   7224   1.7  christos {"subfc",	XO(31,8,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7225  1.11  christos {"sf",		XO(31,8,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7226   1.7  christos {"subc",	XO(31,8,0,0),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   7227   1.7  christos {"subfc.",	XO(31,8,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7228   1.7  christos {"sf.",		XO(31,8,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7229   1.7  christos {"subc.",	XO(31,8,0,1),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   7230   1.7  christos 
   7231   1.7  christos {"mulhdu",	XO(31,9,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7232   1.7  christos {"mulhdu.",	XO(31,9,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7233   1.7  christos 
   7234   1.7  christos {"addc",	XO(31,10,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7235   1.7  christos {"a",		XO(31,10,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7236   1.7  christos {"addc.",	XO(31,10,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7237   1.7  christos {"a.",		XO(31,10,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7238   1.7  christos 
   7239   1.7  christos {"mulhwu",	XO(31,11,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7240  1.11  christos {"mulhwu.",	XO(31,11,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7241  1.11  christos 
   7242  1.11  christos {"lxsiwzx",	X(31,12),	XX1_MASK,    PPCVSX2,	0,		{XT6, RA0, RB}},
   7243  1.11  christos 
   7244  1.11  christos {"lxvrbx",	X(31,13),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7245  1.11  christos 
   7246   1.7  christos {"isellt",	XISEL(31,15,0),	X_MASK,	     PPCISEL,	EXT,		{RT, RA0, RB}},
   7247  1.14  christos {"iselgt",	XISEL(31,15,1),	X_MASK,	     PPCISEL,	EXT,		{RT, RA0, RB}},
   7248   1.7  christos {"iseleq",	XISEL(31,15,2),	X_MASK,	     PPCISEL,	EXT,		{RT, RA0, RB}},
   7249   1.7  christos {"isel",	XISEL(31,15,0), XISEL_MASK, PPCISEL|TITAN, 0,		{RT, RA0, RB, BC}},
   7250   1.7  christos 
   7251   1.7  christos {"tlbieio",	X(31,18), 	XTLBIEIO_MASK, FUTURE,	0,		{RB, RS, RIC}},
   7252   1.7  christos {"tlbilxlpid",	XTO(31,18,0),	XTO_MASK, E500MC|PPCA2,	0,		{0}},
   7253   1.7  christos {"tlbilxpid",	XTO(31,18,1),	XTO_MASK, E500MC|PPCA2,	0,		{0}},
   7254   1.7  christos {"tlbilxva",	XTO(31,18,3),	XTO_MASK, E500MC|PPCA2,	0,		{RA0, RB}},
   7255   1.7  christos {"tlbilx",	X(31,18),	X_MASK,	  E500MC|PPCA2,	0,		{T, RA0, RB}},
   7256   1.7  christos 
   7257   1.7  christos {"mfcr",	XFXM(31,19,0,0), XFXFXM_MASK, COM,	0,		{RT, FXM4}},
   7258   1.7  christos {"mfocrf",	XFXM(31,19,0,1), XFXFXM_MASK, COM,	0,		{RT, FXM}},
   7259   1.7  christos 
   7260  1.11  christos {"lwarx",	X(31,20),	XEH_MASK,    PPC,	0,		{RT, RA0, RB, EH}},
   7261   1.7  christos 
   7262   1.7  christos {"ldx",		X(31,21),	X_MASK,	     PPC64,	0,		{RT, RA0, RB}},
   7263   1.7  christos 
   7264   1.7  christos {"icbt",	X(31,22), X_MASK, POWER5|BOOKE|PPCE300, 0,		{CT, RA0, RB}},
   7265   1.7  christos 
   7266   1.7  christos {"lwzx",	X(31,23),	X_MASK,	     PPCCOM,	0,		{RT, RA0, RB}},
   7267   1.7  christos {"lx",		X(31,23),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   7268   1.7  christos 
   7269   1.7  christos {"slw",		XRC(31,24,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   7270   1.7  christos {"sl",		XRC(31,24,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   7271   1.7  christos {"slw.",	XRC(31,24,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   7272   1.7  christos {"sl.",		XRC(31,24,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   7273   1.7  christos 
   7274   1.7  christos {"cntlzw",	XRC(31,26,0),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   7275   1.7  christos {"cntlz",	XRC(31,26,0),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   7276   1.7  christos {"cntlzw.",	XRC(31,26,1),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   7277   1.7  christos {"cntlz.",	XRC(31,26,1),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   7278   1.7  christos 
   7279   1.7  christos {"sld",		XRC(31,27,0),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   7280   1.7  christos {"sld.",	XRC(31,27,1),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   7281   1.7  christos 
   7282   1.7  christos {"and",		XRC(31,28,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7283   1.7  christos {"and.",	XRC(31,28,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7284   1.7  christos 
   7285   1.7  christos {"maskg",	XRC(31,29,0),	X_MASK,	     M601,	PPCA2,		{RA, RS, RB}},
   7286   1.7  christos {"maskg.",	XRC(31,29,1),	X_MASK,	     M601,	PPCA2,		{RA, RS, RB}},
   7287  1.11  christos 
   7288  1.11  christos {"ldepx",	X(31,29),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7289  1.11  christos 
   7290  1.11  christos {"waitasec",	X(31,30),      XRTRARB_MASK, POWER8,	POWER9,		{0}},
   7291   1.7  christos {"waitrsv",	XWCPL(31,30,1,0),0xffffffff, POWER10,	EXT,		{0}},
   7292   1.7  christos {"pause_short",	XWCPL(31,30,2,0),0xffffffff, POWER10,	EXT,		{0}},
   7293   1.7  christos {"wait",	X(31,30),	XWCPL_MASK,  POWER10,	0,		{WC, PL}},
   7294  1.11  christos {"wait",	X(31,30),	XWC_MASK,    POWER9,	POWER10,	{WC}},
   7295  1.11  christos 
   7296   1.8  christos {"lwepx",	X(31,31),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7297   1.3  christos 
   7298   1.2     skrll {"cmplw",	XOPL(31,32,0),	XCMPL_MASK,  PPCCOM,	EXT,		{OBF, RA, RB}},
   7299   1.7  christos {"cmpld",	XOPL(31,32,1),	XCMPL_MASK,  PPC64,	EXT,		{OBF, RA, RB}},
   7300   1.7  christos {"cmpl",	X(31,32),	XCMP_MASK,   PPC,	0,		{BF, L32OPT, RA, RB}},
   7301   1.7  christos {"cmpl",	X(31,32),	XCMPL_MASK,  PWRCOM,	PPC,		{BF, RA, RB}},
   7302   1.2     skrll 
   7303  1.11  christos {"lvsr",	X(31,38),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7304  1.11  christos {"lvehx",	X(31,39),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7305   1.8  christos {"lhfcmx",	APU(31,39,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7306   1.2     skrll 
   7307  1.14  christos {"lxvrhx",	X(31,45),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7308  1.14  christos 
   7309   1.7  christos {"mviwsplt",	X(31,46),	X_MASK,	     E6500,	0,		{VD, RA, RB}},
   7310   1.2     skrll 
   7311   1.7  christos {"tlbiep",	X(31,50),	XTLBIE_MASK, FUTURE,	TITAN,		{RB, RS, RIC, PRS, X_R}},
   7312   1.2     skrll 
   7313   1.7  christos {"lvewx",	X(31,71),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7314   1.5  christos 
   7315  1.11  christos {"addg6s",	XO(31,74,0,0),	XO_MASK,     POWER6,	0,		{RT, RA, RB}},
   7316   1.2     skrll 
   7317   1.7  christos {"lxsiwax",	X(31,76),	XX1_MASK,    PPCVSX2,	0,		{XT6, RA0, RB}},
   7318  1.11  christos 
   7319   1.7  christos {"lxvrwx",	X(31,77),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7320  1.11  christos 
   7321   1.2     skrll {"subf",	XO(31,40,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7322  1.11  christos {"sub",		XO(31,40,0,0),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   7323  1.11  christos {"subf.",	XO(31,40,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7324   1.7  christos {"sub.",	XO(31,40,0,1),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   7325   1.7  christos 
   7326   1.3  christos {"mffprd",	X(31,51),	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, FRS}},
   7327   1.7  christos {"mfvrd",	X(31,51)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, VS}},
   7328   1.2     skrll {"mfvsrd",	X(31,51),	XX1RB_MASK,   PPCVSX2,	0,		{RA, XS6}},
   7329   1.7  christos {"eratilx",	X(31,51),	X_MASK,	     PPCA2,	0,		{ERAT_T, RA, RB}},
   7330   1.5  christos 
   7331   1.7  christos {"lbarx",	X(31,52),	XEH_MASK, POWER8|E6500, 0,		{RT, RA0, RB, EH}},
   7332   1.5  christos 
   7333   1.7  christos {"ldux",	X(31,53),	X_MASK,	     PPC64,	0,		{RT, RAL, RB}},
   7334   1.7  christos 
   7335   1.2     skrll {"dcbst",	X(31,54),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   7336   1.7  christos 
   7337   1.7  christos {"lwzux",	X(31,55),	X_MASK,	     PPCCOM,	0,		{RT, RAL, RB}},
   7338   1.2     skrll {"lux",		X(31,55),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   7339  1.11  christos 
   7340  1.11  christos {"cntlzd",	XRC(31,58,0),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   7341   1.7  christos {"cntlzd.",	XRC(31,58,1),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   7342   1.7  christos 
   7343   1.2     skrll {"cntlzdm",	X(31,59),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7344  1.11  christos 
   7345  1.11  christos {"andc",	XRC(31,60,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7346   1.7  christos {"andc.",	XRC(31,60,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7347   1.5  christos 
   7348   1.7  christos {"waitrsv",	X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, EXT,	{0}},
   7349   1.2     skrll {"waitimpl",	X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, EXT,	{0}},
   7350  1.11  christos {"wait",	X(31,62),	XWC_MASK,    E500MC|PPCA2, 0,		{WC}},
   7351  1.11  christos 
   7352  1.11  christos {"dcbstep",	XRT(31,63,0),	XRT_MASK,    E500MC|PPCA2, 0,		{RA0, RB}},
   7353  1.11  christos 
   7354  1.11  christos {"tdlgt",	XTO(31,68,TOLGT), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7355  1.11  christos {"tdllt",	XTO(31,68,TOLLT), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7356  1.11  christos {"tdeq",	XTO(31,68,TOEQ),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7357  1.11  christos {"tdlge",	XTO(31,68,TOLGE), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7358  1.11  christos {"tdlnl",	XTO(31,68,TOLNL), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7359  1.11  christos {"tdlle",	XTO(31,68,TOLLE), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7360  1.11  christos {"tdlng",	XTO(31,68,TOLNG), XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7361  1.11  christos {"tdgt",	XTO(31,68,TOGT),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7362  1.11  christos {"tdge",	XTO(31,68,TOGE),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7363  1.11  christos {"tdnl",	XTO(31,68,TONL),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7364  1.11  christos {"tdlt",	XTO(31,68,TOLT),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7365   1.7  christos {"tdle",	XTO(31,68,TOLE),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7366   1.2     skrll {"tdng",	XTO(31,68,TONG),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7367   1.7  christos {"tdne",	XTO(31,68,TONE),  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7368  1.12  christos {"tdu",		XTO(31,68,TOU),	  XTO_MASK,  PPC64,	EXT,		{RA, RB}},
   7369  1.12  christos {"td",		X(31,68),	X_MASK,	     PPC64,	0,		{TO, RA, RB}},
   7370  1.12  christos 
   7371  1.12  christos {"lwfcmx",	APU(31,71,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7372  1.12  christos {"subwus",	XO(31,72,0,0),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7373  1.12  christos {"subwus.",	XO(31,72,0,1),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7374   1.7  christos {"subdus",	XO(31,72,1,0),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7375   1.7  christos {"subdus.",	XO(31,72,1,1),	XO_MASK,     FUTURE,	EXT,		{RT, RB, RA}},
   7376   1.5  christos {"subfus",	XO(31,72,0,0),	XOL_MASK,    FUTURE,	0,		{RT, XOL, RA, RB}},
   7377   1.7  christos {"subfus.",	XO(31,72,0,1),	XOL_MASK,    FUTURE,	0,		{RT, XOL, RA, RB}},
   7378   1.7  christos {"mulhd",	XO(31,73,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7379   1.2     skrll {"mulhd.",	XO(31,73,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7380  1.11  christos 
   7381   1.8  christos {"mulhw",	XO(31,75,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7382   1.8  christos {"mulhw.",	XO(31,75,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   7383   1.2     skrll 
   7384   1.7  christos {"msgsndu",	XRTRA(31,78,0,0), XRTRA_MASK, POWER9,	0,		{RB}},
   7385   1.2     skrll {"dlmzb",	XRC(31,78,0), X_MASK, PPC403|PPC440|PPC476|TITAN, 0,	{RA, RS, RB}},
   7386   1.7  christos {"dlmzb.",	XRC(31,78,1), X_MASK, PPC403|PPC440|PPC476|TITAN, 0,	{RA, RS, RB}},
   7387   1.5  christos 
   7388   1.7  christos {"mtsrd",	X(31,82),  XRB_MASK|(1<<20), PPC64,	0,		{SR, RS}},
   7389   1.2     skrll 
   7390  1.11  christos {"mfmsr",	X(31,83),	XRARB_MASK,  COM,	0,		{RT}},
   7391  1.11  christos 
   7392  1.11  christos {"ldarx",	X(31,84),	XEH_MASK,    PPC64,	0,		{RT, RA0, RB, EH}},
   7393  1.11  christos 
   7394  1.11  christos {"dcbfl",	XOPL(31,86,1),	XRT_MASK,    POWER5,	PPC476|EXT,	{RA0, RB}},
   7395  1.11  christos {"dcbflp",	XOPL2(31,86,3), XRT_MASK,    POWER9,	PPC476|EXT,	{RA0, RB}},
   7396   1.2     skrll {"dcbfps",	XOPL3(31,86,4), XRT_MASK,    POWER10,   PPC476|EXT,	{RA0, RB}},
   7397   1.7  christos {"dcbstps",	XOPL3(31,86,6), XRT_MASK,    POWER10,   PPC476|EXT,	{RA0, RB}},
   7398   1.5  christos {"dcbf",	X(31,86),	XL3RT_MASK,  POWER10,	PPC476,		{RA0, RB, L3OPT}},
   7399   1.7  christos {"dcbf",	X(31,86),	XLRT_MASK,   PPC,	POWER10,	{RA0, RB, L2OPT}},
   7400   1.2     skrll 
   7401   1.7  christos {"lbzx",	X(31,87),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   7402   1.2     skrll 
   7403   1.7  christos {"lbepx",	X(31,95),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7404   1.7  christos 
   7405   1.2     skrll {"dni",		XRC(31,97,1),	XRB_MASK,    E6500,	0,		{DUI, DCTL}},
   7406   1.7  christos 
   7407   1.7  christos {"lvx",		X(31,103),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   7408   1.2     skrll {"lqfcmx",	APU(31,103,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7409   1.7  christos 
   7410   1.7  christos {"neg",		XO(31,104,0,0),	XORB_MASK,   COM,	0,		{RT, RA}},
   7411   1.2     skrll {"neg.",	XO(31,104,0,1),	XORB_MASK,   COM,	0,		{RT, RA}},
   7412  1.11  christos 
   7413  1.11  christos {"mul",		XO(31,107,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7414  1.11  christos {"mul.",	XO(31,107,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7415   1.8  christos 
   7416   1.4  christos {"lxvrdx",	X(31,109),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7417   1.7  christos 
   7418   1.2     skrll {"msgclru",	XRTRA(31,110,0,0), XRTRA_MASK, POWER9,	0,		{RB}},
   7419  1.11  christos {"mvidsplt",	X(31,110),	X_MASK,	     E6500,	0,		{VD, RA, RB}},
   7420  1.11  christos 
   7421   1.7  christos {"mtsrdin",	X(31,114),	XRA_MASK,    PPC64,	0,		{RS, RB}},
   7422   1.5  christos 
   7423   1.7  christos {"mffprwz",	X(31,115),	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, FRS}},
   7424   1.2     skrll {"mfvrwz",	X(31,115)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{RA, VS}},
   7425   1.7  christos {"mfvsrwz",	X(31,115),	XX1RB_MASK,   PPCVSX2,	0,		{RA, XS6}},
   7426   1.2     skrll 
   7427   1.7  christos {"lharx",	X(31,116),	XEH_MASK, POWER8|E6500, 0,		{RT, RA0, RB, EH}},
   7428   1.5  christos 
   7429   1.7  christos {"clf",		X(31,118),	XTO_MASK,    POWER,	0,		{RA, RB}},
   7430   1.2     skrll 
   7431  1.11  christos {"lbzux",	X(31,119),	X_MASK,	     COM,	0,		{RT, RAL, RB}},
   7432   1.7  christos 
   7433  1.11  christos {"popcntb",	X(31,122),	XRB_MASK,    POWER5,	0,		{RA, RS}},
   7434   1.7  christos 
   7435   1.2     skrll {"not",		XRC(31,124,0),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   7436   1.7  christos {"nor",		XRC(31,124,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7437   1.5  christos {"not.",	XRC(31,124,1),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   7438   1.8  christos {"nor.",	XRC(31,124,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7439   1.5  christos 
   7440   1.7  christos {"dcbfep",	XRT(31,127,0),	XRT_MASK, E500MC|PPCA2, 0,		{RA0, RB}},
   7441   1.5  christos 
   7442   1.7  christos {"setb",	X(31,128),	XRB_MASK|(3<<16), POWER9, 0,		{RT, BFA}},
   7443   1.2     skrll 
   7444   1.7  christos {"wrtee",	X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RS}},
   7445   1.7  christos 
   7446   1.2     skrll {"dcbtstls",	X(31,134),	X_MASK, PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7447   1.7  christos 
   7448   1.7  christos {"stvebx",	X(31,135),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7449   1.7  christos {"stbfcmx",	APU(31,135,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7450   1.7  christos 
   7451   1.2     skrll {"subfe",	XO(31,136,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7452   1.7  christos {"sfe",		XO(31,136,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7453   1.7  christos {"subfe.",	XO(31,136,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7454   1.7  christos {"sfe.",	XO(31,136,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7455   1.7  christos 
   7456   1.2     skrll {"adde",	XO(31,138,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7457   1.7  christos {"ae",		XO(31,138,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7458   1.5  christos {"adde.",	XO(31,138,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7459  1.11  christos {"ae.",		XO(31,138,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7460  1.11  christos 
   7461   1.7  christos {"stxsiwx",	X(31,140),	XX1_MASK,    PPCVSX2,	0,		{XS6, RA0, RB}},
   7462   1.7  christos 
   7463   1.2     skrll {"stxvrbx",	X(31,141),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7464  1.11  christos 
   7465   1.7  christos {"msgsndp",	XRTRA(31,142,0,0), XRTRA_MASK, POWER8,	0,		{RB}},
   7466   1.7  christos {"dcbtstlse",	X(31,142),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA0, RB}},
   7467   1.2     skrll 
   7468   1.7  christos {"mtcr",	XFXM(31,144,0xff,0), XRARB_MASK, COM,	EXT,		{RS}},
   7469   1.2     skrll {"mtcrf",	XFXM(31,144,0,0), XFXFXM_MASK, COM,	0,		{FXM, RS}},
   7470   1.7  christos {"mtocrf",	XFXM(31,144,0,1), XFXFXM_MASK, COM,	0,		{FXM, RS}},
   7471   1.7  christos 
   7472   1.7  christos {"mtmsr",	X(31,146),	XRLARB_MASK, COM,	0,		{RS, A_L}},
   7473   1.3  christos 
   7474   1.7  christos {"mtsle",	X(31,147),    XRTLRARB_MASK, POWER8,	0,		{L}},
   7475   1.5  christos {"eratsx",	XRC(31,147,0),	X_MASK,	     PPCA2,	0,		{RT, RA0, RB}},
   7476   1.7  christos {"eratsx.",	XRC(31,147,1),	X_MASK,	     PPCA2,	0,		{RT, RA0, RB}},
   7477   1.5  christos 
   7478   1.7  christos {"stdx",	X(31,149),	X_MASK,	     PPC64,	0,		{RS, RA0, RB}},
   7479   1.7  christos 
   7480   1.2     skrll {"stwcx.",	XRC(31,150,1),	X_MASK,	     PPC,	0,		{RS, RA0, RB}},
   7481   1.7  christos 
   7482   1.7  christos {"stwx",	X(31,151),	X_MASK,	     PPCCOM,	0,		{RS, RA0, RB}},
   7483   1.2     skrll {"stx",		X(31,151),	X_MASK,	     PWRCOM,	0,		{RS, RA, RB}},
   7484   1.7  christos 
   7485   1.7  christos {"slq",		XRC(31,152,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7486   1.2     skrll {"slq.",	XRC(31,152,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7487   1.7  christos 
   7488   1.2     skrll {"sle",		XRC(31,153,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7489  1.11  christos {"sle.",	XRC(31,153,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7490  1.11  christos 
   7491  1.11  christos {"prtyw",	X(31,154),    XRB_MASK, POWER6|PPCA2|PPC476, 0,		{RA, RS}},
   7492   1.7  christos 
   7493   1.5  christos {"brw",		X(31,155),	XRB_MASK,    POWER10,	0,		{RA, RS}},
   7494   1.7  christos {"pdepd",	X(31,156),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7495   1.5  christos 
   7496   1.7  christos {"stdepx",	X(31,157),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7497   1.5  christos 
   7498   1.7  christos {"stwepx",	X(31,159),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7499   1.2     skrll 
   7500   1.7  christos {"wrteei",	X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{E}},
   7501   1.7  christos 
   7502   1.2     skrll {"dcbtls",	X(31,166),	X_MASK,	 PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7503   1.7  christos 
   7504   1.6  christos {"stvehx",	X(31,167),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7505  1.11  christos {"sthfcmx",	APU(31,167,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7506  1.11  christos 
   7507   1.7  christos {"addex",	ZRC(31,170,0),	Z2_MASK,     POWER9,	0,		{RT, RA, RB, CY}},
   7508   1.7  christos 
   7509   1.2     skrll {"stxvrhx",	X(31,173),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7510  1.12  christos 
   7511  1.11  christos {"msgclrp",	XRTRA(31,174,0,0), XRTRA_MASK, POWER8,	0,		{RB}},
   7512  1.12  christos {"dcbtlse",	X(31,174),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA0, RB}},
   7513  1.11  christos 
   7514  1.12  christos {"dmxxmfacc",	XVA(31,177,0),	XACC_MASK,   POWER10, 0,		{ACC}},
   7515  1.12  christos {"xxmfacc",	XVA(31,177,0),	XACC_MASK,   POWER10, 0,		{ACC}},
   7516  1.11  christos {"dmxxmtacc",	XVA(31,177,1),	XACC_MASK,   POWER10, 0,		{ACC}},
   7517  1.12  christos {"xxmtacc",	XVA(31,177,1),	XACC_MASK,   POWER10, 0,		{ACC}},
   7518  1.12  christos {"dmsetdmrz",	XVA(31,177,2),	XDMR_MASK,   FUTURE,  0,		{DMR}},
   7519  1.11  christos {"dmsetaccz",	XVA(31,177,3),	XACC_MASK,   POWER10, 0,		{ACC}},
   7520   1.7  christos {"xxsetaccz",	XVA(31,177,3),	XACC_MASK,   POWER10, 0,		{ACC}},
   7521   1.2     skrll {"dmmr",	XVA(31,177,6),	XDMRDMR_MASK,FUTURE,  0,		{DMR, DMRAB}},
   7522  1.11  christos {"dmxor",	XVA(31,177,7),	XDMRDMR_MASK,FUTURE,  0,		{DMR, DMRAB}},
   7523  1.11  christos 
   7524   1.7  christos {"mtmsrd",	X(31,178),	XRLARB_MASK, PPC64,	0,		{RS, A_L}},
   7525   1.7  christos 
   7526   1.3  christos {"mtfprd",	X(31,179),	XX1RB_MASK|1, PPCVSX2,	EXT,		{FRT, RA}},
   7527   1.7  christos {"mtvrd",	X(31,179)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{VD, RA}},
   7528   1.2     skrll {"mtvsrd",	X(31,179),	XX1RB_MASK,   PPCVSX2,	0,		{XT6, RA}},
   7529   1.8  christos {"eratre",	X(31,179),	X_MASK,	     PPCA2,	0,		{RT, RA, WS}},
   7530   1.7  christos 
   7531   1.3  christos {"stdux",	X(31,181),	X_MASK,	     PPC64,	0,		{RS, RAS, RB}},
   7532   1.7  christos 
   7533   1.7  christos {"stqcx.",	XRC(31,182,1), X_MASK|Q_MASK, POWER8,	0,		{RSQ, RA0, RB}},
   7534   1.2     skrll {"wchkall",	X(31,182),	X_MASK,	     PPCA2,	0,		{OBF}},
   7535   1.7  christos 
   7536   1.7  christos {"stwux",	X(31,183),	X_MASK,	     PPCCOM,	0,		{RS, RAS, RB}},
   7537   1.2     skrll {"stux",	X(31,183),	X_MASK,	     PWRCOM,	0,		{RS, RA0, RB}},
   7538   1.7  christos 
   7539   1.2     skrll {"sliq",	XRC(31,184,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7540  1.11  christos {"sliq.",	XRC(31,184,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7541  1.11  christos 
   7542  1.11  christos {"prtyd",	X(31,186),	XRB_MASK, POWER6|PPCA2,	0,		{RA, RS}},
   7543   1.7  christos 
   7544   1.5  christos {"brd",		X(31,187),	XRB_MASK,    POWER10,	0,		{RA, RS}},
   7545   1.7  christos {"pextd",	X(31,188),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7546   1.4  christos 
   7547   1.7  christos {"cmprb",	X(31,192),	XCMP_MASK,   POWER9,	0,		{BF, L, RA, RB}},
   7548   1.7  christos 
   7549   1.2     skrll {"icblq.",	XRC(31,198,1),	X_MASK,	     E6500,	0,		{CT, RA0, RB}},
   7550   1.7  christos 
   7551   1.7  christos {"stvewx",	X(31,199),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7552   1.7  christos {"stwfcmx",	APU(31,199,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7553   1.7  christos 
   7554   1.2     skrll {"subfze",	XO(31,200,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7555   1.7  christos {"sfze",	XO(31,200,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7556   1.7  christos {"subfze.",	XO(31,200,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7557   1.7  christos {"sfze.",	XO(31,200,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7558   1.7  christos 
   7559   1.2     skrll {"addze",	XO(31,202,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7560  1.11  christos {"aze",		XO(31,202,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7561  1.11  christos {"addze.",	XO(31,202,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7562   1.7  christos {"aze.",	XO(31,202,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7563   1.3  christos 
   7564   1.7  christos {"stxvrwx",	X(31,205),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7565   1.2     skrll 
   7566  1.11  christos {"msgsnd",	XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0,	{RB}},
   7567  1.11  christos 
   7568   1.7  christos {"mtsr",	X(31,210), XRB_MASK|(1<<20), COM,	NON32,		{SR, RS}},
   7569   1.7  christos 
   7570   1.3  christos {"mtfprwa",	X(31,211),	XX1RB_MASK|1, PPCVSX2,	EXT,		{FRT, RA}},
   7571   1.7  christos {"mtvrwa",	X(31,211)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{VD, RA}},
   7572   1.2     skrll {"mtvsrwa",	X(31,211),	XX1RB_MASK,   PPCVSX2,	0,		{XT6, RA}},
   7573   1.7  christos {"eratwe",	X(31,211),	X_MASK,	     PPCA2,	0,		{RS, RA, WS}},
   7574   1.5  christos 
   7575   1.7  christos {"ldawx.",	XRC(31,212,1),	X_MASK,	     PPCA2,	0,		{RT, RA0, RB}},
   7576   1.2     skrll 
   7577   1.7  christos {"stdcx.",	XRC(31,214,1),	X_MASK,	     PPC64,	0,		{RS, RA0, RB}},
   7578   1.7  christos 
   7579   1.2     skrll {"stbx",	X(31,215),	X_MASK,	     COM,	0,		{RS, RA0, RB}},
   7580   1.7  christos 
   7581   1.7  christos {"sllq",	XRC(31,216,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7582   1.2     skrll {"sllq.",	XRC(31,216,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7583  1.11  christos 
   7584  1.11  christos {"sleq",	XRC(31,217,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7585  1.11  christos {"sleq.",	XRC(31,217,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   7586   1.7  christos 
   7587   1.5  christos {"brh",		X(31,219),	XRB_MASK,    POWER10,	0,		{RA, RS}},
   7588   1.7  christos {"cfuged",	X(31,220),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   7589   1.5  christos 
   7590   1.7  christos {"stbepx",	X(31,223),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   7591   1.2     skrll 
   7592   1.7  christos {"cmpeqb",	X(31,224),	XCMPL_MASK,  POWER9,	0,		{BF, RA, RB}},
   7593   1.7  christos 
   7594   1.2     skrll {"icblc",	X(31,230),	X_MASK,	PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   7595   1.7  christos 
   7596   1.7  christos {"stvx",	X(31,231),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   7597   1.7  christos {"stqfcmx",	APU(31,231,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7598   1.7  christos 
   7599   1.2     skrll {"subfme",	XO(31,232,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7600   1.7  christos {"sfme",	XO(31,232,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7601   1.7  christos {"subfme.",	XO(31,232,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7602   1.5  christos {"sfme.",	XO(31,232,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7603   1.7  christos 
   7604   1.7  christos {"mulld",	XO(31,233,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7605   1.7  christos {"mulld.",	XO(31,233,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   7606   1.7  christos 
   7607   1.2     skrll {"addme",	XO(31,234,0,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7608   1.7  christos {"ame",		XO(31,234,0,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7609   1.7  christos {"addme.",	XO(31,234,0,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   7610   1.7  christos {"ame.",	XO(31,234,0,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   7611   1.7  christos 
   7612   1.2     skrll {"mullw",	XO(31,235,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7613  1.11  christos {"muls",	XO(31,235,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7614  1.11  christos {"mullw.",	XO(31,235,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7615   1.7  christos {"muls.",	XO(31,235,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7616   1.7  christos 
   7617   1.7  christos {"stxvrdx",	X(31,237),	XX1_MASK,    POWER10,	0,		{XT6, RA0, RB}},
   7618   1.3  christos 
   7619   1.2     skrll {"icblce",	X(31,238),	X_MASK,	     PPCCHLK,	E500MC|PPCA2,	{CT, RA, RB}},
   7620  1.11  christos {"msgclr",	XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0,	{RB}},
   7621  1.11  christos {"mtsrin",	X(31,242),	XRA_MASK,    PPC,	NON32,		{RS, RB}},
   7622   1.7  christos {"mtsri",	X(31,242),	XRA_MASK,    POWER,	NON32,		{RS, RB}},
   7623   1.5  christos 
   7624  1.11  christos {"mtfprwz",	X(31,243),	XX1RB_MASK|1, PPCVSX2,	EXT,		{FRT, RA}},
   7625  1.11  christos {"mtvrwz",	X(31,243)|1,	XX1RB_MASK|1, PPCVSX2,	EXT,		{VD, RA}},
   7626  1.11  christos {"mtvsrwz",	X(31,243),	XX1RB_MASK,   PPCVSX2,	0,		{XT6, RA}},
   7627   1.7  christos 
   7628   1.7  christos {"dcbtstt",	XRT(31,246,0x10), XRT_MASK,  POWER7,	EXT,		{RA0, RB}},
   7629   1.7  christos {"dcbtstct",	X(31,246),	X_MASK,	     POWER4,	EXT,		{RA0, RB, THCT}},
   7630   1.5  christos {"dcbtstds",	X(31,246),	X_MASK,	     POWER4,	EXT,		{RA0, RB, THDS}},
   7631   1.7  christos {"dcbtst",	X(31,246),	X_MASK,	     POWER4,	DCBT_EO,	{RA0, RB, CT}},
   7632   1.2     skrll {"dcbtst",	X(31,246),	X_MASK,	     DCBT_EO,	0,		{CT, RA0, RB}},
   7633   1.7  christos {"dcbtst",	X(31,246),	X_MASK,	     PPC,	POWER4|DCBT_EO,	{RA0, RB}},
   7634   1.7  christos 
   7635   1.2     skrll {"stbux",	X(31,247),	X_MASK,	     COM,	0,		{RS, RAS, RB}},
   7636   1.7  christos 
   7637   1.2     skrll {"slliq",	XRC(31,248,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7638   1.7  christos {"slliq.",	XRC(31,248,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   7639   1.2     skrll 
   7640   1.7  christos {"bpermd",	X(31,252),	X_MASK,	  POWER7|PPCA2,	0,		{RA, RS, RB}},
   7641   1.7  christos 
   7642   1.2     skrll {"dcbtstep",	XRT(31,255,0),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7643   1.8  christos 
   7644   1.4  christos {"mfdcrx",	X(31,259),	X_MASK, BOOKE|PPCA2|PPC476, TITAN,	{RS, RA}},
   7645   1.7  christos {"mfdcrx.",	XRC(31,259,1),	X_MASK,	     PPCA2,	0,		{RS, RA}},
   7646   1.2     skrll 
   7647   1.8  christos {"lvexbx",	X(31,261),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7648  1.11  christos 
   7649   1.4  christos {"icbt",	X(31,262),	XRT_MASK,    PPC403,	0,		{RA, RB}},
   7650   1.7  christos 
   7651   1.7  christos {"lvepxl",	X(31,263),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7652   1.2     skrll {"ldfcmx",	APU(31,263,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   7653   1.7  christos 
   7654   1.5  christos {"doz",		XO(31,264,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7655   1.7  christos {"doz.",	XO(31,264,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7656   1.7  christos 
   7657   1.7  christos {"modud",	X(31,265),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   7658   1.7  christos 
   7659   1.2     skrll {"add",		XO(31,266,0,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7660   1.7  christos {"cax",		XO(31,266,0,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7661   1.5  christos {"add.",	XO(31,266,0,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   7662   1.7  christos {"cax.",	XO(31,266,0,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   7663   1.7  christos 
   7664   1.5  christos {"moduw",	X(31,267),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   7665   1.7  christos 
   7666   1.2     skrll {"lxvx",	X(31,268),	XX1_MASK|1<<6, PPCVSX3,	0,		{XT6, RA0, RB}},
   7667   1.8  christos {"lxvl",	X(31,269),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   7668   1.8  christos 
   7669   1.2     skrll {"ehpriv",	X(31,270),	0xffffffff,  E500MC|PPCA2, 0,		{0}},
   7670  1.14  christos 
   7671   1.7  christos {"tlbiel",	X(31,274),	X_MASK|1<<20,POWER9,	0,		{RB, RSO, RIC, PRS, X_R}},
   7672   1.5  christos {"tlbiel",	X(31,274),	XRTLRA_MASK, POWER4,	POWER9|PPC476,	{RB, LOPT}},
   7673   1.8  christos 
   7674   1.2     skrll {"mtlpl",	X(31,275),	XRA_MASK,    FUTURE,	0,		{RB, RS}},
   7675   1.7  christos {"mfapidi",	X(31,275),	X_MASK,	     BOOKE,	E500|TITAN,	{RT, RA}},
   7676   1.7  christos 
   7677   1.2     skrll {"lqarx",	X(31,276),  XEH_MASK|Q_MASK, POWER8,	0,		{RTQ, RAX, RBX, EH}},
   7678  1.11  christos 
   7679  1.11  christos {"lscbx",	XRC(31,277,0),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   7680  1.11  christos {"lscbx.",	XRC(31,277,1),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   7681  1.11  christos 
   7682   1.7  christos {"dcbtt",	XRT(31,278,0x10), XRT_MASK,  POWER7,	EXT,		{RA0, RB}},
   7683   1.7  christos {"dcbna",	XRT(31,278,0x11), XRT_MASK,  POWER10,	EXT,		{RA0, RB}},
   7684   1.7  christos {"dcbtct",	X(31,278),	X_MASK,      POWER4,	EXT,		{RA0, RB, THCT}},
   7685   1.7  christos {"dcbtds",	X(31,278),	X_MASK,      POWER4,	EXT,		{RA0, RB, THDS}},
   7686   1.7  christos {"dcbt",	X(31,278),	X_MASK,	     POWER4,	DCBT_EO,	{RA0, RB, CT}},
   7687   1.7  christos {"dcbt",	X(31,278),	X_MASK,	     DCBT_EO,	0,		{CT, RA0, RB}},
   7688   1.7  christos {"dcbt",	X(31,278),	X_MASK,	     PPC,	POWER4|DCBT_EO,	{RA0, RB}},
   7689   1.7  christos 
   7690   1.7  christos {"lhzx",	X(31,279),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   7691   1.7  christos 
   7692   1.7  christos {"cdtbcd",	X(31,282),	XRB_MASK,    POWER6,	0,		{RA, RS}},
   7693   1.7  christos 
   7694   1.7  christos {"eqv",		XRC(31,284,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7695   1.8  christos {"eqv.",	XRC(31,284,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7696   1.7  christos 
   7697   1.8  christos {"lhepx",	X(31,287),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7698   1.8  christos 
   7699   1.7  christos {"mfdcrux",	X(31,291),	X_MASK,	 PPC464|PPC476,	0,		{RS, RA}},
   7700   1.7  christos 
   7701   1.7  christos {"lvexhx",	X(31,293),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7702   1.7  christos {"lvepx",	X(31,295),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7703   1.7  christos 
   7704   1.7  christos {"lxvll",	X(31,301),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   7705   1.7  christos 
   7706   1.8  christos {"mfbhrbe",	X(31,302),	X_MASK,	     POWER8,	0,		{RT, BHRBE}},
   7707   1.7  christos 
   7708   1.7  christos {"tlbie",	X(31,306),	X_MASK|1<<20,POWER9,	TITAN,		{RB, RS, RIC, PRS, X_R}},
   7709   1.7  christos {"tlbie",	X(31,306),	XRA_MASK,    POWER7,	POWER9|TITAN,	{RB, RS}},
   7710   1.7  christos {"tlbie",	X(31,306),	XRTLRA_MASK, PPC,    E500|POWER7|TITAN,	{RB, LOPT}},
   7711   1.7  christos {"tlbi",	X(31,306),	XRT_MASK,    POWER,	0,		{RA0, RB}},
   7712   1.7  christos 
   7713   1.7  christos {"mfvsrld",	X(31,307),	XX1RB_MASK,  PPCVSX3,	0,		{RA, XS6}},
   7714   1.7  christos 
   7715   1.7  christos {"eciwx",	X(31,310),	X_MASK,	     PPC,	E500|TITAN,	{RT, RA0, RB}},
   7716   1.7  christos 
   7717   1.7  christos {"lhzux",	X(31,311),	X_MASK,	     COM,	0,		{RT, RAL, RB}},
   7718   1.7  christos 
   7719   1.7  christos {"cbcdtd",	X(31,314),	XRB_MASK,    POWER6,	0,		{RA, RS}},
   7720   1.7  christos 
   7721   1.7  christos {"xor",		XRC(31,316,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7722   1.7  christos {"xor.",	XRC(31,316,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   7723   1.7  christos 
   7724   1.7  christos {"dcbtep",	XRT(31,319,0),	X_MASK,	  E500MC|PPCA2, 0,		{RT, RA0, RB}},
   7725   1.7  christos 
   7726   1.7  christos {"mfexisr",	XSPR(31,323, 64), XSPR_MASK, PPC403,	0,		{RT}},
   7727   1.7  christos {"mfexier",	XSPR(31,323, 66), XSPR_MASK, PPC403,	0,		{RT}},
   7728   1.7  christos {"mfbr0",	XSPR(31,323,128), XSPR_MASK, PPC403,	0,		{RT}},
   7729   1.7  christos {"mfbr1",	XSPR(31,323,129), XSPR_MASK, PPC403,	0,		{RT}},
   7730   1.7  christos {"mfbr2",	XSPR(31,323,130), XSPR_MASK, PPC403,	0,		{RT}},
   7731   1.7  christos {"mfbr3",	XSPR(31,323,131), XSPR_MASK, PPC403,	0,		{RT}},
   7732   1.7  christos {"mfbr4",	XSPR(31,323,132), XSPR_MASK, PPC403,	0,		{RT}},
   7733   1.7  christos {"mfbr5",	XSPR(31,323,133), XSPR_MASK, PPC403,	0,		{RT}},
   7734   1.7  christos {"mfbr6",	XSPR(31,323,134), XSPR_MASK, PPC403,	0,		{RT}},
   7735   1.7  christos {"mfbr7",	XSPR(31,323,135), XSPR_MASK, PPC403,	0,		{RT}},
   7736   1.7  christos {"mfbear",	XSPR(31,323,144), XSPR_MASK, PPC403,	0,		{RT}},
   7737   1.7  christos {"mfbesr",	XSPR(31,323,145), XSPR_MASK, PPC403,	0,		{RT}},
   7738   1.7  christos {"mfiocr",	XSPR(31,323,160), XSPR_MASK, PPC403,	0,		{RT}},
   7739   1.7  christos {"mfdmacr0",	XSPR(31,323,192), XSPR_MASK, PPC403,	0,		{RT}},
   7740   1.7  christos {"mfdmact0",	XSPR(31,323,193), XSPR_MASK, PPC403,	0,		{RT}},
   7741   1.7  christos {"mfdmada0",	XSPR(31,323,194), XSPR_MASK, PPC403,	0,		{RT}},
   7742   1.7  christos {"mfdmasa0",	XSPR(31,323,195), XSPR_MASK, PPC403,	0,		{RT}},
   7743   1.7  christos {"mfdmacc0",	XSPR(31,323,196), XSPR_MASK, PPC403,	0,		{RT}},
   7744   1.7  christos {"mfdmacr1",	XSPR(31,323,200), XSPR_MASK, PPC403,	0,		{RT}},
   7745   1.7  christos {"mfdmact1",	XSPR(31,323,201), XSPR_MASK, PPC403,	0,		{RT}},
   7746   1.7  christos {"mfdmada1",	XSPR(31,323,202), XSPR_MASK, PPC403,	0,		{RT}},
   7747   1.7  christos {"mfdmasa1",	XSPR(31,323,203), XSPR_MASK, PPC403,	0,		{RT}},
   7748   1.7  christos {"mfdmacc1",	XSPR(31,323,204), XSPR_MASK, PPC403,	0,		{RT}},
   7749   1.7  christos {"mfdmacr2",	XSPR(31,323,208), XSPR_MASK, PPC403,	0,		{RT}},
   7750   1.7  christos {"mfdmact2",	XSPR(31,323,209), XSPR_MASK, PPC403,	0,		{RT}},
   7751   1.7  christos {"mfdmada2",	XSPR(31,323,210), XSPR_MASK, PPC403,	0,		{RT}},
   7752   1.7  christos {"mfdmasa2",	XSPR(31,323,211), XSPR_MASK, PPC403,	0,		{RT}},
   7753   1.7  christos {"mfdmacc2",	XSPR(31,323,212), XSPR_MASK, PPC403,	0,		{RT}},
   7754   1.7  christos {"mfdmacr3",	XSPR(31,323,216), XSPR_MASK, PPC403,	0,		{RT}},
   7755   1.7  christos {"mfdmact3",	XSPR(31,323,217), XSPR_MASK, PPC403,	0,		{RT}},
   7756   1.7  christos {"mfdmada3",	XSPR(31,323,218), XSPR_MASK, PPC403,	0,		{RT}},
   7757   1.7  christos {"mfdmasa3",	XSPR(31,323,219), XSPR_MASK, PPC403,	0,		{RT}},
   7758   1.7  christos {"mfdmacc3",	XSPR(31,323,220), XSPR_MASK, PPC403,	0,		{RT}},
   7759   1.8  christos {"mfdmasr",	XSPR(31,323,224), XSPR_MASK, PPC403,	0,		{RT}},
   7760   1.7  christos {"mfdcr",	X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
   7761   1.7  christos {"mfdcr.",	XRC(31,323,1),	X_MASK,	     PPCA2,	0,		{RT, SPR}},
   7762   1.7  christos 
   7763   1.7  christos {"lvexwx",	X(31,325),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   7764   1.7  christos 
   7765   1.7  christos {"dcread",	X(31,326),	X_MASK,	  PPC476|TITAN,	0,		{RT, RA0, RB}},
   7766   1.7  christos 
   7767   1.7  christos {"div",		XO(31,331,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7768  1.11  christos {"div.",	XO(31,331,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   7769  1.11  christos 
   7770   1.7  christos {"lxvdsx",	X(31,332),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   7771   1.8  christos 
   7772   1.7  christos {"lxvpx",	X(31,333),	XX1_MASK,    POWER10,	0,		{XTP, RA0, RB}},
   7773   1.7  christos 
   7774   1.7  christos {"mfpmr",	X(31,334),	X_MASK, PPCPMR|PPCE300, 0,		{RT, PMR}},
   7775  1.11  christos {"mftmr",	X(31,366),	X_MASK,	     PPCTMR,	0,		{RT, TMR}},
   7776  1.11  christos 
   7777  1.11  christos {"slbsync",	X(31,338),	0xffffffff,  POWER9,	0,		{0}},
   7778  1.11  christos 
   7779  1.11  christos {"mfmq",	XSPR(31,339,  0), XSPR_MASK, M601,	EXT,		{RT}},
   7780  1.11  christos {"mfxer",	XSPR(31,339,  1), XSPR_MASK, COM,	EXT,		{RT}},
   7781  1.11  christos {"mfudscr",	XSPR(31,339,  3), XSPR_MASK, POWER9,	EXT,		{RS}},
   7782  1.11  christos {"mfrtcu",	XSPR(31,339,  4), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7783  1.11  christos {"mfrtcl",	XSPR(31,339,  5), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7784  1.11  christos {"mfdec",	XSPR(31,339,  6), XSPR_MASK, MFDEC1,	EXT,		{RT}},
   7785  1.11  christos {"mflr",	XSPR(31,339,  8), XSPR_MASK, COM,	EXT,		{RT}},
   7786  1.11  christos {"mfctr",	XSPR(31,339,  9), XSPR_MASK, COM,	EXT,		{RT}},
   7787  1.11  christos {"mfuamr",	XSPR(31,339, 13), XSPR_MASK, POWER9,	EXT,		{RS}},
   7788  1.11  christos {"mfdscr",	XSPR(31,339, 17), XSPR_MASK, POWER6,	EXT,		{RT}},
   7789  1.11  christos {"mftid",	XSPR(31,339, 17), XSPR_MASK, POWER,	EXT,		{RT}},
   7790  1.11  christos {"mfdsisr",	XSPR(31,339, 18), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7791  1.11  christos {"mfdar",	XSPR(31,339, 19), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7792  1.11  christos {"mfdec",	XSPR(31,339, 22), XSPR_MASK, MFDEC2,	MFDEC1|EXT,	{RT}},
   7793  1.11  christos {"mfsdr0",	XSPR(31,339, 24), XSPR_MASK, POWER,	EXT,		{RT}},
   7794  1.11  christos {"mfsdr1",	XSPR(31,339, 25), XSPR_MASK, COM,	TITAN|EXT,	{RT}},
   7795  1.11  christos {"mfsrr0",	XSPR(31,339, 26), XSPR_MASK, COM,	EXT,		{RT}},
   7796  1.11  christos {"mfsrr1",	XSPR(31,339, 27), XSPR_MASK, COM,	EXT,		{RT}},
   7797  1.11  christos {"mfcfar",	XSPR(31,339, 28), XSPR_MASK, POWER6,	EXT,		{RT}},
   7798  1.11  christos {"mfamr",	XSPR(31,339, 29), XSPR_MASK, POWER7,	EXT,		{RS}},
   7799  1.11  christos {"mfpidr",	XSPR(31,339, 48), XSPR_MASK, POWER10,	EXT,		{RS}},
   7800  1.11  christos {"mfpid",	XSPR(31,339, 48), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7801  1.11  christos {"mfcsrr0",	XSPR(31,339, 58), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7802  1.11  christos {"mfcsrr1",	XSPR(31,339, 59), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7803  1.11  christos {"mfiamr",	XSPR(31,339, 61), XSPR_MASK, POWER10,	EXT,		{RS}},
   7804  1.11  christos {"mfdear",	XSPR(31,339, 61), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7805  1.11  christos {"mfesr",	XSPR(31,339, 62), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7806  1.11  christos {"mfivpr",	XSPR(31,339, 63), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7807  1.11  christos {"mfctrl",	XSPR(31,339,136), XSPR_MASK, POWER4,	EXT,		{RT}},
   7808  1.11  christos {"mfcmpa",	XSPR(31,339,144), XSPR_MASK, PPC860,	EXT,		{RT}},
   7809  1.11  christos {"mfcmpb",	XSPR(31,339,145), XSPR_MASK, PPC860,	EXT,		{RT}},
   7810  1.11  christos {"mfcmpc",	XSPR(31,339,146), XSPR_MASK, PPC860,	EXT,		{RT}},
   7811  1.11  christos {"mfcmpd",	XSPR(31,339,147), XSPR_MASK, PPC860,	EXT,		{RT}},
   7812  1.11  christos {"mficr",	XSPR(31,339,148), XSPR_MASK, PPC860,	EXT,		{RT}},
   7813  1.11  christos {"mfder",	XSPR(31,339,149), XSPR_MASK, PPC860,	EXT,		{RT}},
   7814  1.11  christos {"mfcounta",	XSPR(31,339,150), XSPR_MASK, PPC860,	EXT,		{RT}},
   7815  1.11  christos {"mfcountb",	XSPR(31,339,151), XSPR_MASK, PPC860,	EXT,		{RT}},
   7816  1.11  christos {"mfcmpe",	XSPR(31,339,152), XSPR_MASK, PPC860,	EXT,		{RT}},
   7817  1.11  christos {"mffscr",	XSPR(31,339,153), XSPR_MASK, POWER10,	EXT,		{RS}},
   7818  1.11  christos {"mfcmpf",	XSPR(31,339,153), XSPR_MASK, PPC860,	EXT,		{RT}},
   7819  1.11  christos {"mfcmpg",	XSPR(31,339,154), XSPR_MASK, PPC860,	EXT,		{RT}},
   7820  1.11  christos {"mfcmph",	XSPR(31,339,155), XSPR_MASK, PPC860,	EXT,		{RT}},
   7821  1.11  christos {"mflctrl1",	XSPR(31,339,156), XSPR_MASK, PPC860,	EXT,		{RT}},
   7822  1.11  christos {"mfuamor",	XSPR(31,339,157), XSPR_MASK, POWER7,	EXT,		{RS}},
   7823  1.11  christos {"mflctrl2",	XSPR(31,339,157), XSPR_MASK, PPC860,	EXT,		{RT}},
   7824  1.11  christos {"mfictrl",	XSPR(31,339,158), XSPR_MASK, PPC860,	EXT,		{RT}},
   7825  1.11  christos {"mfpspb",	XSPR(31,339,159), XSPR_MASK, POWER10,	EXT,		{RS}},
   7826  1.11  christos {"mfbar",	XSPR(31,339,159), XSPR_MASK, PPC860,	EXT,		{RT}},
   7827  1.11  christos {"mfdpdes",	XSPR(31,339,176), XSPR_MASK, POWER10,	EXT,		{RS}},
   7828  1.11  christos {"mfdawr0",	XSPR(31,339,180), XSPR_MASK, POWER10,	EXT,		{RS}},
   7829  1.11  christos {"mfdawr1",	XSPR(31,339,181), XSPR_MASK, POWER10,	EXT,		{RS}},
   7830  1.11  christos {"mfrpr",	XSPR(31,339,186), XSPR_MASK, POWER10,	EXT,		{RS}},
   7831  1.11  christos {"mfciabr",	XSPR(31,339,187), XSPR_MASK, POWER10,	EXT,		{RS}},
   7832  1.11  christos {"mfdawrx0",	XSPR(31,339,188), XSPR_MASK, POWER10,	EXT,		{RS}},
   7833  1.11  christos {"mfdawrx1",	XSPR(31,339,189), XSPR_MASK, POWER10,	EXT,		{RS}},
   7834  1.11  christos {"mfhfscr",	XSPR(31,339,190), XSPR_MASK, POWER10,	EXT,		{RS}},
   7835  1.11  christos {"mfvrsave",	XSPR(31,339,256), XSPR_MASK, PPCVEC,	EXT,		{RT}},
   7836  1.11  christos {"mfusprg0",	XSPR(31,339,256), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7837  1.11  christos {"mfsprg",	XSPR(31,339,256), XSPRG_MASK, PPC,	EXT,		{RT, SPRG}},
   7838  1.11  christos {"mfusprg3",	XSPR(31,339,259), XSPR_MASK, POWER10,	EXT,		{RT}},
   7839  1.11  christos {"mfsprg4",	XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7840  1.11  christos {"mfsprg5",	XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7841  1.11  christos {"mfsprg6",	XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7842  1.11  christos {"mfsprg7",	XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, EXT,		{RT}},
   7843  1.11  christos {"mftbu",	XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, EXT,		{RT}},
   7844  1.11  christos {"mftb",	X(31,339),	  X_MASK,    POWER4|BOOKE, EXT,		{RT, TBR}},
   7845  1.11  christos {"mftbl",	XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, EXT,		{RT}},
   7846  1.11  christos {"mfsprg0",	XSPR(31,339,272), XSPR_MASK, PPC,	EXT,		{RT}},
   7847  1.11  christos {"mfsprg1",	XSPR(31,339,273), XSPR_MASK, PPC,	EXT,		{RT}},
   7848  1.11  christos {"mfsprg2",	XSPR(31,339,274), XSPR_MASK, PPC,	EXT,		{RT}},
   7849  1.11  christos {"mfsprg3",	XSPR(31,339,275), XSPR_MASK, PPC,	EXT,		{RT}},
   7850  1.11  christos {"mfasr",	XSPR(31,339,280), XSPR_MASK, PPC64,	EXT,		{RT}},
   7851  1.11  christos {"mfear",	XSPR(31,339,282), XSPR_MASK, PPC,	TITAN|EXT,	{RT}},
   7852  1.11  christos {"mfpir",	XSPR(31,339,286), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7853  1.11  christos {"mfpvr",	XSPR(31,339,287), XSPR_MASK, PPC,	EXT,		{RT}},
   7854  1.11  christos {"mfhsprg0",	XSPR(31,339,304), XSPR_MASK, POWER10,	EXT,		{RS}},
   7855  1.11  christos {"mfdbsr",	XSPR(31,339,304), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7856  1.11  christos {"mfhsprg1",	XSPR(31,339,305), XSPR_MASK, POWER10,	EXT,		{RS}},
   7857  1.11  christos {"mfhdisr",	XSPR(31,339,306), XSPR_MASK, POWER10,	EXT,		{RS}},
   7858  1.11  christos {"mfhdar",	XSPR(31,339,307), XSPR_MASK, POWER10,	EXT,		{RS}},
   7859  1.11  christos {"mfspurr",	XSPR(31,339,308), XSPR_MASK, POWER10,	EXT,		{RS}},
   7860  1.11  christos {"mfdbcr0",	XSPR(31,339,308), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7861  1.11  christos {"mfpurr",	XSPR(31,339,309), XSPR_MASK, POWER10,	EXT,		{RS}},
   7862  1.11  christos {"mfdbcr1",	XSPR(31,339,309), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7863  1.11  christos {"mfhdec",	XSPR(31,339,310), XSPR_MASK, POWER10,	EXT,		{RS}},
   7864  1.11  christos {"mfdbcr2",	XSPR(31,339,310), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7865  1.11  christos {"mfiac1",	XSPR(31,339,312), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7866  1.11  christos {"mfhrmor",	XSPR(31,339,313), XSPR_MASK, POWER10,	EXT,		{RS}},
   7867  1.11  christos {"mfiac2",	XSPR(31,339,313), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7868  1.11  christos {"mfhsrr0",	XSPR(31,339,314), XSPR_MASK, POWER10,	EXT,		{RS}},
   7869  1.11  christos {"mfiac3",	XSPR(31,339,314), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7870  1.11  christos {"mfhsrr1",	XSPR(31,339,315), XSPR_MASK, POWER10,	EXT,		{RS}},
   7871  1.11  christos {"mfiac4",	XSPR(31,339,315), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7872  1.11  christos {"mfdac1",	XSPR(31,339,316), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7873  1.11  christos {"mfdac2",	XSPR(31,339,317), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7874  1.11  christos {"mflpcr",	XSPR(31,339,318), XSPR_MASK, POWER10,	EXT,		{RS}},
   7875  1.11  christos {"mfdvc1",	XSPR(31,339,318), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7876  1.11  christos {"mflpidr",	XSPR(31,339,319), XSPR_MASK, POWER10,	EXT,		{RS}},
   7877  1.11  christos {"mfdvc2",	XSPR(31,339,319), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7878  1.11  christos {"mfhmer",	XSPR(31,339,336), XSPR_MASK, POWER7,	EXT,		{RS}},
   7879  1.11  christos {"mftsr",	XSPR(31,339,336), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7880  1.11  christos {"mfhmeer",	XSPR(31,339,337), XSPR_MASK, POWER7,	EXT,		{RS}},
   7881  1.11  christos {"mfpcr",	XSPR(31,339,338), XSPR_MASK, POWER10,	EXT,		{RS}},
   7882  1.11  christos {"mfheir",	XSPR(31,339,339), XSPR_MASK, POWER10,	EXT,		{RS}},
   7883  1.11  christos {"mftcr",	XSPR(31,339,340), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7884  1.11  christos {"mfamor",	XSPR(31,339,349), XSPR_MASK, POWER7,	EXT,		{RS}},
   7885  1.11  christos {"mfivor0",	XSPR(31,339,400), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7886  1.11  christos {"mfivor1",	XSPR(31,339,401), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7887  1.11  christos {"mfivor2",	XSPR(31,339,402), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7888  1.11  christos {"mfivor3",	XSPR(31,339,403), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7889  1.11  christos {"mfivor4",	XSPR(31,339,404), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7890  1.11  christos {"mfivor5",	XSPR(31,339,405), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7891  1.11  christos {"mfivor6",	XSPR(31,339,406), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7892  1.11  christos {"mfivor7",	XSPR(31,339,407), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7893  1.11  christos {"mfivor8",	XSPR(31,339,408), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7894  1.11  christos {"mfivor9",	XSPR(31,339,409), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7895  1.11  christos {"mfivor10",	XSPR(31,339,410), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7896  1.11  christos {"mfivor11",	XSPR(31,339,411), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7897  1.11  christos {"mfivor12",	XSPR(31,339,412), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7898  1.11  christos {"mfivor13",	XSPR(31,339,413), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7899  1.11  christos {"mfivor14",	XSPR(31,339,414), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7900  1.11  christos {"mfivor15",	XSPR(31,339,415), XSPR_MASK, BOOKE,	EXT,		{RT}},
   7901  1.11  christos {"mftir",	XSPR(31,339,446), XSPR_MASK, POWER10,	EXT,		{RS}},
   7902  1.11  christos {"mfptcr",	XSPR(31,339,464), XSPR_MASK, POWER10,	EXT,		{RS}},
   7903  1.11  christos {"mfusprg0",	XSPR(31,339,496), XSPR_MASK, POWER10,	EXT,		{RS}},
   7904  1.11  christos {"mfusprg1",	XSPR(31,339,497), XSPR_MASK, POWER10,	EXT,		{RS}},
   7905  1.11  christos {"mfurmor",	XSPR(31,339,505), XSPR_MASK, POWER10,	EXT,		{RS}},
   7906  1.11  christos {"mfusrr0",	XSPR(31,339,506), XSPR_MASK, POWER10,	EXT,		{RS}},
   7907  1.11  christos {"mfusrr1",	XSPR(31,339,507), XSPR_MASK, POWER10,	EXT,		{RS}},
   7908  1.11  christos {"mfsmfctrl",	XSPR(31,339,511), XSPR_MASK, POWER10,	EXT,		{RS}},
   7909  1.11  christos {"mfspefscr",	XSPR(31,339,512), XSPR_MASK, PPCSPE,	EXT,		{RT}},
   7910  1.11  christos {"mfbbear",	XSPR(31,339,513), XSPR_MASK, PPCBRLK,	EXT,		{RT}},
   7911  1.11  christos {"mfbbtar",	XSPR(31,339,514), XSPR_MASK, PPCBRLK,	EXT,		{RT}},
   7912  1.11  christos {"mfivor32",	XSPR(31,339,528), XSPR_MASK, PPCSPE|E6500, EXT,		{RT}},
   7913  1.11  christos {"mfivor33",	XSPR(31,339,529), XSPR_MASK, PPCSPE|E6500, EXT,		{RT}},
   7914  1.11  christos {"mfivor34",	XSPR(31,339,530), XSPR_MASK, PPCSPE,	EXT,		{RT}},
   7915  1.11  christos {"mfivor35",	XSPR(31,339,531), XSPR_MASK, PPCPMR,	EXT,		{RT}},
   7916  1.11  christos {"mfibatu",	XSPR(31,339,528), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7917  1.11  christos {"mfibatl",	XSPR(31,339,529), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7918  1.11  christos {"mfdbatu",	XSPR(31,339,536), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7919  1.11  christos {"mfdbatl",	XSPR(31,339,537), XSPRBAT_MASK, PPC,	TITAN|EXT,	{RT, SPRBAT}},
   7920  1.11  christos {"mfic_cst",	XSPR(31,339,560), XSPR_MASK, PPC860,	EXT,		{RT}},
   7921  1.11  christos {"mfic_adr",	XSPR(31,339,561), XSPR_MASK, PPC860,	EXT,		{RT}},
   7922  1.11  christos {"mfic_dat",	XSPR(31,339,562), XSPR_MASK, PPC860,	EXT,		{RT}},
   7923  1.11  christos {"mfdc_cst",	XSPR(31,339,568), XSPR_MASK, PPC860,	EXT,		{RT}},
   7924  1.11  christos {"mfdc_adr",	XSPR(31,339,569), XSPR_MASK, PPC860,	EXT,		{RT}},
   7925  1.11  christos {"mfdc_dat",	XSPR(31,339,570), XSPR_MASK, PPC860,	EXT,		{RT}},
   7926  1.11  christos {"mfmcsrr0",	XSPR(31,339,570), XSPR_MASK, PPCRFMCI,	EXT,		{RT}},
   7927  1.11  christos {"mfmcsrr1",	XSPR(31,339,571), XSPR_MASK, PPCRFMCI,	EXT,		{RT}},
   7928  1.11  christos {"mfmcsr",	XSPR(31,339,572), XSPR_MASK, PPCRFMCI,	EXT,		{RT}},
   7929  1.11  christos {"mfmcar",	XSPR(31,339,573), XSPR_MASK, PPCRFMCI,	TITAN|EXT,	{RT}},
   7930  1.11  christos {"mfdpdr",	XSPR(31,339,630), XSPR_MASK, PPC860,	EXT,		{RT}},
   7931  1.11  christos {"mfdpir",	XSPR(31,339,631), XSPR_MASK, PPC860,	EXT,		{RT}},
   7932  1.11  christos {"mfimmr",	XSPR(31,339,638), XSPR_MASK, PPC860,	EXT,		{RT}},
   7933  1.11  christos {"mfusier2",	XSPR(31,339,736), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7934  1.11  christos {"mfsier2",	XSPR(31,339,736), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7935  1.14  christos {"mfusier3",	XSPR(31,339,737), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7936  1.14  christos {"mfsier3",	XSPR(31,339,737), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7937  1.14  christos {"mfummcr3",	XSPR(31,339,738), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7938  1.14  christos {"mfmmcr3",	XSPR(31,339,738), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7939  1.14  christos {"mfummcrae",	XSPR(31,339,739), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7940  1.14  christos {"mfmmcrae",	XSPR(31,339,739), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7941  1.14  christos {"mfummcr1e",	XSPR(31,339,740), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7942  1.14  christos {"mfmmcr1e",	XSPR(31,339,740), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7943  1.11  christos {"mfummcr2e",	XSPR(31,339,741), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7944  1.11  christos {"mfmmcr2e",	XSPR(31,339,741), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7945  1.11  christos {"mfummcr3e",	XSPR(31,339,742), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7946  1.11  christos {"mfmmcr3e",	XSPR(31,339,742), XSPR_MASK, FUTURE,	EXT, 		{RT}},
   7947  1.11  christos {"mfusier",	XSPR(31,339,768), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7948  1.11  christos {"mfsier",	XSPR(31,339,768), XSPR_MASK, POWER10,	EXT, 		{RT}},
   7949  1.11  christos {"mfummcr2",	XSPR(31,339,769), XSPR_MASK, POWER9,	EXT, 		{RT}},
   7950  1.11  christos {"mfmmcr2",	XSPR(31,339,769), XSPR_MASK, POWER9,	EXT, 		{RT}},
   7951  1.11  christos {"mfummcra",	XSPR(31,339,770), XSPR_MASK, POWER9,	EXT,		{RS}},
   7952  1.11  christos {"mfmmcra",	XSPR(31,339,770), XSPR_MASK, POWER7,	EXT,		{RS}},
   7953  1.11  christos {"mfupmc1",	XSPR(31,339,771), XSPR_MASK, POWER9,	EXT, 		{RT}},
   7954  1.11  christos {"mfpmc1",	XSPR(31,339,771), XSPR_MASK, POWER7,	EXT,		{RT}},
   7955  1.11  christos {"mfupmc2",	XSPR(31,339,772), XSPR_MASK, POWER9,	EXT,		{RT}},
   7956  1.11  christos {"mfpmc2",	XSPR(31,339,772), XSPR_MASK, POWER7,	EXT,		{RT}},
   7957  1.11  christos {"mfupmc3",	XSPR(31,339,773), XSPR_MASK, POWER9,	EXT,		{RT}},
   7958  1.11  christos {"mfpmc3",	XSPR(31,339,773), XSPR_MASK, POWER7,	EXT,		{RT}},
   7959  1.11  christos {"mfupmc4",	XSPR(31,339,774), XSPR_MASK, POWER9,	EXT,		{RT}},
   7960  1.11  christos {"mfpmc4",	XSPR(31,339,774), XSPR_MASK, POWER7,	EXT,		{RT}},
   7961  1.14  christos {"mfupmc5",	XSPR(31,339,775), XSPR_MASK, POWER9,	EXT,		{RT}},
   7962  1.14  christos {"mfpmc5",	XSPR(31,339,775), XSPR_MASK, POWER7,	EXT,		{RT}},
   7963  1.14  christos {"mfupmc6",	XSPR(31,339,776), XSPR_MASK, POWER9,	EXT,		{RT}},
   7964  1.14  christos {"mfpmc6",	XSPR(31,339,776), XSPR_MASK, POWER7,	EXT,		{RT}},
   7965  1.11  christos {"mfupmc7",	XSPR(31,339,777), XSPR_MASK, FUTURE,	EXT,		{RT}},
   7966  1.11  christos {"mfpmc7",	XSPR(31,339,777), XSPR_MASK, FUTURE,	EXT,		{RT}},
   7967  1.11  christos {"mfupmc8",	XSPR(31,339,778), XSPR_MASK, FUTURE,	EXT,		{RT}},
   7968  1.11  christos {"mfpmc8",	XSPR(31,339,778), XSPR_MASK, FUTURE,	EXT,		{RT}},
   7969  1.11  christos {"mfummcr0",	XSPR(31,339,779), XSPR_MASK, POWER9,	EXT,		{RS}},
   7970  1.11  christos {"mfmmcr0",	XSPR(31,339,779), XSPR_MASK, POWER7,	EXT,		{RS}},
   7971  1.11  christos {"mfusiar",	XSPR(31,339,780), XSPR_MASK, POWER9,	EXT,		{RS}},
   7972  1.11  christos {"mfsiar",	XSPR(31,339,780), XSPR_MASK, POWER9,	EXT,		{RS}},
   7973  1.11  christos {"mfusdar",	XSPR(31,339,781), XSPR_MASK, POWER9,	EXT,		{RS}},
   7974  1.11  christos {"mfsdar",	XSPR(31,339,781), XSPR_MASK, POWER9,	EXT,		{RS}},
   7975  1.11  christos {"mfummcr1",	XSPR(31,339,782), XSPR_MASK, POWER9,	EXT,		{RS}},
   7976  1.11  christos {"mfmmcr1",	XSPR(31,339,782), XSPR_MASK, POWER7,	EXT,		{RS}},
   7977  1.11  christos {"mfmi_ctr",	XSPR(31,339,784), XSPR_MASK, PPC860,	EXT,		{RT}},
   7978  1.11  christos {"mfmi_ap",	XSPR(31,339,786), XSPR_MASK, PPC860,	EXT,		{RT}},
   7979  1.11  christos {"mfmi_epn",	XSPR(31,339,787), XSPR_MASK, PPC860,	EXT,		{RT}},
   7980  1.11  christos {"mfmi_twc",	XSPR(31,339,789), XSPR_MASK, PPC860,	EXT,		{RT}},
   7981  1.11  christos {"mfmi_rpn",	XSPR(31,339,790), XSPR_MASK, PPC860,	EXT,		{RT}},
   7982  1.11  christos {"mfmd_ctr",	XSPR(31,339,792), XSPR_MASK, PPC860,	EXT,		{RT}},
   7983  1.11  christos {"mfm_casid",	XSPR(31,339,793), XSPR_MASK, PPC860,	EXT,		{RT}},
   7984  1.11  christos {"mfmd_ap",	XSPR(31,339,794), XSPR_MASK, PPC860,	EXT,		{RT}},
   7985  1.11  christos {"mfmd_epn",	XSPR(31,339,795), XSPR_MASK, PPC860,	EXT,		{RT}},
   7986  1.11  christos {"mfmd_twb",	XSPR(31,339,796), XSPR_MASK, PPC860,	EXT,		{RT}},
   7987  1.11  christos {"mfmd_twc",	XSPR(31,339,797), XSPR_MASK, PPC860,	EXT,		{RT}},
   7988  1.11  christos {"mfmd_rpn",	XSPR(31,339,798), XSPR_MASK, PPC860,	EXT,		{RT}},
   7989  1.11  christos {"mfm_tw",	XSPR(31,339,799), XSPR_MASK, PPC860,	EXT,		{RT}},
   7990  1.11  christos {"mfbescrs",	XSPR(31,339,800), XSPR_MASK, POWER9,	EXT,		{RS}},
   7991  1.11  christos {"mfbescrsu",	XSPR(31,339,801), XSPR_MASK, POWER9,	EXT,		{RS}},
   7992  1.11  christos {"mfbescrr",	XSPR(31,339,802), XSPR_MASK, POWER9,	EXT,		{RS}},
   7993  1.11  christos {"mfbescrru",	XSPR(31,339,803), XSPR_MASK, POWER9,	EXT,		{RS}},
   7994  1.11  christos {"mfebbhr",	XSPR(31,339,804), XSPR_MASK, POWER9,	EXT,		{RS}},
   7995  1.11  christos {"mfebbrr",	XSPR(31,339,805), XSPR_MASK, POWER9,	EXT,		{RS}},
   7996  1.11  christos {"mfbescr",	XSPR(31,339,806), XSPR_MASK, POWER9,	EXT,		{RS}},
   7997  1.11  christos {"mftar",	XSPR(31,339,815), XSPR_MASK, POWER9,	EXT,		{RS}},
   7998  1.11  christos {"mfasdr",	XSPR(31,339,816), XSPR_MASK, POWER10,	EXT,		{RS}},
   7999  1.11  christos {"mfmi_dbcam",	XSPR(31,339,816), XSPR_MASK, PPC860,	EXT,		{RT}},
   8000  1.11  christos {"mfmi_dbram0",	XSPR(31,339,817), XSPR_MASK, PPC860,	EXT,		{RT}},
   8001  1.11  christos {"mfmi_dbram1",	XSPR(31,339,818), XSPR_MASK, PPC860,	EXT,		{RT}},
   8002  1.11  christos {"mfpsscr",	XSPR(31,339,823), XSPR_MASK, POWER10,	EXT,		{RS}},
   8003  1.11  christos {"mfmd_dbcam",	XSPR(31,339,824), XSPR_MASK, PPC860,	EXT,		{RT}},
   8004  1.11  christos {"mfmd_dbram0",	XSPR(31,339,825), XSPR_MASK, PPC860,	EXT,		{RT}},
   8005  1.11  christos {"mfmd_dbram1",	XSPR(31,339,826), XSPR_MASK, PPC860,	EXT,		{RT}},
   8006  1.11  christos {"mfic",	XSPR(31,339,848), XSPR_MASK, POWER8,	EXT,		{RS}},
   8007  1.11  christos {"mfvtb",	XSPR(31,339,849), XSPR_MASK, POWER8,	EXT,		{RS}},
   8008  1.11  christos {"mfhpsscr",	XSPR(31,339,855), XSPR_MASK, POWER10,	EXT,		{RS}},
   8009  1.11  christos {"mfivndx",	XSPR(31,339,880), XSPR_MASK, TITAN,	EXT,		{RT}},
   8010  1.11  christos {"mfdvndx",	XSPR(31,339,881), XSPR_MASK, TITAN,	EXT,		{RT}},
   8011  1.11  christos {"mfivlim",	XSPR(31,339,882), XSPR_MASK, TITAN,	EXT,		{RT}},
   8012  1.11  christos {"mfdvlim",	XSPR(31,339,883), XSPR_MASK, TITAN,	EXT,		{RT}},
   8013  1.11  christos {"mfclcsr",	XSPR(31,339,884), XSPR_MASK, TITAN,	EXT,		{RT}},
   8014  1.11  christos {"mfccr1",	XSPR(31,339,888), XSPR_MASK, TITAN,	EXT,		{RT}},
   8015  1.11  christos {"mfppr",	XSPR(31,339,896), XSPR_MASK, POWER5,	EXT,		{RT}},
   8016  1.11  christos {"mfppr32",	XSPR(31,339,898), XSPR_MASK, POWER5,	EXT,		{RT}},
   8017  1.11  christos {"mfgqr",	XSPR(31,339,912), XSPRGQR_MASK, PPCPS,	EXT,		{RT, SPRGQR}},
   8018  1.11  christos {"mfhid2",	XSPR(31,339,920), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8019  1.11  christos {"mfwpar",	XSPR(31,339,921), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8020  1.11  christos {"mfdmau",	XSPR(31,339,922), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8021  1.11  christos {"mfdmal",	XSPR(31,339,923), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8022  1.11  christos {"mfrstcfg",	XSPR(31,339,923), XSPR_MASK, TITAN,	EXT,		{RT}},
   8023  1.11  christos {"mfdcdbtrl",	XSPR(31,339,924), XSPR_MASK, TITAN,	EXT,		{RT}},
   8024  1.11  christos {"mfdcdbtrh",	XSPR(31,339,925), XSPR_MASK, TITAN,	EXT,		{RT}},
   8025  1.11  christos {"mficdbtr",	XSPR(31,339,927), XSPR_MASK, TITAN,	EXT,		{RT}},
   8026  1.11  christos {"mfummcr0",	XSPR(31,339,936), XSPR_MASK, PPC750,	EXT,		{RT}},
   8027  1.11  christos {"mfupmc1",	XSPR(31,339,937), XSPR_MASK, PPC750,	EXT,		{RT}},
   8028  1.11  christos {"mfupmc2",	XSPR(31,339,938), XSPR_MASK, PPC750,	EXT,		{RT}},
   8029  1.11  christos {"mfusia",	XSPR(31,339,939), XSPR_MASK, PPC750,	EXT,		{RT}},
   8030  1.11  christos {"mfummcr1",	XSPR(31,339,940), XSPR_MASK, PPC750,	EXT,		{RT}},
   8031  1.11  christos {"mfupmc3",	XSPR(31,339,941), XSPR_MASK, PPC750,	EXT,		{RT}},
   8032  1.11  christos {"mfupmc4",	XSPR(31,339,942), XSPR_MASK, PPC750,	EXT,		{RT}},
   8033  1.11  christos {"mfzpr",	XSPR(31,339,944), XSPR_MASK, PPC403,	EXT,		{RT}},
   8034  1.11  christos {"mfpid",	XSPR(31,339,945), XSPR_MASK, PPC403,	EXT,		{RT}},
   8035  1.11  christos {"mfmmucr",	XSPR(31,339,946), XSPR_MASK, TITAN,	EXT,		{RT}},
   8036  1.11  christos {"mfccr0",	XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, EXT,		{RT}},
   8037  1.11  christos {"mfiac3",	XSPR(31,339,948), XSPR_MASK, PPC405,	EXT,		{RT}},
   8038  1.11  christos {"mfiac4",	XSPR(31,339,949), XSPR_MASK, PPC405,	EXT,		{RT}},
   8039  1.11  christos {"mfdvc1",	XSPR(31,339,950), XSPR_MASK, PPC405,	EXT,		{RT}},
   8040  1.11  christos {"mfdvc2",	XSPR(31,339,951), XSPR_MASK, PPC405,	EXT,		{RT}},
   8041  1.11  christos {"mfmmcr0",	XSPR(31,339,952), XSPR_MASK, PPC750,	EXT,		{RT}},
   8042  1.11  christos {"mfpmc1",	XSPR(31,339,953), XSPR_MASK, PPC750,	EXT,		{RT}},
   8043  1.11  christos {"mfsgr",	XSPR(31,339,953), XSPR_MASK, PPC403,	EXT,		{RT}},
   8044  1.11  christos {"mfdcwr",	XSPR(31,339,954), XSPR_MASK, PPC403,	EXT,		{RT}},
   8045  1.11  christos {"mfpmc2",	XSPR(31,339,954), XSPR_MASK, PPC750,	EXT,		{RT}},
   8046  1.11  christos {"mfsia",	XSPR(31,339,955), XSPR_MASK, PPC750,	EXT,		{RT}},
   8047  1.11  christos {"mfsler",	XSPR(31,339,955), XSPR_MASK, PPC405,	EXT,		{RT}},
   8048  1.11  christos {"mfmmcr1",	XSPR(31,339,956), XSPR_MASK, PPC750,	EXT,		{RT}},
   8049  1.11  christos {"mfsu0r",	XSPR(31,339,956), XSPR_MASK, PPC405,	EXT,		{RT}},
   8050  1.11  christos {"mfdbcr1",	XSPR(31,339,957), XSPR_MASK, PPC405,	EXT,		{RT}},
   8051  1.11  christos {"mfpmc3",	XSPR(31,339,957), XSPR_MASK, PPC750,	EXT,		{RT}},
   8052  1.11  christos {"mfpmc4",	XSPR(31,339,958), XSPR_MASK, PPC750,	EXT,		{RT}},
   8053  1.11  christos {"mficdbdr",	XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, EXT,		{RT}},
   8054  1.11  christos {"mfesr",	XSPR(31,339,980), XSPR_MASK, PPC403,	EXT,		{RT}},
   8055  1.11  christos {"mfdear",	XSPR(31,339,981), XSPR_MASK, PPC403,	EXT,		{RT}},
   8056  1.11  christos {"mfevpr",	XSPR(31,339,982), XSPR_MASK, PPC403,	EXT,		{RT}},
   8057  1.11  christos {"mfcdbcr",	XSPR(31,339,983), XSPR_MASK, PPC403,	EXT,		{RT}},
   8058  1.11  christos {"mftsr",	XSPR(31,339,984), XSPR_MASK, PPC403,	EXT,		{RT}},
   8059  1.11  christos {"mftcr",	XSPR(31,339,986), XSPR_MASK, PPC403,	EXT,		{RT}},
   8060  1.11  christos {"mfpit",	XSPR(31,339,987), XSPR_MASK, PPC403,	EXT,		{RT}},
   8061  1.11  christos {"mftbhi",	XSPR(31,339,988), XSPR_MASK, PPC403,	EXT,		{RT}},
   8062  1.11  christos {"mftblo",	XSPR(31,339,989), XSPR_MASK, PPC403,	EXT,		{RT}},
   8063  1.11  christos {"mfsrr2",	XSPR(31,339,990), XSPR_MASK, PPC403,	EXT,		{RT}},
   8064  1.11  christos {"mfsrr3",	XSPR(31,339,991), XSPR_MASK, PPC403,	EXT,		{RT}},
   8065  1.11  christos {"mfdbsr",	XSPR(31,339,1008), XSPR_MASK, PPC403,	EXT,		{RT}},
   8066  1.11  christos {"mfhid0",	XSPR(31,339,1008), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8067  1.11  christos {"mfhid1",	XSPR(31,339,1009), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8068  1.11  christos {"mfdbcr0",	XSPR(31,339,1010), XSPR_MASK, PPC405,	EXT,		{RT}},
   8069  1.11  christos {"mfiabr",	XSPR(31,339,1010), XSPR_MASK, GEKKO,	EXT,		{RT}},
   8070  1.11  christos {"mfhid4",	XSPR(31,339,1011), XSPR_MASK, BROADWAY,	EXT,		{RT}},
   8071  1.11  christos {"mfdbdr",	XSPR(31,339,1011), XSPR_MASK, TITAN,	EXT,		{RS}},
   8072  1.11  christos {"mfiac1",	XSPR(31,339,1012), XSPR_MASK, PPC403,	EXT,		{RT}},
   8073  1.11  christos {"mfiac2",	XSPR(31,339,1013), XSPR_MASK, PPC403,	EXT,		{RT}},
   8074  1.11  christos {"mfdabr",	XSPR(31,339,1013), XSPR_MASK, PPC750,	EXT,		{RT}},
   8075  1.11  christos {"mfdac1",	XSPR(31,339,1014), XSPR_MASK, PPC403,	EXT,		{RT}},
   8076  1.11  christos {"mfdac2",	XSPR(31,339,1015), XSPR_MASK, PPC403,	EXT,		{RT}},
   8077  1.11  christos {"mfl2cr",	XSPR(31,339,1017), XSPR_MASK, PPC750,	EXT,		{RT}},
   8078  1.11  christos {"mfdccr",	XSPR(31,339,1018), XSPR_MASK, PPC403,	EXT,		{RT}},
   8079  1.11  christos {"mficcr",	XSPR(31,339,1019), XSPR_MASK, PPC403,	EXT,		{RT}},
   8080  1.11  christos {"mfictc",	XSPR(31,339,1019), XSPR_MASK, PPC750,	EXT,		{RT}},
   8081  1.11  christos {"mfpbl1",	XSPR(31,339,1020), XSPR_MASK, PPC403,	EXT,		{RT}},
   8082  1.11  christos {"mfthrm1",	XSPR(31,339,1020), XSPR_MASK, PPC750,	EXT,		{RT}},
   8083  1.11  christos {"mfpbu1",	XSPR(31,339,1021), XSPR_MASK, PPC403,	EXT,		{RT}},
   8084  1.11  christos {"mfthrm2",	XSPR(31,339,1021), XSPR_MASK, PPC750,	EXT,		{RT}},
   8085   1.7  christos {"mfpbl2",	XSPR(31,339,1022), XSPR_MASK, PPC403,	EXT,		{RT}},
   8086   1.7  christos {"mfthrm3",	XSPR(31,339,1022), XSPR_MASK, PPC750,	EXT,		{RT}},
   8087   1.7  christos {"mfpir",	XSPR(31,339,1023), XSPR_MASK, POWER10,	EXT,		{RT}},
   8088   1.7  christos {"mfpbu2",	XSPR(31,339,1023), XSPR_MASK, PPC403,	EXT,		{RT}},
   8089   1.7  christos {"mfspr",	X(31,339),	X_MASK,	     COM,	0,		{RT, SPR}},
   8090  1.11  christos 
   8091   1.7  christos {"lwax",	X(31,341),	X_MASK,	     PPC64,	0,		{RT, RA0, RB}},
   8092   1.7  christos 
   8093   1.7  christos {"dst",		XDSS(31,342,0),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   8094   1.7  christos {"dstt",	XDSS(31,342,1),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   8095   1.7  christos 
   8096   1.7  christos {"lhax",	X(31,343),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   8097   1.7  christos 
   8098   1.2     skrll {"lvxl",	X(31,359),	X_MASK,	     PPCVEC,	0,		{VD, RA0, RB}},
   8099   1.7  christos 
   8100   1.7  christos {"abs",		XO(31,360,0,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   8101   1.2     skrll {"abs.",	XO(31,360,0,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   8102   1.7  christos 
   8103   1.5  christos {"divs",	XO(31,363,0,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8104   1.7  christos {"divs.",	XO(31,363,0,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8105   1.2     skrll 
   8106  1.11  christos {"lxvwsx",	X(31,364),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8107  1.11  christos 
   8108  1.11  christos {"tlbia",	X(31,370),	0xffffffff,  PPC,	E500|TITAN,	{0}},
   8109   1.2     skrll 
   8110   1.7  christos {"mftbu",	XSPR(31,371,269), XSPR_MASK, PPC,	NO371|POWER4|EXT,	{RT}},
   8111   1.2     skrll {"mftb",	X(31,371),	X_MASK,	     PPC,	NO371|POWER4,		{RT, TBR}},
   8112   1.7  christos {"mftbl",	XSPR(31,371,268), XSPR_MASK, PPC,	NO371|POWER4|EXT,	{RT}},
   8113  1.11  christos 
   8114   1.2     skrll {"lwaux",	X(31,373),	X_MASK,	     PPC64,	0,		{RT, RAL, RB}},
   8115   1.7  christos 
   8116   1.2     skrll {"dstst",	XDSS(31,374,0),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   8117   1.7  christos {"dststt",	XDSS(31,374,1),	XDSS_MASK,   PPCVEC,	0,		{RA, RB, STRM}},
   8118   1.2     skrll 
   8119  1.11  christos {"lhaux",	X(31,375),	X_MASK,	     COM,	0,		{RT, RAL, RB}},
   8120  1.11  christos 
   8121   1.7  christos {"popcntw",	X(31,378),	XRB_MASK,    POWER7|PPCA2, 0,		{RA, RS}},
   8122   1.7  christos 
   8123   1.4  christos {"setbc",	X(31,384),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   8124   1.8  christos 
   8125   1.2     skrll {"mtdcrx",	X(31,387),	X_MASK,	     BOOKE|PPCA2|PPC476, TITAN,	{RA, RS}},
   8126   1.7  christos {"mtdcrx.",	XRC(31,387,1),	X_MASK,	     PPCA2,	0,		{RA, RS}},
   8127   1.7  christos 
   8128   1.2     skrll {"stvexbx",	X(31,389),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8129   1.7  christos 
   8130   1.7  christos {"dcblc",	X(31,390),	X_MASK,	 PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   8131   1.7  christos {"stdfcmx",	APU(31,391,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8132   1.7  christos 
   8133   1.2     skrll {"divdeu",	XO(31,393,0,0),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   8134   1.7  christos {"divdeu.",	XO(31,393,0,1),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   8135   1.7  christos {"divweu",	XO(31,395,0,0),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   8136   1.5  christos {"divweu.",	XO(31,395,0,1),	XO_MASK,     POWER7|PPCA2, 0,		{RT, RA, RB}},
   8137   1.7  christos 
   8138   1.2     skrll {"stxvx",	X(31,396),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8139   1.7  christos {"stxvl",	X(31,397),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8140   1.2     skrll 
   8141   1.7  christos {"dcblce",	X(31,398),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA, RB}},
   8142   1.5  christos 
   8143   1.7  christos {"slbmte",	X(31,402),	XRA_MASK,    PPC64,	0,		{RS, RB}},
   8144   1.5  christos 
   8145   1.7  christos {"mtvsrws",	X(31,403),	XX1RB_MASK,  PPCVSX3,	0,		{XT6, RA}},
   8146   1.7  christos 
   8147   1.3  christos {"pbt.",	XRC(31,404,1),	X_MASK,	     POWER8,	0,		{RS, RA0, RB}},
   8148   1.7  christos 
   8149   1.4  christos {"icswx",	XRC(31,406,0),	X_MASK,	  POWER7|PPCA2,	0,		{RS, RA, RB}},
   8150   1.7  christos {"icswx.",	XRC(31,406,1),	X_MASK,	  POWER7|PPCA2,	0,		{RS, RA, RB}},
   8151   1.7  christos 
   8152   1.2     skrll {"sthx",	X(31,407),	X_MASK,	     COM,	0,		{RS, RA0, RB}},
   8153   1.7  christos 
   8154   1.2     skrll {"orc",		XRC(31,412,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8155  1.11  christos {"orc.",	XRC(31,412,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8156  1.11  christos 
   8157   1.8  christos {"sthepx",	X(31,415),	X_MASK,	  E500MC|PPCA2, 0,		{RS, RA0, RB}},
   8158   1.2     skrll 
   8159   1.8  christos {"setbcr",	X(31,416),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   8160   1.4  christos 
   8161   1.7  christos {"mtdcrux",	X(31,419),	X_MASK,	 PPC464|PPC476,	0,		{RA, RS}},
   8162   1.2     skrll 
   8163   1.7  christos {"stvexhx",	X(31,421),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8164   1.7  christos 
   8165   1.7  christos {"dcblq.",	XRC(31,422,1),	X_MASK,	     E6500,	0,		{CT, RA0, RB}},
   8166   1.7  christos 
   8167   1.2     skrll {"divde",	XO(31,425,0,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8168   1.7  christos {"divde.",	XO(31,425,0,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8169   1.5  christos {"divwe",	XO(31,427,0,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8170   1.7  christos {"divwe.",	XO(31,427,0,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   8171   1.5  christos 
   8172   1.7  christos {"stxvll",	X(31,429),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   8173   1.2     skrll 
   8174   1.7  christos {"clrbhrb",	X(31,430),	0xffffffff,  POWER8,	0,		{0}},
   8175   1.5  christos 
   8176   1.7  christos {"slbie",	X(31,434),	XRTRA_MASK,  PPC64,	0,		{RB}},
   8177   1.2     skrll 
   8178   1.7  christos {"mtvsrdd",	X(31,435),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8179   1.2     skrll 
   8180  1.11  christos {"ecowx",	X(31,438),	X_MASK,	     PPC,	E500|TITAN,	{RT, RA0, RB}},
   8181  1.11  christos 
   8182  1.11  christos {"sthux",	X(31,439),	X_MASK,	     COM,	0,		{RS, RAS, RB}},
   8183  1.11  christos 
   8184  1.11  christos /* or 1,1,1 */
   8185  1.11  christos {"cctpl",	0x7c210b78,	0xffffffff,  CELL,	EXT,		{0}},
   8186  1.11  christos /* or 2,2,2 */
   8187  1.11  christos {"cctpm",	0x7c421378,	0xffffffff,  CELL,	EXT,		{0}},
   8188  1.11  christos /* or 3,3,3 */
   8189  1.11  christos {"cctph",	0x7c631b78,	0xffffffff,  CELL,	EXT,		{0}},
   8190  1.11  christos /* or 26,26,26 */
   8191  1.11  christos {"miso",	0x7f5ad378,   0xffffffff, POWER8|E6500,	EXT,		{0}},
   8192  1.11  christos /* or 27,27,27 */
   8193  1.11  christos {"yield",	0x7f7bdb78,	0xffffffff,  POWER7,	EXT,		{0}},
   8194  1.11  christos /* or 28,28,28 */
   8195  1.11  christos {"mdors",	0x7f9ce378,	0xffffffff,  E500MC,	EXT,		{0}},
   8196  1.11  christos {"db8cyc",	0x7f9ce378,	0xffffffff,  CELL,	EXT,		{0}},
   8197  1.11  christos /* or 29,29,29 */
   8198  1.11  christos {"mdoio",	0x7fbdeb78,	0xffffffff,  POWER7,	EXT,		{0}},
   8199  1.11  christos {"db10cyc",	0x7fbdeb78,	0xffffffff,  CELL,	EXT,		{0}},
   8200  1.11  christos /* or 30,30,30 */
   8201   1.4  christos {"mdoom",	0x7fdef378,	0xffffffff,  POWER7,	EXT,		{0}},
   8202  1.11  christos {"db12cyc",	0x7fdef378,	0xffffffff,  CELL,	EXT,		{0}},
   8203   1.7  christos /* or 31,31,31 */
   8204  1.11  christos {"db16cyc",	0x7ffffb78,	0xffffffff,  CELL,	EXT,		{0}},
   8205   1.7  christos 
   8206   1.7  christos {"mr",		XRC(31,444,0),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   8207  1.11  christos {"or",		XRC(31,444,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8208  1.11  christos {"mr.",		XRC(31,444,1),	X_MASK,	     COM,	EXT,		{RA, RSB}},
   8209   1.7  christos {"or.",		XRC(31,444,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8210   1.7  christos 
   8211   1.7  christos {"setnbc",	X(31,448),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   8212   1.7  christos 
   8213   1.7  christos {"mtexisr",	XSPR(31,451, 64), XSPR_MASK, PPC403,	0,		{RS}},
   8214   1.7  christos {"mtexier",	XSPR(31,451, 66), XSPR_MASK, PPC403,	0,		{RS}},
   8215   1.7  christos {"mtbr0",	XSPR(31,451,128), XSPR_MASK, PPC403,	0,		{RS}},
   8216   1.7  christos {"mtbr1",	XSPR(31,451,129), XSPR_MASK, PPC403,	0,		{RS}},
   8217   1.7  christos {"mtbr2",	XSPR(31,451,130), XSPR_MASK, PPC403,	0,		{RS}},
   8218   1.7  christos {"mtbr3",	XSPR(31,451,131), XSPR_MASK, PPC403,	0,		{RS}},
   8219   1.7  christos {"mtbr4",	XSPR(31,451,132), XSPR_MASK, PPC403,	0,		{RS}},
   8220   1.7  christos {"mtbr5",	XSPR(31,451,133), XSPR_MASK, PPC403,	0,		{RS}},
   8221   1.7  christos {"mtbr6",	XSPR(31,451,134), XSPR_MASK, PPC403,	0,		{RS}},
   8222   1.7  christos {"mtbr7",	XSPR(31,451,135), XSPR_MASK, PPC403,	0,		{RS}},
   8223   1.7  christos {"mtbear",	XSPR(31,451,144), XSPR_MASK, PPC403,	0,		{RS}},
   8224   1.7  christos {"mtbesr",	XSPR(31,451,145), XSPR_MASK, PPC403,	0,		{RS}},
   8225   1.7  christos {"mtiocr",	XSPR(31,451,160), XSPR_MASK, PPC403,	0,		{RS}},
   8226   1.7  christos {"mtdmacr0",	XSPR(31,451,192), XSPR_MASK, PPC403,	0,		{RS}},
   8227   1.7  christos {"mtdmact0",	XSPR(31,451,193), XSPR_MASK, PPC403,	0,		{RS}},
   8228   1.7  christos {"mtdmada0",	XSPR(31,451,194), XSPR_MASK, PPC403,	0,		{RS}},
   8229   1.7  christos {"mtdmasa0",	XSPR(31,451,195), XSPR_MASK, PPC403,	0,		{RS}},
   8230   1.7  christos {"mtdmacc0",	XSPR(31,451,196), XSPR_MASK, PPC403,	0,		{RS}},
   8231   1.7  christos {"mtdmacr1",	XSPR(31,451,200), XSPR_MASK, PPC403,	0,		{RS}},
   8232   1.7  christos {"mtdmact1",	XSPR(31,451,201), XSPR_MASK, PPC403,	0,		{RS}},
   8233   1.7  christos {"mtdmada1",	XSPR(31,451,202), XSPR_MASK, PPC403,	0,		{RS}},
   8234   1.7  christos {"mtdmasa1",	XSPR(31,451,203), XSPR_MASK, PPC403,	0,		{RS}},
   8235   1.7  christos {"mtdmacc1",	XSPR(31,451,204), XSPR_MASK, PPC403,	0,		{RS}},
   8236   1.7  christos {"mtdmacr2",	XSPR(31,451,208), XSPR_MASK, PPC403,	0,		{RS}},
   8237   1.7  christos {"mtdmact2",	XSPR(31,451,209), XSPR_MASK, PPC403,	0,		{RS}},
   8238   1.7  christos {"mtdmada2",	XSPR(31,451,210), XSPR_MASK, PPC403,	0,		{RS}},
   8239   1.7  christos {"mtdmasa2",	XSPR(31,451,211), XSPR_MASK, PPC403,	0,		{RS}},
   8240   1.7  christos {"mtdmacc2",	XSPR(31,451,212), XSPR_MASK, PPC403,	0,		{RS}},
   8241   1.7  christos {"mtdmacr3",	XSPR(31,451,216), XSPR_MASK, PPC403,	0,		{RS}},
   8242   1.7  christos {"mtdmact3",	XSPR(31,451,217), XSPR_MASK, PPC403,	0,		{RS}},
   8243   1.7  christos {"mtdmada3",	XSPR(31,451,218), XSPR_MASK, PPC403,	0,		{RS}},
   8244   1.7  christos {"mtdmasa3",	XSPR(31,451,219), XSPR_MASK, PPC403,	0,		{RS}},
   8245   1.7  christos {"mtdmacc3",	XSPR(31,451,220), XSPR_MASK, PPC403,	0,		{RS}},
   8246   1.8  christos {"mtdmasr",	XSPR(31,451,224), XSPR_MASK, PPC403,	0,		{RS}},
   8247   1.7  christos {"mtdcr",	X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
   8248   1.8  christos {"mtdcr.",	XRC(31,451,1), X_MASK,	     PPCA2,	0,		{SPR, RS}},
   8249   1.7  christos 
   8250   1.7  christos {"stvexwx",	X(31,453),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8251   1.7  christos 
   8252   1.7  christos {"dccci",	X(31,454), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
   8253   1.7  christos {"dci",		X(31,454),	XRARB_MASK, PPCA2|PPC476, 0,		{CT}},
   8254   1.7  christos 
   8255   1.7  christos {"divdu",	XO(31,457,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8256   1.7  christos {"divdu.",	XO(31,457,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8257  1.12  christos 
   8258  1.11  christos {"divwu",	XO(31,459,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8259   1.7  christos {"divwu.",	XO(31,459,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8260   1.8  christos 
   8261   1.7  christos {"stxvpx",	X(31,461),	XX1_MASK,    POWER10,	0,		{XSP, RA0, RB}},
   8262   1.7  christos 
   8263   1.7  christos {"mtpmr",	X(31,462),	X_MASK, PPCPMR|PPCE300, 0,		{PMR, RS}},
   8264  1.11  christos {"mttmr",	X(31,494),	X_MASK,	     PPCTMR,	0,		{TMR, RS}},
   8265  1.11  christos 
   8266  1.11  christos {"slbieg",	X(31,466),	XRA_MASK,    POWER9,	0,		{RS, RB}},
   8267  1.11  christos 
   8268  1.11  christos {"mtmq",	XSPR(31,467,  0), XSPR_MASK, M601,	EXT,		{RS}},
   8269  1.11  christos {"mtxer",	XSPR(31,467,  1), XSPR_MASK, COM,	EXT,		{RS}},
   8270  1.11  christos {"mtudscr",	XSPR(31,467,  3), XSPR_MASK, POWER9,	EXT,		{RS}},
   8271  1.11  christos {"mtlr",	XSPR(31,467,  8), XSPR_MASK, COM,	EXT,		{RS}},
   8272  1.11  christos {"mtctr",	XSPR(31,467,  9), XSPR_MASK, COM,	EXT,		{RS}},
   8273  1.11  christos {"mtuamr",	XSPR(31,467, 13), XSPR_MASK, POWER9,	EXT,		{RS}},
   8274  1.11  christos {"mtdscr",	XSPR(31,467, 17), XSPR_MASK, POWER6,	EXT,		{RS}},
   8275  1.11  christos {"mttid",	XSPR(31,467, 17), XSPR_MASK, POWER,	EXT,		{RS}},
   8276  1.11  christos {"mtdsisr",	XSPR(31,467, 18), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8277  1.11  christos {"mtdar",	XSPR(31,467, 19), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8278  1.11  christos {"mtrtcu",	XSPR(31,467, 20), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8279  1.11  christos {"mtrtcl",	XSPR(31,467, 21), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8280  1.11  christos {"mtdec",	XSPR(31,467, 22), XSPR_MASK, COM,	EXT,		{RS}},
   8281  1.11  christos {"mtsdr0",	XSPR(31,467, 24), XSPR_MASK, POWER,	EXT,		{RS}},
   8282  1.11  christos {"mtsdr1",	XSPR(31,467, 25), XSPR_MASK, COM,	TITAN|EXT,	{RS}},
   8283  1.11  christos {"mtsrr0",	XSPR(31,467, 26), XSPR_MASK, COM,	EXT,		{RS}},
   8284  1.11  christos {"mtsrr1",	XSPR(31,467, 27), XSPR_MASK, COM,	EXT,		{RS}},
   8285  1.11  christos {"mtcfar",	XSPR(31,467, 28), XSPR_MASK, POWER6,	EXT,		{RS}},
   8286  1.11  christos {"mtamr",	XSPR(31,467, 29), XSPR_MASK, POWER7,	EXT,		{RS}},
   8287  1.11  christos {"mtpidr",	XSPR(31,467, 48), XSPR_MASK, POWER10,	EXT,		{RS}},
   8288  1.11  christos {"mtpid",	XSPR(31,467, 48), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8289  1.11  christos {"mtdecar",	XSPR(31,467, 54), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8290  1.11  christos {"mtcsrr0",	XSPR(31,467, 58), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8291  1.11  christos {"mtcsrr1",	XSPR(31,467, 59), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8292  1.11  christos {"mtiamr",	XSPR(31,467, 61), XSPR_MASK, POWER10,	EXT,		{RS}},
   8293  1.11  christos {"mtdear",	XSPR(31,467, 61), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8294  1.11  christos {"mtesr",	XSPR(31,467, 62), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8295  1.11  christos {"mtivpr",	XSPR(31,467, 63), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8296  1.11  christos {"mttfhar",	XSPR(31,467,128), XSPR_MASK, POWER9,	EXT,		{RS}},
   8297  1.11  christos {"mttfiar",	XSPR(31,467,129), XSPR_MASK, POWER9,	EXT,		{RS}},
   8298  1.11  christos {"mttexasr",	XSPR(31,467,130), XSPR_MASK, POWER9,	EXT,		{RS}},
   8299  1.11  christos {"mttexasru",	XSPR(31,467,131), XSPR_MASK, POWER9,	EXT,		{RS}},
   8300  1.11  christos {"mtcmpa",	XSPR(31,467,144), XSPR_MASK, PPC860,	EXT,		{RS}},
   8301  1.11  christos {"mtcmpb",	XSPR(31,467,145), XSPR_MASK, PPC860,	EXT,		{RS}},
   8302  1.11  christos {"mtcmpc",	XSPR(31,467,146), XSPR_MASK, PPC860,	EXT,		{RS}},
   8303  1.11  christos {"mtcmpd",	XSPR(31,467,147), XSPR_MASK, PPC860,	EXT,		{RS}},
   8304  1.11  christos {"mticr",	XSPR(31,467,148), XSPR_MASK, PPC860,	EXT,		{RS}},
   8305  1.11  christos {"mtder",	XSPR(31,467,149), XSPR_MASK, PPC860,	EXT,		{RS}},
   8306  1.11  christos {"mtcounta",	XSPR(31,467,150), XSPR_MASK, PPC860,	EXT,		{RS}},
   8307  1.11  christos {"mtcountb",	XSPR(31,467,151), XSPR_MASK, PPC860,	EXT,		{RS}},
   8308  1.11  christos {"mtctrl",	XSPR(31,467,152), XSPR_MASK, POWER4,	EXT,		{RS}},
   8309  1.11  christos {"mtcmpe",	XSPR(31,467,152), XSPR_MASK, PPC860,	EXT,		{RS}},
   8310  1.11  christos {"mtfscr",	XSPR(31,467,153), XSPR_MASK, POWER10,	EXT,		{RS}},
   8311  1.11  christos {"mtcmpf",	XSPR(31,467,153), XSPR_MASK, PPC860,	EXT,		{RS}},
   8312  1.11  christos {"mtcmpg",	XSPR(31,467,154), XSPR_MASK, PPC860,	EXT,		{RS}},
   8313  1.11  christos {"mtcmph",	XSPR(31,467,155), XSPR_MASK, PPC860,	EXT,		{RS}},
   8314  1.11  christos {"mtlctrl1",	XSPR(31,467,156), XSPR_MASK, PPC860,	EXT,		{RS}},
   8315  1.11  christos {"mtuamor",	XSPR(31,467,157), XSPR_MASK, POWER7,	EXT,		{RS}},
   8316  1.11  christos {"mtlctrl2",	XSPR(31,467,157), XSPR_MASK, PPC860,	EXT,		{RS}},
   8317  1.11  christos {"mtictrl",	XSPR(31,467,158), XSPR_MASK, PPC860,	EXT,		{RS}},
   8318  1.11  christos {"mtpspb",	XSPR(31,467,159), XSPR_MASK, POWER10,	EXT,		{RS}},
   8319  1.11  christos {"mtbar",	XSPR(31,467,159), XSPR_MASK, PPC860,	EXT,		{RS}},
   8320  1.11  christos {"mtdpdes",	XSPR(31,467,176), XSPR_MASK, POWER10,	EXT,		{RS}},
   8321  1.11  christos {"mtdawr0",	XSPR(31,467,180), XSPR_MASK, POWER10,	EXT,		{RS}},
   8322  1.11  christos {"mtdawr1",	XSPR(31,467,181), XSPR_MASK, POWER10,	EXT,		{RS}},
   8323  1.11  christos {"mtrpr",	XSPR(31,467,186), XSPR_MASK, POWER10,	EXT,		{RS}},
   8324  1.11  christos {"mtciabr",	XSPR(31,467,187), XSPR_MASK, POWER10,	EXT,		{RS}},
   8325  1.11  christos {"mtdawrx0",	XSPR(31,467,188), XSPR_MASK, POWER10,	EXT,		{RS}},
   8326  1.11  christos {"mtdawrx1",	XSPR(31,467,189), XSPR_MASK, POWER10,	EXT,		{RS}},
   8327  1.11  christos {"mthfscr",	XSPR(31,467,190), XSPR_MASK, POWER10,	EXT,		{RS}},
   8328  1.11  christos {"mtvrsave",	XSPR(31,467,256), XSPR_MASK, PPCVEC,	EXT,		{RS}},
   8329  1.11  christos {"mtusprg0",	XSPR(31,467,256), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8330  1.11  christos {"mtsprg",	XSPR(31,467,256), XSPRG_MASK, PPC,	EXT,		{SPRG, RS}},
   8331  1.11  christos {"mtsprg0",	XSPR(31,467,272), XSPR_MASK, PPC,	EXT,		{RS}},
   8332  1.11  christos {"mtsprg1",	XSPR(31,467,273), XSPR_MASK, PPC,	EXT,		{RS}},
   8333  1.11  christos {"mtsprg2",	XSPR(31,467,274), XSPR_MASK, PPC,	EXT,		{RS}},
   8334  1.11  christos {"mtsprg3",	XSPR(31,467,275), XSPR_MASK, PPC,	EXT,		{RS}},
   8335  1.11  christos {"mtsprg4",	XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8336  1.11  christos {"mtsprg5",	XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8337  1.11  christos {"mtsprg6",	XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8338  1.11  christos {"mtsprg7",	XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, EXT,		{RS}},
   8339  1.11  christos {"mtasr",	XSPR(31,467,280), XSPR_MASK, PPC64,	EXT,		{RS}},
   8340  1.11  christos {"mtear",	XSPR(31,467,282), XSPR_MASK, PPC,	TITAN|EXT,	{RS}},
   8341  1.11  christos {"mttbl",	XSPR(31,467,284), XSPR_MASK, PPC,	EXT,		{RS}},
   8342  1.11  christos {"mttbu",	XSPR(31,467,285), XSPR_MASK, PPC,	EXT,		{RS}},
   8343  1.11  christos {"mttbu40",	XSPR(31,467,286), XSPR_MASK, POWER10,	EXT,		{RS}},
   8344  1.11  christos {"mthsprg0",	XSPR(31,467,304), XSPR_MASK, POWER10,	EXT,		{RS}},
   8345  1.11  christos {"mtdbsr",	XSPR(31,467,304), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8346  1.11  christos {"mthsprg1",	XSPR(31,467,305), XSPR_MASK, POWER10,	EXT,		{RS}},
   8347  1.11  christos {"mthdisr",	XSPR(31,467,306), XSPR_MASK, POWER10,	EXT,		{RS}},
   8348  1.11  christos {"mthdar",	XSPR(31,467,307), XSPR_MASK, POWER10,	EXT,		{RS}},
   8349  1.11  christos {"mtspurr",	XSPR(31,467,308), XSPR_MASK, POWER10,	EXT,		{RS}},
   8350  1.11  christos {"mtdbcr0",	XSPR(31,467,308), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8351  1.11  christos {"mtpurr",	XSPR(31,467,309), XSPR_MASK, POWER10,	EXT,		{RS}},
   8352  1.11  christos {"mtdbcr1",	XSPR(31,467,309), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8353  1.11  christos {"mthdec",	XSPR(31,467,310), XSPR_MASK, POWER10,	EXT,		{RS}},
   8354  1.11  christos {"mtdbcr2",	XSPR(31,467,310), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8355  1.11  christos {"mtiac1",	XSPR(31,467,312), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8356  1.11  christos {"mthrmor",	XSPR(31,467,313), XSPR_MASK, POWER10,	EXT,		{RS}},
   8357  1.11  christos {"mtiac2",	XSPR(31,467,313), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8358  1.11  christos {"mthsrr0",	XSPR(31,467,314), XSPR_MASK, POWER10,	EXT,		{RS}},
   8359  1.11  christos {"mtiac3",	XSPR(31,467,314), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8360  1.11  christos {"mthsrr1",	XSPR(31,467,315), XSPR_MASK, POWER10,	EXT,		{RS}},
   8361  1.11  christos {"mtiac4",	XSPR(31,467,315), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8362  1.11  christos {"mtdac1",	XSPR(31,467,316), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8363  1.11  christos {"mtdac2",	XSPR(31,467,317), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8364  1.11  christos {"mtlpcr",	XSPR(31,467,318), XSPR_MASK, POWER10,	EXT,		{RS}},
   8365  1.11  christos {"mtdvc1",	XSPR(31,467,318), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8366  1.11  christos {"mtlpidr",	XSPR(31,467,319), XSPR_MASK, POWER10,	EXT,		{RS}},
   8367  1.11  christos {"mtdvc2",	XSPR(31,467,319), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8368  1.11  christos {"mthmer",	XSPR(31,467,336), XSPR_MASK, POWER7,	EXT,		{RS}},
   8369  1.11  christos {"mttsr",	XSPR(31,467,336), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8370  1.11  christos {"mthmeer",	XSPR(31,467,337), XSPR_MASK, POWER7,	EXT,		{RS}},
   8371  1.11  christos {"mtpcr",	XSPR(31,467,338), XSPR_MASK, POWER10,	EXT,		{RS}},
   8372  1.11  christos {"mtheir",	XSPR(31,467,339), XSPR_MASK, POWER10,	EXT,		{RS}},
   8373  1.11  christos {"mttcr",	XSPR(31,467,340), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8374  1.11  christos {"mtamor",	XSPR(31,467,349), XSPR_MASK, POWER7,	EXT,		{RS}},
   8375  1.11  christos {"mtivor0",	XSPR(31,467,400), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8376  1.11  christos {"mtivor1",	XSPR(31,467,401), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8377  1.11  christos {"mtivor2",	XSPR(31,467,402), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8378  1.11  christos {"mtivor3",	XSPR(31,467,403), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8379  1.11  christos {"mtivor4",	XSPR(31,467,404), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8380  1.11  christos {"mtivor5",	XSPR(31,467,405), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8381  1.11  christos {"mtivor6",	XSPR(31,467,406), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8382  1.11  christos {"mtivor7",	XSPR(31,467,407), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8383  1.11  christos {"mtivor8",	XSPR(31,467,408), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8384  1.11  christos {"mtivor9",	XSPR(31,467,409), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8385  1.11  christos {"mtivor10",	XSPR(31,467,410), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8386  1.11  christos {"mtivor11",	XSPR(31,467,411), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8387  1.11  christos {"mtivor12",	XSPR(31,467,412), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8388  1.11  christos {"mtivor13",	XSPR(31,467,413), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8389  1.11  christos {"mtivor14",	XSPR(31,467,414), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8390  1.11  christos {"mtivor15",	XSPR(31,467,415), XSPR_MASK, BOOKE,	EXT,		{RS}},
   8391  1.11  christos {"mtptcr",	XSPR(31,467,464), XSPR_MASK, POWER10,	EXT,		{RS}},
   8392  1.11  christos {"mtusprg0",	XSPR(31,467,496), XSPR_MASK, POWER10,	EXT,		{RS}},
   8393  1.11  christos {"mtusprg1",	XSPR(31,467,497), XSPR_MASK, POWER10,	EXT,		{RS}},
   8394  1.11  christos {"mturmor",	XSPR(31,467,505), XSPR_MASK, POWER10,	EXT,		{RS}},
   8395  1.11  christos {"mtusrr0",	XSPR(31,467,506), XSPR_MASK, POWER10,	EXT,		{RS}},
   8396  1.11  christos {"mtusrr1",	XSPR(31,467,507), XSPR_MASK, POWER10,	EXT,		{RS}},
   8397  1.11  christos {"mtsmfctrl",	XSPR(31,467,511), XSPR_MASK, POWER10,	EXT,		{RS}},
   8398  1.11  christos {"mtspefscr",	XSPR(31,467,512), XSPR_MASK, PPCSPE,	EXT,		{RS}},
   8399  1.11  christos {"mtbbear",	XSPR(31,467,513), XSPR_MASK, PPCBRLK,	EXT,		{RS}},
   8400  1.11  christos {"mtbbtar",	XSPR(31,467,514), XSPR_MASK, PPCBRLK,	EXT,		{RS}},
   8401  1.11  christos {"mtivor32",	XSPR(31,467,528), XSPR_MASK, PPCSPE|E6500, EXT,		{RS}},
   8402  1.11  christos {"mtivor33",	XSPR(31,467,529), XSPR_MASK, PPCSPE|E6500, EXT,		{RS}},
   8403  1.11  christos {"mtivor34",	XSPR(31,467,530), XSPR_MASK, PPCSPE,	EXT,		{RS}},
   8404  1.11  christos {"mtivor35",	XSPR(31,467,531), XSPR_MASK, PPCPMR,	EXT,		{RS}},
   8405  1.11  christos {"mtibatu",	XSPR(31,467,528), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8406  1.11  christos {"mtibatl",	XSPR(31,467,529), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8407  1.11  christos {"mtdbatu",	XSPR(31,467,536), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8408  1.14  christos {"mtdbatl",	XSPR(31,467,537), XSPRBAT_MASK, PPC,	TITAN|EXT,	{SPRBAT, RS}},
   8409  1.14  christos {"mtmcsrr0",	XSPR(31,467,570), XSPR_MASK, PPCRFMCI,	EXT,		{RS}},
   8410  1.14  christos {"mtmcsrr1",	XSPR(31,467,571), XSPR_MASK, PPCRFMCI,	EXT,		{RS}},
   8411  1.11  christos {"mtmcsr",	XSPR(31,467,572), XSPR_MASK, PPCRFMCI,	EXT,		{RS}},
   8412  1.11  christos {"mtummcrae",	XSPR(31,467,739), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8413  1.11  christos {"mtummcr2e",	XSPR(31,467,741), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8414  1.14  christos {"mtmmcr2e",	XSPR(31,467,741), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8415  1.14  christos {"mtsier2",	XSPR(31,467,752), XSPR_MASK, POWER10,	EXT,		{RS}},
   8416  1.14  christos {"mtsier3",	XSPR(31,467,753), XSPR_MASK, POWER10,	EXT,		{RS}},
   8417  1.11  christos {"mtmmcr3",	XSPR(31,467,754), XSPR_MASK, POWER10,	EXT,		{RS}},
   8418  1.11  christos {"mtmmcrae",	XSPR(31,467,755), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8419  1.11  christos {"mtmmcr1e",	XSPR(31,467,756), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8420  1.11  christos {"mtmmcr3e",	XSPR(31,467,758), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8421  1.11  christos {"mtummcr2",	XSPR(31,467,769), XSPR_MASK, POWER9,	EXT,		{RS}},
   8422  1.11  christos {"mtmmcr2",	XSPR(31,467,769), XSPR_MASK, POWER9,	EXT,		{RS}},
   8423  1.11  christos {"mtummcra",	XSPR(31,467,770), XSPR_MASK, POWER9,	EXT,		{RS}},
   8424  1.11  christos {"mtupmc1",	XSPR(31,467,771), XSPR_MASK, POWER9,	EXT,		{RS}},
   8425  1.11  christos {"mtupmc2",	XSPR(31,467,772), XSPR_MASK, POWER9,	EXT,		{RS}},
   8426  1.14  christos {"mtupmc3",	XSPR(31,467,773), XSPR_MASK, POWER9,	EXT,		{RS}},
   8427  1.14  christos {"mtupmc4",	XSPR(31,467,774), XSPR_MASK, POWER9,	EXT,		{RS}},
   8428  1.11  christos {"mtupmc5",	XSPR(31,467,775), XSPR_MASK, POWER9,	EXT,		{RS}},
   8429  1.11  christos {"mtupmc6",	XSPR(31,467,776), XSPR_MASK, POWER9,	EXT,		{RS}},
   8430  1.11  christos {"mtupmc7",	XSPR(31,467,777), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8431  1.11  christos {"mtupmc8",	XSPR(31,467,778), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8432  1.11  christos {"mtummcr0",	XSPR(31,467,779), XSPR_MASK, POWER9,	EXT,		{RS}},
   8433  1.11  christos {"mtsier",	XSPR(31,467,784), XSPR_MASK, POWER10,	EXT,		{RS}},
   8434  1.11  christos {"mtmmcra",	XSPR(31,467,786), XSPR_MASK, POWER7,	EXT,		{RS}},
   8435  1.11  christos {"mtpmc1",	XSPR(31,467,787), XSPR_MASK, POWER7,	EXT,		{RS}},
   8436  1.11  christos {"mtpmc2",	XSPR(31,467,788), XSPR_MASK, POWER7,	EXT,		{RS}},
   8437  1.14  christos {"mtpmc3",	XSPR(31,467,789), XSPR_MASK, POWER7,	EXT,		{RS}},
   8438  1.14  christos {"mtpmc4",	XSPR(31,467,790), XSPR_MASK, POWER7,	EXT,		{RS}},
   8439  1.11  christos {"mtpmc5",	XSPR(31,467,791), XSPR_MASK, POWER7,	EXT,		{RS}},
   8440  1.11  christos {"mtpmc6",	XSPR(31,467,792), XSPR_MASK, POWER7,	EXT,		{RS}},
   8441  1.11  christos {"mtpmc7",	XSPR(31,467,793), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8442  1.11  christos {"mtpmc8",	XSPR(31,467,794), XSPR_MASK, FUTURE,	EXT,		{RS}},
   8443  1.11  christos {"mtmmcr0",	XSPR(31,467,795), XSPR_MASK, POWER7,	EXT,		{RS}},
   8444  1.11  christos {"mtsiar",	XSPR(31,467,796), XSPR_MASK, POWER10,	EXT,		{RS}},
   8445  1.11  christos {"mtsdar",	XSPR(31,467,797), XSPR_MASK, POWER10,	EXT,		{RS}},
   8446  1.11  christos {"mtmmcr1",	XSPR(31,467,798), XSPR_MASK, POWER7,	EXT,		{RS}},
   8447  1.11  christos {"mtbescrs",	XSPR(31,467,800), XSPR_MASK, POWER9,	EXT,		{RS}},
   8448  1.11  christos {"mtbescrsu",	XSPR(31,467,801), XSPR_MASK, POWER9,	EXT,		{RS}},
   8449  1.11  christos {"mtbescrr",	XSPR(31,467,802), XSPR_MASK, POWER9,	EXT,		{RS}},
   8450  1.11  christos {"mtbescrru",	XSPR(31,467,803), XSPR_MASK, POWER9,	EXT,		{RS}},
   8451  1.11  christos {"mtebbhr",	XSPR(31,467,804), XSPR_MASK, POWER9,	EXT,		{RS}},
   8452  1.11  christos {"mtebbrr",	XSPR(31,467,805), XSPR_MASK, POWER9,	EXT,		{RS}},
   8453  1.11  christos {"mtbescr",	XSPR(31,467,806), XSPR_MASK, POWER9,	EXT,		{RS}},
   8454  1.11  christos {"mttar",	XSPR(31,467,815), XSPR_MASK, POWER9,	EXT,		{RS}},
   8455  1.11  christos {"mtasdr",	XSPR(31,467,816), XSPR_MASK, POWER10,	EXT,		{RS}},
   8456  1.11  christos {"mtpsscr",	XSPR(31,467,823), XSPR_MASK, POWER10,	EXT,		{RS}},
   8457  1.11  christos {"mtic",	XSPR(31,467,848), XSPR_MASK, POWER8,	EXT,		{RS}},
   8458  1.11  christos {"mtvtb",	XSPR(31,467,849), XSPR_MASK, POWER8,	EXT,		{RS}},
   8459  1.11  christos {"mthpsscr",	XSPR(31,467,855), XSPR_MASK, POWER10,	EXT,		{RS}},
   8460  1.11  christos {"mtivndx",	XSPR(31,467,880), XSPR_MASK, TITAN,	EXT,		{RS}},
   8461  1.11  christos {"mtdvndx",	XSPR(31,467,881), XSPR_MASK, TITAN,	EXT,		{RS}},
   8462  1.11  christos {"mtivlim",	XSPR(31,467,882), XSPR_MASK, TITAN,	EXT,		{RS}},
   8463  1.11  christos {"mtdvlim",	XSPR(31,467,883), XSPR_MASK, TITAN,	EXT,		{RS}},
   8464  1.11  christos {"mtclcsr",	XSPR(31,467,884), XSPR_MASK, TITAN,	EXT,		{RS}},
   8465  1.11  christos {"mtccr1",	XSPR(31,467,888), XSPR_MASK, TITAN,	EXT,		{RS}},
   8466  1.11  christos {"mtppr",	XSPR(31,467,896), XSPR_MASK, POWER5,	EXT,		{RS}},
   8467  1.11  christos {"mtppr32",	XSPR(31,467,898), XSPR_MASK, POWER5,	EXT,		{RS}},
   8468  1.11  christos {"mtgqr",	XSPR(31,467,912), XSPRGQR_MASK, PPCPS,	EXT,		{SPRGQR, RS}},
   8469  1.11  christos {"mthid2",	XSPR(31,467,920), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8470  1.11  christos {"mtwpar",	XSPR(31,467,921), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8471  1.11  christos {"mtdmau",	XSPR(31,467,922), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8472  1.11  christos {"mtdmal",	XSPR(31,467,923), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8473  1.11  christos {"mtummcr0",	XSPR(31,467,936), XSPR_MASK, PPC750,	EXT,		{RS}},
   8474  1.11  christos {"mtupmc1",	XSPR(31,467,937), XSPR_MASK, PPC750,	EXT,		{RS}},
   8475  1.11  christos {"mtupmc2",	XSPR(31,467,938), XSPR_MASK, PPC750,	EXT,		{RS}},
   8476  1.11  christos {"mtusia",	XSPR(31,467,939), XSPR_MASK, PPC750,	EXT,		{RS}},
   8477  1.11  christos {"mtummcr1",	XSPR(31,467,940), XSPR_MASK, PPC750,	EXT,		{RS}},
   8478  1.11  christos {"mtupmc3",	XSPR(31,467,941), XSPR_MASK, PPC750,	EXT,		{RS}},
   8479  1.11  christos {"mtupmc4",	XSPR(31,467,942), XSPR_MASK, PPC750,	EXT,		{RS}},
   8480  1.11  christos {"mtzpr",	XSPR(31,467,944), XSPR_MASK, PPC403,	EXT,		{RS}},
   8481  1.11  christos {"mtpid",	XSPR(31,467,945), XSPR_MASK, PPC403,	EXT,		{RS}},
   8482  1.11  christos {"mtrmmucr",	XSPR(31,467,946), XSPR_MASK, TITAN,	EXT,		{RS}},
   8483  1.11  christos {"mtccr0",	XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, EXT,		{RS}},
   8484  1.11  christos {"mtiac3",	XSPR(31,467,948), XSPR_MASK, PPC405,	EXT,		{RS}},
   8485  1.11  christos {"mtiac4",	XSPR(31,467,949), XSPR_MASK, PPC405,	EXT,		{RS}},
   8486  1.11  christos {"mtdvc1",	XSPR(31,467,950), XSPR_MASK, PPC405,	EXT,		{RS}},
   8487  1.11  christos {"mtdvc2",	XSPR(31,467,951), XSPR_MASK, PPC405,	EXT,		{RS}},
   8488  1.11  christos {"mtmmcr0",	XSPR(31,467,952), XSPR_MASK, PPC750,	EXT,		{RS}},
   8489  1.11  christos {"mtpmc1",	XSPR(31,467,953), XSPR_MASK, PPC750,	EXT,		{RS}},
   8490  1.11  christos {"mtsgr",	XSPR(31,467,953), XSPR_MASK, PPC403,	EXT,		{RS}},
   8491  1.11  christos {"mtdcwr",	XSPR(31,467,954), XSPR_MASK, PPC403,	EXT,		{RS}},
   8492  1.11  christos {"mtpmc2",	XSPR(31,467,954), XSPR_MASK, PPC750,	EXT,		{RS}},
   8493  1.11  christos {"mtsia",	XSPR(31,467,955), XSPR_MASK, PPC750,	EXT,		{RS}},
   8494  1.11  christos {"mtsler",	XSPR(31,467,955), XSPR_MASK, PPC405,	EXT,		{RS}},
   8495  1.11  christos {"mtmmcr1",	XSPR(31,467,956), XSPR_MASK, PPC750,	EXT,		{RS}},
   8496  1.11  christos {"mtsu0r",	XSPR(31,467,956), XSPR_MASK, PPC405,	EXT,		{RS}},
   8497  1.11  christos {"mtdbcr1",	XSPR(31,467,957), XSPR_MASK, PPC405,	EXT,		{RS}},
   8498  1.11  christos {"mtpmc3",	XSPR(31,467,957), XSPR_MASK, PPC750,	EXT,		{RS}},
   8499  1.11  christos {"mtpmc4",	XSPR(31,467,958), XSPR_MASK, PPC750,	EXT,		{RS}},
   8500  1.11  christos {"mticdbdr",	XSPR(31,467,979), XSPR_MASK, PPC403,	EXT,		{RS}},
   8501  1.11  christos {"mtesr",	XSPR(31,467,980), XSPR_MASK, PPC403,	EXT,		{RS}},
   8502  1.11  christos {"mtdear",	XSPR(31,467,981), XSPR_MASK, PPC403,	EXT,		{RS}},
   8503  1.11  christos {"mtevpr",	XSPR(31,467,982), XSPR_MASK, PPC403,	EXT,		{RS}},
   8504  1.11  christos {"mtcdbcr",	XSPR(31,467,983), XSPR_MASK, PPC403,	EXT,		{RS}},
   8505  1.11  christos {"mttsr",	XSPR(31,467,984), XSPR_MASK, PPC403,	EXT,		{RS}},
   8506  1.11  christos {"mttcr",	XSPR(31,467,986), XSPR_MASK, PPC403,	EXT,		{RS}},
   8507  1.11  christos {"mtpit",	XSPR(31,467,987), XSPR_MASK, PPC403,	EXT,		{RS}},
   8508  1.11  christos {"mttbhi",	XSPR(31,467,988), XSPR_MASK, PPC403,	EXT,		{RS}},
   8509  1.11  christos {"mttblo",	XSPR(31,467,989), XSPR_MASK, PPC403,	EXT,		{RS}},
   8510  1.11  christos {"mtsrr2",	XSPR(31,467,990), XSPR_MASK, PPC403,	EXT,		{RS}},
   8511  1.11  christos {"mtsrr3",	XSPR(31,467,991), XSPR_MASK, PPC403,	EXT,		{RS}},
   8512  1.11  christos {"mtdbsr",	XSPR(31,467,1008), XSPR_MASK, PPC403,	EXT,		{RS}},
   8513  1.11  christos {"mthid0",	XSPR(31,467,1008), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8514  1.11  christos {"mthid1",	XSPR(31,467,1009), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8515  1.11  christos {"mtdbcr0",	XSPR(31,467,1010), XSPR_MASK, PPC405,	EXT,		{RS}},
   8516  1.11  christos {"mtiabr",	XSPR(31,467,1010), XSPR_MASK, GEKKO,	EXT,		{RS}},
   8517  1.11  christos {"mthid4",	XSPR(31,467,1011), XSPR_MASK, BROADWAY,	EXT,		{RS}},
   8518  1.11  christos {"mtdbdr",	XSPR(31,467,1011), XSPR_MASK, TITAN,	EXT,		{RS}},
   8519  1.11  christos {"mtiac1",	XSPR(31,467,1012), XSPR_MASK, PPC403,	EXT,		{RS}},
   8520  1.11  christos {"mtiac2",	XSPR(31,467,1013), XSPR_MASK, PPC403,	EXT,		{RS}},
   8521  1.11  christos {"mtdabr",	XSPR(31,467,1013), XSPR_MASK, PPC750,	EXT,		{RS}},
   8522  1.11  christos {"mtdac1",	XSPR(31,467,1014), XSPR_MASK, PPC403,	EXT,		{RS}},
   8523  1.11  christos {"mtdac2",	XSPR(31,467,1015), XSPR_MASK, PPC403,	EXT,		{RS}},
   8524  1.11  christos {"mtl2cr",	XSPR(31,467,1017), XSPR_MASK, PPC750,	EXT,		{RS}},
   8525  1.11  christos {"mtdccr",	XSPR(31,467,1018), XSPR_MASK, PPC403,	EXT,		{RS}},
   8526  1.11  christos {"mticcr",	XSPR(31,467,1019), XSPR_MASK, PPC403,	EXT,		{RS}},
   8527  1.11  christos {"mtictc",	XSPR(31,467,1019), XSPR_MASK, PPC750,	EXT,		{RS}},
   8528  1.11  christos {"mtpbl1",	XSPR(31,467,1020), XSPR_MASK, PPC403,	EXT,		{RS}},
   8529  1.11  christos {"mtthrm1",	XSPR(31,467,1020), XSPR_MASK, PPC750,	EXT,		{RS}},
   8530  1.11  christos {"mtpbu1",	XSPR(31,467,1021), XSPR_MASK, PPC403,	EXT,		{RS}},
   8531   1.7  christos {"mtthrm2",	XSPR(31,467,1021), XSPR_MASK, PPC750,	EXT,		{RS}},
   8532   1.7  christos {"mtpbl2",	XSPR(31,467,1022), XSPR_MASK, PPC403,	EXT,		{RS}},
   8533   1.7  christos {"mtthrm3",	XSPR(31,467,1022), XSPR_MASK, PPC750,	EXT,		{RS}},
   8534   1.7  christos {"mtpbu2",	XSPR(31,467,1023), XSPR_MASK, PPC403,	EXT,		{RS}},
   8535   1.7  christos {"mtspr",	X(31,467),	X_MASK,	     COM,	0,		{SPR, RS}},
   8536   1.7  christos 
   8537   1.7  christos {"dcbi",	X(31,470),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   8538  1.11  christos 
   8539  1.11  christos {"nand",	XRC(31,476,0),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8540   1.7  christos {"nand.",	XRC(31,476,1),	X_MASK,	     COM,	0,		{RA, RS, RB}},
   8541   1.7  christos 
   8542   1.8  christos {"setnbcr",	X(31,480),	XRB_MASK,    POWER10,	0,		{RT, BI}},
   8543   1.7  christos 
   8544   1.7  christos {"dsn",		X(31,483),	XRT_MASK,    E500MC,	0,		{RA, RB}},
   8545   1.7  christos 
   8546   1.7  christos {"dcread",	X(31,486),	X_MASK,	 PPC403|PPC440, PPCA2,		{RT, RA0, RB}},
   8547   1.7  christos 
   8548   1.7  christos {"icbtls",	X(31,486),	X_MASK,	 PPCCHLK|PPC476|TITAN, 0,	{CT, RA0, RB}},
   8549   1.7  christos 
   8550   1.7  christos {"stvxl",	X(31,487),	X_MASK,	     PPCVEC,	0,		{VS, RA0, RB}},
   8551   1.7  christos 
   8552   1.7  christos {"nabs",	XO(31,488,0,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   8553   1.2     skrll {"nabs.",	XO(31,488,0,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   8554   1.7  christos 
   8555   1.7  christos {"divd",	XO(31,489,0,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8556   1.2     skrll {"divd.",	XO(31,489,0,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8557   1.7  christos 
   8558   1.2     skrll {"divw",	XO(31,491,0,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8559   1.7  christos {"divw.",	XO(31,491,0,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8560   1.5  christos 
   8561   1.2     skrll {"icbtlse",	X(31,494),	X_MASK,	     PPCCHLK,	E500MC,		{CT, RA, RB}},
   8562   1.7  christos 
   8563   1.2     skrll {"slbia",	X(31,498),	0xff1fffff,  POWER6,	0,		{IH}},
   8564   1.7  christos {"slbia",	X(31,498),	0xffffffff,  PPC64,	POWER6,		{0}},
   8565   1.2     skrll 
   8566   1.7  christos {"cli",		X(31,502),	XRB_MASK,    POWER,	0,		{RT, RA}},
   8567   1.2     skrll 
   8568   1.7  christos {"popcntd",	X(31,506),	XRB_MASK, POWER7|PPCA2,	0,		{RA, RS}},
   8569   1.2     skrll 
   8570   1.8  christos {"cmpb",	X(31,508),	X_MASK, POWER6|PPCA2|PPC476, 0,		{RA, RS, RB}},
   8571   1.8  christos 
   8572   1.2     skrll {"mcrxr",	X(31,512),	XBFRARB_MASK, COM,	POWER7,		{BF}},
   8573   1.7  christos 
   8574   1.2     skrll {"lbdcbx",	X(31,514),	X_MASK,      E200Z4,	0,		{RT, RA, RB}},
   8575   1.7  christos {"lbdx",	X(31,515),	X_MASK,	 E500MC|E200Z4,	0,		{RT, RA, RB}},
   8576   1.7  christos 
   8577   1.2     skrll {"bblels",	X(31,518),	X_MASK,	     PPCBRLK,	0,		{0}},
   8578   1.7  christos 
   8579   1.7  christos {"lvlx",	X(31,519),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8580  1.11  christos {"lbfcmux",	APU(31,519,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8581   1.7  christos 
   8582   1.7  christos {"subfco",	XO(31,8,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8583  1.11  christos {"sfo",		XO(31,8,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8584   1.5  christos {"subco",	XO(31,8,1,0),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   8585   1.7  christos {"subfco.",	XO(31,8,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8586   1.7  christos {"sfo.",	XO(31,8,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8587   1.7  christos {"subco.",	XO(31,8,1,1),	XO_MASK,     PPCCOM,	EXT,		{RT, RB, RA}},
   8588   1.7  christos 
   8589   1.2     skrll {"addco",	XO(31,10,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8590   1.7  christos {"ao",		XO(31,10,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8591  1.12  christos {"addco.",	XO(31,10,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8592   1.5  christos {"ao.",		XO(31,10,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8593   1.7  christos 
   8594   1.2     skrll {"lxsspx",	X(31,524),	XX1_MASK,    PPCVSX2,	0,		{XT6, RA0, RB}},
   8595   1.7  christos {"lxvrl",	X(31,525),	XX1_MASK,    PPCVSXF,	0,		{XT6, RA0, RB}},
   8596   1.2     skrll 
   8597   1.7  christos {"clcs",	X(31,531),	XRB_MASK,    M601,	0,		{RT, RA}},
   8598   1.7  christos 
   8599   1.2     skrll {"ldbrx",	X(31,532),	X_MASK, CELL|POWER7|PPCA2, 0,		{RT, RA0, RB}},
   8600   1.7  christos 
   8601   1.7  christos {"lswx",	X(31,533),	X_MASK,	     PPCCOM,	E500|E500MC,	{RT, RAX, RBX}},
   8602   1.2     skrll {"lsx",		X(31,533),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   8603   1.7  christos 
   8604   1.2     skrll {"lwbrx",	X(31,534),	X_MASK,	     PPCCOM,	0,		{RT, RA0, RB}},
   8605   1.7  christos {"lbrx",	X(31,534),	X_MASK,	     PWRCOM,	0,		{RT, RA, RB}},
   8606   1.7  christos 
   8607   1.7  christos {"lfsx",	X(31,535),	X_MASK,	     COM,	PPCEFS,		{FRT, RA0, RB}},
   8608   1.7  christos 
   8609   1.2     skrll {"srw",		XRC(31,536,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8610   1.7  christos {"sr",		XRC(31,536,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8611   1.7  christos {"srw.",	XRC(31,536,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8612   1.2     skrll {"sr.",		XRC(31,536,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8613   1.7  christos 
   8614   1.7  christos {"rrib",	XRC(31,537,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8615   1.5  christos {"rrib.",	XRC(31,537,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8616   1.7  christos 
   8617   1.7  christos {"cnttzw",	XRC(31,538,0),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8618   1.2     skrll {"cnttzw.",	XRC(31,538,1),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8619   1.7  christos 
   8620   1.7  christos {"srd",		XRC(31,539,0),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8621   1.2     skrll {"srd.",	XRC(31,539,1),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8622   1.8  christos 
   8623   1.8  christos {"maskir",	XRC(31,541,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8624   1.4  christos {"maskir.",	XRC(31,541,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8625   1.8  christos 
   8626   1.2     skrll {"lhdcbx",	X(31,546),	X_MASK,      E200Z4,	0,		{RT, RA, RB}},
   8627   1.7  christos {"lhdx",	X(31,547),	X_MASK,	 E500MC|E200Z4,	0,		{RT, RA, RB}},
   8628   1.2     skrll 
   8629   1.7  christos {"lvtrx",	X(31,549),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8630   1.7  christos 
   8631   1.2     skrll {"bbelr",	X(31,550),	X_MASK,	     PPCBRLK,	0,		{0}},
   8632   1.7  christos 
   8633  1.11  christos {"lvrx",	X(31,551),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8634   1.7  christos {"lhfcmux",	APU(31,551,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8635  1.11  christos 
   8636   1.2     skrll {"subfo",	XO(31,40,1,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8637  1.12  christos {"subo",	XO(31,40,1,0),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   8638  1.12  christos {"subfo.",	XO(31,40,1,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   8639  1.14  christos {"subo.",	XO(31,40,1,1),	XO_MASK,     PPC,	EXT,		{RT, RB, RA}},
   8640  1.14  christos 
   8641   1.7  christos {"lxvrll",	X(31,557),	XX1_MASK,    PPCVSXF,	0,		{XT6, RA0, RB}},
   8642   1.2     skrll 
   8643   1.7  christos {"tlbsyncio",	X(31,564),	XRARB_MASK,  FUTURE,	0,		{RS}},
   8644   1.2     skrll 
   8645   1.7  christos {"tlbsync",	X(31,566),	0xffffffff,  PPC,	0,		{0}},
   8646   1.7  christos 
   8647   1.5  christos {"lfsux",	X(31,567),	X_MASK,	     COM,	PPCEFS,		{FRT, RAS, RB}},
   8648  1.11  christos 
   8649  1.11  christos {"cnttzd",	XRC(31,570,0),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8650   1.7  christos {"cnttzd.",	XRC(31,570,1),	XRB_MASK,    POWER9,	0,		{RA, RS}},
   8651   1.5  christos 
   8652   1.8  christos {"cnttzdm",	X(31,571),	X_MASK,	     POWER10,	0,		{RA, RS, RB}},
   8653   1.8  christos 
   8654   1.4  christos {"mcrxrx",	X(31,576),     XBFRARB_MASK, POWER9,	0,		{BF}},
   8655   1.8  christos 
   8656   1.2     skrll {"lwdcbx",	X(31,578),	X_MASK,      E200Z4,	0,		{RT, RA, RB}},
   8657   1.7  christos {"lwdx",	X(31,579),	X_MASK,	 E500MC|E200Z4,	0,		{RT, RA, RB}},
   8658   1.5  christos 
   8659   1.7  christos {"lvtlx",	X(31,581),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8660   1.2     skrll 
   8661   1.7  christos {"lwat",	X(31,582),	X_MASK,	     POWER9,	0,		{RT, RA0, FC}},
   8662  1.12  christos 
   8663   1.2     skrll {"lwfcmux",	APU(31,583,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8664   1.7  christos 
   8665   1.2     skrll {"lxsdx",	X(31,588),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   8666  1.14  christos {"lxvprl",	X(31,589),	XX1_MASK,    PPCVSXF,	0,		{XTP, RA0, RB}},
   8667  1.14  christos 
   8668   1.7  christos {"mfsr",	X(31,595), XRB_MASK|(1<<20), COM,	NON32,		{RT, SR}},
   8669   1.7  christos 
   8670   1.2     skrll {"ptesyncio",	X(31,596),	XRARB_MASK,  FUTURE,	0,		{RS}},
   8671  1.11  christos 
   8672  1.11  christos {"lswi",	X(31,597),	X_MASK,	     PPCCOM,	E500|E500MC,	{RT, RAX, NBI}},
   8673  1.11  christos {"lsi",		X(31,597),	X_MASK,	     PWRCOM,	0,		{RT, RA0, NB}},
   8674  1.11  christos 
   8675  1.11  christos {"hwsync",	XSYNC(31,598,0), 0xffffffff, POWER4,	BOOKE|PPC476|EXT,	{0}},
   8676  1.11  christos {"lwsync",	XSYNC(31,598,1), 0xffffffff, PPC,	E500|EXT,		{0}},
   8677  1.11  christos {"ptesync",	XSYNC(31,598,2), 0xffffffff, PPC64,	EXT,			{0}},
   8678  1.11  christos {"phwsync",	XSYNCLS(31,598,4,0), 0xffffffff, POWER10, EXT,			{0}},
   8679  1.11  christos {"plwsync",	XSYNCLS(31,598,5,0), 0xffffffff, POWER10, EXT,			{0}},
   8680  1.11  christos {"stncisync",	XSYNCLS(31,598,1,1), 0xffffffff, POWER10, EXT,			{0}},
   8681  1.11  christos {"stcisync",	XSYNCLS(31,598,0,2), 0xffffffff, POWER10, EXT,			{0}},
   8682  1.11  christos {"stsync",	XSYNCLS(31,598,0,3), 0xffffffff, POWER10, EXT,			{0}},
   8683  1.11  christos {"sync",	X(31,598),     XSYNCLS_MASK, POWER10,	BOOKE|PPC476,		{LS3, SC2}},
   8684  1.11  christos {"sync",	X(31,598),     XSYNCLE_MASK, E6500,	0,			{LS, ESYNC}},
   8685  1.11  christos {"sync",	X(31,598),     XSYNC_MASK,   PPCCOM,	POWER10|BOOKE|PPC476,	{LS}},
   8686   1.2     skrll {"msync",	X(31,598),     0xffffffff, BOOKE|PPCA2|PPC476, 0,		{0}},
   8687   1.7  christos {"sync",	X(31,598),     0xffffffff,   BOOKE|PPC476, E6500,		{0}},
   8688   1.2     skrll {"lwsync",	X(31,598),     0xffffffff,   E500,	0,			{0}},
   8689   1.2     skrll {"dcs",		X(31,598),     0xffffffff,   PWRCOM,	0,			{0}},
   8690   1.7  christos 
   8691   1.2     skrll {"lfdx",	X(31,599),	X_MASK,	     COM,	PPCEFS,		{FRT, RA0, RB}},
   8692   1.7  christos 
   8693   1.4  christos {"mffgpr",	XRC(31,607,0),	XRA_MASK,    POWER6,	POWER7,		{FRT, RB}},
   8694   1.8  christos {"lfdepx",	X(31,607),	X_MASK,	  E500MC|PPCA2, 0,		{FRT, RA0, RB}},
   8695   1.2     skrll 
   8696   1.7  christos {"lddx",	X(31,611),	X_MASK,	     E500MC,	0,		{RT, RA, RB}},
   8697   1.5  christos 
   8698   1.7  christos {"lvswx",	X(31,613),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8699   1.2     skrll 
   8700   1.7  christos {"ldat",	X(31,614),	X_MASK,	     POWER9,	0,		{RT, RA0, FC}},
   8701   1.7  christos 
   8702   1.2     skrll {"lqfcmux",	APU(31,615,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8703   1.7  christos 
   8704   1.7  christos {"nego",	XO(31,104,1,0),	XORB_MASK,   COM,	0,		{RT, RA}},
   8705   1.2     skrll {"nego.",	XO(31,104,1,1),	XORB_MASK,   COM,	0,		{RT, RA}},
   8706  1.12  christos 
   8707  1.12  christos {"mulo",	XO(31,107,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8708   1.7  christos {"mulo.",	XO(31,107,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8709   1.2     skrll 
   8710   1.7  christos {"lxvprll",	X(31,621),	XX1_MASK,    PPCVSXF,	0,		{XTP, RA0, RB}},
   8711   1.2     skrll 
   8712   1.7  christos {"mfsri",	X(31,627),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   8713   1.2     skrll 
   8714   1.8  christos {"dclst",	X(31,630),	XRB_MASK,    M601,	0,		{RS, RA}},
   8715   1.8  christos 
   8716   1.2     skrll {"lfdux",	X(31,631),	X_MASK,	     COM,	PPCEFS,		{FRT, RAS, RB}},
   8717   1.7  christos 
   8718   1.7  christos {"stbdcbx",	X(31,642),	X_MASK,      E200Z4,	0,		{RS, RA, RB}},
   8719   1.2     skrll {"stbdx",	X(31,643),	X_MASK,	 E500MC|E200Z4,	0,		{RS, RA, RB}},
   8720   1.7  christos 
   8721  1.12  christos {"stvlx",	X(31,647),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   8722   1.5  christos {"stbfcmux",	APU(31,647,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8723   1.7  christos 
   8724   1.5  christos {"stxsspx",	X(31,652),	XX1_MASK,    PPCVSX2,	0,		{XS6, RA0, RB}},
   8725   1.7  christos {"stxvrl",	X(31,653),	XX1_MASK,    PPCVSXF,	0,		{XS6, RA0, RB}},
   8726   1.7  christos 
   8727   1.7  christos {"tbegin.",	XRC(31,654,1), XRTLRARB_MASK, PPCHTM,	0,		{HTM_R}},
   8728   1.7  christos 
   8729   1.2     skrll {"subfeo",	XO(31,136,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8730   1.7  christos {"sfeo",	XO(31,136,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8731   1.7  christos {"subfeo.",	XO(31,136,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8732   1.7  christos {"sfeo.",	XO(31,136,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8733   1.7  christos 
   8734   1.2     skrll {"addeo",	XO(31,138,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8735  1.13  christos {"aeo",		XO(31,138,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8736  1.11  christos {"addeo.",	XO(31,138,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8737   1.7  christos {"aeo.",	XO(31,138,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8738   1.2     skrll 
   8739   1.7  christos {"hashstp",	X(31,658),	XRC_MASK,    POWER8,	0,		{RB, DW, RAS}},
   8740   1.2     skrll 
   8741   1.7  christos {"mfsrin",	X(31,659),	XRA_MASK,    PPC,	NON32,		{RT, RB}},
   8742   1.7  christos 
   8743   1.2     skrll {"stdbrx",	X(31,660),	X_MASK, CELL|POWER7|PPCA2, 0,		{RS, RA0, RB}},
   8744   1.7  christos 
   8745   1.7  christos {"stswx",	X(31,661),	X_MASK,	     PPCCOM,	E500|E500MC,	{RS, RA0, RB}},
   8746   1.2     skrll {"stsx",	X(31,661),	X_MASK,	     PWRCOM,	0,		{RS, RA0, RB}},
   8747   1.7  christos 
   8748   1.2     skrll {"stwbrx",	X(31,662),	X_MASK,	     PPCCOM,	0,		{RS, RA0, RB}},
   8749   1.7  christos {"stbrx",	X(31,662),	X_MASK,	     PWRCOM,	0,		{RS, RA0, RB}},
   8750   1.7  christos 
   8751   1.2     skrll {"stfsx",	X(31,663),	X_MASK,	     COM,	PPCEFS,		{FRS, RA0, RB}},
   8752   1.7  christos 
   8753   1.7  christos {"srq",		XRC(31,664,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8754   1.2     skrll {"srq.",	XRC(31,664,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8755   1.8  christos 
   8756   1.8  christos {"sre",		XRC(31,665,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8757   1.2     skrll {"sre.",	XRC(31,665,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8758   1.8  christos 
   8759   1.4  christos {"sthdcbx",	X(31,674),	X_MASK,      E200Z4,	0,		{RS, RA, RB}},
   8760   1.7  christos {"sthdx",	X(31,675),	X_MASK,	 E500MC|E200Z4,	0,		{RS, RA, RB}},
   8761   1.7  christos 
   8762   1.2     skrll {"stvfrx",	X(31,677),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8763  1.12  christos 
   8764  1.12  christos {"stvrx",	X(31,679),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   8765   1.7  christos {"sthfcmux",	APU(31,679,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8766   1.7  christos 
   8767   1.5  christos {"stxvrll",	X(31,685),	XX1_MASK,    PPCVSXF,	0,		{XS6, RA0, RB}},
   8768  1.13  christos 
   8769  1.11  christos {"tendall.",	XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0,		{0}},
   8770   1.7  christos {"tend.",	XRC(31,686,1), XRTARARB_MASK, PPCHTM,	0,		{HTM_A}},
   8771   1.2     skrll 
   8772   1.7  christos {"hashchkp",	X(31,690),	XRC_MASK,    POWER8,	0,		{RB, DW, RAS}},
   8773   1.2     skrll 
   8774   1.7  christos {"stbcx.",	XRC(31,694,1),	X_MASK,	  POWER8|E6500, 0,		{RS, RA0, RB}},
   8775   1.7  christos 
   8776   1.2     skrll {"stfsux",	X(31,695),	X_MASK,	     COM,	PPCEFS,		{FRS, RAS, RB}},
   8777   1.8  christos 
   8778   1.8  christos {"sriq",	XRC(31,696,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8779   1.2     skrll {"sriq.",	XRC(31,696,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8780   1.8  christos 
   8781   1.4  christos {"stwdcbx",	X(31,706),	X_MASK,	     E200Z4,	0,		{RS, RA, RB}},
   8782   1.7  christos {"stwdx",	X(31,707),	X_MASK,	 E500MC|E200Z4,	0,		{RS, RA, RB}},
   8783   1.5  christos 
   8784   1.7  christos {"stvflx",	X(31,709),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8785   1.2     skrll 
   8786   1.7  christos {"stwat",	X(31,710),	X_MASK,	     POWER9,	0,		{RS, RA0, FC}},
   8787  1.12  christos 
   8788   1.2     skrll {"stwfcmux",	APU(31,711,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8789   1.7  christos 
   8790   1.5  christos {"stxsdx",	X(31,716),	XX1_MASK,    PPCVSX,	0,		{XS6, RA0, RB}},
   8791   1.7  christos {"stxvprl",	X(31,717),	XX1_MASK,    PPCVSXF,	0,		{XSP, RA0, RB}},
   8792   1.7  christos 
   8793   1.7  christos {"tcheck",	X(31,718),   XRTBFRARB_MASK, PPCHTM,	0,		{BF}},
   8794   1.7  christos 
   8795   1.2     skrll {"subfzeo",	XO(31,200,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8796   1.7  christos {"sfzeo",	XO(31,200,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8797   1.7  christos {"subfzeo.",	XO(31,200,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8798   1.7  christos {"sfzeo.",	XO(31,200,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8799   1.7  christos 
   8800   1.2     skrll {"addzeo",	XO(31,202,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8801  1.13  christos {"azeo",	XO(31,202,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8802  1.11  christos {"addzeo.",	XO(31,202,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8803   1.7  christos {"azeo.",	XO(31,202,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8804   1.7  christos 
   8805   1.2     skrll {"hashst",	X(31,722),	XRC_MASK,    POWER8,	0,		{RB, DW, RAS}},
   8806   1.7  christos 
   8807   1.2     skrll {"stswi",	X(31,725),	X_MASK,	     PPCCOM,	E500|E500MC,	{RS, RA0, NB}},
   8808   1.7  christos {"stsi",	X(31,725),	X_MASK,	     PWRCOM,	0,		{RS, RA0, NB}},
   8809   1.2     skrll 
   8810   1.7  christos {"sthcx.",	XRC(31,726,1),	X_MASK,	  POWER8|E6500, 0,		{RS, RA0, RB}},
   8811   1.7  christos 
   8812   1.2     skrll {"stfdx",	X(31,727),	X_MASK,	     COM,	PPCEFS,		{FRS, RA0, RB}},
   8813   1.7  christos 
   8814   1.7  christos {"srlq",	XRC(31,728,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8815   1.2     skrll {"srlq.",	XRC(31,728,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8816   1.2     skrll 
   8817   1.7  christos {"sreq",	XRC(31,729,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8818   1.2     skrll {"sreq.",	XRC(31,729,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   8819   1.7  christos 
   8820   1.2     skrll {"mftgpr",	XRC(31,735,0),	XRA_MASK,    POWER6,	POWER7,		{RT, FRB}},
   8821   1.8  christos {"stfdepx",	X(31,735),	X_MASK,	  E500MC|PPCA2, 0,		{FRS, RA0, RB}},
   8822   1.4  christos 
   8823   1.7  christos {"stddx",	X(31,739),	X_MASK,	     E500MC,	0,		{RS, RA, RB}},
   8824   1.5  christos 
   8825   1.7  christos {"stvswx",	X(31,741),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8826   1.2     skrll 
   8827   1.7  christos {"stdat",	X(31,742),	X_MASK,	     POWER9,	0,		{RS, RA0, FC}},
   8828   1.7  christos 
   8829   1.7  christos {"stqfcmux",	APU(31,743,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8830   1.7  christos 
   8831   1.2     skrll {"subfmeo",	XO(31,232,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8832   1.7  christos {"sfmeo",	XO(31,232,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8833   1.7  christos {"subfmeo.",	XO(31,232,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8834   1.2     skrll {"sfmeo.",	XO(31,232,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8835   1.7  christos 
   8836   1.7  christos {"mulldo",	XO(31,233,1,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8837   1.7  christos {"mulldo.",	XO(31,233,1,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   8838   1.7  christos 
   8839   1.2     skrll {"addmeo",	XO(31,234,1,0),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8840   1.7  christos {"ameo",	XO(31,234,1,0),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8841   1.7  christos {"addmeo.",	XO(31,234,1,1),	XORB_MASK,   PPCCOM,	0,		{RT, RA}},
   8842   1.7  christos {"ameo.",	XO(31,234,1,1),	XORB_MASK,   PWRCOM,	0,		{RT, RA}},
   8843   1.7  christos 
   8844   1.2     skrll {"mullwo",	XO(31,235,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8845  1.12  christos {"mulso",	XO(31,235,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8846  1.12  christos {"mullwo.",	XO(31,235,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8847  1.11  christos {"mulso.",	XO(31,235,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8848  1.11  christos 
   8849   1.7  christos {"stxvprll",	X(31,749),	XX1_MASK,    PPCVSXF,	0,		{XSP, RA0, RB}},
   8850   1.5  christos 
   8851  1.13  christos {"tsuspend.",	XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM,	EXT,		{0}},
   8852  1.11  christos {"tresume.",	XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM,	EXT,		{0}},
   8853   1.7  christos {"tsr.",	XRC(31,750,1),	  XRTLRARB_MASK,PPCHTM,	0,		{L}},
   8854   1.5  christos 
   8855   1.7  christos {"hashchk",	X(31,754),	XRC_MASK,    POWER8,	0,		{RB, DW, RAS}},
   8856   1.7  christos 
   8857   1.2     skrll {"darn",	X(31,755),	XLRAND_MASK, POWER9,	0,		{RT, LRAND}},
   8858   1.7  christos 
   8859   1.2     skrll {"dcba",	X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
   8860   1.7  christos {"dcbal",	XOPL(31,758,1), XRT_MASK,    E500MC,	0,		{RA0, RB}},
   8861   1.7  christos 
   8862   1.2     skrll {"stfdux",	X(31,759),	X_MASK,	     COM,	PPCEFS,		{FRS, RAS, RB}},
   8863   1.8  christos 
   8864   1.5  christos {"srliq",	XRC(31,760,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8865   1.8  christos {"srliq.",	XRC(31,760,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   8866   1.5  christos 
   8867   1.8  christos {"lvsm",	X(31,773),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8868   1.7  christos 
   8869   1.7  christos {"copy",	XOPL(31,774,1),	XRT_MASK,    POWER9,	0,		{RA0, RB}},
   8870   1.2     skrll 
   8871   1.7  christos {"stvepxl",	X(31,775),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8872   1.7  christos {"lvlxl",	X(31,775),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8873   1.2     skrll {"ldfcmux",	APU(31,775,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   8874   1.7  christos 
   8875   1.7  christos {"dozo",	XO(31,264,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8876   1.7  christos {"dozo.",	XO(31,264,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8877   1.7  christos 
   8878   1.2     skrll {"addo",	XO(31,266,1,0),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8879   1.7  christos {"caxo",	XO(31,266,1,0),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8880   1.7  christos {"addo.",	XO(31,266,1,1),	XO_MASK,     PPCCOM,	0,		{RT, RA, RB}},
   8881   1.5  christos {"caxo.",	XO(31,266,1,1),	XO_MASK,     PWRCOM,	0,		{RT, RA, RB}},
   8882   1.7  christos 
   8883   1.7  christos {"modsd",	X(31,777),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   8884   1.5  christos {"modsw",	X(31,779),	X_MASK,	     POWER9,	0,		{RT, RA, RB}},
   8885   1.7  christos 
   8886   1.2     skrll {"lxvw4x",	X(31,780),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   8887   1.7  christos {"lxsibzx",	X(31,781),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8888   1.2     skrll 
   8889   1.7  christos {"tabortwc.",	XRC(31,782,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, RB}},
   8890   1.2     skrll 
   8891   1.7  christos {"tlbivax",	X(31,786),	XRT_MASK, BOOKE|PPCA2|PPC476, 0,	{RA0, RB}},
   8892   1.2     skrll 
   8893   1.8  christos {"lwzcix",	X(31,789),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8894   1.7  christos 
   8895   1.2     skrll {"lhbrx",	X(31,790),	X_MASK,	     COM,	0,		{RT, RA0, RB}},
   8896   1.7  christos 
   8897   1.7  christos {"lfdpx",	X(31,791),    X_MASK|Q_MASK, POWER6,	POWER7,		{FRTp, RA0, RB}},
   8898   1.7  christos {"lfqx",	X(31,791),	X_MASK,	     POWER2,	0,		{FRT, RA, RB}},
   8899   1.7  christos 
   8900   1.2     skrll {"sraw",	XRC(31,792,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8901   1.7  christos {"sra",		XRC(31,792,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8902   1.7  christos {"sraw.",	XRC(31,792,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, RB}},
   8903   1.2     skrll {"sra.",	XRC(31,792,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, RB}},
   8904   1.8  christos 
   8905   1.7  christos {"srad",	XRC(31,794,0),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8906   1.2     skrll {"srad.",	XRC(31,794,1),	X_MASK,	     PPC64,	0,		{RA, RS, RB}},
   8907   1.8  christos 
   8908  1.14  christos {"evlddepx",    VX (31, 1598),	VX_MASK,     PPCSPE,	0,		{RT, RA, RB}},
   8909   1.8  christos {"lfddx",	X(31,803),	X_MASK,	     E500MC,	0,		{FRT, RA, RB}},
   8910   1.7  christos 
   8911   1.2     skrll {"lvtrxl",	X(31,805),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8912   1.7  christos {"ccmclean",	X(31,806),	XRTRARB_MASK,FUTURE,	0,		{0}},
   8913   1.7  christos {"stvepx",	X(31,807),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   8914   1.5  christos {"lvrxl",	X(31,807),	X_MASK,	     CELL,	0,		{VD, RA0, RB}},
   8915   1.7  christos 
   8916   1.5  christos {"lxvh8x",	X(31,812),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8917   1.7  christos {"lxsihzx",	X(31,813),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8918   1.2     skrll 
   8919   1.7  christos {"tabortdc.",	XRC(31,814,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, RB}},
   8920   1.2     skrll 
   8921   1.7  christos {"rac",		X(31,818),	X_MASK,	     M601,	0,		{RT, RA, RB}},
   8922   1.2     skrll 
   8923   1.7  christos {"erativax",	X(31,819),	X_MASK,	     PPCA2,	0,		{RS, RA0, RB}},
   8924  1.11  christos 
   8925   1.2     skrll {"lhzcix",	X(31,821),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8926   1.7  christos 
   8927   1.2     skrll {"dss",		XDSS(31,822,0),	XDSS_MASK,   PPCVEC,	0,		{STRM}},
   8928   1.7  christos {"dssall",	XDSS(31,822,1),	XDSS_MASK,   PPCVEC,	0,		{0}},
   8929   1.7  christos 
   8930   1.7  christos {"lfqux",	X(31,823),	X_MASK,	     POWER2,	0,		{FRT, RA, RB}},
   8931   1.7  christos 
   8932   1.2     skrll {"srawi",	XRC(31,824,0),	X_MASK,	     PPCCOM,	0,		{RA, RS, SH}},
   8933   1.7  christos {"srai",	XRC(31,824,0),	X_MASK,	     PWRCOM,	0,		{RA, RS, SH}},
   8934   1.7  christos {"srawi.",	XRC(31,824,1),	X_MASK,	     PPCCOM,	0,		{RA, RS, SH}},
   8935   1.4  christos {"srai.",	XRC(31,824,1),	X_MASK,	     PWRCOM,	0,		{RA, RS, SH}},
   8936   1.8  christos 
   8937   1.2     skrll {"sradi",	XS(31,413,0),	XS_MASK,     PPC64,	0,		{RA, RS, SH6}},
   8938   1.8  christos {"sradi.",	XS(31,413,1),	XS_MASK,     PPC64,	0,		{RA, RS, SH6}},
   8939   1.5  christos 
   8940   1.7  christos {"lvtlxl",	X(31,837),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8941   1.7  christos 
   8942   1.2     skrll {"cpabort",	X(31,838),	XRTRARB_MASK,POWER9,	0,		{0}},
   8943   1.7  christos 
   8944   1.5  christos {"divo",	XO(31,331,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8945   1.5  christos {"divo.",	XO(31,331,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8946   1.7  christos 
   8947   1.2     skrll {"lxvd2x",	X(31,844),	XX1_MASK,    PPCVSX,	0,		{XT6, RA0, RB}},
   8948   1.7  christos {"lxvx",	X(31,844),	XX1_MASK,    POWER8,	POWER9|PPCVSX3,	{XT6, RA0, RB}},
   8949   1.3  christos 
   8950  1.11  christos {"tabortwci.",	XRC(31,846,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, HTM_SI}},
   8951  1.11  christos 
   8952  1.11  christos {"tlbsrx.",	XRC(31,850,1),	XRT_MASK,    PPCA2,	0,		{RA0, RB}},
   8953   1.7  christos 
   8954   1.5  christos {"slbiag",	X(31,850),	XRLARB_MASK, POWER10,	0,		{RS, A_L}},
   8955   1.2     skrll {"slbiag",	X(31,850),	XRARB_MASK,  POWER9,	POWER10,	{RS}},
   8956   1.7  christos 
   8957   1.2     skrll {"slbmfev",	X(31,851),	XRLA_MASK,   POWER9,	0,		{RT, RB, A_L}},
   8958   1.3  christos {"slbmfev",	X(31,851),	XRA_MASK,    PPC64,	POWER9,		{RT, RB}},
   8959   1.7  christos 
   8960   1.7  christos {"lbzcix",	X(31,853),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8961   1.7  christos 
   8962   1.2     skrll {"eieio",	X(31,854),	0xffffffff,  PPC,   BOOKE|PPCA2|PPC476,	{0}},
   8963   1.7  christos {"mbar",	X(31,854),	X_MASK,	   BOOKE|PPCA2|PPC476, 0,	{MO}},
   8964   1.2     skrll {"eieio",	XMBAR(31,854,1),0xffffffff,  E500,	0,		{0}},
   8965   1.8  christos {"eieio",	X(31,854),	0xffffffff, PPCA2|PPC476, 0,		{0}},
   8966   1.4  christos 
   8967   1.7  christos {"lfiwax",	X(31,855),	X_MASK, POWER6|PPCA2|PPC476, 0,		{FRT, RA0, RB}},
   8968   1.7  christos 
   8969   1.2     skrll {"lvswxl",	X(31,869),	X_MASK,	     E6500,	0,		{VD, RA0, RB}},
   8970   1.7  christos 
   8971   1.7  christos {"abso",	XO(31,360,1,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   8972   1.2     skrll {"abso.",	XO(31,360,1,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   8973  1.14  christos 
   8974  1.14  christos {"divso",	XO(31,363,1,0),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8975   1.7  christos {"divso.",	XO(31,363,1,1),	XO_MASK,     M601,	0,		{RT, RA, RB}},
   8976   1.5  christos 
   8977  1.14  christos {"ccmrl",	X(31,870),	XRTRARB_MASK,FUTURE,	0,		{0}},
   8978  1.14  christos 
   8979   1.7  christos {"lxvb16x",	X(31,876),	XX1_MASK,    PPCVSX3,	0,		{XT6, RA0, RB}},
   8980   1.5  christos 
   8981   1.7  christos {"lxvpb32x",	X(31,877),	X_MASK,      FUTURE,	0,		{XTP, RA0, RB}},
   8982   1.5  christos 
   8983   1.7  christos {"tabortdci.",	XRC(31,878,1),	X_MASK,	     PPCHTM,	0,		{TO, RA, HTM_SI}},
   8984   1.2     skrll 
   8985   1.7  christos {"rmieg",	X(31,882),	XRTRA_MASK,  POWER9,	0,		{RB}},
   8986   1.5  christos 
   8987   1.7  christos {"ldcix",	X(31,885),	X_MASK,	     POWER6,	0,		{RT, RA0, RB}},
   8988   1.2     skrll 
   8989   1.7  christos {"msgsync",	X(31,886),	0xffffffff,  POWER9,	0,		{0}},
   8990   1.7  christos 
   8991   1.5  christos {"lfiwzx",	X(31,887),	X_MASK,	  POWER7|PPCA2,	0,		{FRT, RA0, RB}},
   8992  1.11  christos 
   8993  1.11  christos {"extswsli",	XS(31,445,0),	XS_MASK,     POWER9,	0,		{RA, RS, SH6}},
   8994   1.5  christos {"extswsli.",	XS(31,445,1),	XS_MASK,     POWER9,	0,		{RA, RS, SH6}},
   8995   1.7  christos 
   8996   1.7  christos {"paste.",	XRC(31,902,1),	XLRT_MASK,   POWER10,	0,		{RA0, RB, L1OPT}},
   8997   1.2     skrll {"paste.",	XRCL(31,902,1,1),XRT_MASK,   POWER9,	POWER10,	{RA0, RB}},
   8998   1.7  christos 
   8999   1.7  christos {"stvlxl",	X(31,903),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   9000   1.7  christos {"stdfcmux",	APU(31,903,0),	APU_MASK,    PPC405,	0,		{FCRT, RA, RB}},
   9001   1.7  christos 
   9002   1.2     skrll {"divdeuo",	XO(31,393,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9003   1.7  christos {"divdeuo.",	XO(31,393,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9004   1.7  christos {"divweuo",	XO(31,395,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9005   1.5  christos {"divweuo.",	XO(31,395,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9006   1.7  christos 
   9007   1.2     skrll {"stxvw4x",	X(31,908),	XX1_MASK,    PPCVSX,	0,		{XS6, RA0, RB}},
   9008   1.7  christos {"stxsibx",	X(31,909),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   9009   1.7  christos 
   9010   1.2     skrll {"tabort.",	XRC(31,910,1),	XRTRB_MASK,  PPCHTM,	0,		{RA}},
   9011   1.7  christos 
   9012   1.5  christos {"tlbsx",	XRC(31,914,0),	X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RTO, RA0, RB}},
   9013   1.2     skrll {"tlbsx.",	XRC(31,914,1),	X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RTO, RA0, RB}},
   9014   1.7  christos 
   9015   1.2     skrll {"slbmfee",	X(31,915),	XRLA_MASK,   POWER9,	0,		{RT, RB, A_L}},
   9016   1.7  christos {"slbmfee",	X(31,915),	XRA_MASK,    PPC64,	POWER9,		{RT, RB}},
   9017   1.2     skrll 
   9018   1.8  christos {"stwcix",	X(31,917),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   9019   1.7  christos 
   9020   1.2     skrll {"sthbrx",	X(31,918),	X_MASK,	     COM,	0,		{RS, RA0, RB}},
   9021   1.7  christos 
   9022   1.7  christos {"stfdpx",	X(31,919),    X_MASK|Q_MASK, POWER6,	POWER7,		{FRSp, RA0, RB}},
   9023   1.2     skrll {"stfqx",	X(31,919),	X_MASK,	     POWER2,	0,		{FRS, RA0, RB}},
   9024   1.7  christos 
   9025   1.7  christos {"sraq",	XRC(31,920,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   9026   1.2     skrll {"sraq.",	XRC(31,920,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   9027   1.7  christos 
   9028   1.7  christos {"srea",	XRC(31,921,0),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   9029   1.7  christos {"srea.",	XRC(31,921,1),	X_MASK,	     M601,	0,		{RA, RS, RB}},
   9030   1.7  christos 
   9031   1.2     skrll {"extsh",	XRC(31,922,0),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   9032   1.8  christos {"exts",	XRC(31,922,0),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   9033   1.7  christos {"extsh.",	XRC(31,922,1),	XRB_MASK,    PPCCOM,	0,		{RA, RS}},
   9034   1.2     skrll {"exts.",	XRC(31,922,1),	XRB_MASK,    PWRCOM,	0,		{RA, RS}},
   9035   1.8  christos 
   9036   1.4  christos {"evstddepx",	VX (31, 1854),	VX_MASK,     PPCSPE,	0,		{RT, RA, RB}},
   9037  1.11  christos {"stfddx",	X(31,931),	X_MASK,	     E500MC,	0,		{FRS, RA, RB}},
   9038  1.11  christos 
   9039   1.8  christos {"stvfrxl",	X(31,933),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   9040   1.3  christos 
   9041   1.7  christos {"wclrone",	XOPL2(31,934,2),XRT_MASK,    PPCA2,	EXT,		{RA0, RB}},
   9042   1.2     skrll {"wclrall",	X(31,934),	XRARB_MASK,  PPCA2,	EXT,		{L2}},
   9043   1.7  christos {"wclr",	X(31,934),	X_MASK,	     PPCA2,	0,		{L2, RA0, RB}},
   9044   1.7  christos 
   9045   1.7  christos {"stvrxl",	X(31,935),	X_MASK,	     CELL,	0,		{VS, RA0, RB}},
   9046   1.7  christos 
   9047   1.3  christos {"divdeo",	XO(31,425,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9048   1.7  christos {"divdeo.",	XO(31,425,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9049   1.7  christos {"divweo",	XO(31,427,1,0),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9050   1.5  christos {"divweo.",	XO(31,427,1,1),	XO_MASK,  POWER7|PPCA2,	0,		{RT, RA, RB}},
   9051   1.7  christos 
   9052   1.5  christos {"stxvh8x",	X(31,940),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   9053  1.11  christos {"stxsihx",	X(31,941),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   9054  1.11  christos 
   9055   1.7  christos {"treclaim.",	XRC(31,942,1),	XRTRB_MASK,  PPCHTM,	0,		{RA}},
   9056   1.2     skrll 
   9057   1.7  christos {"tlbrehi",	XTLB(31,946,0),	XTLB_MASK,   PPC403,	PPCA2|EXT,	{RT, RA}},
   9058   1.2     skrll {"tlbrelo",	XTLB(31,946,1),	XTLB_MASK,   PPC403,	PPCA2|EXT,	{RT, RA}},
   9059   1.7  christos {"tlbre",	X(31,946),  X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RSO, RAOPT, SHO}},
   9060   1.7  christos 
   9061   1.3  christos {"sthcix",	X(31,949),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   9062   1.7  christos 
   9063   1.2     skrll {"icswepx",	XRC(31,950,0),	X_MASK,	     PPCA2,	0,		{RS, RA, RB}},
   9064   1.7  christos {"icswepx.",	XRC(31,950,1),	X_MASK,	     PPCA2,	0,		{RS, RA, RB}},
   9065   1.7  christos 
   9066   1.2     skrll {"stfqux",	X(31,951),	X_MASK,	     POWER2,	0,		{FRS, RA, RB}},
   9067   1.7  christos 
   9068   1.7  christos {"sraiq",	XRC(31,952,0),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   9069   1.4  christos {"sraiq.",	XRC(31,952,1),	X_MASK,	     M601,	0,		{RA, RS, SH}},
   9070   1.8  christos 
   9071   1.2     skrll {"extsb",	XRC(31,954,0),	XRB_MASK,    PPC,	0,		{RA, RS}},
   9072   1.8  christos {"extsb.",	XRC(31,954,1),	XRB_MASK,    PPC,	0,		{RA, RS}},
   9073   1.7  christos 
   9074   1.5  christos {"stvflxl",	X(31,965),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   9075   1.7  christos 
   9076   1.7  christos {"iccci",	X(31,966), XRT_MASK, PPC403|PPC440|PPC476|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
   9077   1.5  christos {"ici",		X(31,966),	XRARB_MASK,  PPCA2|PPC476, 0,		{CT}},
   9078   1.7  christos 
   9079   1.7  christos {"divduo",	XO(31,457,1,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   9080   1.2     skrll {"divduo.",	XO(31,457,1,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   9081   1.7  christos 
   9082   1.5  christos {"divwuo",	XO(31,459,1,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   9083   1.2     skrll {"divwuo.",	XO(31,459,1,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   9084   1.3  christos 
   9085  1.11  christos {"stxvd2x",	X(31,972),	XX1_MASK,    PPCVSX,	0,		{XS6, RA0, RB}},
   9086  1.11  christos {"stxvx",	X(31,972),	XX1_MASK,    POWER8,	POWER9|PPCVSX3,	{XS6, RA0, RB}},
   9087   1.7  christos 
   9088   1.7  christos {"tlbld",	X(31,978),	XRTRA_MASK,  PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
   9089   1.7  christos {"tlbwehi",	XTLB(31,978,0),	XTLB_MASK,   PPC403,	EXT,		{RT, RA}},
   9090   1.7  christos {"tlbwelo",	XTLB(31,978,1),	XTLB_MASK,   PPC403,	EXT,		{RT, RA}},
   9091   1.7  christos {"tlbwe",	X(31,978),  X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0,	{RSO, RAOPT, SHO}},
   9092   1.7  christos 
   9093   1.7  christos {"slbfee.",	XRC(31,979,1),	XRA_MASK,    POWER6,	0,		{RT, RB}},
   9094   1.7  christos 
   9095   1.7  christos {"stbcix",	X(31,981),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   9096   1.7  christos 
   9097   1.7  christos {"icbi",	X(31,982),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   9098   1.7  christos 
   9099   1.7  christos {"stfiwx",	X(31,983),	X_MASK,	     PPC,	PPCEFS,		{FRS, RA0, RB}},
   9100   1.7  christos 
   9101   1.7  christos {"extsw",	XRC(31,986,0),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   9102   1.8  christos {"extsw.",	XRC(31,986,1),	XRB_MASK,    PPC64,	0,		{RA, RS}},
   9103   1.7  christos 
   9104   1.7  christos {"icbiep",	XRT(31,991,0),	XRT_MASK,    E500MC|PPCA2, 0,		{RA0, RB}},
   9105   1.7  christos 
   9106   1.7  christos {"stvswxl",	X(31,997),	X_MASK,	     E6500,	0,		{VS, RA0, RB}},
   9107   1.7  christos 
   9108   1.7  christos {"icread",	X(31,998),     XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0,	{RA0, RB}},
   9109   1.7  christos 
   9110   1.7  christos {"nabso",	XO(31,488,1,0),	XORB_MASK,   M601,	0,		{RT, RA}},
   9111   1.7  christos {"nabso.",	XO(31,488,1,1),	XORB_MASK,   M601,	0,		{RT, RA}},
   9112   1.7  christos 
   9113   1.7  christos {"divdo",	XO(31,489,1,0),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   9114   1.7  christos {"divdo.",	XO(31,489,1,1),	XO_MASK,     PPC64,	0,		{RT, RA, RB}},
   9115   1.7  christos 
   9116   1.7  christos {"divwo",	XO(31,491,1,0),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   9117  1.14  christos {"divwo.",	XO(31,491,1,1),	XO_MASK,     PPC,	0,		{RT, RA, RB}},
   9118  1.14  christos 
   9119   1.7  christos {"stxvb16x",	X(31,1004),	XX1_MASK,    PPCVSX3,	0,		{XS6, RA0, RB}},
   9120   1.7  christos 
   9121   1.7  christos {"stxvpb32x",	X(31,1005),	X_MASK,      FUTURE,	0,		{XSP, RA0, RB}},
   9122   1.7  christos 
   9123   1.7  christos {"trechkpt.",	XRC(31,1006,1),	XRTRARB_MASK,PPCHTM,	0,		{0}},
   9124   1.7  christos 
   9125   1.7  christos {"tlbli",	X(31,1010),	XRTRA_MASK,  PPC,	TITAN,		{RB}},
   9126   1.7  christos 
   9127  1.11  christos {"stdcix",	X(31,1013),	X_MASK,	     POWER6,	0,		{RS, RA0, RB}},
   9128   1.7  christos 
   9129   1.7  christos {"dcbz",	X(31,1014),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   9130   1.7  christos {"dclz",	X(31,1014),	XRT_MASK,    PPC,	0,		{RA0, RB}},
   9131   1.7  christos {"dcbzl",	XOPL(31,1014,1), XRT_MASK,   POWER4|E500MC, PPC476,	{RA0, RB}},
   9132   1.7  christos 
   9133   1.7  christos {"dcbzep",	XRT(31,1023,0),	XRT_MASK,    E500MC|PPCA2, 0,		{RA0, RB}},
   9134   1.7  christos 
   9135   1.7  christos {"lwz",		OP(32),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, D, RA0}},
   9136   1.7  christos {"l",		OP(32),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   9137   1.7  christos 
   9138   1.7  christos {"lwzu",	OP(33),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, D, RAL}},
   9139   1.7  christos {"lu",		OP(33),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   9140   1.7  christos 
   9141   1.7  christos {"lbz",		OP(34),		OP_MASK,     COM,	PPCVLE,		{RT, D, RA0}},
   9142   1.7  christos 
   9143   1.7  christos {"lbzu",	OP(35),		OP_MASK,     COM,	PPCVLE,		{RT, D, RAL}},
   9144   1.7  christos 
   9145   1.7  christos {"stw",		OP(36),		OP_MASK,     PPCCOM,	PPCVLE,		{RS, D, RA0}},
   9146   1.7  christos {"st",		OP(36),		OP_MASK,     PWRCOM,	PPCVLE,		{RS, D, RA0}},
   9147   1.7  christos 
   9148   1.7  christos {"stwu",	OP(37),		OP_MASK,     PPCCOM,	PPCVLE,		{RS, D, RAS}},
   9149   1.7  christos {"stu",		OP(37),		OP_MASK,     PWRCOM,	PPCVLE,		{RS, D, RA0}},
   9150   1.7  christos 
   9151   1.7  christos {"stb",		OP(38),		OP_MASK,     COM,	PPCVLE,		{RS, D, RA0}},
   9152   1.7  christos 
   9153   1.7  christos {"stbu",	OP(39),		OP_MASK,     COM,	PPCVLE,		{RS, D, RAS}},
   9154   1.7  christos 
   9155   1.7  christos {"lhz",		OP(40),		OP_MASK,     COM,	PPCVLE,		{RT, D, RA0}},
   9156   1.7  christos 
   9157   1.7  christos {"lhzu",	OP(41),		OP_MASK,     COM,	PPCVLE,		{RT, D, RAL}},
   9158   1.7  christos 
   9159   1.7  christos {"lha",		OP(42),		OP_MASK,     COM,	PPCVLE,		{RT, D, RA0}},
   9160   1.7  christos 
   9161   1.7  christos {"lhau",	OP(43),		OP_MASK,     COM,	PPCVLE,		{RT, D, RAL}},
   9162   1.7  christos 
   9163   1.7  christos {"sth",		OP(44),		OP_MASK,     COM,	PPCVLE,		{RS, D, RA0}},
   9164   1.7  christos 
   9165   1.7  christos {"sthu",	OP(45),		OP_MASK,     COM,	PPCVLE,		{RS, D, RAS}},
   9166   1.7  christos 
   9167   1.7  christos {"lmw",		OP(46),		OP_MASK,     PPCCOM,	PPCVLE,		{RT, D, RAM}},
   9168   1.7  christos {"lm",		OP(46),		OP_MASK,     PWRCOM,	PPCVLE,		{RT, D, RA0}},
   9169   1.7  christos 
   9170   1.7  christos {"stmw",	OP(47),		OP_MASK,     PPCCOM,	PPCVLE,		{RS, D, RA0}},
   9171   1.7  christos {"stm",		OP(47),		OP_MASK,     PWRCOM,	PPCVLE,		{RS, D, RA0}},
   9172   1.7  christos 
   9173   1.7  christos {"lfs",		OP(48),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RA0}},
   9174   1.7  christos 
   9175   1.7  christos {"lfsu",	OP(49),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RAS}},
   9176   1.7  christos 
   9177   1.7  christos {"lfd",		OP(50),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RA0}},
   9178   1.7  christos 
   9179   1.7  christos {"lfdu",	OP(51),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRT, D, RAS}},
   9180   1.7  christos 
   9181   1.7  christos {"stfs",	OP(52),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RA0}},
   9182   1.7  christos 
   9183   1.7  christos {"stfsu",	OP(53),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RAS}},
   9184   1.7  christos 
   9185   1.8  christos {"stfd",	OP(54),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RA0}},
   9186   1.7  christos 
   9187   1.7  christos {"stfdu",	OP(55),		OP_MASK,     COM,	PPCEFS|PPCVLE,	{FRS, D, RAS}},
   9188   1.7  christos 
   9189   1.7  christos {"lq",		OP(56),	     OP_MASK|Q_MASK, POWER4,	PPC476|PPCVLE,	{RTQ, DQ, RAQ}},
   9190   1.7  christos {"psq_l",	OP(56),		OP_MASK,     PPCPS,	PPCVLE,		{FRT,PSD,RA,PSW,PSQ}},
   9191   1.8  christos {"lfq",		OP(56),		OP_MASK,     POWER2,	PPCVLE,		{FRT, D, RA0}},
   9192   1.7  christos 
   9193   1.7  christos {"lxsd",	DSO(57,2),	DS_MASK,     PPCVSX3,	PPCVLE,		{VD, DS, RA0}},
   9194   1.7  christos {"lxssp",	DSO(57,3),	DS_MASK,     PPCVSX3,	PPCVLE,		{VD, DS, RA0}},
   9195   1.7  christos {"lfdp",	OP(57),	     OP_MASK|Q_MASK, POWER6,	POWER7|PPCVLE,	{FRTp, DS, RA0}},
   9196   1.7  christos {"psq_lu",	OP(57),		OP_MASK,     PPCPS,	PPCVLE,		{FRT,PSD,RA,PSW,PSQ}},
   9197   1.7  christos {"lfqu",	OP(57),		OP_MASK,     POWER2,	PPCVLE,		{FRT, D, RA0}},
   9198   1.7  christos 
   9199   1.7  christos {"ld",		DSO(58,0),	DS_MASK,     PPC64,	PPCVLE,		{RT, DS, RA0}},
   9200   1.7  christos {"ldu",		DSO(58,1),	DS_MASK,     PPC64,	PPCVLE,		{RT, DS, RAL}},
   9201   1.7  christos {"lwa",		DSO(58,2),	DS_MASK,     PPC64,	PPCVLE,		{RT, DS, RA0}},
   9202   1.7  christos 
   9203   1.7  christos {"dadd",	XRC(59,2,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9204   1.7  christos {"dadd.",	XRC(59,2,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9205  1.12  christos 
   9206  1.11  christos {"dqua",	ZRC(59,3,0),	Z2_MASK,     POWER6,	PPCVLE,		{FRT,FRA,FRB,RMC}},
   9207  1.12  christos {"dqua.",	ZRC(59,3,1),	Z2_MASK,     POWER6,	PPCVLE,		{FRT,FRA,FRB,RMC}},
   9208  1.11  christos 
   9209  1.11  christos {"dmxvi8ger4pp",XX3(59,2),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9210   1.7  christos {"xvi8ger4pp",	XX3(59,2),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9211   1.7  christos {"dmxvi8ger4",	XX3(59,3),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9212   1.7  christos {"xvi8ger4",	XX3(59,3),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9213   1.7  christos 
   9214   1.7  christos {"fdivs",	A(59,18,0),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9215   1.7  christos {"fdivs.",	A(59,18,1),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9216   1.7  christos 
   9217   1.7  christos {"fsubs",	A(59,20,0),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9218   1.7  christos {"fsubs.",	A(59,20,1),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9219   1.7  christos 
   9220   1.7  christos {"fadds",	A(59,21,0),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9221   1.7  christos {"fadds.",	A(59,21,1),	AFRC_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9222   1.7  christos 
   9223   1.7  christos {"fsqrts",	A(59,22,0),    AFRAFRC_MASK, PPC,	TITAN|PPCVLE,	{FRT, FRB}},
   9224   1.7  christos {"fsqrts.",	A(59,22,1),    AFRAFRC_MASK, PPC,	TITAN|PPCVLE,	{FRT, FRB}},
   9225   1.7  christos 
   9226   1.7  christos {"fres",	A(59,24,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9227   1.7  christos {"fres",	A(59,24,0),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9228   1.7  christos {"fres.",	A(59,24,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9229   1.7  christos {"fres.",	A(59,24,1),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9230   1.7  christos 
   9231   1.7  christos {"fmuls",	A(59,25,0),	AFRB_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9232   1.7  christos {"fmuls.",	A(59,25,1),	AFRB_MASK,   PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9233   1.7  christos 
   9234   1.7  christos {"frsqrtes",	A(59,26,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9235   1.7  christos {"frsqrtes",	A(59,26,0),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9236   1.7  christos {"frsqrtes.",	A(59,26,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9237   1.7  christos {"frsqrtes.",	A(59,26,1),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9238   1.7  christos 
   9239   1.7  christos {"fmsubs",	A(59,28,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9240   1.7  christos {"fmsubs.",	A(59,28,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9241   1.7  christos 
   9242   1.7  christos {"fmadds",	A(59,29,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9243   1.7  christos {"fmadds.",	A(59,29,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9244   1.7  christos 
   9245   1.7  christos {"fnmsubs",	A(59,30,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9246   1.7  christos {"fnmsubs.",	A(59,30,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9247   1.7  christos 
   9248   1.7  christos {"fnmadds",	A(59,31,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9249   1.7  christos {"fnmadds.",	A(59,31,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9250   1.7  christos 
   9251   1.7  christos {"dmul",	XRC(59,34,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9252   1.7  christos {"dmul.",	XRC(59,34,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9253  1.12  christos 
   9254  1.12  christos {"drrnd",	ZRC(59,35,0),	Z2_MASK,     POWER6,	PPCVLE,		{FRT, FRA, FRB, RMC}},
   9255  1.12  christos {"drrnd.",	ZRC(59,35,1),	Z2_MASK,     POWER6,	PPCVLE,		{FRT, FRA, FRB, RMC}},
   9256   1.7  christos 
   9257   1.7  christos {"dmxvi8gerx4pp", XX3(59,10),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9258   1.7  christos {"dmxvi8gerx4",   XX3(59,11),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9259   1.7  christos 
   9260   1.7  christos {"dscli",	ZRC(59,66,0),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9261   1.7  christos {"dscli.",	ZRC(59,66,1),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9262  1.12  christos 
   9263  1.12  christos {"dquai",	ZRC(59,67,0),	Z2_MASK,     POWER6,	PPCVLE,		{TE, FRT,FRB,RMC}},
   9264  1.12  christos {"dquai.",	ZRC(59,67,1),	Z2_MASK,     POWER6,	PPCVLE,		{TE, FRT,FRB,RMC}},
   9265  1.12  christos 
   9266  1.11  christos {"dmxvf16ger2pp",XX3(59,18),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9267   1.7  christos {"xvf16ger2pp",	 XX3(59,18),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9268   1.7  christos {"dmxvf16ger2",	 XX3(59,19),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9269   1.7  christos {"xvf16ger2",	 XX3(59,19),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9270   1.7  christos 
   9271   1.7  christos {"dscri",	ZRC(59,98,0),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9272   1.7  christos {"dscri.",	ZRC(59,98,1),	Z_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, SH16}},
   9273  1.12  christos 
   9274  1.11  christos {"drintx",	ZRC(59,99,0),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9275  1.12  christos {"drintx.",	ZRC(59,99,1),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9276  1.11  christos 
   9277  1.11  christos {"dmxvf32gerpp",XX3(59,26),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9278   1.7  christos {"xvf32gerpp",	XX3(59,26),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9279   1.7  christos {"dmxvf32ger",	XX3(59,27),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9280  1.12  christos {"xvf32ger",	XX3(59,27),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9281  1.11  christos 
   9282  1.12  christos {"dcmpo",	X(59,130),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9283  1.11  christos 
   9284  1.11  christos {"dmxvi4ger8pp",XX3(59,34),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9285   1.7  christos {"xvi4ger8pp",	XX3(59,34),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9286  1.11  christos {"dmxvi4ger8",	XX3(59,35),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9287  1.12  christos {"xvi4ger8",	XX3(59,35),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9288  1.12  christos 
   9289  1.12  christos {"dtstex",	X(59,162),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9290  1.12  christos 
   9291  1.11  christos {"dmxvi16ger2spp",XX3(59,42),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9292   1.7  christos {"xvi16ger2spp",  XX3(59,42),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9293  1.11  christos {"dmxvi16ger2s",  XX3(59,43),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9294  1.12  christos {"xvi16ger2s",	  XX3(59,43),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9295  1.12  christos 
   9296  1.12  christos {"dtstdc",	Z(59,194),	Z_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, DCM}},
   9297  1.12  christos 
   9298  1.11  christos {"dmxvbf16ger2pp",XX3(59,50),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9299   1.7  christos {"xvbf16ger2pp",  XX3(59,50),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9300   1.7  christos {"dmxvbf16ger2",  XX3(59,51),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9301   1.7  christos {"xvbf16ger2",	  XX3(59,51),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9302   1.7  christos 
   9303   1.7  christos {"dtstdg",	Z(59,226),	Z_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, DGM}},
   9304  1.12  christos 
   9305  1.11  christos {"drintn",	ZRC(59,227,0),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9306  1.12  christos {"drintn.",	ZRC(59,227,1),	Z2_MASK,     POWER6,	PPCVLE,		{R, FRT, FRB, RMC}},
   9307  1.11  christos 
   9308  1.11  christos {"dmxvf64gerpp",XX3(59,58),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9309   1.7  christos {"xvf64gerpp",	XX3(59,58),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9310   1.7  christos {"dmxvf64ger",	XX3(59,59),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9311   1.7  christos {"xvf64ger",	XX3(59,59),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9312  1.12  christos 
   9313  1.12  christos {"dctdp",	XRC(59,258,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9314  1.12  christos {"dctdp.",	XRC(59,258,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9315   1.7  christos 
   9316   1.7  christos {"dmxvf16gerx2pp", XX3(59,66),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9317   1.7  christos {"dmxvf16gerx2",   XX3(59,67),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9318   1.7  christos 
   9319   1.7  christos {"dctfix",	XRC(59,290,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9320   1.7  christos {"dctfix.",	XRC(59,290,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9321  1.12  christos 
   9322  1.12  christos {"ddedpd",	XRC(59,322,0),	X_MASK,	     POWER6,	PPCVLE,		{SP, FRT, FRB}},
   9323  1.11  christos {"ddedpd.",	XRC(59,322,1),	X_MASK,	     POWER6,	PPCVLE,		{SP, FRT, FRB}},
   9324  1.11  christos 
   9325  1.12  christos {"dmxvbf16gerx2pp", XX3(59,74),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9326  1.12  christos {"dmxvi16ger2",	XX3(59,75),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9327  1.12  christos {"xvi16ger2",	XX3(59,75),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9328  1.11  christos 
   9329   1.7  christos {"dmxvf16ger2np", XX3(59,82),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9330   1.7  christos {"xvf16ger2np",	  XX3(59,82),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9331   1.7  christos {"dmxvf16gerx2np",XX3(59,83),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9332  1.12  christos 
   9333  1.12  christos {"dxex",	XRC(59,354,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9334  1.12  christos {"dxex.",	XRC(59,354,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9335  1.12  christos 
   9336  1.12  christos {"dmxvf32gernp",  XX3(59,90),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9337  1.12  christos {"xvf32gernp",	  XX3(59,90),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9338  1.12  christos {"dmxvbf16gerx2", XX3(59,91),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9339  1.12  christos 
   9340  1.12  christos {"dmxvi8gerx4spp",XX3(59,98),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9341  1.12  christos {"dmxvi8ger4spp", XX3(59,99),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9342  1.12  christos {"xvi8ger4spp",	  XX3(59,99),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9343  1.12  christos 
   9344  1.12  christos {"dmxvi16ger2pp", XX3(59,107),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9345  1.12  christos {"xvi16ger2pp",	  XX3(59,107),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9346  1.11  christos 
   9347  1.12  christos {"dmxvbf16ger2np",XX3(59,114),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9348  1.12  christos {"xvbf16ger2np",  XX3(59,114),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9349  1.11  christos {"dmxvbf16gerx2np",XX3(59,115),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9350   1.7  christos 
   9351   1.7  christos {"dmxvf64gernp",  XX3(59,122),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9352   1.7  christos {"xvf64gernp",	  XX3(59,122),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9353   1.7  christos 
   9354   1.7  christos {"dsub",	XRC(59,514,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9355   1.7  christos {"dsub.",	XRC(59,514,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9356  1.12  christos 
   9357  1.12  christos {"ddiv",	XRC(59,546,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9358  1.12  christos {"ddiv.",	XRC(59,546,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9359  1.11  christos 
   9360  1.12  christos {"dmxvf16ger2pn", XX3(59,146),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9361  1.11  christos {"xvf16ger2pn",	  XX3(59,146),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9362  1.11  christos {"dmxvf16gerx2pn",XX3(59,147),	XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9363   1.7  christos 
   9364   1.7  christos {"dmxvf32gerpn",XX3(59,154),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9365   1.7  christos {"xvf32gerpn",	XX3(59,154),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9366   1.7  christos 
   9367   1.7  christos {"dcmpu",	X(59,642),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9368  1.12  christos 
   9369  1.12  christos {"dtstsf",	X(59,674),	X_MASK,	     POWER6,	PPCVLE,		{BF,  FRA, FRB}},
   9370  1.12  christos {"dtstsfi",	X(59,675),	X_MASK|1<<22,POWER9,	PPCVLE,		{BF, UIM6, FRB}},
   9371  1.11  christos 
   9372  1.12  christos {"dmxvbf16ger2pn",XX3(59,178),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9373  1.11  christos {"xvbf16ger2pn",  XX3(59,178),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9374  1.11  christos {"dmxvbf16gerx2pn", XX3(59,179),XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9375   1.7  christos 
   9376   1.7  christos {"dmxvf64gerpn",XX3(59,186),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9377   1.7  christos {"xvf64gerpn",	XX3(59,186),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9378   1.7  christos 
   9379   1.7  christos {"drsp",	XRC(59,770,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9380   1.7  christos {"drsp.",	XRC(59,770,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRB}},
   9381  1.12  christos 
   9382  1.12  christos {"dcffix",	XRC(59,802,0), X_MASK|FRA_MASK, POWER7,	PPCVLE,		{FRT, FRB}},
   9383   1.7  christos {"dcffix.",	XRC(59,802,1), X_MASK|FRA_MASK, POWER7,	PPCVLE,		{FRT, FRB}},
   9384   1.7  christos 
   9385   1.7  christos {"dmxvf16gerx2nn", XX3(59,202),	XX3GERX_MASK,  FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9386  1.12  christos 
   9387  1.12  christos {"denbcd",	XRC(59,834,0),	X_MASK,	     POWER6,	PPCVLE,		{S, FRT, FRB}},
   9388  1.11  christos {"denbcd.",	XRC(59,834,1),	X_MASK,	     POWER6,	PPCVLE,		{S, FRT, FRB}},
   9389   1.7  christos 
   9390   1.7  christos {"dmxvf16ger2nn", XX3(59,210),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9391   1.7  christos {"xvf16ger2nn",	  XX3(59,210),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9392   1.7  christos 
   9393   1.7  christos {"fcfids",	XRC(59,846,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9394   1.7  christos {"fcfids.",	XRC(59,846,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9395  1.12  christos 
   9396  1.11  christos {"diex",	XRC(59,866,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9397  1.11  christos {"diex.",	XRC(59,866,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRA, FRB}},
   9398  1.12  christos 
   9399  1.12  christos {"dmxvf32gernn",XX3(59,218),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9400  1.12  christos {"xvf32gernn",	XX3(59,218),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9401  1.12  christos 
   9402  1.11  christos {"dmxvbf16gerx2nn", XX3(59,234),XX3GERX_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB6}},
   9403   1.7  christos 
   9404   1.7  christos {"dmxvbf16ger2nn",XX3(59,242),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9405   1.7  christos {"xvbf16ger2nn",  XX3(59,242),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6a, XB6a}},
   9406  1.12  christos 
   9407  1.11  christos {"fcfidus",	XRC(59,974,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9408  1.11  christos {"fcfidus.",	XRC(59,974,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9409   1.7  christos 
   9410   1.7  christos {"dmxvf64gernn",XX3(59,250),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9411   1.7  christos {"xvf64gernn",	XX3(59,250),	XX3ACC_MASK, POWER10,	PPCVLE,		{ACC, XA6ap, XB6a}},
   9412   1.7  christos 
   9413   1.7  christos {"xsaddsp",	XX3(60,0),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9414   1.7  christos {"xsmaddasp",	XX3(60,1),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9415   1.7  christos {"xxsldwi",	XX3(60,2),	XX3SHW_MASK, PPCVSX,	PPCVLE,		{XT6, XA6, XB6, SHW}},
   9416   1.7  christos {"xscmpeqdp",	XX3(60,3),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9417   1.7  christos {"xsrsqrtesp",	XX2(60,10),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9418  1.11  christos {"xssqrtsp",	XX2(60,11),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9419  1.11  christos {"xxsel",	XX4(60,3),	XX4_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6, XC6}},
   9420  1.11  christos {"xssubsp",	XX3(60,8),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9421  1.11  christos {"xsmaddmsp",	XX3(60,9),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9422   1.7  christos {"xxspltd",	XX3(60,10),	XX3DM_MASK,  PPCVSX,	PPCVLE|EXT,	{XT6, XAB6, DMEX}},
   9423   1.7  christos {"xxmrghd",	XX3(60,10),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XA6, XB6}},
   9424   1.7  christos {"xxswapd",	XX3(60,10)|(2<<8), XX3_MASK, PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9425   1.7  christos {"xxmrgld",	XX3(60,10)|(3<<8), XX3_MASK, PPCVSX,	PPCVLE|EXT,	{XT6, XA6, XB6}},
   9426   1.7  christos {"xxpermdi",	XX3(60,10),	XX3DM_MASK,  PPCVSX,	PPCVLE,		{XT6, XA6, XB6, DM}},
   9427   1.7  christos {"xscmpgtdp",	XX3(60,11),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9428   1.7  christos {"xsresp",	XX2(60,26),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9429   1.7  christos {"xsmulsp",	XX3(60,16),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9430   1.7  christos {"xsmsubasp",	XX3(60,17),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9431   1.7  christos {"xxmrghw",	XX3(60,18),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9432   1.7  christos {"xscmpgedp",	XX3(60,19),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9433   1.7  christos {"xsdivsp",	XX3(60,24),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9434   1.7  christos {"xsmsubmsp",	XX3(60,25),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9435   1.7  christos {"xxperm",	XX3(60,26),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9436   1.7  christos {"xsadddp",	XX3(60,32),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9437   1.7  christos {"xsmaddadp",	XX3(60,33),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9438   1.7  christos {"xscmpudp",	XX3(60,35),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9439   1.7  christos {"xscvdpuxws",	XX2(60,72),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9440   1.7  christos {"xsrdpi",	XX2(60,73),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9441   1.7  christos {"xsrsqrtedp",	XX2(60,74),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9442   1.7  christos {"xssqrtdp",	XX2(60,75),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9443   1.7  christos {"xssubdp",	XX3(60,40),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9444   1.7  christos {"xsmaddmdp",	XX3(60,41),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9445   1.7  christos {"xscmpodp",	XX3(60,43),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9446   1.7  christos {"xscvdpsxws",	XX2(60,88),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9447   1.7  christos {"xsrdpiz",	XX2(60,89),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9448   1.7  christos {"xsredp",	XX2(60,90),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9449   1.7  christos {"xsmuldp",	XX3(60,48),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9450   1.7  christos {"xsmsubadp",	XX3(60,49),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9451   1.7  christos {"xxmrglw",	XX3(60,50),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9452   1.7  christos {"xsrdpip",	XX2(60,105),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9453   1.7  christos {"xstsqrtdp",	XX2(60,106),	XX2BF_MASK,  PPCVSX,	PPCVLE,		{BF, XB6}},
   9454   1.7  christos {"xsrdpic",	XX2(60,107),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9455   1.7  christos {"xsdivdp",	XX3(60,56),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9456   1.7  christos {"xsmsubmdp",	XX3(60,57),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9457   1.7  christos {"xxpermr",	XX3(60,58),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9458   1.7  christos {"xscmpexpdp",	XX3(60,59),	XX3BF_MASK,  PPCVSX3,	PPCVLE,		{BF, XA6, XB6}},
   9459   1.7  christos {"xsrdpim",	XX2(60,121),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9460   1.7  christos {"xstdivdp",	XX3(60,61),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9461   1.7  christos {"xvaddsp",	XX3(60,64),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9462   1.7  christos {"xvmaddasp",	XX3(60,65),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9463   1.7  christos {"xvcmpeqsp",	XX3RC(60,67,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9464   1.7  christos {"xvcmpeqsp.",	XX3RC(60,67,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9465   1.7  christos {"xvcvspuxws",	XX2(60,136),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9466   1.7  christos {"xvrspi",	XX2(60,137),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9467   1.7  christos {"xvrsqrtesp",	XX2(60,138),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9468   1.7  christos {"xvsqrtsp",	XX2(60,139),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9469   1.7  christos {"xvsubsp",	XX3(60,72),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9470   1.7  christos {"xvmaddmsp",	XX3(60,73),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9471   1.7  christos {"xvcmpgtsp",	XX3RC(60,75,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9472   1.7  christos {"xvcmpgtsp.",	XX3RC(60,75,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9473   1.7  christos {"xvcvspsxws",	XX2(60,152),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9474   1.7  christos {"xvrspiz",	XX2(60,153),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9475   1.7  christos {"xvresp",	XX2(60,154),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9476   1.7  christos {"xvmulsp",	XX3(60,80),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9477   1.7  christos {"xvmsubasp",	XX3(60,81),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9478   1.7  christos {"xxspltw",	XX2(60,164),	XX2UIM_MASK, PPCVSX,	PPCVLE,		{XT6, XB6, UIM}},
   9479   1.7  christos {"xxextractuw",	XX2(60,165),   XX2UIM4_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, UIMM4}},
   9480   1.7  christos {"xvcmpgesp",	XX3RC(60,83,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9481   1.7  christos {"xvcmpgesp.",	XX3RC(60,83,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9482   1.7  christos {"xvcvuxwsp",	XX2(60,168),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9483   1.7  christos {"xvrspip",	XX2(60,169),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9484   1.7  christos {"xvtsqrtsp",	XX2(60,170),	XX2BF_MASK,  PPCVSX,	PPCVLE,		{BF, XB6}},
   9485  1.11  christos {"xvrspic",	XX2(60,171),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9486   1.7  christos {"xvdivsp",	XX3(60,88),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9487   1.7  christos {"xvmsubmsp",	XX3(60,89),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9488   1.7  christos {"xxspltib",	X(60,360),   XX1_MASK|3<<19, PPCVSX3,	PPCVLE,		{XT6, IMM8}},
   9489   1.7  christos {"lxvkq",	XVA(60,360,31),	XVA_MASK&~1, POWER10,	PPCVLE,		{XT6, UIM5}},
   9490   1.7  christos {"xxinsertw",	XX2(60,181),   XX2UIM4_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, UIMM4}},
   9491   1.7  christos {"xvcvsxwsp",	XX2(60,184),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9492   1.7  christos {"xvrspim",	XX2(60,185),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9493   1.7  christos {"xvtdivsp",	XX3(60,93),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9494   1.7  christos {"xvadddp",	XX3(60,96),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9495   1.7  christos {"xvmaddadp",	XX3(60,97),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9496   1.7  christos {"xvcmpeqdp",	XX3RC(60,99,0),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9497   1.7  christos {"xvcmpeqdp.",	XX3RC(60,99,1),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9498   1.7  christos {"xvcvdpuxws",	XX2(60,200),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9499   1.7  christos {"xvrdpi",	XX2(60,201),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9500   1.7  christos {"xvrsqrtedp",	XX2(60,202),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9501   1.7  christos {"xvsqrtdp",	XX2(60,203),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9502   1.7  christos {"xvsubdp",	XX3(60,104),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9503   1.7  christos {"xvmaddmdp",	XX3(60,105),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9504   1.7  christos {"xvcmpgtdp",	XX3RC(60,107,0), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9505   1.7  christos {"xvcmpgtdp.",	XX3RC(60,107,1), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9506   1.7  christos {"xvcvdpsxws",	XX2(60,216),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9507  1.13  christos {"xvrdpiz",	XX2(60,217),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9508   1.7  christos {"xvredp",	XX2(60,218),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9509   1.7  christos {"xvmuldp",	XX3(60,112),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9510   1.7  christos {"xvmsubadp",	XX3(60,113),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9511   1.7  christos {"xvmulhuw",	XX3(60,114),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9512   1.7  christos {"xvcmpgedp",	XX3RC(60,115,0), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9513   1.7  christos {"xvcmpgedp.",	XX3RC(60,115,1), XX3_MASK,   PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9514   1.7  christos {"xvcvuxwdp",	XX2(60,232),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9515   1.7  christos {"xvrdpip",	XX2(60,233),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9516  1.13  christos {"xvtsqrtdp",	XX2(60,234),	XX2BF_MASK,  PPCVSX,	PPCVLE,		{BF, XB6}},
   9517   1.7  christos {"xvrdpic",	XX2(60,235),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9518   1.7  christos {"xvdivdp",	XX3(60,120),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9519   1.7  christos {"xvmsubmdp",	XX3(60,121),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9520   1.7  christos {"xvmulhuh",	XX3(60,122),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9521   1.7  christos {"xvcvsxwdp",	XX2(60,248),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9522   1.7  christos {"xvrdpim",	XX2(60,249),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9523  1.13  christos {"xvtdivdp",	XX3(60,125),	XX3BF_MASK,  PPCVSX,	PPCVLE,		{BF, XA6, XB6}},
   9524   1.7  christos {"xsmaxcdp",	XX3(60,128),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9525   1.7  christos {"xsnmaddasp",	XX3(60,129),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9526   1.7  christos {"xxland",	XX3(60,130),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9527   1.7  christos {"xvadduwm",	XX3(60,131),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9528   1.7  christos {"xscvdpsp",	XX2(60,265),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9529  1.13  christos {"xscvdpspn",	XX2(60,267),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9530   1.7  christos {"xsmincdp",	XX3(60,136),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9531   1.7  christos {"xsnmaddmsp",	XX3(60,137),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9532   1.7  christos {"xxlandc",	XX3(60,138),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9533  1.11  christos {"xvadduhm",	XX3(60,139),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9534   1.7  christos {"xsrsp",	XX2(60,281),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9535  1.13  christos {"xsmaxjdp",	XX3(60,144),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9536   1.7  christos {"xsnmsubasp",	XX3(60,145),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9537   1.7  christos {"xxmr",	XX3(60,146),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9538   1.7  christos {"xxlor",	XX3(60,146),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9539   1.7  christos {"xvsubuwm",	XX3(60,147),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9540   1.7  christos {"xscvuxdsp",	XX2(60,296),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9541  1.13  christos {"xststdcsp",	XX2(60,298),	XX2BFD_MASK, PPCVSX3,	PPCVLE,		{BF, XB6, DCMX}},
   9542   1.7  christos {"xsminjdp",	XX3(60,152),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9543   1.7  christos {"xsnmsubmsp",	XX3(60,153),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9544   1.7  christos {"xxlxor",	XX3(60,154),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9545  1.11  christos {"xvsubuhm",	XX3(60,155),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9546   1.7  christos {"xscvsxdsp",	XX2(60,312),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9547  1.13  christos {"xsmaxdp",	XX3(60,160),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9548   1.7  christos {"xsnmaddadp",	XX3(60,161),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9549   1.7  christos {"xxlnot",	XX3(60,162),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9550   1.7  christos {"xxlnor",	XX3(60,162),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9551   1.7  christos {"xvmuluwm",	XX3(60,163),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9552   1.7  christos {"xscvdpuxds",	XX2(60,328),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9553   1.7  christos {"xscvspdp",	XX2(60,329),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9554  1.13  christos {"xscvspdpn",	XX2(60,331),	XX2_MASK,    PPCVSX2,	PPCVLE,		{XT6, XB6}},
   9555   1.7  christos {"xsmindp",	XX3(60,168),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9556   1.7  christos {"xsnmaddmdp",	XX3(60,169),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9557   1.7  christos {"xxlorc",	XX3(60,170),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9558   1.7  christos {"xvmuluhm",	XX3(60,171),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9559   1.7  christos {"xscvdpsxds",	XX2(60,344),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9560   1.7  christos {"xsabsdp",	XX2(60,345),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9561   1.7  christos {"xsxexpdp",	XX2VA(60,347,0),XX2_MASK|1,  PPCVSX3,	PPCVLE,		{RT, XB6}},
   9562   1.7  christos {"xsxsigdp",	XX2VA(60,347,1),XX2_MASK|1,  PPCVSX3,	PPCVLE,		{RT, XB6}},
   9563   1.7  christos {"xscvhpdp",	XX2VA(60,347,16),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9564  1.13  christos {"xscvdphp",	XX2VA(60,347,17),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9565   1.7  christos {"xscpsgndp",	XX3(60,176),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9566   1.7  christos {"xsnmsubadp",	XX3(60,177),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9567   1.7  christos {"xxlnand",	XX3(60,178),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9568  1.13  christos {"xvmulhsw",	XX3(60,179),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9569   1.7  christos {"xscvuxddp",	XX2(60,360),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9570   1.7  christos {"xsnabsdp",	XX2(60,361),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9571  1.13  christos {"xststdcdp",	XX2(60,362),	XX2BFD_MASK, PPCVSX3,	PPCVLE,		{BF, XB6, DCMX}},
   9572   1.7  christos {"xvrlw",	XX3(60,184),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9573   1.7  christos {"xsnmsubmdp",	XX3(60,185),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9574   1.7  christos {"xxleqv",	XX3(60,186),	XX3_MASK,    PPCVSX2,	PPCVLE,		{XT6, XA6, XB6}},
   9575   1.7  christos {"xvmulhsh",	XX3(60,187),	XX3_MASK,    PPCVSXF,	PPCVLE,		{XT6, XA6, XB6}},
   9576  1.13  christos {"xscvsxddp",	XX2(60,376),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9577  1.13  christos {"xsnegdp",	XX2(60,377),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9578  1.13  christos {"xvmaxsp",	XX3(60,192),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9579  1.13  christos {"xvnmaddasp",	XX3(60,193),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9580  1.13  christos 
   9581  1.13  christos {"xxaes128encp",XX3M(60,194,0),XX3AESM_MASK,  PPCVSXF, PPCVLE|EXT,	{XTP, XA5p, XB5p}},
   9582  1.13  christos {"xxaes192encp",XX3M(60,194,1),XX3AESM_MASK,  PPCVSXF, PPCVLE|EXT,	{XTP, XA5p, XB5p}},
   9583  1.13  christos {"xxaes256encp",XX3M(60,194,2),XX3AESM_MASK,  PPCVSXF, PPCVLE|EXT,	{XTP, XA5p, XB5p}},
   9584  1.13  christos {"xxaesencp",	XX3M(60,194,0),XX3AES_MASK,   PPCVSXF, PPCVLE,		{XTP, XA5p, XB5p, AESM}},
   9585  1.13  christos {"xxaes128decp",XX3M(60,202,0),XX3AESM_MASK,  PPCVSXF, PPCVLE|EXT,	{XTP, XA5p, XB5p}},
   9586   1.7  christos {"xxaes192decp",XX3M(60,202,1),XX3AESM_MASK,  PPCVSXF, PPCVLE|EXT,	{XTP, XA5p, XB5p}},
   9587   1.7  christos {"xxaes256decp",XX3M(60,202,2),XX3AESM_MASK,  PPCVSXF, PPCVLE|EXT,	{XTP, XA5p, XB5p}},
   9588   1.7  christos {"xxaesdecp",	XX3M(60,202,0),XX3AES_MASK,   PPCVSXF, PPCVLE,		{XTP, XA5p, XB5p, AESM}},
   9589   1.7  christos 
   9590   1.7  christos {"xvcvspuxds",	XX2(60,392),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9591   1.7  christos {"xvcvdpsp",	XX2(60,393),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9592  1.11  christos {"xvminsp",	XX3(60,200),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9593   1.7  christos {"xvnmaddmsp",	XX3(60,201),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9594   1.7  christos {"xvcvspsxds",	XX2(60,408),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9595  1.13  christos {"xvabssp",	XX2(60,409),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9596  1.13  christos {"xvmovsp",	XX3(60,208),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9597  1.13  christos {"xvcpsgnsp",	XX3(60,208),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9598  1.13  christos {"xvnmsubasp",	XX3(60,209),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9599  1.13  christos 
   9600  1.13  christos {"xxaes128genlkp",XX2M(60,420,0),XX2AESM_MASK, PPCVSXF, PPCVLE|EXT,	{XTP, XB5p}},
   9601   1.7  christos {"xxaes192genlkp",XX2M(60,420,1),XX2AESM_MASK, PPCVSXF, PPCVLE|EXT,	{XTP, XB5p}},
   9602   1.7  christos {"xxaes256genlkp",XX2M(60,420,2),XX2AESM_MASK, PPCVSXF, PPCVLE|EXT,	{XTP, XB5p}},
   9603   1.7  christos {"xxaesgenlkp",   XX2M(60,420,0),XX2AES_MASK,  PPCVSXF, PPCVLE,		{XTP, XB5p, AESM}},
   9604   1.7  christos 
   9605   1.7  christos {"xvcvuxdsp",	XX2(60,424),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9606  1.13  christos {"xvnabssp",	XX2(60,425),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9607  1.13  christos {"xvtstdcsp",	XX2(60,426),  XX2DCMXS_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, DCMXS}},
   9608  1.13  christos {"xviexpsp",	XX3(60,216),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9609  1.13  christos {"xvnmsubmsp",	XX3(60,217),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9610  1.13  christos 
   9611   1.7  christos {"xxgfmul128gcm",XX3GF(60,26,3,0),  XX3_MASK,	PPCVSXF, PPCVLE|EXT,	{XT6, XA6, XB6}},
   9612   1.7  christos {"xxgfmul128xts",XX3GF(60,26,3,1),  XX3_MASK,	PPCVSXF, PPCVLE|EXT,	{XT6, XA6, XB6}},
   9613   1.7  christos {"xxgfmul128",	 XX3GF(60,26,3,0),  XX3GF_MASK, PPCVSXF, PPCVLE,	{XT6, XA6, XB6, PGF1}},
   9614   1.7  christos 
   9615  1.12  christos {"xvcvsxdsp",	XX2(60,440),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9616   1.7  christos {"xvnegsp",	XX2(60,441),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9617   1.7  christos {"xvmaxdp",	XX3(60,224),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9618  1.11  christos {"xvnmaddadp",	XX3(60,225),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9619  1.11  christos {"dmxxextfdmr512",XX3(60,226),	XX3DMR_MASK, FUTURE,	PPCVLE,		{XA5p, XB5p, DMR, P1}},
   9620   1.7  christos {"xvcvdpuxds",	XX2(60,456),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9621   1.7  christos {"xvcvspdp",	XX2(60,457),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9622   1.7  christos {"xxgenpcvbm",	X(60,916),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9623  1.12  christos {"xxgenpcvhm",	X(60,917),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9624   1.7  christos {"xsiexpdp",	X(60,918),	XX1_MASK,    PPCVSX3,	PPCVLE,		{XT6, RA, RB}},
   9625   1.7  christos {"xvmindp",	XX3(60,232),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9626  1.11  christos {"xvnmaddmdp",	XX3(60,233),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9627  1.11  christos {"dmxxinstdmr512",XX3(60,234),	XX3DMR_MASK, FUTURE,	PPCVLE,		{DMR, XA5p, XB5p,P1}},
   9628   1.7  christos {"xvcvdpsxds",	XX2(60,472),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9629   1.7  christos {"xvabsdp",	XX2(60,473),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9630  1.11  christos {"xxgenpcvwm",	X(60,948),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9631   1.7  christos {"xxgenpcvdm",	X(60,949),	XX1_MASK,    POWER10,	PPCVLE,		{XT6, VB, UIMM}},
   9632   1.7  christos {"xvxexpdp",	XX2VA(60,475,0),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9633   1.7  christos {"xvxsigdp",	XX2VA(60,475,1),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9634   1.7  christos {"xvtlsbb",	XX2VA(60,475,2),XX2BF_MASK,  POWER10,	PPCVLE,		{BF, XB6}},
   9635  1.11  christos {"xxbrh",	XX2VA(60,475,7),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9636  1.11  christos {"xvxexpsp",	XX2VA(60,475,8),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9637   1.7  christos {"xvxsigsp",	XX2VA(60,475,9),XX2_MASK,    PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9638   1.7  christos {"xxbrw",	XX2VA(60,475,15),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9639   1.7  christos {"xvcvbf16spn",	XX2VA(60,475,16),XX2_MASK,   PPCVSX4,	PPCVLE,		{XT6, XB6}},
   9640   1.7  christos {"xvcvspbf16",	XX2VA(60,475,17),XX2_MASK,   PPCVSX4,	PPCVLE,		{XT6, XB6}},
   9641  1.11  christos {"xxbrd",	XX2VA(60,475,23),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9642   1.7  christos {"xvcvhpsp",	XX2VA(60,475,24),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9643   1.7  christos {"xvcvsphp",	XX2VA(60,475,25),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9644  1.12  christos {"xxbrq",	XX2VA(60,475,31),XX2_MASK,   PPCVSX3,	PPCVLE,		{XT6, XB6}},
   9645  1.12  christos {"xvmovdp",	XX3(60,240),	XX3_MASK,    PPCVSX,	PPCVLE|EXT,	{XT6, XAB6}},
   9646   1.7  christos {"xvcpsgndp",	XX3(60,240),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9647   1.7  christos {"xvnmsubadp",	XX3(60,241),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9648   1.7  christos {"dmxxextfdmr256",XX2(60,484),	XX2DMR_MASK, FUTURE,	PPCVLE,		{XB5p, DMR, P2}},
   9649   1.7  christos {"dmxxinstdmr256",XX2(60,485),	XX2DMR_MASK, FUTURE,	PPCVLE,		{DMR, XB5p, P2}},
   9650   1.7  christos {"xvcvuxddp",	XX2(60,488),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9651   1.7  christos {"xvnabsdp",	XX2(60,489),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9652   1.7  christos {"xvtstdcdp",	XX2(60,490),  XX2DCMXS_MASK, PPCVSX3,	PPCVLE,		{XT6, XB6, DCMXS}},
   9653   1.7  christos {"xviexpdp",	XX3(60,248),	XX3_MASK,    PPCVSX3,	PPCVLE,		{XT6, XA6, XB6}},
   9654   1.7  christos {"xvnmsubmdp",	XX3(60,249),	XX3_MASK,    PPCVSX,	PPCVLE,		{XT6, XA6, XB6}},
   9655   1.7  christos {"xvcvsxddp",	XX2(60,504),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9656   1.7  christos {"xvnegdp",	XX2(60,505),	XX2_MASK,    PPCVSX,	PPCVLE,		{XT6, XB6}},
   9657   1.7  christos 
   9658   1.7  christos {"psq_st",	OP(60),		OP_MASK,     PPCPS,	PPCVLE,		{FRS,PSD,RA,PSW,PSQ}},
   9659   1.7  christos {"stfq",	OP(60),		OP_MASK,     POWER2,	PPCVLE,		{FRS, D, RA}},
   9660   1.7  christos 
   9661   1.8  christos {"lxv",		DQX(61,1),	DQX_MASK,    PPCVSX3,	PPCVLE,		{XTQ6, DQ, RA0}},
   9662   1.7  christos {"stxv",	DQX(61,5),	DQX_MASK,    PPCVSX3,	PPCVLE,		{XSQ6, DQ, RA0}},
   9663   1.7  christos {"stxsd",	DSO(61,2),	DS_MASK,     PPCVSX3,	PPCVLE,		{VS, DS, RA0}},
   9664   1.7  christos {"stxssp",	DSO(61,3),	DS_MASK,     PPCVSX3,	PPCVLE,		{VS, DS, RA0}},
   9665   1.7  christos {"stfdp",	OP(61),	     OP_MASK|Q_MASK, POWER6,	POWER7|PPCVLE,	{FRSp, DS, RA0}},
   9666   1.7  christos {"psq_stu",	OP(61),		OP_MASK,     PPCPS,	PPCVLE,		{FRS,PSD,RA,PSW,PSQ}},
   9667   1.8  christos {"stfqu",	OP(61),		OP_MASK,     POWER2,	PPCVLE,		{FRS, D, RA}},
   9668   1.7  christos 
   9669   1.7  christos {"std",		DSO(62,0),	DS_MASK,     PPC64,	PPCVLE,		{RS, DS, RA0}},
   9670   1.7  christos {"stdu",	DSO(62,1),	DS_MASK,     PPC64,	PPCVLE,		{RS, DS, RAS}},
   9671   1.8  christos {"stq",		DSO(62,2),   DS_MASK|Q_MASK, POWER4,	PPC476|PPCVLE,	{RSQ, DS, RA0}},
   9672   1.8  christos 
   9673   1.7  christos {"fcmpu",	X(63,0),	XBF_MASK,    COM,	PPCEFS|PPCVLE,	{BF, FRA, FRB}},
   9674   1.8  christos 
   9675   1.8  christos {"daddq",	XRC(63,2,0),  X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9676   1.7  christos {"daddq.",	XRC(63,2,1),  X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9677   1.7  christos 
   9678   1.7  christos {"dquaq",	ZRC(63,3,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp, RMC}},
   9679   1.7  christos {"dquaq.",	ZRC(63,3,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp, RMC}},
   9680   1.7  christos 
   9681   1.7  christos {"xsaddqp",	XRC(63,4,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9682   1.7  christos {"xsaddqpo",	XRC(63,4,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9683   1.7  christos 
   9684   1.7  christos {"xsrqpi",	ZRC(63,5,0),	Z2_MASK,     PPCVSX3,	PPCVLE,		{R, VD, VB, RMC}},
   9685   1.7  christos {"xsrqpix",	ZRC(63,5,1),	Z2_MASK,     PPCVSX3,	PPCVLE,		{R, VD, VB, RMC}},
   9686   1.7  christos 
   9687   1.7  christos {"fcpsgn",	XRC(63,8,0),	X_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FRT, FRA, FRB}},
   9688   1.7  christos {"fcpsgn.",	XRC(63,8,1),	X_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FRT, FRA, FRB}},
   9689   1.7  christos 
   9690   1.7  christos {"frsp",	XRC(63,12,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9691   1.7  christos {"frsp.",	XRC(63,12,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9692   1.7  christos 
   9693   1.7  christos {"fctiw",	XRC(63,14,0),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9694   1.7  christos {"fcir",	XRC(63,14,0),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9695   1.7  christos {"fctiw.",	XRC(63,14,1),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9696   1.7  christos {"fcir.",	XRC(63,14,1),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9697   1.7  christos 
   9698   1.7  christos {"fctiwz",	XRC(63,15,0),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9699   1.7  christos {"fcirz",	XRC(63,15,0),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9700   1.7  christos {"fctiwz.",	XRC(63,15,1),	XRA_MASK,    PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9701   1.7  christos {"fcirz.",	XRC(63,15,1),	XRA_MASK,    PWR2COM,	PPCVLE,		{FRT, FRB}},
   9702   1.7  christos 
   9703   1.7  christos {"fdiv",	A(63,18,0),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9704   1.7  christos {"fd",		A(63,18,0),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9705   1.7  christos {"fdiv.",	A(63,18,1),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9706   1.7  christos {"fd.",		A(63,18,1),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9707   1.7  christos 
   9708   1.7  christos {"fsub",	A(63,20,0),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9709   1.7  christos {"fs",		A(63,20,0),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9710   1.7  christos {"fsub.",	A(63,20,1),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9711   1.7  christos {"fs.",		A(63,20,1),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9712   1.7  christos 
   9713   1.7  christos {"fadd",	A(63,21,0),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9714   1.7  christos {"fa",		A(63,21,0),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9715   1.7  christos {"fadd.",	A(63,21,1),	AFRC_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRB}},
   9716   1.7  christos {"fa.",		A(63,21,1),	AFRC_MASK,   PWRCOM,	PPCVLE,		{FRT, FRA, FRB}},
   9717   1.7  christos 
   9718   1.7  christos {"fsqrt",	A(63,22,0),    AFRAFRC_MASK, PPCPWR2,	TITAN|PPCVLE,	{FRT, FRB}},
   9719   1.7  christos {"fsqrt.",	A(63,22,1),    AFRAFRC_MASK, PPCPWR2,	TITAN|PPCVLE,	{FRT, FRB}},
   9720   1.7  christos 
   9721   1.7  christos {"fsel",	A(63,23,0),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9722   1.7  christos {"fsel.",	A(63,23,1),	A_MASK,	     PPC,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9723   1.7  christos 
   9724   1.7  christos {"fre",		A(63,24,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9725   1.7  christos {"fre",		A(63,24,0),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9726   1.7  christos {"fre.",	A(63,24,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9727   1.7  christos {"fre.",	A(63,24,1),   AFRALFRC_MASK, POWER5,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9728   1.7  christos 
   9729   1.7  christos {"fmul",	A(63,25,0),	AFRB_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9730   1.7  christos {"fm",		A(63,25,0),	AFRB_MASK,   PWRCOM,	PPCVLE|PPCVLE,	{FRT, FRA, FRC}},
   9731   1.7  christos {"fmul.",	A(63,25,1),	AFRB_MASK,   PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC}},
   9732   1.7  christos {"fm.",		A(63,25,1),	AFRB_MASK,   PWRCOM,	PPCVLE|PPCVLE,	{FRT, FRA, FRC}},
   9733   1.7  christos 
   9734   1.7  christos {"frsqrte",	A(63,26,0),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9735   1.7  christos {"frsqrte",	A(63,26,0),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9736   1.7  christos {"frsqrte.",	A(63,26,1),   AFRAFRC_MASK,  POWER7,	PPCVLE,		{FRT, FRB}},
   9737   1.7  christos {"frsqrte.",	A(63,26,1),   AFRALFRC_MASK, PPC,	POWER7|PPCVLE,	{FRT, FRB, A_L}},
   9738   1.7  christos 
   9739   1.7  christos {"fmsub",	A(63,28,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9740   1.7  christos {"fms",		A(63,28,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9741   1.7  christos {"fmsub.",	A(63,28,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9742   1.7  christos {"fms.",	A(63,28,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9743   1.7  christos 
   9744   1.7  christos {"fmadd",	A(63,29,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9745   1.7  christos {"fma",		A(63,29,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9746   1.7  christos {"fmadd.",	A(63,29,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9747   1.7  christos {"fma.",	A(63,29,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9748   1.7  christos 
   9749   1.7  christos {"fnmsub",	A(63,30,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9750   1.7  christos {"fnms",	A(63,30,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9751   1.7  christos {"fnmsub.",	A(63,30,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9752   1.7  christos {"fnms.",	A(63,30,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9753   1.7  christos 
   9754   1.7  christos {"fnmadd",	A(63,31,0),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9755   1.7  christos {"fnma",	A(63,31,0),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9756   1.7  christos {"fnmadd.",	A(63,31,1),	A_MASK,	     PPCCOM,	PPCEFS|PPCVLE,	{FRT, FRA, FRC, FRB}},
   9757   1.8  christos {"fnma.",	A(63,31,1),	A_MASK,	     PWRCOM,	PPCVLE,		{FRT, FRA, FRC, FRB}},
   9758   1.8  christos 
   9759   1.7  christos {"fcmpo",	X(63,32),	XBF_MASK,    COM,	PPCEFS|PPCVLE,	{BF, FRA, FRB}},
   9760   1.8  christos 
   9761   1.8  christos {"dmulq",	XRC(63,34,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9762   1.7  christos {"dmulq.",	XRC(63,34,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9763   1.7  christos 
   9764   1.7  christos {"drrndq",	ZRC(63,35,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp, RMC}},
   9765   1.7  christos {"drrndq.",	ZRC(63,35,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp, RMC}},
   9766   1.7  christos 
   9767   1.7  christos {"xsmulqp",	XRC(63,36,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9768  1.10  christos {"xsmulqpo",	XRC(63,36,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9769  1.10  christos 
   9770   1.7  christos {"xsrqpxp",	Z(63,37),	Z2_MASK,     PPCVSX3,	PPCVLE,		{R, VD, VB, RMC}},
   9771   1.7  christos 
   9772   1.7  christos {"mtfsb1",	XRC(63,38,0),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9773   1.7  christos {"mtfsb1.",	XRC(63,38,1),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9774   1.7  christos 
   9775   1.7  christos {"fneg",	XRC(63,40,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9776   1.8  christos {"fneg.",	XRC(63,40,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9777   1.8  christos 
   9778   1.7  christos {"mcrfs",      X(63,64), XRB_MASK|(3<<21)|(3<<16), COM,	PPCVLE,		{BF, BFA}},
   9779   1.8  christos 
   9780   1.8  christos {"dscliq",	ZRC(63,66,0), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9781   1.7  christos {"dscliq.",	ZRC(63,66,1), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9782  1.11  christos 
   9783  1.11  christos {"dquaiq",	ZRC(63,67,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{TE, FRTp, FRBp, RMC}},
   9784  1.10  christos {"dquaiq.",	ZRC(63,67,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{TE, FRTp, FRBp, RMC}},
   9785  1.10  christos 
   9786   1.7  christos {"xscmpeqqp",	X(63,68),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9787   1.7  christos 
   9788   1.7  christos {"mtfsb0",	XRC(63,70,0),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9789   1.7  christos {"mtfsb0.",	XRC(63,70,1),	XRARB_MASK,  COM,	PPCVLE,		{BTF}},
   9790   1.8  christos 
   9791   1.8  christos {"fmr",		XRC(63,72,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9792   1.7  christos {"fmr.",	XRC(63,72,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9793   1.8  christos 
   9794   1.8  christos {"dscriq",	ZRC(63,98,0), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9795   1.7  christos {"dscriq.",	ZRC(63,98,1), Z_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, SH16}},
   9796   1.7  christos 
   9797   1.7  christos {"drintxq",	ZRC(63,99,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9798   1.7  christos {"drintxq.",	ZRC(63,99,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9799   1.7  christos 
   9800   1.7  christos {"xscpsgnqp",	X(63,100),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9801   1.7  christos 
   9802   1.7  christos {"ftdiv",	X(63,128),	XBF_MASK,    POWER7,	PPCVLE,		{BF, FRA, FRB}},
   9803   1.7  christos 
   9804   1.7  christos {"dcmpoq",	X(63,130),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, FRBp}},
   9805   1.7  christos 
   9806   1.7  christos {"xscmpoqp",	X(63,132),	XBF_MASK,    PPCVSX3,	PPCVLE,		{BF, VA, VB}},
   9807   1.7  christos 
   9808   1.7  christos {"mtfsfi",  XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
   9809   1.7  christos {"mtfsfi",  XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
   9810   1.7  christos {"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
   9811   1.7  christos {"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
   9812   1.7  christos 
   9813   1.7  christos {"fnabs",	XRC(63,136,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9814   1.7  christos {"fnabs.",	XRC(63,136,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9815   1.7  christos 
   9816   1.7  christos {"fctiwu",	XRC(63,142,0),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9817   1.7  christos {"fctiwu.",	XRC(63,142,1),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9818   1.7  christos {"fctiwuz",	XRC(63,143,0),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9819   1.7  christos {"fctiwuz.",	XRC(63,143,1),	XRA_MASK,    POWER7,	PPCVLE,		{FRT, FRB}},
   9820   1.7  christos 
   9821   1.7  christos {"ftsqrt",	X(63,160),	XBF_MASK|FRA_MASK, POWER7, PPCVLE,	{BF, FRB}},
   9822   1.7  christos 
   9823   1.7  christos {"dtstexq",	X(63,162),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, FRBp}},
   9824  1.11  christos 
   9825  1.11  christos {"xscmpexpqp",	X(63,164),	XBF_MASK,    PPCVSX3,	PPCVLE,		{BF, VA, VB}},
   9826  1.11  christos 
   9827   1.7  christos {"dtstdcq",	Z(63,194),	Z_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, DCM}},
   9828   1.7  christos 
   9829   1.8  christos {"xscmpgeqp",	X(63,196),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9830   1.8  christos 
   9831   1.7  christos {"dtstdgq",	Z(63,226),	Z_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, DGM}},
   9832  1.11  christos 
   9833  1.11  christos {"drintnq",	ZRC(63,227,0), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9834   1.8  christos {"drintnq.",	ZRC(63,227,1), Z2_MASK|Q_MASK, POWER6,	PPCVLE,		{R, FRTp, FRBp, RMC}},
   9835   1.8  christos 
   9836   1.7  christos {"xscmpgtqp",	X(63,228),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9837   1.7  christos 
   9838   1.7  christos {"dctqpq",	XRC(63,258,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9839   1.7  christos {"dctqpq.",	XRC(63,258,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9840   1.7  christos 
   9841   1.7  christos {"fabs",	XRC(63,264,0),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9842   1.7  christos {"fabs.",	XRC(63,264,1),	XRA_MASK,    COM,	PPCEFS|PPCVLE,	{FRT, FRB}},
   9843   1.8  christos 
   9844   1.8  christos {"dctfixq",	XRC(63,290,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9845   1.7  christos {"dctfixq.",	XRC(63,290,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9846   1.7  christos 
   9847   1.7  christos {"ddedpdq",	XRC(63,322,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{SP, FRTp, FRBp}},
   9848   1.7  christos {"ddedpdq.",	XRC(63,322,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{SP, FRTp, FRBp}},
   9849   1.7  christos 
   9850   1.7  christos {"dxexq",	XRC(63,354,0),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9851   1.7  christos {"dxexq.",	XRC(63,354,1),	X_MASK,	     POWER6,	PPCVLE,		{FRT, FRBp}},
   9852   1.7  christos 
   9853   1.7  christos {"xsmaddqp",	XRC(63,388,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9854   1.7  christos {"xsmaddqpo",	XRC(63,388,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9855   1.7  christos 
   9856   1.7  christos {"frin",	XRC(63,392,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9857   1.7  christos {"frin.",	XRC(63,392,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9858   1.7  christos 
   9859   1.7  christos {"xsmsubqp",	XRC(63,420,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9860   1.7  christos {"xsmsubqpo",	XRC(63,420,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9861   1.7  christos 
   9862   1.7  christos {"friz",	XRC(63,424,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9863   1.7  christos {"friz.",	XRC(63,424,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9864   1.7  christos 
   9865   1.7  christos {"xsnmaddqp",	XRC(63,452,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9866   1.7  christos {"xsnmaddqpo",	XRC(63,452,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9867   1.7  christos 
   9868   1.7  christos {"frip",	XRC(63,456,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9869   1.7  christos {"frip.",	XRC(63,456,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9870   1.7  christos 
   9871   1.7  christos {"xsnmsubqp",	XRC(63,484,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9872   1.7  christos {"xsnmsubqpo",	XRC(63,484,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9873   1.8  christos 
   9874   1.8  christos {"frim",	XRC(63,488,0),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9875   1.7  christos {"frim.",	XRC(63,488,1),	XRA_MASK,    POWER5,	PPCVLE,		{FRT, FRB}},
   9876   1.7  christos 
   9877   1.7  christos {"dsubq",	XRC(63,514,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9878   1.7  christos {"dsubq.",	XRC(63,514,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9879   1.8  christos 
   9880   1.8  christos {"xssubqp",	XRC(63,516,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9881   1.7  christos {"xssubqpo",	XRC(63,516,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9882   1.7  christos 
   9883   1.7  christos {"ddivq",	XRC(63,546,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9884   1.7  christos {"ddivq.",	XRC(63,546,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRAp, FRBp}},
   9885   1.7  christos 
   9886   1.7  christos {"xsdivqp",	XRC(63,548,0),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9887   1.7  christos {"xsdivqpo",	XRC(63,548,1),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9888   1.7  christos 
   9889   1.7  christos {"mffs",	XRC(63,583,0),	XRARB_MASK,  COM,	PPCEFS|PPCVLE,	{FRT}},
   9890   1.7  christos {"mffs.",	XRC(63,583,1),	XRARB_MASK,  COM,	PPCEFS|PPCVLE,	{FRT}},
   9891   1.7  christos 
   9892   1.7  christos {"mffsce",	XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE,	{FRT}},
   9893   1.7  christos {"mffscdrn",	XMMF(63,583,2,4), XMMF_MASK,         POWER9, PPCVLE,	{FRT, FRB}},
   9894   1.7  christos {"mffscdrni",	XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE,	{FRT, DRM}},
   9895   1.7  christos {"mffscrn",	XMMF(63,583,2,6), XMMF_MASK,         POWER9, PPCVLE,	{FRT, FRB}},
   9896   1.7  christos {"mffscrni",	XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE,	{FRT, RM}},
   9897   1.7  christos {"mffsl",	XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE,	{FRT}},
   9898   1.7  christos 
   9899   1.7  christos {"dcmpuq",	X(63,642),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRAp, FRBp}},
   9900   1.7  christos 
   9901   1.7  christos {"xscmpuqp",	X(63,644),	XBF_MASK,    PPCVSX3,	PPCVLE,		{BF, VA, VB}},
   9902  1.11  christos 
   9903  1.11  christos {"dtstsfq",	X(63,674),	X_MASK,	     POWER6,	PPCVLE,		{BF, FRA, FRBp}},
   9904   1.7  christos {"dtstsfiq",	X(63,675),	X_MASK|1<<22,POWER9,	PPCVLE,		{BF, UIM6, FRBp}},
   9905   1.7  christos 
   9906   1.7  christos {"xsmaxcqp",	X(63,676),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9907   1.7  christos 
   9908   1.7  christos {"xststdcqp",	X(63,708),	X_MASK,	     PPCVSX3,	PPCVLE,		{BF, VB, DCMX}},
   9909   1.7  christos 
   9910   1.7  christos {"mtfsf",	XFL(63,711,0),	XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FLM, FRB, XFL_L, W}},
   9911  1.11  christos {"mtfsf",	XFL(63,711,0),	XFL_MASK,    COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
   9912  1.11  christos {"mtfsf.",	XFL(63,711,1),	XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE,	{FLM, FRB, XFL_L, W}},
   9913   1.8  christos {"mtfsf.",	XFL(63,711,1),	XFL_MASK,    COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
   9914   1.8  christos 
   9915   1.7  christos {"xsmincqp",	X(63,740),	X_MASK,	     POWER10,	PPCVLE,		{VD, VA, VB}},
   9916   1.8  christos 
   9917   1.8  christos {"drdpq",	XRC(63,770,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRBp}},
   9918   1.7  christos {"drdpq.",	XRC(63,770,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRBp}},
   9919   1.7  christos 
   9920   1.7  christos {"dcffixq",	XRC(63,802,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9921   1.7  christos {"dcffixq.",	XRC(63,802,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRB}},
   9922   1.7  christos 
   9923   1.7  christos {"xsabsqp",	XVA(63,804,0),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9924   1.7  christos {"xsxexpqp",	XVA(63,804,2),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9925   1.7  christos {"xsnabsqp",	XVA(63,804,8),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9926   1.7  christos {"xsnegqp",	XVA(63,804,16),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9927   1.7  christos {"xsxsigqp",	XVA(63,804,18),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9928   1.7  christos {"xssqrtqp",	XVARC(63,804,27,0), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9929   1.7  christos {"xssqrtqpo",	XVARC(63,804,27,1), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9930   1.7  christos 
   9931   1.7  christos {"fctid",	XRC(63,814,0),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9932   1.7  christos {"fctid",	XRC(63,814,0),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9933   1.7  christos {"fctid.",	XRC(63,814,1),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9934   1.7  christos {"fctid.",	XRC(63,814,1),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9935   1.7  christos 
   9936   1.7  christos {"fctidz",	XRC(63,815,0),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9937   1.8  christos {"fctidz",	XRC(63,815,0),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9938   1.8  christos {"fctidz.",	XRC(63,815,1),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9939   1.7  christos {"fctidz.",	XRC(63,815,1),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9940  1.11  christos 
   9941   1.7  christos {"denbcdq",	XRC(63,834,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{S, FRTp, FRBp}},
   9942   1.7  christos {"denbcdq.",	XRC(63,834,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{S, FRTp, FRBp}},
   9943  1.11  christos 
   9944  1.11  christos {"xscvqpuqz",	XVA(63,836,0),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9945   1.7  christos {"xscvqpuwz",	XVA(63,836,1),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9946   1.7  christos {"xscvudqp",	XVA(63,836,2),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9947  1.11  christos {"xscvuqqp",	XVA(63,836,3),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9948   1.7  christos {"xscvqpsqz",	XVA(63,836,8),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9949   1.7  christos {"xscvqpswz",	XVA(63,836,9),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9950   1.7  christos {"xscvsdqp",	XVA(63,836,10),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9951   1.7  christos {"xscvsqqp",	XVA(63,836,11),	XVA_MASK,    POWER10,	PPCVLE,		{VD, VB}},
   9952   1.7  christos {"xscvqpudz",	XVA(63,836,17),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9953   1.7  christos {"xscvqpdp",	XVARC(63,836,20,0), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9954   1.7  christos {"xscvqpdpo",	XVARC(63,836,20,1), XVA_MASK, PPCVSX3,	PPCVLE,		{VD, VB}},
   9955   1.7  christos {"xscvdpqp",	XVA(63,836,22),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9956   1.7  christos {"xscvqpsdz",	XVA(63,836,25),	XVA_MASK,    PPCVSX3,	PPCVLE,		{VD, VB}},
   9957   1.7  christos 
   9958   1.7  christos {"fmrgow",	X(63,838),	X_MASK,	     PPCVSX2,	PPCVLE,		{FRT, FRA, FRB}},
   9959   1.7  christos 
   9960   1.7  christos {"fcfid",	XRC(63,846,0),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9961   1.8  christos {"fcfid",	XRC(63,846,0),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9962   1.8  christos {"fcfid.",	XRC(63,846,1),	XRA_MASK,    PPC64,	PPCVLE,		{FRT, FRB}},
   9963   1.7  christos {"fcfid.",	XRC(63,846,1),	XRA_MASK,    PPC476,	PPCVLE,		{FRT, FRB}},
   9964   1.7  christos 
   9965   1.7  christos {"diexq",	XRC(63,866,0), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp}},
   9966   1.7  christos {"diexq.",	XRC(63,866,1), X_MASK|Q_MASK, POWER6,	PPCVLE,		{FRTp, FRA, FRBp}},
   9967   1.7  christos 
   9968   1.1     skrll {"xsiexpqp",	X(63,868),	X_MASK,	     PPCVSX3,	PPCVLE,		{VD, VA, VB}},
   9969   1.7  christos 
   9970   1.7  christos {"fctidu",	XRC(63,942,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9971   1.1     skrll {"fctidu.",	XRC(63,942,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9972   1.7  christos 
   9973   1.5  christos {"fctiduz",	XRC(63,943,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9974   1.7  christos {"fctiduz.",	XRC(63,943,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9975   1.7  christos 
   9976  1.11  christos {"fmrgew",	X(63,966),	X_MASK,	     PPCVSX2,	PPCVLE,		{FRT, FRA, FRB}},
   9977  1.11  christos 
   9978  1.11  christos {"fcfidu",	XRC(63,974,0),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9979   1.1     skrll {"fcfidu.",	XRC(63,974,1),	XRA_MASK, POWER7|PPCA2,	PPCVLE,		{FRT, FRB}},
   9980   1.1     skrll 
   9981  1.12  christos {"dcffixqq",	XVA(63,994,0),	XVA_MASK,    POWER10,	PPCVLE,		{FRTp, VB}},
   9982   1.1     skrll {"dctfixqq",	XVA(63,994,1),	XVA_MASK,    POWER10,	PPCVLE,		{VD, FRBp}},
   9983  1.10  christos };
   9984  1.10  christos 
   9985  1.10  christos const unsigned int powerpc_num_opcodes = ARRAY_SIZE (powerpc_opcodes);
   9986  1.10  christos 
   9987  1.10  christos /* The opcode table for 8-byte prefix instructions.
   9989  1.11  christos 
   9990  1.12  christos    The format of this opcode table is the same as the main opcode table.  */
   9991  1.12  christos 
   9992  1.12  christos const struct powerpc_opcode prefix_opcodes[] = {
   9993  1.13  christos {"pnop",	  PMRR,		       PREFIX_MASK,	POWER10, 0,	{0}},
   9994  1.13  christos {"pli",		  PMLS|OP(14),	       P_DRAPCREL_MASK,	POWER10, EXT,	{RT, SI34}},
   9995  1.13  christos {"pla",		  PMLS|OP(14),	       P_D_MASK,	POWER10, EXT,	{RT, D34, PRA0, PCREL1}},
   9996  1.11  christos {"paddi",	  PMLS|OP(14),	       P_D_MASK,	POWER10, 0,	{RT, RA0, SI34, PCREL}},
   9997  1.11  christos {"psubi",	  PMLS|OP(14),	       P_D_MASK,	POWER10, EXT,	{RT, RA0, NSI34, PCREL}},
   9998  1.11  christos {"plis",	  PMLS|OP(15),	       P_DRAPCREL_SI32_MASK,	FUTURE,  EXT,	{RT, SI32}},
   9999  1.11  christos {"paddis",	  PMLS|OP(15),	       P_D_SI32_MASK,		FUTURE,  0,	{RT, RA0, SI32, PCREL}},
   10000  1.11  christos {"psubis",	  PMLS|OP(15),	       P_D_SI32_MASK,		FUTURE,  EXT,	{RT, RA0, NSI32, PCREL}},
   10001  1.11  christos {"xxsplti32dx",	  P8RR|VSOP(32,0),     P_VSI_MASK,	POWER10, 0,	{XTS, IX, IMM32}},
   10002  1.11  christos {"xxspltidp",	  P8RR|VSOP(32,2),     P_VS_MASK,	POWER10, 0,	{XTS, IMM32}},
   10003  1.11  christos {"xxspltiw",	  P8RR|VSOP(32,3),     P_VS_MASK,	POWER10, 0,	{XTS, IMM32}},
   10004  1.11  christos {"plwz",	  PMLS|OP(32),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   10005  1.11  christos {"xxblendvb",	  P8RR|XX4(33,0),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   10006  1.11  christos {"xxblendvh",	  P8RR|XX4(33,1),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   10007  1.11  christos {"xxblendvw",	  P8RR|XX4(33,2),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   10008  1.11  christos {"xxblendvd",	  P8RR|XX4(33,3),      P_XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6}},
   10009  1.11  christos {"xxpermx",	  P8RR|XX4(34,0),      P_UXX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6, UIM3}},
   10010  1.11  christos {"xxeval",	  P8RR|XX4(34,1),      P_U8XX4_MASK,	POWER10, 0,	{XT6, XA6, XB6, XC6, UIM8}},
   10011  1.11  christos {"plbz",	  PMLS|OP(34),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   10012  1.11  christos {"pstw",	  PMLS|OP(36),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   10013  1.11  christos {"pstb",	  PMLS|OP(38),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   10014  1.11  christos {"plhz",	  PMLS|OP(40),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   10015  1.11  christos {"plwa",	  P8LS|OP(41),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   10016  1.11  christos {"plxsd",	  P8LS|OP(42),	       P_D_MASK,	POWER10, 0,	{VD, D34, PRA0, PCREL}},
   10017  1.11  christos {"plha",	  PMLS|OP(42),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   10018  1.11  christos {"plxssp",	  P8LS|OP(43),	       P_D_MASK,	POWER10, 0,	{VD, D34, PRA0, PCREL}},
   10019  1.11  christos {"psth",	  PMLS|OP(44),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   10020  1.11  christos {"pstxsd",	  P8LS|OP(46),	       P_D_MASK,	POWER10, 0,	{VS, D34, PRA0, PCREL}},
   10021  1.11  christos {"pstxssp",	  P8LS|OP(47),	       P_D_MASK,	POWER10, 0,	{VS, D34, PRA0, PCREL}},
   10022  1.11  christos {"plfs",	  PMLS|OP(48),	       P_D_MASK,	POWER10, 0,	{FRT, D34, PRA0, PCREL}},
   10023  1.11  christos {"plxv",	  P8LS|OP(50),	       P_D_MASK&~OP(1),	POWER10, 0,	{XTOP, D34, PRA0, PCREL}},
   10024  1.11  christos {"plfd",	  PMLS|OP(50),	       P_D_MASK,	POWER10, 0,	{FRT, D34, PRA0, PCREL}},
   10025  1.11  christos {"pstfs",	  PMLS|OP(52),	       P_D_MASK,	POWER10, 0,	{FRS, D34, PRA0, PCREL}},
   10026  1.12  christos {"pstxv",	  P8LS|OP(54),	       P_D_MASK&~OP(1),	POWER10, 0,	{XTOP, D34, PRA0, PCREL}},
   10027  1.11  christos {"pstfd",	  PMLS|OP(54),	       P_D_MASK,	POWER10, 0,	{FRS, D34, PRA0, PCREL}},
   10028  1.12  christos {"plq",		  P8LS|OP(56),	       P_D_MASK,	POWER10, 0,	{RTQ, D34, PRAQ, PCREL}},
   10029  1.11  christos {"pld",		  P8LS|OP(57),	       P_D_MASK,	POWER10, 0,	{RT, D34, PRA0, PCREL}},
   10030  1.12  christos {"plxvp",	  P8LS|OP(58),	       P_D_MASK,	POWER10, 0,	{XTP, D34, PRA0, PCREL}},
   10031  1.12  christos {"pmdmxvi8ger4pp",PMMIRR|XX3(59,2),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   10032  1.12  christos {"pmxvi8ger4pp",  PMMIRR|XX3(59,2),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   10033  1.11  christos {"pmdmxvi8ger4",  PMMIRR|XX3(59,3),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   10034  1.12  christos {"pmxvi8ger4",	  PMMIRR|XX3(59,3),    P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   10035  1.11  christos {"pmdmxvi8gerx4pp",PMMIRR|XX3(59,10),  P_GERX4_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
   10036  1.12  christos {"pmdmxvi8gerx4", PMMIRR|XX3(59,11),   P_GERX4_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
   10037  1.11  christos {"pmdmxvf16ger2pp",PMMIRR|XX3(59,18),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10038  1.12  christos {"pmxvf16ger2pp", PMMIRR|XX3(59,18),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10039  1.11  christos {"pmdmxvf16ger2", PMMIRR|XX3(59,19),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10040  1.12  christos {"pmxvf16ger2",	  PMMIRR|XX3(59,19),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10041  1.11  christos {"pmdmxvf32gerpp",PMMIRR|XX3(59,26),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10042  1.12  christos {"pmxvf32gerpp",  PMMIRR|XX3(59,26),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10043  1.11  christos {"pmdmxvf32ger",  PMMIRR|XX3(59,27),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10044  1.12  christos {"pmxvf32ger",	  PMMIRR|XX3(59,27),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10045  1.11  christos {"pmdmxvi4ger8pp",PMMIRR|XX3(59,34),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   10046  1.12  christos {"pmxvi4ger8pp",  PMMIRR|XX3(59,34),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   10047  1.11  christos {"pmdmxvi4ger8",  PMMIRR|XX3(59,35),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   10048  1.12  christos {"pmxvi4ger8",	  PMMIRR|XX3(59,35),   P_GER8_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK8}},
   10049  1.11  christos {"pmdmxvi16ger2spp",PMMIRR|XX3(59,42), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10050  1.12  christos {"pmxvi16ger2spp",PMMIRR|XX3(59,42),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10051  1.11  christos {"pmdmxvi16ger2s",PMMIRR|XX3(59,43),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10052  1.12  christos {"pmxvi16ger2s",  PMMIRR|XX3(59,43),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10053  1.11  christos {"pmdmxvbf16ger2pp",PMMIRR|XX3(59,50), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10054  1.12  christos {"pmxvbf16ger2pp",PMMIRR|XX3(59,50),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10055  1.11  christos {"pmdmxvbf16ger2",PMMIRR|XX3(59,51),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10056  1.12  christos {"pmxvbf16ger2",  PMMIRR|XX3(59,51),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10057  1.12  christos {"pmdmxvf64gerpp",PMMIRR|XX3(59,58),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10058  1.12  christos {"pmxvf64gerpp",  PMMIRR|XX3(59,58),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10059  1.12  christos {"pmdmxvf64ger",  PMMIRR|XX3(59,59),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10060  1.11  christos {"pmxvf64ger",	  PMMIRR|XX3(59,59),   P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10061  1.12  christos {"pmdmxvf16gerx2pp",PMMIRR|XX3(59,66), P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10062  1.11  christos {"pmdmxvf16gerx2",PMMIRR|XX3(59,67),   P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10063  1.12  christos {"pmdmxvbf16gerx2pp",PMMIRR|XX3(59,74),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10064  1.12  christos {"pmdmxvi16ger2", PMMIRR|XX3(59,75),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10065  1.11  christos {"pmxvi16ger2",   PMMIRR|XX3(59,75),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10066  1.12  christos {"pmdmxvf16ger2np",PMMIRR|XX3(59,82),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10067  1.12  christos {"pmxvf16ger2np", PMMIRR|XX3(59,82),   P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10068  1.12  christos {"pmdmxvf16gerx2np",PMMIRR|XX3(59,83), P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10069  1.11  christos {"pmdmxvf32gernp",PMMIRR|XX3(59,90),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10070  1.12  christos {"pmxvf32gernp",  PMMIRR|XX3(59,90),   P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10071  1.11  christos {"pmdmxvbf16gerx2",PMMIRR|XX3(59,91),  P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10072  1.12  christos {"pmdmxvi8gerx4spp",PMMIRR|XX3(59,98), P_GERX4_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK4}},
   10073  1.11  christos {"pmdmxvi8ger4spp",PMMIRR|XX3(59,99),  P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   10074  1.12  christos {"pmxvi8ger4spp", PMMIRR|XX3(59,99),   P_GER4_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK4}},
   10075  1.12  christos {"pmdmxvi16ger2pp",PMMIRR|XX3(59,107), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10076  1.11  christos {"pmxvi16ger2pp", PMMIRR|XX3(59,107),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10077  1.12  christos {"pmdmxvbf16ger2np",PMMIRR|XX3(59,114),P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10078  1.11  christos {"pmxvbf16ger2np",PMMIRR|XX3(59,114),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10079  1.12  christos {"pmdmxvbf16gerx2np",PMMIRR|XX3(59,115),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10080  1.12  christos {"pmdmxvf64gernp",PMMIRR|XX3(59,122),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10081  1.11  christos {"pmxvf64gernp",  PMMIRR|XX3(59,122),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10082  1.12  christos {"pmdmxvf16ger2pn",PMMIRR|XX3(59,146), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10083  1.11  christos {"pmxvf16ger2pn", PMMIRR|XX3(59,146),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10084  1.12  christos {"pmdmxvf16gerx2pn",PMMIRR|XX3(59,147),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10085  1.12  christos {"pmdmxvf32gerpn",PMMIRR|XX3(59,154),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10086  1.11  christos {"pmxvf32gerpn",  PMMIRR|XX3(59,154),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10087  1.12  christos {"pmdmxvbf16ger2pn",PMMIRR|XX3(59,178),P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10088  1.12  christos {"pmxvbf16ger2pn",PMMIRR|XX3(59,178),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10089  1.11  christos {"pmdmxvbf16gerx2pn",PMMIRR|XX3(59,179),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10090  1.12  christos {"pmdmxvf64gerpn",PMMIRR|XX3(59,186),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10091  1.11  christos {"pmxvf64gerpn",  PMMIRR|XX3(59,186),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10092  1.12  christos {"pmdmxvf16gerx2nn",PMMIRR|XX3(59,202),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10093  1.12  christos {"pmdmxvf16ger2nn",PMMIRR|XX3(59,210), P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10094  1.11  christos {"pmxvf16ger2nn", PMMIRR|XX3(59,210),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10095  1.12  christos {"pmdmxvf32gernn",PMMIRR|XX3(59,218),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10096  1.11  christos {"pmxvf32gernn",  PMMIRR|XX3(59,218),  P_GER_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK}},
   10097  1.11  christos {"pmdmxvbf16gerx2nn",PMMIRR|XX3(59,234),P_GERX2_MASK,	FUTURE,  0,	{DMR, XA5p, XB6, XMSK8, YMSK, PMSK2}},
   10098  1.11  christos {"pmdmxvbf16ger2nn",PMMIRR|XX3(59,242),P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10099  1.12  christos {"pmxvbf16ger2nn",PMMIRR|XX3(59,242),  P_GER2_MASK,	POWER10, 0,	{ACC, XA6a, XB6a, XMSK, YMSK, PMSK2}},
   10100  1.10  christos {"pmdmxvf64gernn",PMMIRR|XX3(59,250),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10101  1.10  christos {"pmxvf64gernn",  PMMIRR|XX3(59,250),  P_GER64_MASK,	POWER10, 0,	{ACC, XA6ap, XB6a, XMSK, YMSK2}},
   10102  1.12  christos {"pstq",	  P8LS|OP(60),	       P_D_MASK,	POWER10, 0,	{RSQ, D34, PRA0, PCREL}},
   10103  1.10  christos {"pstd",	  P8LS|OP(61),	       P_D_MASK,	POWER10, 0,	{RS, D34, PRA0, PCREL}},
   10104   1.4  christos {"pstxvp",	  P8LS|OP(62),	       P_D_MASK,	POWER10, 0,	{XSP, D34, PRA0, PCREL}},
   10105   1.4  christos };
   10106   1.4  christos 
   10107   1.4  christos const unsigned int prefix_num_opcodes = ARRAY_SIZE (prefix_opcodes);
   10108   1.4  christos 
   10109   1.7  christos /* The VLE opcode table.
   10111   1.7  christos 
   10112   1.7  christos    The format of this opcode table is the same as the main opcode table.  */
   10113   1.7  christos 
   10114   1.7  christos const struct powerpc_opcode vle_opcodes[] = {
   10115   1.7  christos {"se_illegal",	C(0),		C_MASK,		PPCVLE,	0,		{}},
   10116   1.7  christos {"se_isync",	C(1),		C_MASK,		PPCVLE,	0,		{}},
   10117   1.7  christos {"se_sc",	C(2),		C_MASK,		PPCVLE,	0,		{}},
   10118   1.7  christos {"se_blr",	C_LK(2,0),	C_LK_MASK,	PPCVLE,	0,		{}},
   10119  1.12  christos {"se_blrl",	C_LK(2,1),	C_LK_MASK,	PPCVLE,	0,		{}},
   10120  1.12  christos {"se_bctr",	C_LK(3,0),	C_LK_MASK,	PPCVLE,	0,		{}},
   10121  1.12  christos {"se_bctrl",	C_LK(3,1),	C_LK_MASK,	PPCVLE,	0,		{}},
   10122  1.12  christos {"se_rfi",	C(8),		C_MASK,		PPCVLE,	0,		{}},
   10123   1.7  christos {"se_rfci",	C(9),		C_MASK,		PPCVLE,	0,		{}},
   10124   1.8  christos {"se_rfdi",	C(10),		C_MASK,		PPCVLE,	0,		{}},
   10125   1.7  christos /* PPCRFMCI in the following does not enable the instruction for any
   10126   1.7  christos    PPC_OPCODE_RFMCI supporting cpu as vle_opcodes are all added to the
   10127   1.7  christos    assembler hash table or searched by the disassembler under control
   10128   1.7  christos    of PPC_OPCODE_VLE.  It's there to set apuinfo.  */
   10129   1.7  christos {"se_rfmci",	C(11),		C_MASK, PPCRFMCI|PPCVLE, 0,		{}},
   10130   1.7  christos {"se_rfgi",	C(12),		C_MASK,		PPCVLE,	0,		{}},
   10131   1.7  christos {"se_not",	SE_R(0,2),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10132   1.7  christos {"se_neg",	SE_R(0,3),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10133   1.7  christos {"se_mflr",	SE_R(0,8),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10134   1.7  christos {"se_mtlr",	SE_R(0,9),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10135   1.7  christos {"se_mfctr",	SE_R(0,10),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10136   1.7  christos {"se_mtctr",	SE_R(0,11),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10137   1.7  christos {"se_extzb",	SE_R(0,12),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10138   1.7  christos {"se_extsb",	SE_R(0,13),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10139   1.7  christos {"se_extzh",	SE_R(0,14),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10140   1.7  christos {"se_extsh",	SE_R(0,15),	SE_R_MASK,	PPCVLE,	0,		{RX}},
   10141   1.7  christos {"se_mr",	SE_RR(0,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10142   1.7  christos {"se_mtar",	SE_RR(0,2),	SE_RR_MASK,	PPCVLE,	0,		{ARX, RY}},
   10143   1.7  christos {"se_mfar",	SE_RR(0,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, ARY}},
   10144   1.7  christos {"se_add",	SE_RR(1,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10145   1.7  christos {"se_mullw",	SE_RR(1,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10146   1.7  christos {"se_sub",	SE_RR(1,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10147   1.8  christos {"se_subf",	SE_RR(1,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10148  1.12  christos {"se_cmp",	SE_RR(3,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10149  1.12  christos {"se_cmpl",	SE_RR(3,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10150  1.12  christos {"se_cmph",	SE_RR(3,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10151  1.12  christos {"se_cmphl",	SE_RR(3,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10152  1.12  christos 
   10153  1.12  christos /* by major opcode */
   10154  1.12  christos {"e_cmpi",	SCI8BF(6,0,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   10155  1.12  christos {"e_cmpwi",	SCI8BF(6,0,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   10156  1.12  christos {"e_cmpli",	SCI8BF(6,1,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   10157  1.12  christos {"e_cmplwi",	SCI8BF(6,1,21),	SCI8BF_MASK,	PPCVLE,	0,		{CRD32, RA, SCLSCI8}},
   10158  1.12  christos {"e_addi",	SCI8(6,16),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10159  1.12  christos {"e_subi",	SCI8(6,16),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8N}},
   10160  1.12  christos {"e_addi.",	SCI8(6,17),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10161  1.12  christos {"e_addic",	SCI8(6,18),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10162  1.12  christos {"e_subic",	SCI8(6,18),	SCI8_MASK,	PPCVLE,	EXT,		{RT, RA, SCLSCI8N}},
   10163  1.12  christos {"e_addic.",	SCI8(6,19),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10164  1.12  christos {"e_subic.",	SCI8(6,19),	SCI8_MASK,	PPCVLE,	EXT,		{RT, RA, SCLSCI8N}},
   10165  1.12  christos {"e_mulli",	SCI8(6,20),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10166  1.12  christos {"e_subfic",	SCI8(6,22),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10167  1.12  christos {"e_subfic.",	SCI8(6,23),	SCI8_MASK,	PPCVLE,	0,		{RT, RA, SCLSCI8}},
   10168  1.12  christos {"e_andi",	SCI8(6,24),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   10169  1.12  christos {"e_andi.",	SCI8(6,25),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   10170  1.12  christos {"e_nop",	SCI8(6,26),	0xffffffff,	PPCVLE,	EXT,		{0}},
   10171  1.12  christos {"e_ori",	SCI8(6,26),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   10172  1.12  christos {"e_ori.",	SCI8(6,27),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   10173  1.12  christos {"e_xori",	SCI8(6,28),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   10174  1.12  christos {"e_xori.",	SCI8(6,29),	SCI8_MASK,	PPCVLE,	0,		{RA, RS, SCLSCI8}},
   10175  1.12  christos {"e_lbzu",	OPVUP(6,0),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10176  1.12  christos {"e_lhau",	OPVUP(6,3),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10177  1.12  christos {"e_lhzu",	OPVUP(6,1),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10178  1.12  christos {"e_lmw",	OPVUP(6,8),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10179  1.12  christos {"e_lwzu",	OPVUP(6,2),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10180  1.12  christos {"e_stbu",	OPVUP(6,4),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10181  1.12  christos {"e_sthu",	OPVUP(6,5),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10182  1.12  christos {"e_stwu",	OPVUP(6,6),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10183  1.12  christos {"e_stmw",	OPVUP(6,9),	OPVUP_MASK,	PPCVLE,	0,		{RT, D8, RA0}},
   10184  1.12  christos {"e_lmvgprw",	OPVUPRT(6,16,0),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10185  1.12  christos {"e_ldmvgprw",	OPVUPRT(6,16,0),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10186  1.12  christos {"e_stmvgprw",	OPVUPRT(6,17,0),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10187  1.12  christos {"e_lmvsprw",	OPVUPRT(6,16,1),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10188  1.12  christos {"e_ldmvsprw",	OPVUPRT(6,16,1),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10189  1.12  christos {"e_stmvsprw",	OPVUPRT(6,17,1),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10190  1.12  christos {"e_lmvsrrw",	OPVUPRT(6,16,4),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10191  1.12  christos {"e_ldmvsrrw",	OPVUPRT(6,16,4),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10192  1.12  christos {"e_stmvsrrw",	OPVUPRT(6,17,4),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10193  1.12  christos {"e_lmvcsrrw",	OPVUPRT(6,16,5),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10194  1.12  christos {"e_ldmvcsrrw",	OPVUPRT(6,16,5),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10195  1.12  christos {"e_stmvcsrrw",	OPVUPRT(6,17,5),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10196  1.12  christos {"e_lmvdsrrw",	OPVUPRT(6,16,6),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10197  1.12  christos {"e_ldmvdsrrw",	OPVUPRT(6,16,6),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10198  1.12  christos {"e_stmvdsrrw",	OPVUPRT(6,17,6),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10199  1.12  christos {"e_lmvmcsrrw",	OPVUPRT(6,16,7),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10200  1.12  christos {"e_stmvmcsrrw",OPVUPRT(6,17,7),OPVUPRT_MASK,	PPCVLE,	0,		{D8, RA0}},
   10201  1.12  christos {"e_add16i",	OP(7),		OP_MASK,	PPCVLE,	0,		{RT, RA, SI}},
   10202  1.12  christos {"e_la",	OP(7),		OP_MASK,	PPCVLE,	EXT,		{RT, D, RA0}},
   10203  1.12  christos {"e_sub16i",	OP(7),		OP_MASK,	PPCVLE,	EXT,		{RT, RA, NSI}},
   10204  1.12  christos 
   10205  1.12  christos {"se_addi",	SE_IM5(8,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   10206  1.12  christos {"se_cmpli",	SE_IM5(8,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   10207  1.12  christos {"se_subi",	SE_IM5(9,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   10208  1.12  christos {"se_subi.",	SE_IM5(9,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, OIMM5}},
   10209  1.12  christos {"se_cmpi",	SE_IM5(10,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10210  1.12  christos {"se_bmaski",	SE_IM5(11,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10211  1.12  christos {"se_andi",	SE_IM5(11,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10212  1.12  christos 
   10213  1.12  christos {"e_lbz",	OP(12),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10214  1.12  christos {"e_stb",	OP(13),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10215  1.12  christos {"e_lha",	OP(14),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10216  1.12  christos 
   10217  1.12  christos {"se_srw",	SE_RR(16,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10218  1.12  christos {"se_sraw",	SE_RR(16,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10219  1.12  christos {"se_slw",	SE_RR(16,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10220  1.12  christos {"se_nop",	SE_RR(17,0),	0xffff,		PPCVLE,	EXT,		{0}},
   10221  1.12  christos {"se_or",	SE_RR(17,0),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10222  1.12  christos {"se_andc",	SE_RR(17,1),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10223  1.12  christos {"se_and",	SE_RR(17,2),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10224  1.12  christos {"se_and.",	SE_RR(17,3),	SE_RR_MASK,	PPCVLE,	0,		{RX, RY}},
   10225  1.12  christos {"se_li",	IM7(9),		IM7_MASK,	PPCVLE,	0,		{RX, UI7}},
   10226  1.12  christos 
   10227  1.12  christos {"e_lwz",	OP(20),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10228  1.12  christos {"e_stw",	OP(21),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10229  1.12  christos {"e_lhz",	OP(22),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10230  1.12  christos {"e_sth",	OP(23),		OP_MASK,	PPCVLE,	0,		{RT, D, RA0}},
   10231  1.12  christos 
   10232  1.12  christos {"se_bclri",	SE_IM5(24,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10233  1.12  christos {"se_bgeni",	SE_IM5(24,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10234  1.12  christos {"se_bseti",	SE_IM5(25,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10235  1.12  christos {"se_btsti",	SE_IM5(25,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10236  1.12  christos {"se_srwi",	SE_IM5(26,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10237  1.12  christos {"se_srawi",	SE_IM5(26,1),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10238  1.12  christos {"se_slwi",	SE_IM5(27,0),	SE_IM5_MASK,	PPCVLE,	0,		{RX, UI5}},
   10239  1.12  christos 
   10240  1.12  christos {"e_lis",	I16L(28,28),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10241  1.12  christos {"e_and2is.",	I16L(28,29),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10242  1.12  christos {"e_or2is",	I16L(28,26),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10243  1.12  christos {"e_and2i.",	I16L(28,25),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10244  1.12  christos {"e_or2i",	I16L(28,24),	I16L_MASK,	PPCVLE,	0,		{RD, VLEUIMML}},
   10245  1.12  christos {"e_cmphl16i",	IA16(28,23),	IA16_MASK,	PPCVLE,	0,		{RA, VLEUIMM}},
   10246  1.12  christos {"e_cmph16i",	IA16(28,22),	IA16_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10247  1.12  christos {"e_cmpl16i",	I16A(28,21),	I16A_MASK,	PPCVLE,	0,		{RA, VLEUIMM}},
   10248  1.12  christos {"e_mull2i",	I16A(28,20),	I16A_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10249  1.12  christos {"e_cmp16i",	IA16(28,19),	IA16_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10250  1.12  christos {"e_sub2is",	I16A(28,18),	I16A_MASK,	PPCVLE,	EXT,		{RA, VLENSIMM}},
   10251  1.12  christos {"e_add2is",	I16A(28,18),	I16A_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10252  1.12  christos {"e_sub2i.",	I16A(28,17),	I16A_MASK,	PPCVLE,	EXT,		{RA, VLENSIMM}},
   10253  1.12  christos {"e_add2i.",	I16A(28,17),	I16A_MASK,	PPCVLE,	0,		{RA, VLESIMM}},
   10254  1.12  christos {"e_li",	LI20(28,0),	LI20_MASK,	PPCVLE,	0,		{RT, IMM20}},
   10255  1.12  christos {"e_rlwimi",	M(29,0),	M_MASK,		PPCVLE,	0,		{RA, RS, SH, MB, ME}},
   10256  1.12  christos {"e_inslwi",	M(29,0),	M_MASK,		PPCVLE, EXT,		{RA, RS, ILWn, ILWb}},
   10257  1.12  christos {"e_insrwi",	M(29,0),	M_MASK,		PPCVLE, EXT,		{RA, RS, IRWn, IRWb}},
   10258  1.12  christos {"e_rotlwi",	MME(29,31,1),	MMBME_MASK,	PPCVLE, EXT,		{RA, RS, SH}},
   10259  1.12  christos {"e_rotrwi",	MME(29,31,1),	MMBME_MASK,	PPCVLE, EXT,		{RA, RS, RRWn}},
   10260  1.12  christos {"e_clrlwi",	MME(29,31,1),	MSHME_MASK,	PPCVLE, EXT,		{RA, RS, MB}},
   10261  1.12  christos {"e_clrrwi",	M(29,1),	MSHMB_MASK,	PPCVLE, EXT,		{RA, RS, CRWn}},
   10262  1.12  christos {"e_rlwinm",	M(29,1),	M_MASK,		PPCVLE,	0,		{RA, RS, SH, MBE, ME}},
   10263  1.12  christos {"e_extlwi",	M(29,1),	MMB_MASK,	PPCVLE, EXT,		{RA, RS, ELWn, SH}},
   10264  1.12  christos {"e_extrwi",	MME(29,31,1),	MME_MASK,	PPCVLE, EXT,		{RA, RS, ERWn, ERWb}},
   10265  1.12  christos {"e_clrlslwi",	M(29,1),	M_MASK,		PPCVLE, EXT,		{RA, RS, CSLWb, CSLWn}},
   10266  1.12  christos {"e_b",		BD24(30,0,0),	BD24_MASK,	PPCVLE,	0,		{B24}},
   10267  1.12  christos {"e_bl",	BD24(30,0,1),	BD24_MASK,	PPCVLE,	0,		{B24}},
   10268  1.12  christos {"e_bdnz",	EBD15(30,8,BO32DNZ,0),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10269  1.12  christos {"e_bdnzl",	EBD15(30,8,BO32DNZ,1),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10270  1.12  christos {"e_bdz",	EBD15(30,8,BO32DZ,0),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10271  1.12  christos {"e_bdzl",	EBD15(30,8,BO32DZ,1),	EBD15_MASK, PPCVLE, EXT,	{B15}},
   10272  1.12  christos {"e_bge",	EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10273  1.12  christos {"e_bgel",	EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10274  1.12  christos {"e_bnl",	EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10275  1.12  christos {"e_bnll",	EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10276  1.12  christos {"e_blt",	EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10277  1.12  christos {"e_bltl",	EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10278  1.12  christos {"e_bgt",	EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10279  1.12  christos {"e_bgtl",	EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10280  1.12  christos {"e_ble",	EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10281  1.12  christos {"e_blel",	EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10282  1.12  christos {"e_bng",	EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10283  1.12  christos {"e_bngl",	EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10284  1.12  christos {"e_bne",	EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10285  1.12  christos {"e_bnel",	EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10286  1.12  christos {"e_beq",	EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10287  1.12  christos {"e_beql",	EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10288  1.12  christos {"e_bso",	EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10289  1.12  christos {"e_bsol",	EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10290  1.12  christos {"e_bun",	EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10291  1.12  christos {"e_bunl",	EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10292  1.12  christos {"e_bns",	EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10293  1.12  christos {"e_bnsl",	EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10294  1.12  christos {"e_bnu",	EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10295  1.12  christos {"e_bnul",	EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, EXT,	{CRS,B15}},
   10296  1.12  christos {"e_bc",	BD15(30,8,0),	BD15_MASK,	PPCVLE,	0,		{BO32, BI32, B15}},
   10297  1.12  christos {"e_bcl",	BD15(30,8,1),	BD15_MASK,	PPCVLE,	0,		{BO32, BI32, B15}},
   10298  1.12  christos 
   10299  1.12  christos {"e_bf",	EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10300  1.12  christos {"e_bfl",	EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10301  1.12  christos {"e_bt",	EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10302  1.12  christos {"e_btl",	EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, EXT,		{BI32,B15}},
   10303  1.12  christos 
   10304  1.12  christos {"e_cmph",	X(31,14),	X_MASK,		PPCVLE,	0,		{CRD, RA, RB}},
   10305  1.12  christos {"e_sc",	X(31,36),	XRTRA_MASK,	PPCVLE,	0,		{ELEV}},
   10306  1.12  christos {"e_cmphl",	X(31,46),	X_MASK,		PPCVLE,	0,		{CRD, RA, RB}},
   10307  1.12  christos {"e_crandc",	XL(31,129),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10308  1.12  christos {"e_crnand",	XL(31,225),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10309  1.12  christos {"e_crnot",	XL(31,33),	XL_MASK,	PPCVLE,	EXT,		{BT, BAB}},
   10310  1.12  christos {"e_crnor",	XL(31,33),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10311  1.12  christos {"e_crclr",	XL(31,193),	XL_MASK,	PPCVLE,	EXT,		{BTAB}},
   10312  1.12  christos {"e_crxor",	XL(31,193),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10313  1.12  christos {"e_mcrf",	XL(31,16),	XL_MASK,	PPCVLE,	0,		{CRD, CR}},
   10314  1.12  christos {"e_slwi",	EX(31,112),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10315  1.12  christos {"e_slwi.",	EX(31,113),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10316  1.12  christos 
   10317  1.12  christos {"e_crand",	XL(31,257),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10318  1.12  christos 
   10319  1.12  christos {"e_rlw",	EX(31,560),	EX_MASK,	PPCVLE,	0,		{RA, RS, RB}},
   10320  1.12  christos {"e_rlw.",	EX(31,561),	EX_MASK,	PPCVLE,	0,		{RA, RS, RB}},
   10321  1.12  christos 
   10322  1.12  christos {"e_crset",	XL(31,289),	XL_MASK,	PPCVLE,	EXT,		{BTAB}},
   10323  1.12  christos {"e_creqv",	XL(31,289),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10324  1.12  christos 
   10325  1.12  christos {"e_rlwi",	EX(31,624),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10326  1.12  christos {"e_rlwi.",	EX(31,625),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10327  1.12  christos 
   10328  1.12  christos {"e_crorc",	XL(31,417),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10329  1.12  christos 
   10330  1.12  christos {"e_crmove",	XL(31,449),	XL_MASK,	PPCVLE,	EXT,		{BT, BAB}},
   10331  1.12  christos {"e_cror",	XL(31,449),	XL_MASK,	PPCVLE,	0,		{BT, BA, BB}},
   10332  1.12  christos 
   10333  1.12  christos {"mtmas1",	XSPR(31,467,625), XSPR_MASK,	PPCVLE,	EXT,		{RS}},
   10334  1.12  christos 
   10335  1.12  christos {"e_srwi",	EX(31,1136),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10336  1.12  christos {"e_srwi.",	EX(31,1137),	EX_MASK,	PPCVLE,	0,		{RA, RS, SH}},
   10337  1.12  christos 
   10338  1.12  christos {"se_lbz",	SD4(8),		SD4_MASK,	PPCVLE,	0,		{RZ, SE_SD, RX}},
   10339  1.12  christos 
   10340  1.12  christos {"se_stb",	SD4(9),		SD4_MASK,	PPCVLE,	0,		{RZ, SE_SD, RX}},
   10341  1.12  christos 
   10342  1.12  christos {"se_lhz",	SD4(10),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDH, RX}},
   10343  1.12  christos 
   10344  1.12  christos {"se_sth",	SD4(11),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDH, RX}},
   10345  1.12  christos 
   10346  1.12  christos {"se_lwz",	SD4(12),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDW, RX}},
   10347  1.12  christos 
   10348  1.12  christos {"se_stw",	SD4(13),	SD4_MASK,	PPCVLE,	0,		{RZ, SE_SDW, RX}},
   10349  1.12  christos 
   10350  1.12  christos {"se_bge",	EBD8IO(28,0,0),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10351  1.12  christos {"se_bnl",	EBD8IO(28,0,0),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10352  1.12  christos {"se_ble",	EBD8IO(28,0,1),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10353  1.12  christos {"se_bng",	EBD8IO(28,0,1),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10354  1.12  christos {"se_bne",	EBD8IO(28,0,2),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10355  1.12  christos {"se_bns",	EBD8IO(28,0,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10356  1.12  christos {"se_bnu",	EBD8IO(28,0,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10357  1.12  christos {"se_bf",	EBD8IO(28,0,0),	EBD8IO2_MASK,	PPCVLE,	EXT,		{BI16, B8}},
   10358  1.12  christos {"se_blt",	EBD8IO(28,1,0),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10359  1.12  christos {"se_bgt",	EBD8IO(28,1,1),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10360  1.12  christos {"se_beq",	EBD8IO(28,1,2),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10361  1.12  christos {"se_bso",	EBD8IO(28,1,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10362  1.12  christos {"se_bun",	EBD8IO(28,1,3),	EBD8IO3_MASK,	PPCVLE,	EXT,		{B8}},
   10363  1.12  christos {"se_bt",	EBD8IO(28,1,0),	EBD8IO2_MASK,	PPCVLE,	EXT,		{BI16, B8}},
   10364  1.12  christos {"se_bc",	BD8IO(28),	BD8IO_MASK,	PPCVLE,	0,		{BO16, BI16, B8}},
   10365  1.12  christos {"se_b",	BD8(58,0,0),	BD8_MASK,	PPCVLE,	0,		{B8}},
   10366   1.8  christos {"se_bl",	BD8(58,0,1),	BD8_MASK,	PPCVLE,	0,		{B8}},
   10367   1.8  christos };
   10368   1.8  christos 
   10369   1.8  christos const unsigned int vle_num_opcodes = ARRAY_SIZE (vle_opcodes);
   10370   1.8  christos 
   10371   1.8  christos const struct powerpc_opcode lsp_opcodes[] = {
   10372   1.8  christos {"zvaddih",	      VX(4, 0x200), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10373   1.8  christos {"zvsubifh",	      VX(4, 0x201), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10374   1.8  christos {"zvaddh",	      VX(4, 0x204), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10375   1.8  christos {"zvsubfh",	      VX(4, 0x205), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10376   1.8  christos {"zvaddsubfh",	      VX(4, 0x206), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10377   1.8  christos {"zvsubfaddh",	      VX(4, 0x207), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10378   1.8  christos {"zvaddhx",	      VX(4, 0x20C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10379   1.8  christos {"zvsubfhx",	      VX(4, 0x20D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10380   1.8  christos {"zvaddsubfhx",	      VX(4, 0x20E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10381   1.8  christos {"zvsubfaddhx",	      VX(4, 0x20F), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10382   1.8  christos {"zaddwus",	      VX(4, 0x210), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10383   1.8  christos {"zsubfwus",	      VX(4, 0x211), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10384   1.8  christos {"zaddwss",	      VX(4, 0x212), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10385   1.8  christos {"zsubfwss",	      VX(4, 0x213), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10386   1.8  christos {"zvaddhus",	      VX(4, 0x214), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10387   1.8  christos {"zvsubfhus",	      VX(4, 0x215), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10388   1.8  christos {"zvaddhss",	      VX(4, 0x216), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10389   1.8  christos {"zvsubfhss",	      VX(4, 0x217), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10390   1.8  christos {"zvaddsubfhss",      VX(4, 0x21A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10391   1.8  christos {"zvsubfaddhss",      VX(4, 0x21B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10392   1.8  christos {"zvaddhxss",	      VX(4, 0x21C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10393   1.8  christos {"zvsubfhxss",	      VX(4, 0x21D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10394   1.8  christos {"zvaddsubfhxss",     VX(4, 0x21E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10395   1.8  christos {"zvsubfaddhxss",     VX(4, 0x21F), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10396   1.8  christos {"zaddheuw",	      VX(4, 0x220), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10397   1.8  christos {"zsubfheuw",	      VX(4, 0x221), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10398   1.8  christos {"zaddhesw",	      VX(4, 0x222), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10399   1.8  christos {"zsubfhesw",	      VX(4, 0x223), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10400   1.8  christos {"zaddhouw",	      VX(4, 0x224), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10401   1.8  christos {"zsubfhouw",	      VX(4, 0x225), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10402   1.8  christos {"zaddhosw",	      VX(4, 0x226), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10403   1.8  christos {"zsubfhosw",	      VX(4, 0x227), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10404   1.8  christos {"zvmergehih",	      VX(4, 0x22C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10405   1.8  christos {"zvmergeloh",	      VX(4, 0x22D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10406   1.8  christos {"zvmergehiloh",      VX(4, 0x22E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10407   1.8  christos {"zvmergelohih",      VX(4, 0x22F), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10408   1.8  christos {"zvcmpgthu",	      VX(4, 0x230), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10409   1.8  christos {"zvcmpgths",	      VX(4, 0x230), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10410   1.8  christos {"zvcmplthu",	      VX(4, 0x231), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10411   1.8  christos {"zvcmplths",	      VX(4, 0x231), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10412   1.8  christos {"zvcmpeqh",	      VX(4, 0x232), VX_MASK,	PPCLSP, 0,		{CRFD, RA, RB}},
   10413   1.8  christos {"zpkswgshfrs",	      VX(4, 0x238), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10414   1.8  christos {"zpkswgswfrs",	      VX(4, 0x239), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10415   1.8  christos {"zvpkshgwshfrs",     VX(4, 0x23A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10416   1.8  christos {"zvpkswshfrs",	      VX(4, 0x23B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10417   1.8  christos {"zvpkswuhs",	      VX(4, 0x23C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10418   1.8  christos {"zvpkswshs",	      VX(4, 0x23D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10419   1.8  christos {"zvpkuwuhs",	      VX(4, 0x23E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10420   1.8  christos {"zvsplatih",	      VX_LSP(4, 0x23F), VX_LSP_MASK, PPCLSP, 0,		{RD, SIMM}},
   10421   1.8  christos {"zvsplatfih",	      VX_LSP(4, 0xA3F), VX_LSP_MASK, PPCLSP, 0,		{RD, SIMM}},
   10422   1.8  christos {"zcntlsw",	      VX_LSP(4, 0x2A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10423   1.8  christos {"zvcntlzh",	      VX_LSP(4, 0x323F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10424   1.8  christos {"zvcntlsh",	      VX_LSP(4, 0x3A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10425   1.8  christos {"znegws",	      VX_LSP(4, 0x4A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10426   1.8  christos {"zvnegh",	      VX_LSP(4, 0x523F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10427   1.8  christos {"zvneghs",	      VX_LSP(4, 0x5A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10428   1.8  christos {"zvnegho",	      VX_LSP(4, 0x623F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10429   1.8  christos {"zvneghos",	      VX_LSP(4, 0x6A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10430   1.8  christos {"zrndwh",	      VX_LSP(4, 0x823F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10431   1.8  christos {"zrndwhss",	      VX_LSP(4, 0x8A3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10432   1.8  christos {"zvabsh",	      VX_LSP(4, 0xA23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10433   1.8  christos {"zvabshs",	      VX_LSP(4, 0xAA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10434   1.8  christos {"zabsw",	      VX_LSP(4, 0xB23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10435   1.8  christos {"zabsws",	      VX_LSP(4, 0xBA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10436   1.8  christos {"zsatswuw",	      VX_LSP(4, 0xC23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10437   1.8  christos {"zsatuwsw",	      VX_LSP(4, 0xCA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10438   1.8  christos {"zsatswuh",	      VX_LSP(4, 0xD23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10439   1.8  christos {"zsatswsh",	      VX_LSP(4, 0xDA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10440   1.8  christos {"zvsatshuh",	      VX_LSP(4, 0xE23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10441   1.8  christos {"zvsatuhsh",	      VX_LSP(4, 0xEA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10442   1.8  christos {"zsatuwuh",	      VX_LSP(4, 0xF23F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10443   1.8  christos {"zsatuwsh",	      VX_LSP(4, 0xFA3F), VX_LSP_MASK, PPCLSP, 0,	{RD, RA}},
   10444   1.8  christos {"zsatsduw",	      VX(4, 0x260), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10445   1.8  christos {"zsatsdsw",	      VX(4, 0x261), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10446   1.8  christos {"zsatuduw",	      VX(4, 0x262), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10447   1.8  christos {"zvselh",	      VX(4, 0x264), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10448   1.8  christos {"zxtrw",	      VX(4, 0x264), VX_LSP_OFF_MASK, PPCLSP, 0,		{RD, RA, RB, VX_OFF}},
   10449   1.8  christos {"zbrminc",	      VX(4, 0x268), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10450   1.8  christos {"zcircinc",	      VX(4, 0x269), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10451   1.8  christos {"zdivwsf",	      VX(4, 0x26B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10452   1.8  christos {"zvsrhu",	      VX(4, 0x270), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10453   1.8  christos {"zvsrhs",	      VX(4, 0x271), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10454   1.8  christos {"zvsrhiu",	      VX(4, 0x272), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10455   1.8  christos {"zvsrhis",	      VX(4, 0x273), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10456   1.8  christos {"zvslh",	      VX(4, 0x274), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10457   1.8  christos {"zvrlh",	      VX(4, 0x275), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10458   1.8  christos {"zvslhi",	      VX(4, 0x276), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10459   1.8  christos {"zvrlhi",	      VX(4, 0x277), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10460   1.8  christos {"zvslhus",	      VX(4, 0x278), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10461   1.8  christos {"zvslhss",	      VX(4, 0x279), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10462  1.12  christos {"zvslhius",	      VX(4, 0x27A), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10463  1.12  christos {"zvslhiss",	      VX(4, 0x27B), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM_LT16}},
   10464  1.12  christos {"zslwus",	      VX(4, 0x27C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10465  1.12  christos {"zslwss",	      VX(4, 0x27D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10466  1.12  christos {"zslwius",	      VX(4, 0x27E), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10467  1.12  christos {"zslwiss",	      VX(4, 0x27F), VX_MASK,	PPCLSP, 0,		{RD, RA, EVUIMM}},
   10468  1.12  christos {"zlddx",	      VX(4, 0x300), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10469  1.12  christos {"zldd",	      VX(4, 0x301), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8, RA}},
   10470  1.12  christos {"zldwx",	      VX(4, 0x302), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10471  1.12  christos {"zldw",	      VX(4, 0x303), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8, RA}},
   10472  1.12  christos {"zldhx",	      VX(4, 0x304), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10473  1.12  christos {"zldh",	      VX(4, 0x305), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8, RA}},
   10474  1.12  christos {"zlwgsfdx",	      VX(4, 0x308), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10475  1.12  christos {"zlwgsfd",	      VX(4, 0x309), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10476  1.12  christos {"zlwwosdx",	      VX(4, 0x30A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10477  1.12  christos {"zlwwosd",	      VX(4, 0x30B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10478  1.12  christos {"zlwhsplatwdx",      VX(4, 0x30C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10479  1.12  christos {"zlwhsplatwd",	      VX(4, 0x30D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10480  1.12  christos {"zlwhsplatdx",	      VX(4, 0x30E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10481  1.12  christos {"zlwhsplatd",	      VX(4, 0x30F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10482  1.12  christos {"zlwhgwsfdx",	      VX(4, 0x310), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10483  1.12  christos {"zlwhgwsfd",	      VX(4, 0x311), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10484  1.12  christos {"zlwhedx",	      VX(4, 0x312), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10485  1.12  christos {"zlwhed",	      VX(4, 0x313), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10486  1.12  christos {"zlwhosdx",	      VX(4, 0x314), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10487  1.12  christos {"zlwhosd",	      VX(4, 0x315), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10488  1.12  christos {"zlwhoudx",	      VX(4, 0x316), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10489  1.12  christos {"zlwhoud",	      VX(4, 0x317), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4, RA}},
   10490  1.12  christos {"zlwhx",	      VX(4, 0x318), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10491  1.12  christos {"zlwh",	      VX(4, 0x319), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4, RA}},
   10492  1.12  christos {"zlwwx",	      VX(4, 0x31A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10493  1.12  christos {"zlww",	      VX(4, 0x31B), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4, RA}},
   10494  1.12  christos {"zlhgwsfx",	      VX(4, 0x31C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10495  1.12  christos {"zlhgwsf",	      VX(4, 0x31D), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10496  1.12  christos {"zlhhsplatx",	      VX(4, 0x31E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10497  1.12  christos {"zlhhsplat",	      VX(4, 0x31F), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10498  1.12  christos {"zstddx",	      VX(4, 0x320), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10499  1.12  christos {"zstdd",	      VX(4, 0x321), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8, RA}},
   10500  1.12  christos {"zstdwx",	      VX(4, 0x322), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10501  1.12  christos {"zstdw",	      VX(4, 0x323), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8, RA}},
   10502  1.12  christos {"zstdhx",	      VX(4, 0x324), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10503  1.12  christos {"zstdh",	      VX(4, 0x325), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8, RA}},
   10504  1.12  christos {"zstwhedx",	      VX(4, 0x328), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10505  1.12  christos {"zstwhed",	      VX(4, 0x329), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4, RA}},
   10506  1.12  christos {"zstwhodx",	      VX(4, 0x32A), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10507  1.12  christos {"zstwhod",	      VX(4, 0x32B), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4, RA}},
   10508  1.12  christos {"zlhhex",	      VX(4, 0x330), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10509  1.12  christos {"zlhhe",	      VX(4, 0x331), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10510  1.12  christos {"zlhhosx",	      VX(4, 0x332), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10511  1.12  christos {"zlhhos",	      VX(4, 0x333), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10512  1.12  christos {"zlhhoux",	      VX(4, 0x334), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10513  1.12  christos {"zlhhou",	      VX(4, 0x335), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2, RA}},
   10514  1.12  christos {"zsthex",	      VX(4, 0x338), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10515  1.12  christos {"zsthe",	      VX(4, 0x339), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2, RA}},
   10516  1.12  christos {"zsthox",	      VX(4, 0x33A), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10517  1.12  christos {"zstho",	      VX(4, 0x33B), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2, RA}},
   10518  1.12  christos {"zstwhx",	      VX(4, 0x33C), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10519  1.12  christos {"zstwh",	      VX(4, 0x33D), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4, RA}},
   10520  1.12  christos {"zstwwx",	      VX(4, 0x33E), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10521  1.12  christos {"zstww",	      VX(4, 0x33F), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4, RA}},
   10522  1.12  christos {"zlddmx",	      VX(4, 0x340), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10523  1.12  christos {"zlddu",	      VX(4, 0x341), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8_EX0, RA}},
   10524  1.12  christos {"zldwmx",	      VX(4, 0x342), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10525  1.12  christos {"zldwu",	      VX(4, 0x343), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8_EX0, RA}},
   10526  1.12  christos {"zldhmx",	      VX(4, 0x344), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10527  1.12  christos {"zldhu",	      VX(4, 0x345), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_8_EX0, RA}},
   10528  1.12  christos {"zlwgsfdmx",	      VX(4, 0x348), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10529  1.12  christos {"zlwgsfdu",	      VX(4, 0x349), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10530  1.12  christos {"zlwwosdmx",	      VX(4, 0x34A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10531  1.12  christos {"zlwwosdu",	      VX(4, 0x34B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10532  1.12  christos {"zlwhsplatwdmx",     VX(4, 0x34C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10533  1.12  christos {"zlwhsplatwdu",      VX(4, 0x34D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10534  1.12  christos {"zlwhsplatdmx",      VX(4, 0x34E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10535  1.12  christos {"zlwhsplatdu",	      VX(4, 0x34F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10536  1.12  christos {"zlwhgwsfdmx",	      VX(4, 0x350), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10537  1.12  christos {"zlwhgwsfdu",	      VX(4, 0x351), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10538  1.12  christos {"zlwhedmx",	      VX(4, 0x352), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10539  1.12  christos {"zlwhedu",	      VX(4, 0x353), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10540  1.12  christos {"zlwhosdmx",	      VX(4, 0x354), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10541  1.12  christos {"zlwhosdu",	      VX(4, 0x355), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10542  1.12  christos {"zlwhoudmx",	      VX(4, 0x356), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10543  1.12  christos {"zlwhoudu",	      VX(4, 0x357), VX_MASK,	PPCLSP, 0,		{RD_EVEN, EVUIMM_4_EX0, RA}},
   10544  1.12  christos {"zlwhmx",	      VX(4, 0x358), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10545  1.12  christos {"zlwhu",	      VX(4, 0x359), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4_EX0, RA}},
   10546  1.12  christos {"zlwwmx",	      VX(4, 0x35A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10547  1.12  christos {"zlwwu",	      VX(4, 0x35B), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_4_EX0, RA}},
   10548  1.12  christos {"zlhgwsfmx",	      VX(4, 0x35C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10549  1.12  christos {"zlhgwsfu",	      VX(4, 0x35D), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10550  1.12  christos {"zlhhsplatmx",	      VX(4, 0x35E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10551  1.12  christos {"zlhhsplatu",	      VX(4, 0x35F), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10552  1.12  christos {"zstddmx",	      VX(4, 0x360), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10553  1.12  christos {"zstddu",	      VX(4, 0x361), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_8_EX0, RA}},
   10554  1.12  christos {"zstdwmx",	      VX(4, 0x362), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10555  1.12  christos {"zstdwu",	      VX(4, 0x363), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8_EX0, RA}},
   10556  1.12  christos {"zstdhmx",	      VX(4, 0x364), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10557  1.12  christos {"zstdhu",	      VX(4, 0x365), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_8_EX0, RA}},
   10558  1.12  christos {"zstwhedmx",	      VX(4, 0x368), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10559  1.12  christos {"zstwhedu",	      VX(4, 0x369), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4_EX0, RA}},
   10560  1.12  christos {"zstwhodmx",	      VX(4, 0x36A), VX_MASK,	PPCLSP, 0,		{RS_EVEN, RA, RB}},
   10561  1.12  christos {"zstwhodu",	      VX(4, 0x36B), VX_MASK,	PPCLSP, 0,		{RS_EVEN, EVUIMM_4_EX0, RA}},
   10562  1.12  christos {"zlhhemx",	      VX(4, 0x370), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10563  1.12  christos {"zlhheu",	      VX(4, 0x371), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10564  1.12  christos {"zlhhosmx",	      VX(4, 0x372), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10565  1.12  christos {"zlhhosu",	      VX(4, 0x373), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10566  1.12  christos {"zlhhoumx",	      VX(4, 0x374), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10567  1.12  christos {"zlhhouu",	      VX(4, 0x375), VX_MASK,	PPCLSP, 0,		{RD, EVUIMM_2_EX0, RA}},
   10568  1.12  christos {"zsthemx",	      VX(4, 0x378), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10569  1.12  christos {"zstheu",	      VX(4, 0x379), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2_EX0, RA}},
   10570   1.8  christos {"zsthomx",	      VX(4, 0x37A), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10571   1.8  christos {"zsthou",	      VX(4, 0x37B), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_2_EX0, RA}},
   10572   1.8  christos {"zstwhmx",	      VX(4, 0x37C), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10573   1.8  christos {"zstwhu",	      VX(4, 0x37D), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4_EX0, RA}},
   10574   1.8  christos {"zstwwmx",	      VX(4, 0x37E), VX_MASK,	PPCLSP, 0,		{RS, RA, RB}},
   10575   1.8  christos {"zstwwu",	      VX(4, 0x37F), VX_MASK,	PPCLSP, 0,		{RS, EVUIMM_4_EX0, RA}},
   10576   1.8  christos {"zaddwgui",	      VX(4, 0x460), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10577   1.8  christos {"zsubfwgui",	      VX(4, 0x461), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10578   1.8  christos {"zaddd",	      VX(4, 0x462), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10579   1.8  christos {"zsubfd",	      VX(4, 0x463), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10580   1.8  christos {"zvaddsubfw",	      VX(4, 0x464), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10581   1.8  christos {"zvsubfaddw",	      VX(4, 0x465), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10582   1.8  christos {"zvaddw",	      VX(4, 0x466), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10583   1.8  christos {"zvsubfw",	      VX(4, 0x467), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10584   1.8  christos {"zaddwgsi",	      VX(4, 0x468), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10585   1.8  christos {"zsubfwgsi",	      VX(4, 0x469), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10586   1.8  christos {"zadddss",	      VX(4, 0x46A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10587   1.8  christos {"zsubfdss",	      VX(4, 0x46B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10588   1.8  christos {"zvaddsubfwss",      VX(4, 0x46C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10589   1.8  christos {"zvsubfaddwss",      VX(4, 0x46D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10590   1.8  christos {"zvaddwss",	      VX(4, 0x46E), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10591   1.8  christos {"zvsubfwss",	      VX(4, 0x46F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10592   1.8  christos {"zaddwgsf",	      VX(4, 0x470), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10593   1.8  christos {"zsubfwgsf",	      VX(4, 0x471), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10594   1.8  christos {"zadddus",	      VX(4, 0x472), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10595   1.8  christos {"zsubfdus",	      VX(4, 0x473), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10596   1.8  christos {"zvaddwus",	      VX(4, 0x476), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10597   1.8  christos {"zvsubfwus",	      VX(4, 0x477), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10598   1.8  christos {"zvunpkhgwsf",	      VX_LSP(4, 0x478), VX_LSP_MASK, PPCLSP, 0,		{RD_EVEN, RA}},
   10599   1.8  christos {"zvunpkhsf",	      VX_LSP(4, 0xC78), VX_LSP_MASK, PPCLSP, 0,		{RD_EVEN, RA}},
   10600   1.8  christos {"zvunpkhui",	      VX_LSP(4, 0x1478), VX_LSP_MASK, PPCLSP, 0,	{RD_EVEN, RA}},
   10601   1.8  christos {"zvunpkhsi",	      VX_LSP(4, 0x1C78), VX_LSP_MASK, PPCLSP, 0,	{RD_EVEN, RA}},
   10602   1.8  christos {"zunpkwgsf",	      VX_LSP(4, 0x2478), VX_LSP_MASK, PPCLSP, 0,	{RD_EVEN, RA}},
   10603   1.8  christos {"zvdotphgwasmf",     VX(4, 0x488), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10604   1.8  christos {"zvdotphgwasmfr",    VX(4, 0x489), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10605   1.8  christos {"zvdotphgwasmfaa",   VX(4, 0x48A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10606   1.8  christos {"zvdotphgwasmfraa",  VX(4, 0x48B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10607   1.8  christos {"zvdotphgwasmfan",   VX(4, 0x48C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10608   1.8  christos {"zvdotphgwasmfran",  VX(4, 0x48D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10609   1.8  christos {"zvmhulgwsmf",	      VX(4, 0x490), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10610   1.8  christos {"zvmhulgwsmfr",      VX(4, 0x491), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10611   1.8  christos {"zvmhulgwsmfaa",     VX(4, 0x492), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10612   1.8  christos {"zvmhulgwsmfraa",    VX(4, 0x493), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10613   1.8  christos {"zvmhulgwsmfan",     VX(4, 0x494), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10614   1.8  christos {"zvmhulgwsmfran",    VX(4, 0x495), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10615   1.8  christos {"zvmhulgwsmfanp",    VX(4, 0x496), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10616   1.8  christos {"zvmhulgwsmfranp",   VX(4, 0x497), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10617   1.8  christos {"zmhegwsmf",	      VX(4, 0x498), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10618   1.8  christos {"zmhegwsmfr",	      VX(4, 0x499), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10619   1.8  christos {"zmhegwsmfaa",	      VX(4, 0x49A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10620   1.8  christos {"zmhegwsmfraa",      VX(4, 0x49B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10621   1.8  christos {"zmhegwsmfan",	      VX(4, 0x49C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10622   1.8  christos {"zmhegwsmfran",      VX(4, 0x49D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10623   1.8  christos {"zvdotphxgwasmf",    VX(4, 0x4A8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10624   1.8  christos {"zvdotphxgwasmfr",   VX(4, 0x4A9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10625   1.8  christos {"zvdotphxgwasmfaa",  VX(4, 0x4AA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10626   1.8  christos {"zvdotphxgwasmfraa", VX(4, 0x4AB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10627   1.8  christos {"zvdotphxgwasmfan",  VX(4, 0x4AC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10628   1.8  christos {"zvdotphxgwasmfran", VX(4, 0x4AD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10629   1.8  christos {"zvmhllgwsmf",	      VX(4, 0x4B0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10630   1.8  christos {"zvmhllgwsmfr",      VX(4, 0x4B1), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10631   1.8  christos {"zvmhllgwsmfaa",     VX(4, 0x4B2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10632   1.8  christos {"zvmhllgwsmfraa",    VX(4, 0x4B3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10633   1.8  christos {"zvmhllgwsmfan",     VX(4, 0x4B4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10634   1.8  christos {"zvmhllgwsmfran",    VX(4, 0x4B5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10635   1.8  christos {"zvmhllgwsmfanp",    VX(4, 0x4B6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10636   1.8  christos {"zvmhllgwsmfranp",   VX(4, 0x4B7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10637   1.8  christos {"zmheogwsmf",	      VX(4, 0x4B8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10638   1.8  christos {"zmheogwsmfr",	      VX(4, 0x4B9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10639   1.8  christos {"zmheogwsmfaa",      VX(4, 0x4BA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10640   1.8  christos {"zmheogwsmfraa",     VX(4, 0x4BB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10641   1.8  christos {"zmheogwsmfan",      VX(4, 0x4BC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10642   1.8  christos {"zmheogwsmfran",     VX(4, 0x4BD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10643   1.8  christos {"zvdotphgwssmf",     VX(4, 0x4C8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10644   1.8  christos {"zvdotphgwssmfr",    VX(4, 0x4C9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10645   1.8  christos {"zvdotphgwssmfaa",   VX(4, 0x4CA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10646   1.8  christos {"zvdotphgwssmfraa",  VX(4, 0x4CB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10647   1.8  christos {"zvdotphgwssmfan",   VX(4, 0x4CC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10648   1.8  christos {"zvdotphgwssmfran",  VX(4, 0x4CD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10649   1.8  christos {"zvmhuugwsmf",	      VX(4, 0x4D0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10650   1.8  christos {"zvmhuugwsmfr",      VX(4, 0x4D1), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10651   1.8  christos {"zvmhuugwsmfaa",     VX(4, 0x4D2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10652   1.8  christos {"zvmhuugwsmfraa",    VX(4, 0x4D3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10653   1.8  christos {"zvmhuugwsmfan",     VX(4, 0x4D4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10654   1.8  christos {"zvmhuugwsmfran",    VX(4, 0x4D5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10655   1.8  christos {"zvmhuugwsmfanp",    VX(4, 0x4D6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10656   1.8  christos {"zvmhuugwsmfranp",   VX(4, 0x4D7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10657   1.8  christos {"zmhogwsmf",	      VX(4, 0x4D8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10658   1.8  christos {"zmhogwsmfr",	      VX(4, 0x4D9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10659   1.8  christos {"zmhogwsmfaa",	      VX(4, 0x4DA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10660   1.8  christos {"zmhogwsmfraa",      VX(4, 0x4DB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10661   1.8  christos {"zmhogwsmfan",	      VX(4, 0x4DC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10662   1.8  christos {"zmhogwsmfran",      VX(4, 0x4DD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10663   1.8  christos {"zvmhxlgwsmf",	      VX(4, 0x4F0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10664   1.8  christos {"zvmhxlgwsmfr",      VX(4, 0x4F1), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10665   1.8  christos {"zvmhxlgwsmfaa",     VX(4, 0x4F2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10666   1.8  christos {"zvmhxlgwsmfraa",    VX(4, 0x4F3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10667   1.8  christos {"zvmhxlgwsmfan",     VX(4, 0x4F4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10668   1.8  christos {"zvmhxlgwsmfran",    VX(4, 0x4F5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10669   1.8  christos {"zvmhxlgwsmfanp",    VX(4, 0x4F6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10670   1.8  christos {"zvmhxlgwsmfranp",   VX(4, 0x4F7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10671   1.8  christos {"zmhegui",	      VX(4, 0x500), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10672   1.8  christos {"zvdotphgaui",	      VX(4, 0x501), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10673   1.8  christos {"zmheguiaa",	      VX(4, 0x502), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10674   1.8  christos {"zvdotphgauiaa",     VX(4, 0x503), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10675   1.8  christos {"zmheguian",	      VX(4, 0x504), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10676   1.8  christos {"zvdotphgauian",     VX(4, 0x505), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10677   1.8  christos {"zmhegsi",	      VX(4, 0x508), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10678   1.8  christos {"zvdotphgasi",	      VX(4, 0x509), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10679   1.8  christos {"zmhegsiaa",	      VX(4, 0x50A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10680   1.8  christos {"zvdotphgasiaa",     VX(4, 0x50B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10681   1.8  christos {"zmhegsian",	      VX(4, 0x50C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10682   1.8  christos {"zvdotphgasian",     VX(4, 0x50D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10683   1.8  christos {"zmhegsui",	      VX(4, 0x510), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10684   1.8  christos {"zvdotphgasui",      VX(4, 0x511), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10685   1.8  christos {"zmhegsuiaa",	      VX(4, 0x512), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10686   1.8  christos {"zvdotphgasuiaa",    VX(4, 0x513), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10687   1.8  christos {"zmhegsuian",	      VX(4, 0x514), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10688   1.8  christos {"zvdotphgasuian",    VX(4, 0x515), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10689   1.8  christos {"zmhegsmf",	      VX(4, 0x518), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10690   1.8  christos {"zvdotphgasmf",      VX(4, 0x519), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10691   1.8  christos {"zmhegsmfaa",	      VX(4, 0x51A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10692   1.8  christos {"zvdotphgasmfaa",    VX(4, 0x51B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10693   1.8  christos {"zmhegsmfan",	      VX(4, 0x51C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10694   1.8  christos {"zvdotphgasmfan",    VX(4, 0x51D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10695   1.8  christos {"zmheogui",	      VX(4, 0x520), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10696   1.8  christos {"zvdotphxgaui",      VX(4, 0x521), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10697   1.8  christos {"zmheoguiaa",	      VX(4, 0x522), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10698   1.8  christos {"zvdotphxgauiaa",    VX(4, 0x523), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10699   1.8  christos {"zmheoguian",	      VX(4, 0x524), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10700   1.8  christos {"zvdotphxgauian",    VX(4, 0x525), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10701   1.8  christos {"zmheogsi",	      VX(4, 0x528), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10702   1.8  christos {"zvdotphxgasi",      VX(4, 0x529), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10703   1.8  christos {"zmheogsiaa",	      VX(4, 0x52A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10704   1.8  christos {"zvdotphxgasiaa",    VX(4, 0x52B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10705   1.8  christos {"zmheogsian",	      VX(4, 0x52C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10706   1.8  christos {"zvdotphxgasian",    VX(4, 0x52D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10707   1.8  christos {"zmheogsui",	      VX(4, 0x530), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10708   1.8  christos {"zvdotphxgasui",     VX(4, 0x531), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10709   1.8  christos {"zmheogsuiaa",	      VX(4, 0x532), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10710   1.8  christos {"zvdotphxgasuiaa",   VX(4, 0x533), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10711   1.8  christos {"zmheogsuian",	      VX(4, 0x534), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10712   1.8  christos {"zvdotphxgasuian",   VX(4, 0x535), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10713   1.8  christos {"zmheogsmf",	      VX(4, 0x538), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10714   1.8  christos {"zvdotphxgasmf",     VX(4, 0x539), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10715   1.8  christos {"zmheogsmfaa",	      VX(4, 0x53A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10716   1.8  christos {"zvdotphxgasmfaa",   VX(4, 0x53B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10717   1.8  christos {"zmheogsmfan",	      VX(4, 0x53C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10718   1.8  christos {"zvdotphxgasmfan",   VX(4, 0x53D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10719   1.8  christos {"zmhogui",	      VX(4, 0x540), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10720   1.8  christos {"zvdotphgsui",	      VX(4, 0x541), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10721   1.8  christos {"zmhoguiaa",	      VX(4, 0x542), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10722   1.8  christos {"zvdotphgsuiaa",     VX(4, 0x543), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10723   1.8  christos {"zmhoguian",	      VX(4, 0x544), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10724   1.8  christos {"zvdotphgsuian",     VX(4, 0x545), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10725   1.8  christos {"zmhogsi",	      VX(4, 0x548), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10726   1.8  christos {"zvdotphgssi",	      VX(4, 0x549), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10727   1.8  christos {"zmhogsiaa",	      VX(4, 0x54A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10728   1.8  christos {"zvdotphgssiaa",     VX(4, 0x54B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10729   1.8  christos {"zmhogsian",	      VX(4, 0x54C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10730   1.8  christos {"zvdotphgssian",     VX(4, 0x54D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10731   1.8  christos {"zmhogsui",	      VX(4, 0x550), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10732   1.8  christos {"zvdotphgssui",      VX(4, 0x551), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10733   1.8  christos {"zmhogsuiaa",	      VX(4, 0x552), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10734   1.8  christos {"zvdotphgssuiaa",    VX(4, 0x553), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10735   1.8  christos {"zmhogsuian",	      VX(4, 0x554), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10736   1.8  christos {"zvdotphgssuian",    VX(4, 0x555), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10737   1.8  christos {"zmhogsmf",	      VX(4, 0x558), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10738   1.8  christos {"zvdotphgssmf",      VX(4, 0x559), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10739   1.8  christos {"zmhogsmfaa",	      VX(4, 0x55A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10740   1.8  christos {"zvdotphgssmfaa",    VX(4, 0x55B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10741   1.8  christos {"zmhogsmfan",	      VX(4, 0x55C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10742   1.8  christos {"zvdotphgssmfan",    VX(4, 0x55D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10743   1.8  christos {"zmwgui",	      VX(4, 0x560), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10744   1.8  christos {"zmwguiaa",	      VX(4, 0x562), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10745   1.8  christos {"zmwguiaas",	      VX(4, 0x563), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10746   1.8  christos {"zmwguian",	      VX(4, 0x564), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10747   1.8  christos {"zmwguians",	      VX(4, 0x565), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10748   1.8  christos {"zmwgsi",	      VX(4, 0x568), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10749   1.8  christos {"zmwgsiaa",	      VX(4, 0x56A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10750   1.8  christos {"zmwgsiaas",	      VX(4, 0x56B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10751   1.8  christos {"zmwgsian",	      VX(4, 0x56C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10752   1.8  christos {"zmwgsians",	      VX(4, 0x56D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10753   1.8  christos {"zmwgsui",	      VX(4, 0x570), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10754   1.8  christos {"zmwgsuiaa",	      VX(4, 0x572), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10755   1.8  christos {"zmwgsuiaas",	      VX(4, 0x573), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10756   1.8  christos {"zmwgsuian",	      VX(4, 0x574), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10757   1.8  christos {"zmwgsuians",	      VX(4, 0x575), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10758   1.8  christos {"zmwgsmf",	      VX(4, 0x578), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10759   1.8  christos {"zmwgsmfr",	      VX(4, 0x579), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10760   1.8  christos {"zmwgsmfaa",	      VX(4, 0x57A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10761   1.8  christos {"zmwgsmfraa",	      VX(4, 0x57B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10762   1.8  christos {"zmwgsmfan",	      VX(4, 0x57C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10763   1.8  christos {"zmwgsmfran",	      VX(4, 0x57D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10764   1.8  christos {"zvmhului",	      VX(4, 0x580), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10765   1.8  christos {"zvmhuluiaa",	      VX(4, 0x582), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10766   1.8  christos {"zvmhuluiaas",	      VX(4, 0x583), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10767   1.8  christos {"zvmhuluian",	      VX(4, 0x584), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10768   1.8  christos {"zvmhuluians",	      VX(4, 0x585), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10769   1.8  christos {"zvmhuluianp",	      VX(4, 0x586), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10770   1.8  christos {"zvmhuluianps",      VX(4, 0x587), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10771   1.8  christos {"zvmhulsi",	      VX(4, 0x588), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10772   1.8  christos {"zvmhulsiaa",	      VX(4, 0x58A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10773   1.8  christos {"zvmhulsiaas",	      VX(4, 0x58B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10774   1.8  christos {"zvmhulsian",	      VX(4, 0x58C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10775   1.8  christos {"zvmhulsians",	      VX(4, 0x58D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10776   1.8  christos {"zvmhulsianp",	      VX(4, 0x58E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10777   1.8  christos {"zvmhulsianps",      VX(4, 0x58F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10778   1.8  christos {"zvmhulsui",	      VX(4, 0x590), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10779   1.8  christos {"zvmhulsuiaa",	      VX(4, 0x592), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10780   1.8  christos {"zvmhulsuiaas",      VX(4, 0x593), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10781   1.8  christos {"zvmhulsuian",	      VX(4, 0x594), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10782   1.8  christos {"zvmhulsuians",      VX(4, 0x595), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10783   1.8  christos {"zvmhulsuianp",      VX(4, 0x596), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10784   1.8  christos {"zvmhulsuianps",     VX(4, 0x597), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10785   1.8  christos {"zvmhulsf",	      VX(4, 0x598), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10786   1.8  christos {"zvmhulsfr",	      VX(4, 0x599), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10787   1.8  christos {"zvmhulsfaas",	      VX(4, 0x59A), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10788   1.8  christos {"zvmhulsfraas",      VX(4, 0x59B), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10789   1.8  christos {"zvmhulsfans",	      VX(4, 0x59C), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10790   1.8  christos {"zvmhulsfrans",      VX(4, 0x59D), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10791   1.8  christos {"zvmhulsfanps",      VX(4, 0x59E), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10792   1.8  christos {"zvmhulsfranps",     VX(4, 0x59F), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10793   1.8  christos {"zvmhllui",	      VX(4, 0x5A0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10794   1.8  christos {"zvmhlluiaa",	      VX(4, 0x5A2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10795   1.8  christos {"zvmhlluiaas",	      VX(4, 0x5A3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10796   1.8  christos {"zvmhlluian",	      VX(4, 0x5A4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10797   1.8  christos {"zvmhlluians",	      VX(4, 0x5A5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10798   1.8  christos {"zvmhlluianp",	      VX(4, 0x5A6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10799   1.8  christos {"zvmhlluianps",      VX(4, 0x5A7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10800   1.8  christos {"zvmhllsi",	      VX(4, 0x5A8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10801   1.8  christos {"zvmhllsiaa",	      VX(4, 0x5AA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10802   1.8  christos {"zvmhllsiaas",	      VX(4, 0x5AB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10803   1.8  christos {"zvmhllsian",	      VX(4, 0x5AC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10804   1.8  christos {"zvmhllsians",	      VX(4, 0x5AD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10805   1.8  christos {"zvmhllsianp",	      VX(4, 0x5AE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10806   1.8  christos {"zvmhllsianps",      VX(4, 0x5AF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10807   1.8  christos {"zvmhllsui",	      VX(4, 0x5B0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10808   1.8  christos {"zvmhllsuiaa",	      VX(4, 0x5B2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10809   1.8  christos {"zvmhllsuiaas",      VX(4, 0x5B3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10810   1.8  christos {"zvmhllsuian",	      VX(4, 0x5B4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10811   1.8  christos {"zvmhllsuians",      VX(4, 0x5B5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10812   1.8  christos {"zvmhllsuianp",      VX(4, 0x5B6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10813   1.8  christos {"zvmhllsuianps",     VX(4, 0x5B7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10814   1.8  christos {"zvmhllsf",	      VX(4, 0x5B8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10815   1.8  christos {"zvmhllsfr",	      VX(4, 0x5B9), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10816   1.8  christos {"zvmhllsfaas",	      VX(4, 0x5BA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10817   1.8  christos {"zvmhllsfraas",      VX(4, 0x5BB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10818   1.8  christos {"zvmhllsfans",	      VX(4, 0x5BC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10819   1.8  christos {"zvmhllsfrans",      VX(4, 0x5BD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10820   1.8  christos {"zvmhllsfanps",      VX(4, 0x5BE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10821   1.8  christos {"zvmhllsfranps",     VX(4, 0x5BF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10822   1.8  christos {"zvmhuuui",	      VX(4, 0x5C0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10823   1.8  christos {"zvmhuuuiaa",	      VX(4, 0x5C2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10824   1.8  christos {"zvmhuuuiaas",	      VX(4, 0x5C3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10825   1.8  christos {"zvmhuuuian",	      VX(4, 0x5C4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10826   1.8  christos {"zvmhuuuians",	      VX(4, 0x5C5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10827   1.8  christos {"zvmhuuuianp",	      VX(4, 0x5C6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10828   1.8  christos {"zvmhuuuianps",      VX(4, 0x5C7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10829   1.8  christos {"zvmhuusi",	      VX(4, 0x5C8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10830   1.8  christos {"zvmhuusiaa",	      VX(4, 0x5CA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10831   1.8  christos {"zvmhuusiaas",	      VX(4, 0x5CB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10832   1.8  christos {"zvmhuusian",	      VX(4, 0x5CC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10833   1.8  christos {"zvmhuusians",	      VX(4, 0x5CD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10834   1.8  christos {"zvmhuusianp",	      VX(4, 0x5CE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10835   1.8  christos {"zvmhuusianps",      VX(4, 0x5CF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10836   1.8  christos {"zvmhuusui",	      VX(4, 0x5D0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10837   1.8  christos {"zvmhuusuiaa",	      VX(4, 0x5D2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10838   1.8  christos {"zvmhuusuiaas",      VX(4, 0x5D3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10839   1.8  christos {"zvmhuusuian",	      VX(4, 0x5D4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10840   1.8  christos {"zvmhuusuians",      VX(4, 0x5D5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10841   1.8  christos {"zvmhuusuianp",      VX(4, 0x5D6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10842   1.8  christos {"zvmhuusuianps",     VX(4, 0x5D7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10843   1.8  christos {"zvmhuusf",	      VX(4, 0x5D8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10844   1.8  christos {"zvmhuusfr",	      VX(4, 0x5D9), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10845   1.8  christos {"zvmhuusfaas",	      VX(4, 0x5DA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10846   1.8  christos {"zvmhuusfraas",      VX(4, 0x5DB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10847   1.8  christos {"zvmhuusfans",	      VX(4, 0x5DC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10848   1.8  christos {"zvmhuusfrans",      VX(4, 0x5DD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10849   1.8  christos {"zvmhuusfanps",      VX(4, 0x5DE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10850   1.8  christos {"zvmhuusfranps",     VX(4, 0x5DF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10851   1.8  christos {"zvmhxlui",	      VX(4, 0x5E0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10852   1.8  christos {"zvmhxluiaa",	      VX(4, 0x5E2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10853   1.8  christos {"zvmhxluiaas",	      VX(4, 0x5E3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10854   1.8  christos {"zvmhxluian",	      VX(4, 0x5E4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10855   1.8  christos {"zvmhxluians",	      VX(4, 0x5E5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10856   1.8  christos {"zvmhxluianp",	      VX(4, 0x5E6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10857   1.8  christos {"zvmhxluianps",      VX(4, 0x5E7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10858   1.8  christos {"zvmhxlsi",	      VX(4, 0x5E8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10859   1.8  christos {"zvmhxlsiaa",	      VX(4, 0x5EA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10860   1.8  christos {"zvmhxlsiaas",	      VX(4, 0x5EB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10861   1.8  christos {"zvmhxlsian",	      VX(4, 0x5EC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10862   1.8  christos {"zvmhxlsians",	      VX(4, 0x5ED), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10863   1.8  christos {"zvmhxlsianp",	      VX(4, 0x5EE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10864   1.8  christos {"zvmhxlsianps",      VX(4, 0x5EF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10865   1.8  christos {"zvmhxlsui",	      VX(4, 0x5F0), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10866   1.8  christos {"zvmhxlsuiaa",	      VX(4, 0x5F2), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10867   1.8  christos {"zvmhxlsuiaas",      VX(4, 0x5F3), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10868   1.8  christos {"zvmhxlsuian",	      VX(4, 0x5F4), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10869   1.8  christos {"zvmhxlsuians",      VX(4, 0x5F5), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10870   1.8  christos {"zvmhxlsuianp",      VX(4, 0x5F6), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10871   1.8  christos {"zvmhxlsuianps",     VX(4, 0x5F7), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10872   1.8  christos {"zvmhxlsf",	      VX(4, 0x5F8), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10873   1.8  christos {"zvmhxlsfr",	      VX(4, 0x5F9), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10874   1.8  christos {"zvmhxlsfaas",	      VX(4, 0x5FA), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10875   1.8  christos {"zvmhxlsfraas",      VX(4, 0x5FB), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10876   1.8  christos {"zvmhxlsfans",	      VX(4, 0x5FC), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10877   1.8  christos {"zvmhxlsfrans",      VX(4, 0x5FD), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10878   1.8  christos {"zvmhxlsfanps",      VX(4, 0x5FE), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10879   1.8  christos {"zvmhxlsfranps",     VX(4, 0x5FF), VX_MASK,	PPCLSP, 0,		{RD_EVEN, RA, RB}},
   10880   1.8  christos {"zmheui",	      VX(4, 0x600), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10881   1.8  christos {"zmheuiaa",	      VX(4, 0x602), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10882   1.8  christos {"zmheuiaas",	      VX(4, 0x603), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10883   1.8  christos {"zmheuian",	      VX(4, 0x604), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10884   1.8  christos {"zmheuians",	      VX(4, 0x605), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10885   1.8  christos {"zmhesi",	      VX(4, 0x608), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10886   1.8  christos {"zmhesiaa",	      VX(4, 0x60A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10887   1.8  christos {"zmhesiaas",	      VX(4, 0x60B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10888   1.8  christos {"zmhesian",	      VX(4, 0x60C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10889   1.8  christos {"zmhesians",	      VX(4, 0x60D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10890   1.8  christos {"zmhesui",	      VX(4, 0x610), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10891   1.8  christos {"zmhesuiaa",	      VX(4, 0x612), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10892   1.8  christos {"zmhesuiaas",	      VX(4, 0x613), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10893   1.8  christos {"zmhesuian",	      VX(4, 0x614), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10894   1.8  christos {"zmhesuians",	      VX(4, 0x615), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10895   1.8  christos {"zmhesf",	      VX(4, 0x618), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10896   1.8  christos {"zmhesfr",	      VX(4, 0x619), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10897   1.8  christos {"zmhesfaas",	      VX(4, 0x61A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10898   1.8  christos {"zmhesfraas",	      VX(4, 0x61B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10899   1.8  christos {"zmhesfans",	      VX(4, 0x61C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10900   1.8  christos {"zmhesfrans",	      VX(4, 0x61D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10901   1.8  christos {"zmheoui",	      VX(4, 0x620), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10902   1.8  christos {"zmheouiaa",	      VX(4, 0x622), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10903   1.8  christos {"zmheouiaas",	      VX(4, 0x623), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10904   1.8  christos {"zmheouian",	      VX(4, 0x624), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10905   1.8  christos {"zmheouians",	      VX(4, 0x625), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10906   1.8  christos {"zmheosi",	      VX(4, 0x628), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10907   1.8  christos {"zmheosiaa",	      VX(4, 0x62A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10908   1.8  christos {"zmheosiaas",	      VX(4, 0x62B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10909   1.8  christos {"zmheosian",	      VX(4, 0x62C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10910   1.8  christos {"zmheosians",	      VX(4, 0x62D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10911   1.8  christos {"zmheosui",	      VX(4, 0x630), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10912   1.8  christos {"zmheosuiaa",	      VX(4, 0x632), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10913   1.8  christos {"zmheosuiaas",	      VX(4, 0x633), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10914   1.8  christos {"zmheosuian",	      VX(4, 0x634), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10915   1.8  christos {"zmheosuians",	      VX(4, 0x635), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10916   1.8  christos {"zmheosf",	      VX(4, 0x638), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10917   1.8  christos {"zmheosfr",	      VX(4, 0x639), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10918   1.8  christos {"zmheosfaas",	      VX(4, 0x63A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10919   1.8  christos {"zmheosfraas",	      VX(4, 0x63B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10920   1.8  christos {"zmheosfans",	      VX(4, 0x63C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10921   1.8  christos {"zmheosfrans",	      VX(4, 0x63D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10922   1.8  christos {"zmhoui",	      VX(4, 0x640), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10923   1.8  christos {"zmhouiaa",	      VX(4, 0x642), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10924   1.8  christos {"zmhouiaas",	      VX(4, 0x643), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10925   1.8  christos {"zmhouian",	      VX(4, 0x644), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10926   1.8  christos {"zmhouians",	      VX(4, 0x645), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10927   1.8  christos {"zmhosi",	      VX(4, 0x648), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10928   1.8  christos {"zmhosiaa",	      VX(4, 0x64A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10929   1.8  christos {"zmhosiaas",	      VX(4, 0x64B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10930   1.8  christos {"zmhosian",	      VX(4, 0x64C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10931   1.8  christos {"zmhosians",	      VX(4, 0x64D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10932   1.8  christos {"zmhosui",	      VX(4, 0x650), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10933   1.8  christos {"zmhosuiaa",	      VX(4, 0x652), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10934   1.8  christos {"zmhosuiaas",	      VX(4, 0x653), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10935   1.8  christos {"zmhosuian",	      VX(4, 0x654), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10936   1.8  christos {"zmhosuians",	      VX(4, 0x655), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10937   1.8  christos {"zmhosf",	      VX(4, 0x658), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10938   1.8  christos {"zmhosfr",	      VX(4, 0x659), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10939   1.8  christos {"zmhosfaas",	      VX(4, 0x65A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10940   1.8  christos {"zmhosfraas",	      VX(4, 0x65B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10941   1.8  christos {"zmhosfans",	      VX(4, 0x65C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10942   1.8  christos {"zmhosfrans",	      VX(4, 0x65D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10943   1.8  christos {"zvmhuih",	      VX(4, 0x660), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10944   1.8  christos {"zvmhuihs",	      VX(4, 0x661), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10945   1.8  christos {"zvmhuiaah",	      VX(4, 0x662), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10946   1.8  christos {"zvmhuiaahs",	      VX(4, 0x663), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10947   1.8  christos {"zvmhuianh",	      VX(4, 0x664), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10948   1.8  christos {"zvmhuianhs",	      VX(4, 0x665), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10949   1.8  christos {"zvmhsihs",	      VX(4, 0x669), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10950   1.8  christos {"zvmhsiaahs",	      VX(4, 0x66B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10951   1.8  christos {"zvmhsianhs",	      VX(4, 0x66D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10952   1.8  christos {"zvmhsuihs",	      VX(4, 0x671), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10953   1.8  christos {"zvmhsuiaahs",	      VX(4, 0x673), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10954   1.8  christos {"zvmhsuianhs",	      VX(4, 0x675), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10955   1.8  christos {"zvmhsfh",	      VX(4, 0x678), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10956   1.8  christos {"zvmhsfrh",	      VX(4, 0x679), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10957   1.8  christos {"zvmhsfaahs",	      VX(4, 0x67A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10958   1.8  christos {"zvmhsfraahs",	      VX(4, 0x67B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10959   1.8  christos {"zvmhsfanhs",	      VX(4, 0x67C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10960   1.8  christos {"zvmhsfranhs",	      VX(4, 0x67D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10961   1.8  christos {"zvdotphaui",	      VX(4, 0x680), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10962   1.8  christos {"zvdotphauis",	      VX(4, 0x681), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10963   1.8  christos {"zvdotphauiaa",      VX(4, 0x682), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10964   1.8  christos {"zvdotphauiaas",     VX(4, 0x683), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10965   1.8  christos {"zvdotphauian",      VX(4, 0x684), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10966   1.8  christos {"zvdotphauians",     VX(4, 0x685), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10967   1.8  christos {"zvdotphasi",	      VX(4, 0x688), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10968   1.8  christos {"zvdotphasis",	      VX(4, 0x689), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10969   1.8  christos {"zvdotphasiaa",      VX(4, 0x68A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10970   1.8  christos {"zvdotphasiaas",     VX(4, 0x68B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10971   1.8  christos {"zvdotphasian",      VX(4, 0x68C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10972   1.8  christos {"zvdotphasians",     VX(4, 0x68D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10973   1.8  christos {"zvdotphasui",	      VX(4, 0x690), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10974   1.8  christos {"zvdotphasuis",      VX(4, 0x691), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10975   1.8  christos {"zvdotphasuiaa",     VX(4, 0x692), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10976   1.8  christos {"zvdotphasuiaas",    VX(4, 0x693), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10977   1.8  christos {"zvdotphasuian",     VX(4, 0x694), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10978   1.8  christos {"zvdotphasuians",    VX(4, 0x695), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10979   1.8  christos {"zvdotphasfs",	      VX(4, 0x698), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10980   1.8  christos {"zvdotphasfrs",      VX(4, 0x699), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10981   1.8  christos {"zvdotphasfaas",     VX(4, 0x69A), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10982   1.8  christos {"zvdotphasfraas",    VX(4, 0x69B), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10983   1.8  christos {"zvdotphasfans",     VX(4, 0x69C), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10984   1.8  christos {"zvdotphasfrans",    VX(4, 0x69D), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10985   1.8  christos {"zvdotphxaui",	      VX(4, 0x6A0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10986   1.8  christos {"zvdotphxauis",      VX(4, 0x6A1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10987   1.8  christos {"zvdotphxauiaa",     VX(4, 0x6A2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10988   1.8  christos {"zvdotphxauiaas",    VX(4, 0x6A3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10989   1.8  christos {"zvdotphxauian",     VX(4, 0x6A4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10990   1.8  christos {"zvdotphxauians",    VX(4, 0x6A5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10991   1.8  christos {"zvdotphxasi",	      VX(4, 0x6A8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10992   1.8  christos {"zvdotphxasis",      VX(4, 0x6A9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10993   1.8  christos {"zvdotphxasiaa",     VX(4, 0x6AA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10994   1.8  christos {"zvdotphxasiaas",    VX(4, 0x6AB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10995   1.8  christos {"zvdotphxasian",     VX(4, 0x6AC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10996   1.8  christos {"zvdotphxasians",    VX(4, 0x6AD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10997   1.8  christos {"zvdotphxasui",      VX(4, 0x6B0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10998   1.8  christos {"zvdotphxasuis",     VX(4, 0x6B1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   10999   1.8  christos {"zvdotphxasuiaa",    VX(4, 0x6B2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11000   1.8  christos {"zvdotphxasuiaas",   VX(4, 0x6B3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11001   1.8  christos {"zvdotphxasuian",    VX(4, 0x6B4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11002   1.8  christos {"zvdotphxasuians",   VX(4, 0x6B5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11003   1.8  christos {"zvdotphxasfs",      VX(4, 0x6B8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11004   1.8  christos {"zvdotphxasfrs",     VX(4, 0x6B9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11005   1.8  christos {"zvdotphxasfaas",    VX(4, 0x6BA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11006   1.8  christos {"zvdotphxasfraas",   VX(4, 0x6BB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11007   1.8  christos {"zvdotphxasfans",    VX(4, 0x6BC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11008   1.8  christos {"zvdotphxasfrans",   VX(4, 0x6BD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11009   1.8  christos {"zvdotphsui",	      VX(4, 0x6C0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11010   1.8  christos {"zvdotphsuis",	      VX(4, 0x6C1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11011   1.8  christos {"zvdotphsuiaa",      VX(4, 0x6C2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11012   1.8  christos {"zvdotphsuiaas",     VX(4, 0x6C3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11013   1.8  christos {"zvdotphsuian",      VX(4, 0x6C4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11014   1.8  christos {"zvdotphsuians",     VX(4, 0x6C5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11015   1.8  christos {"zvdotphssi",	      VX(4, 0x6C8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11016   1.8  christos {"zvdotphssis",	      VX(4, 0x6C9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11017   1.8  christos {"zvdotphssiaa",      VX(4, 0x6CA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11018   1.8  christos {"zvdotphssiaas",     VX(4, 0x6CB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11019   1.8  christos {"zvdotphssian",      VX(4, 0x6CC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11020   1.8  christos {"zvdotphssians",     VX(4, 0x6CD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11021   1.8  christos {"zvdotphssui",	      VX(4, 0x6D0), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11022   1.8  christos {"zvdotphssuis",      VX(4, 0x6D1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11023   1.8  christos {"zvdotphssuiaa",     VX(4, 0x6D2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11024   1.8  christos {"zvdotphssuiaas",    VX(4, 0x6D3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11025   1.8  christos {"zvdotphssuian",     VX(4, 0x6D4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11026   1.8  christos {"zvdotphssuians",    VX(4, 0x6D5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11027   1.8  christos {"zvdotphssfs",	      VX(4, 0x6D8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11028   1.8  christos {"zvdotphssfrs",      VX(4, 0x6D9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11029   1.8  christos {"zvdotphssfaas",     VX(4, 0x6DA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11030   1.8  christos {"zvdotphssfraas",    VX(4, 0x6DB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11031   1.8  christos {"zvdotphssfans",     VX(4, 0x6DC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11032   1.8  christos {"zvdotphssfrans",    VX(4, 0x6DD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11033   1.8  christos {"zmwluis",	      VX(4, 0x6E1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11034   1.8  christos {"zmwluiaa",	      VX(4, 0x6E2), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11035   1.8  christos {"zmwluiaas",	      VX(4, 0x6E3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11036   1.8  christos {"zmwluian",	      VX(4, 0x6E4), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11037   1.8  christos {"zmwluians",	      VX(4, 0x6E5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11038   1.8  christos {"zmwlsis",	      VX(4, 0x6E9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11039   1.8  christos {"zmwlsiaas",	      VX(4, 0x6EB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11040   1.8  christos {"zmwlsians",	      VX(4, 0x6ED), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11041   1.8  christos {"zmwlsuis",	      VX(4, 0x6F1), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11042   1.8  christos {"zmwlsuiaas",	      VX(4, 0x6F3), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11043   1.8  christos {"zmwlsuians",	      VX(4, 0x6F5), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11044   1.4  christos {"zmwsf",	      VX(4, 0x6F8), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11045   1.4  christos {"zmwsfr",	      VX(4, 0x6F9), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11046  1.12  christos {"zmwsfaas",	      VX(4, 0x6FA), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11047   1.8  christos {"zmwsfraas",	      VX(4, 0x6FB), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11048   1.8  christos {"zmwsfans",	      VX(4, 0x6FC), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11049   1.8  christos {"zmwsfrans",	      VX(4, 0x6FD), VX_MASK,	PPCLSP, 0,		{RD, RA, RB}},
   11050   1.8  christos };
   11051   1.8  christos 
   11052   1.8  christos const unsigned int lsp_num_opcodes = ARRAY_SIZE (lsp_opcodes);
   11053   1.8  christos 
   11054   1.8  christos /* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
   11055   1.8  christos const struct powerpc_opcode spe2_opcodes[] = {
   11056   1.8  christos {"evdotpwcssi",		  VX (4, 128),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11057   1.8  christos {"evdotpwcsmi",		  VX (4, 129),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11058   1.8  christos {"evdotpwcssfr",	  VX (4, 130),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11059   1.8  christos {"evdotpwcssf",		  VX (4, 131),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11060   1.8  christos {"evdotpwgasmf",	  VX (4, 136),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11061   1.8  christos {"evdotpwxgasmf",	  VX (4, 137),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11062   1.8  christos {"evdotpwgasmfr",	  VX (4, 138),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11063   1.8  christos {"evdotpwxgasmfr",	  VX (4, 139),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11064   1.8  christos {"evdotpwgssmf",	  VX (4, 140),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11065   1.8  christos {"evdotpwxgssmf",	  VX (4, 141),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11066   1.8  christos {"evdotpwgssmfr",	  VX (4, 142),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11067   1.8  christos {"evdotpwxgssmfr",	  VX (4, 143),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11068   1.8  christos {"evdotpwcssiaaw3",	  VX (4, 144),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11069   1.8  christos {"evdotpwcsmiaaw3",	  VX (4, 145),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11070   1.8  christos {"evdotpwcssfraaw3",	  VX (4, 146),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11071   1.8  christos {"evdotpwcssfaaw3",	  VX (4, 147),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11072   1.8  christos {"evdotpwgasmfaa3",	  VX (4, 152),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11073   1.8  christos {"evdotpwxgasmfaa3",	  VX (4, 153),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11074   1.8  christos {"evdotpwgasmfraa3",	  VX (4, 154),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11075   1.8  christos {"evdotpwxgasmfraa3",	  VX (4, 155),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11076   1.8  christos {"evdotpwgssmfaa3",	  VX (4, 156),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11077   1.8  christos {"evdotpwxgssmfaa3",	  VX (4, 157),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11078   1.8  christos {"evdotpwgssmfraa3",	  VX (4, 158),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11079   1.8  christos {"evdotpwxgssmfraa3",	  VX (4, 159),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11080   1.8  christos {"evdotpwcssia",	  VX (4, 160),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11081   1.8  christos {"evdotpwcsmia",	  VX (4, 161),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11082   1.8  christos {"evdotpwcssfra",	  VX (4, 162),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11083   1.8  christos {"evdotpwcssfa",	  VX (4, 163),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11084   1.8  christos {"evdotpwgasmfa",	  VX (4, 168),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11085   1.8  christos {"evdotpwxgasmfa",	  VX (4, 169),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11086   1.8  christos {"evdotpwgasmfra",	  VX (4, 170),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11087   1.8  christos {"evdotpwxgasmfra",	  VX (4, 171),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11088   1.8  christos {"evdotpwgssmfa",	  VX (4, 172),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11089   1.8  christos {"evdotpwxgssmfa",	  VX (4, 173),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11090   1.8  christos {"evdotpwgssmfra",	  VX (4, 174),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11091   1.8  christos {"evdotpwxgssmfra",	  VX (4, 175),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11092   1.8  christos {"evdotpwcssiaaw",	  VX (4, 176),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11093   1.8  christos {"evdotpwcsmiaaw",	  VX (4, 177),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11094   1.8  christos {"evdotpwcssfraaw",	  VX (4, 178),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11095   1.8  christos {"evdotpwcssfaaw",	  VX (4, 179),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11096   1.8  christos {"evdotpwgasmfaa",	  VX (4, 184),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11097   1.8  christos {"evdotpwxgasmfaa",	  VX (4, 185),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11098   1.8  christos {"evdotpwgasmfraa",	  VX (4, 186),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11099   1.8  christos {"evdotpwxgasmfraa",	  VX (4, 187),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11100   1.8  christos {"evdotpwgssmfaa",	  VX (4, 188),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11101   1.8  christos {"evdotpwxgssmfaa",	  VX (4, 189),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11102   1.8  christos {"evdotpwgssmfraa",	  VX (4, 190),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11103   1.8  christos {"evdotpwxgssmfraa",	  VX (4, 191),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11104   1.8  christos {"evdotphihcssi",	  VX (4, 256),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11105   1.8  christos {"evdotplohcssi",	  VX (4, 257),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11106   1.8  christos {"evdotphihcssf",	  VX (4, 258),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11107   1.8  christos {"evdotplohcssf",	  VX (4, 259),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11108   1.8  christos {"evdotphihcsmi",	  VX (4, 264),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11109   1.8  christos {"evdotplohcsmi",	  VX (4, 265),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11110   1.8  christos {"evdotphihcssfr",	  VX (4, 266),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11111   1.8  christos {"evdotplohcssfr",	  VX (4, 267),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11112   1.8  christos {"evdotphihcssiaaw3",	  VX (4, 272),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11113   1.8  christos {"evdotplohcssiaaw3",	  VX (4, 273),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11114   1.8  christos {"evdotphihcssfaaw3",	  VX (4, 274),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11115   1.8  christos {"evdotplohcssfaaw3",	  VX (4, 275),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11116   1.8  christos {"evdotphihcsmiaaw3",	  VX (4, 280),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11117   1.8  christos {"evdotplohcsmiaaw3",	  VX (4, 281),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11118   1.8  christos {"evdotphihcssfraaw3",	  VX (4, 282),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11119   1.8  christos {"evdotplohcssfraaw3",	  VX (4, 283),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11120   1.8  christos {"evdotphihcssia",	  VX (4, 288),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11121   1.8  christos {"evdotplohcssia",	  VX (4, 289),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11122   1.8  christos {"evdotphihcssfa",	  VX (4, 290),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11123   1.8  christos {"evdotplohcssfa",	  VX (4, 291),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11124   1.8  christos {"evdotphihcsmia",	  VX (4, 296),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11125   1.8  christos {"evdotplohcsmia",	  VX (4, 297),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11126   1.8  christos {"evdotphihcssfra",	  VX (4, 298),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11127   1.8  christos {"evdotplohcssfra",	  VX (4, 299),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11128   1.8  christos {"evdotphihcssiaaw",	  VX (4, 304),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11129   1.8  christos {"evdotplohcssiaaw",	  VX (4, 305),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11130   1.8  christos {"evdotphihcssfaaw",	  VX (4, 306),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11131   1.8  christos {"evdotplohcssfaaw",	  VX (4, 307),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11132   1.8  christos {"evdotphihcsmiaaw",	  VX (4, 312),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11133   1.8  christos {"evdotplohcsmiaaw",	  VX (4, 313),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11134   1.8  christos {"evdotphihcssfraaw",	  VX (4, 314),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11135   1.8  christos {"evdotplohcssfraaw",	  VX (4, 315),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11136   1.8  christos {"evdotphausi",		  VX (4, 320),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11137   1.8  christos {"evdotphassi",		  VX (4, 321),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11138   1.8  christos {"evdotphasusi",	  VX (4, 322),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11139   1.8  christos {"evdotphassf",		  VX (4, 323),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11140  1.11  christos {"evdotphsssf",		  VX (4, 327),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11141   1.8  christos {"evdotphaumi",		  VX (4, 328),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11142   1.8  christos {"evdotphasmi",		  VX (4, 329),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11143   1.8  christos {"evdotphasumi",	  VX (4, 330),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11144   1.8  christos {"evdotphassfr",	  VX (4, 331),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11145   1.8  christos {"evdotphssmi",		  VX (4, 333),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11146   1.8  christos {"evdotphsssi",		  VX (4, 333),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11147   1.8  christos {"evdotphsssfr",	  VX (4, 335),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11148   1.8  christos {"evdotphausiaaw3",	  VX (4, 336),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11149   1.8  christos {"evdotphassiaaw3",	  VX (4, 337),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11150   1.8  christos {"evdotphasusiaaw3",	  VX (4, 338),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11151   1.8  christos {"evdotphassfaaw3",	  VX (4, 339),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11152   1.8  christos {"evdotphsssiaaw3",	  VX (4, 341),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11153   1.8  christos {"evdotphsssfaaw3",	  VX (4, 343),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11154   1.8  christos {"evdotphaumiaaw3",	  VX (4, 344),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11155   1.8  christos {"evdotphasmiaaw3",	  VX (4, 345),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11156   1.8  christos {"evdotphasumiaaw3",	  VX (4, 346),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11157   1.8  christos {"evdotphassfraaw3",	  VX (4, 347),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11158   1.8  christos {"evdotphssmiaaw3",	  VX (4, 349),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11159   1.8  christos {"evdotphsssfraaw3",	  VX (4, 351),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11160   1.8  christos {"evdotphausia",	  VX (4, 352),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11161   1.8  christos {"evdotphassia",	  VX (4, 353),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11162   1.8  christos {"evdotphasusia",	  VX (4, 354),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11163   1.8  christos {"evdotphassfa",	  VX (4, 355),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11164  1.11  christos {"evdotphsssfa",	  VX (4, 359),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11165   1.8  christos {"evdotphaumia",	  VX (4, 360),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11166   1.8  christos {"evdotphasmia",	  VX (4, 361),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11167   1.8  christos {"evdotphasumia",	  VX (4, 362),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11168   1.8  christos {"evdotphassfra",	  VX (4, 363),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11169   1.8  christos {"evdotphssmia",	  VX (4, 365),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11170   1.8  christos {"evdotphsssia",	  VX (4, 365),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11171   1.8  christos {"evdotphsssfra",	  VX (4, 367),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11172   1.8  christos {"evdotphausiaaw",	  VX (4, 368),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11173   1.8  christos {"evdotphassiaaw",	  VX (4, 369),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11174   1.8  christos {"evdotphasusiaaw",	  VX (4, 370),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11175   1.8  christos {"evdotphassfaaw",	  VX (4, 371),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11176   1.8  christos {"evdotphsssiaaw",	  VX (4, 373),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11177   1.8  christos {"evdotphsssfaaw",	  VX (4, 375),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11178   1.8  christos {"evdotphaumiaaw",	  VX (4, 376),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11179   1.8  christos {"evdotphasmiaaw",	  VX (4, 377),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11180   1.8  christos {"evdotphasumiaaw",	  VX (4, 378),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11181   1.8  christos {"evdotphassfraaw",	  VX (4, 379),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11182   1.8  christos {"evdotphssmiaaw",	  VX (4, 381),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11183   1.8  christos {"evdotphsssfraaw",	  VX (4, 383),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11184   1.8  christos {"evdotp4hgaumi",	  VX (4, 384),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11185   1.8  christos {"evdotp4hgasmi",	  VX (4, 385),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11186   1.8  christos {"evdotp4hgasumi",	  VX (4, 386),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11187   1.8  christos {"evdotp4hgasmf",	  VX (4, 387),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11188   1.8  christos {"evdotp4hgssmi",	  VX (4, 388),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11189   1.8  christos {"evdotp4hgssmf",	  VX (4, 389),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11190   1.8  christos {"evdotp4hxgasmi",	  VX (4, 390),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11191   1.8  christos {"evdotp4hxgasmf",	  VX (4, 391),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11192   1.8  christos {"evdotpbaumi",		  VX (4, 392),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11193   1.8  christos {"evdotpbasmi",		  VX (4, 393),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11194   1.8  christos {"evdotpbasumi",	  VX (4, 394),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11195   1.8  christos {"evdotp4hxgssmi",	  VX (4, 398),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11196   1.8  christos {"evdotp4hxgssmf",	  VX (4, 399),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11197   1.8  christos {"evdotp4hgaumiaa3",	  VX (4, 400),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11198   1.8  christos {"evdotp4hgasmiaa3",	  VX (4, 401),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11199   1.8  christos {"evdotp4hgasumiaa3",	  VX (4, 402),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11200   1.8  christos {"evdotp4hgasmfaa3",	  VX (4, 403),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11201   1.8  christos {"evdotp4hgssmiaa3",	  VX (4, 404),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11202   1.8  christos {"evdotp4hgssmfaa3",	  VX (4, 405),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11203   1.8  christos {"evdotp4hxgasmiaa3",	  VX (4, 406),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11204   1.8  christos {"evdotp4hxgasmfaa3",	  VX (4, 407),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11205   1.8  christos {"evdotpbaumiaaw3",	  VX (4, 408),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11206   1.8  christos {"evdotpbasmiaaw3",	  VX (4, 409),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11207   1.8  christos {"evdotpbasumiaaw3",	  VX (4, 410),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11208   1.8  christos {"evdotp4hxgssmiaa3",	  VX (4, 414),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11209   1.8  christos {"evdotp4hxgssmfaa3",	  VX (4, 415),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11210   1.8  christos {"evdotp4hgaumia",	  VX (4, 416),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11211   1.8  christos {"evdotp4hgasmia",	  VX (4, 417),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11212   1.8  christos {"evdotp4hgasumia",	  VX (4, 418),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11213   1.8  christos {"evdotp4hgasmfa",	  VX (4, 419),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11214   1.8  christos {"evdotp4hgssmia",	  VX (4, 420),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11215   1.8  christos {"evdotp4hgssmfa",	  VX (4, 421),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11216   1.8  christos {"evdotp4hxgasmia",	  VX (4, 422),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11217   1.8  christos {"evdotp4hxgasmfa",	  VX (4, 423),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11218   1.8  christos {"evdotpbaumia",	  VX (4, 424),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11219   1.8  christos {"evdotpbasmia",	  VX (4, 425),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11220   1.8  christos {"evdotpbasumia",	  VX (4, 426),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11221   1.8  christos {"evdotp4hxgssmia",	  VX (4, 430),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11222   1.8  christos {"evdotp4hxgssmfa",	  VX (4, 431),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11223   1.8  christos {"evdotp4hgaumiaa",	  VX (4, 432),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11224   1.8  christos {"evdotp4hgasmiaa",	  VX (4, 433),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11225   1.8  christos {"evdotp4hgasumiaa",	  VX (4, 434),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11226   1.8  christos {"evdotp4hgasmfaa",	  VX (4, 435),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11227   1.8  christos {"evdotp4hgssmiaa",	  VX (4, 436),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11228   1.8  christos {"evdotp4hgssmfaa",	  VX (4, 437),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11229   1.8  christos {"evdotp4hxgasmiaa",	  VX (4, 438),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11230   1.8  christos {"evdotp4hxgasmfaa",	  VX (4, 439),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11231   1.8  christos {"evdotpbaumiaaw",	  VX (4, 440),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11232   1.8  christos {"evdotpbasmiaaw",	  VX (4, 441),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11233   1.8  christos {"evdotpbasumiaaw",	  VX (4, 442),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11234   1.8  christos {"evdotp4hxgssmiaa",	  VX (4, 446),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11235   1.8  christos {"evdotp4hxgssmfaa",	  VX (4, 447),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11236   1.8  christos {"evdotpwausi",		  VX (4, 448),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11237  1.11  christos {"evdotpwassi",		  VX (4, 449),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11238   1.8  christos {"evdotpwasusi",	  VX (4, 450),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11239   1.8  christos {"evdotpwaumi",		  VX (4, 456),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11240   1.8  christos {"evdotpwasmi",		  VX (4, 457),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11241   1.8  christos {"evdotpwasumi",	  VX (4, 458),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11242   1.8  christos {"evdotpwssmi",		  VX (4, 461),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11243   1.8  christos {"evdotpwsssi",		  VX (4, 461),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11244   1.8  christos {"evdotpwausiaa3",	  VX (4, 464),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11245   1.8  christos {"evdotpwassiaa3",	  VX (4, 465),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11246   1.8  christos {"evdotpwasusiaa3",	  VX (4, 466),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11247   1.8  christos {"evdotpwsssiaa3",	  VX (4, 469),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11248   1.8  christos {"evdotpwaumiaa3",	  VX (4, 472),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11249   1.8  christos {"evdotpwasmiaa3",	  VX (4, 473),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11250   1.8  christos {"evdotpwasumiaa3",	  VX (4, 474),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11251   1.8  christos {"evdotpwssmiaa3",	  VX (4, 477),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11252   1.8  christos {"evdotpwausia",	  VX (4, 480),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11253  1.11  christos {"evdotpwassia",	  VX (4, 481),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11254   1.8  christos {"evdotpwasusia",	  VX (4, 482),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11255   1.8  christos {"evdotpwaumia",	  VX (4, 488),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11256   1.8  christos {"evdotpwasmia",	  VX (4, 489),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11257   1.8  christos {"evdotpwasumia",	  VX (4, 490),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11258   1.8  christos {"evdotpwssmia",	  VX (4, 493),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11259   1.8  christos {"evdotpwsssia",	  VX (4, 493),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11260   1.8  christos {"evdotpwausiaa",	  VX (4, 496),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11261   1.8  christos {"evdotpwassiaa",	  VX (4, 497),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11262   1.8  christos {"evdotpwasusiaa",	  VX (4, 498),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11263   1.8  christos {"evdotpwsssiaa",	  VX (4, 501),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11264   1.8  christos {"evdotpwaumiaa",	  VX (4, 504),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11265   1.8  christos {"evdotpwasmiaa",	  VX (4, 505),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11266   1.8  christos {"evdotpwasumiaa",	  VX (4, 506),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11267   1.8  christos {"evdotpwssmiaa",	  VX (4, 509),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11268   1.8  christos {"evaddib",		  VX (4, 515),		VX_MASK,		PPCSPE2, 0, {RD, RB, UIMM}},
   11269   1.8  christos {"evaddih",		  VX (4, 513),		VX_MASK,		PPCSPE2, 0, {RD, RB, UIMM}},
   11270   1.8  christos {"evsubifh",		  VX (4, 517),		VX_MASK,		PPCSPE2, 0, {RD, UIMM, RB}},
   11271   1.8  christos {"evsubifb",		  VX (4, 519),		VX_MASK,		PPCSPE2, 0, {RD, UIMM, RB}},
   11272   1.8  christos {"evabsb",		  VX_RB_CONST(4, 520, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11273   1.8  christos {"evabsh",		  VX_RB_CONST(4, 520, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11274   1.8  christos {"evabsd",		  VX_RB_CONST(4, 520, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11275   1.8  christos {"evabss",		  VX_RB_CONST(4, 520, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11276   1.8  christos {"evabsbs",		  VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11277   1.8  christos {"evabshs",		  VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11278   1.8  christos {"evabsds",		  VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11279   1.8  christos {"evnegwo",		  VX_RB_CONST(4, 521, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11280   1.8  christos {"evnegb",		  VX_RB_CONST(4, 521, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11281   1.8  christos {"evnegbo",		  VX_RB_CONST(4, 521, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11282   1.8  christos {"evnegh",		  VX_RB_CONST(4, 521, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11283   1.8  christos {"evnegho",		  VX_RB_CONST(4, 521, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11284   1.8  christos {"evnegd",		  VX_RB_CONST(4, 521, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11285   1.8  christos {"evnegs",		  VX_RB_CONST(4, 521, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11286   1.8  christos {"evnegwos",		  VX_RB_CONST(4, 521, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11287   1.8  christos {"evnegbs",		  VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11288   1.8  christos {"evnegbos",		  VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11289   1.8  christos {"evneghs",		  VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11290   1.8  christos {"evneghos",		  VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11291   1.8  christos {"evnegds",		  VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11292   1.8  christos {"evextzb",		  VX_RB_CONST(4, 522, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11293   1.8  christos {"evextsbh",		  VX_RB_CONST(4, 522, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11294   1.8  christos {"evextsw",		  VX_RB_CONST(4, 523, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11295   1.8  christos {"evrndwh",		  VX_RB_CONST(4, 524, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11296   1.8  christos {"evrndhb",		  VX_RB_CONST(4, 524, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11297   1.8  christos {"evrnddw",		  VX_RB_CONST(4, 524, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11298   1.8  christos {"evrndwhus",		  VX_RB_CONST(4, 524, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11299   1.8  christos {"evrndwhss",		  VX_RB_CONST(4, 524, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11300   1.8  christos {"evrndhbus",		  VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11301   1.8  christos {"evrndhbss",		  VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11302   1.8  christos {"evrnddwus",		  VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11303   1.8  christos {"evrnddwss",		  VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11304   1.8  christos {"evrndwnh",		  VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11305   1.8  christos {"evrndhnb",		  VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11306   1.8  christos {"evrnddnw",		  VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11307   1.8  christos {"evrndwnhus",		  VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11308   1.8  christos {"evrndwnhss",		  VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11309   1.8  christos {"evrndhnbus",		  VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11310   1.8  christos {"evrndhnbss",		  VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11311   1.8  christos {"evrnddnwus",		  VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11312   1.8  christos {"evrnddnwss",		  VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11313   1.8  christos {"evcntlzh",		  VX_RB_CONST(4, 525, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11314   1.8  christos {"evcntlsh",		  VX_RB_CONST(4, 526, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11315   1.8  christos {"evpopcntb",		  VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11316   1.8  christos {"circinc",		  VX (4, 528),		   VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11317   1.8  christos {"evunpkhibui",		  VX_RB_CONST(4, 540, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11318   1.8  christos {"evunpkhibsi",		  VX_RB_CONST(4, 540, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11319   1.8  christos {"evunpkhihui",		  VX_RB_CONST(4, 540, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11320   1.8  christos {"evunpkhihsi",		  VX_RB_CONST(4, 540, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11321   1.8  christos {"evunpklobui",		  VX_RB_CONST(4, 540, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11322   1.8  christos {"evunpklobsi",		  VX_RB_CONST(4, 540, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11323   1.8  christos {"evunpklohui",		  VX_RB_CONST(4, 540, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11324   1.8  christos {"evunpklohsi",		  VX_RB_CONST(4, 540, 7),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11325   1.8  christos {"evunpklohf",		  VX_RB_CONST(4, 540, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11326   1.8  christos {"evunpkhihf",		  VX_RB_CONST(4, 540, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11327   1.8  christos {"evunpklowgsf",	  VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11328   1.8  christos {"evunpkhiwgsf",	  VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11329   1.8  christos {"evsatsduw",		  VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11330   1.8  christos {"evsatsdsw",		  VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11331   1.8  christos {"evsatshub",		  VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11332   1.8  christos {"evsatshsb",		  VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11333   1.8  christos {"evsatuwuh",		  VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11334   1.8  christos {"evsatswsh",		  VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11335   1.8  christos {"evsatswuh",		  VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11336   1.8  christos {"evsatuhub",		  VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11337   1.8  christos {"evsatuduw",		  VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11338   1.8  christos {"evsatuwsw",		  VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11339   1.8  christos {"evsatshuh",		  VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11340   1.8  christos {"evsatuhsh",		  VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11341   1.8  christos {"evsatswuw",		  VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11342   1.8  christos {"evsatswgsdf",		  VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11343   1.8  christos {"evsatsbub",		  VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11344   1.8  christos {"evsatubsb",		  VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11345   1.8  christos {"evmaxhpuw",		  VX_RB_CONST(4, 541, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11346   1.8  christos {"evmaxhpsw",		  VX_RB_CONST(4, 541, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11347   1.8  christos {"evmaxbpuh",		  VX_RB_CONST(4, 541, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11348   1.8  christos {"evmaxbpsh",		  VX_RB_CONST(4, 541, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11349   1.8  christos {"evmaxwpud",		  VX_RB_CONST(4, 541, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11350   1.8  christos {"evmaxwpsd",		  VX_RB_CONST(4, 541, 7),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11351   1.8  christos {"evminhpuw",		  VX_RB_CONST(4, 541, 8),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11352   1.8  christos {"evminhpsw",		  VX_RB_CONST(4, 541, 9),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11353   1.8  christos {"evminbpuh",		  VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11354   1.8  christos {"evminbpsh",		  VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11355   1.8  christos {"evminwpud",		  VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11356   1.8  christos {"evminwpsd",		  VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11357   1.8  christos {"evmaxmagws",		  VX (4, 543),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11358   1.8  christos {"evsl",		  VX (4, 549),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11359   1.8  christos {"evsli",		  VX (4, 551),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM}},
   11360   1.8  christos {"evsplatie",		  VX_RB_CONST (4, 553, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11361   1.8  christos {"evsplatib",		  VX_RB_CONST (4, 553, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11362   1.8  christos {"evsplatibe",		  VX_RB_CONST (4, 553, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11363   1.8  christos {"evsplatih",		  VX_RB_CONST (4, 553, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11364   1.8  christos {"evsplatihe",		  VX_RB_CONST (4, 553, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11365   1.8  christos {"evsplatid",		  VX_RB_CONST (4, 553, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11366   1.8  christos {"evsplatia",		  VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11367   1.8  christos {"evsplatiea",		  VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11368   1.8  christos {"evsplatiba",		  VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11369   1.8  christos {"evsplatibea",		  VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11370   1.8  christos {"evsplatiha",		  VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11371   1.8  christos {"evsplatihea",		  VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11372   1.8  christos {"evsplatida",		  VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11373   1.8  christos {"evsplatfio",		  VX_RB_CONST (4, 555, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11374   1.8  christos {"evsplatfib",		  VX_RB_CONST (4, 555, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11375   1.8  christos {"evsplatfibo",		  VX_RB_CONST (4, 555, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11376   1.8  christos {"evsplatfih",		  VX_RB_CONST (4, 555, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11377   1.8  christos {"evsplatfiho",		  VX_RB_CONST (4, 555, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11378   1.8  christos {"evsplatfid",		  VX_RB_CONST (4, 555, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11379   1.8  christos {"evsplatfia",		  VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11380   1.8  christos {"evsplatfioa",		  VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11381   1.8  christos {"evsplatfiba",		  VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11382   1.8  christos {"evsplatfiboa",	  VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11383   1.8  christos {"evsplatfiha",		  VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11384   1.8  christos {"evsplatfihoa",	  VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11385   1.8  christos {"evsplatfida",		  VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, SIMM}},
   11386   1.8  christos {"evcmpgtdu",		  VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11387   1.8  christos {"evcmpgtds",		  VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11388   1.8  christos {"evcmpltdu",		  VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11389   1.8  christos {"evcmpltds",		  VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11390   1.8  christos {"evcmpeqd",		  VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK,	PPCSPE2, 0, {CRFD, RA, RB}},
   11391   1.8  christos {"evswapbhilo",		  VX (4, 568),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11392   1.8  christos {"evswapblohi",		  VX (4, 569),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11393   1.8  christos {"evswaphhilo",		  VX (4, 570),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11394   1.8  christos {"evswaphlohi",		  VX (4, 571),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11395   1.8  christos {"evswaphe",		  VX (4, 572),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11396   1.8  christos {"evswaphhi",		  VX (4, 573),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11397   1.8  christos {"evswaphlo",		  VX (4, 574),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11398   1.8  christos {"evswapho",		  VX (4, 575),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11399   1.8  christos {"evinsb",		  VX (4, 584),		VX_MASK_DDD,		PPCSPE2, 0, {RD, RA, DDD, BBB}},
   11400   1.8  christos {"evxtrb",		  VX (4, 586),		VX_MASK_DDD,		PPCSPE2, 0, {RD, RA, DDD, BBB}},
   11401   1.8  christos {"evsplath",		  VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK,	PPCSPE2, 0, {RD, RA, HH}},
   11402   1.8  christos {"evsplatb",		  VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
   11403   1.8  christos {"evinsh",		  VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK,	PPCSPE2, 0, {RD, RA, DD, HH}},
   11404   1.8  christos {"evclrbe",		  VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK,	PPCSPE2, 0, {RD, RA, MMMM}},
   11405   1.8  christos {"evclrbo",		  VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK,	PPCSPE2, 0, {RD, RA, MMMM}},
   11406   1.8  christos {"evclrh",		  VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK,	PPCSPE2, 0, {RD, RA, MMMM}},
   11407   1.8  christos {"evxtrh",		  VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK,	PPCSPE2, 0, {RD, RA, DD, HH}},
   11408   1.8  christos {"evselbitm0",		  VX (4, 592),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11409   1.8  christos {"evselbitm1",		  VX (4, 593),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11410   1.8  christos {"evselbit",		  VX (4, 594),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11411   1.8  christos {"evperm",		  VX (4, 596),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11412   1.8  christos {"evperm2",		  VX (4, 597),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11413   1.8  christos {"evperm3",		  VX (4, 598),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11414   1.8  christos {"evxtrd",		  VX (4, 600),		VX_OFF_SPE2_MASK,	PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
   11415   1.8  christos {"evsrbu",		  VX (4, 608),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11416   1.8  christos {"evsrbs",		  VX (4, 609),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11417   1.8  christos {"evsrbiu",		  VX (4, 610),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11418   1.8  christos {"evsrbis",		  VX (4, 611),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11419   1.8  christos {"evslb",		  VX (4, 612),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11420   1.8  christos {"evrlb",		  VX (4, 613),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11421   1.8  christos {"evslbi",		  VX (4, 614),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11422   1.8  christos {"evrlbi",		  VX (4, 615),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
   11423   1.8  christos {"evsrhu",		  VX (4, 616),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11424   1.8  christos {"evsrhs",		  VX (4, 617),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11425   1.8  christos {"evsrhiu",		  VX (4, 618),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11426   1.8  christos {"evsrhis",		  VX (4, 619),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11427   1.8  christos {"evslh",		  VX (4, 620),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11428   1.8  christos {"evrlh",		  VX (4, 621),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11429   1.8  christos {"evslhi",		  VX (4, 622),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11430   1.8  christos {"evrlhi",		  VX (4, 623),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
   11431   1.8  christos {"evsru",		  VX (4, 624),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11432   1.8  christos {"evsrs",		  VX (4, 625),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11433   1.8  christos {"evsriu",		  VX (4, 626),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM}},
   11434   1.8  christos {"evsris",		  VX (4, 627),		VX_MASK,		PPCSPE2, 0, {RD, RA, EVUIMM}},
   11435   1.8  christos {"evlvsl",		  VX (4, 628),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11436   1.8  christos {"evlvsr",		  VX (4, 629),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11437   1.8  christos {"evsroiu",		  VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
   11438   1.8  christos {"evsrois",		  VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
   11439   1.8  christos {"evsloi",		  VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
   11440   1.8  christos {"evldbx",		  VX (4, 774),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11441   1.8  christos {"evldb",		  VX (4, 775),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8, RA}},
   11442   1.8  christos {"evlhhsplathx",	  VX (4, 778),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11443   1.8  christos {"evlhhsplath",		  VX (4, 779),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2, RA}},
   11444   1.8  christos {"evlwbsplatwx",	  VX (4, 786),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11445   1.8  christos {"evlwbsplatw",		  VX (4, 787),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11446   1.8  christos {"evlwhsplatwx",	  VX (4, 794),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11447   1.8  christos {"evlwhsplatw",		  VX (4, 795),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11448   1.8  christos {"evlbbsplatbx",	  VX (4, 798),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11449   1.8  christos {"evlbbsplatb",		  VX (4, 799),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_1, RA}},
   11450   1.8  christos {"evstdbx",		  VX (4, 806),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11451   1.8  christos {"evstdb",		  VX (4, 807),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8, RA}},
   11452   1.8  christos {"evlwbex",		  VX (4, 810),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11453   1.8  christos {"evlwbe",		  VX (4, 811),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11454   1.8  christos {"evlwboux",		  VX (4, 812),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11455   1.8  christos {"evlwbou",		  VX (4, 813),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11456   1.8  christos {"evlwbosx",		  VX (4, 814),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11457   1.8  christos {"evlwbos",		  VX (4, 815),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4, RA}},
   11458   1.8  christos {"evstwbex",		  VX (4, 818),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11459   1.8  christos {"evstwbe",		  VX (4, 819),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4, RA}},
   11460   1.8  christos {"evstwbox",		  VX (4, 822),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11461   1.8  christos {"evstwbo",		  VX (4, 823),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4, RA}},
   11462   1.8  christos {"evstwbx",		  VX (4, 826),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11463   1.8  christos {"evstwb",		  VX (4, 827),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4, RA}},
   11464   1.8  christos {"evsthbx",		  VX (4, 830),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11465   1.8  christos {"evsthb",		  VX (4, 831),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_2, RA}},
   11466   1.8  christos {"evlddmx",		  VX (4, 832),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11467   1.8  christos {"evlddu",		  VX (4, 833),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11468   1.8  christos {"evldwmx",		  VX (4, 834),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11469   1.8  christos {"evldwu",		  VX (4, 835),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11470   1.8  christos {"evldhmx",		  VX (4, 836),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11471   1.8  christos {"evldhu",		  VX (4, 837),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11472   1.8  christos {"evldbmx",		  VX (4, 838),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11473   1.8  christos {"evldbu",		  VX (4, 839),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
   11474   1.8  christos {"evlhhesplatmx",	  VX (4, 840),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11475   1.8  christos {"evlhhesplatu",	  VX (4, 841),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11476   1.8  christos {"evlhhsplathmx",	  VX (4, 842),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11477   1.8  christos {"evlhhsplathu",	  VX (4, 843),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11478   1.8  christos {"evlhhousplatmx",	  VX (4, 844),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11479   1.8  christos {"evlhhousplatu",	  VX (4, 845),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11480   1.8  christos {"evlhhossplatmx",	  VX (4, 846),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11481   1.8  christos {"evlhhossplatu",	  VX (4, 847),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
   11482   1.8  christos {"evlwhemx",		  VX (4, 848),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11483   1.8  christos {"evlwheu",		  VX (4, 849),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11484   1.8  christos {"evlwbsplatwmx",	  VX (4, 850),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11485   1.8  christos {"evlwbsplatwu",	  VX (4, 851),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11486   1.8  christos {"evlwhoumx",		  VX (4, 852),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11487   1.8  christos {"evlwhouu",		  VX (4, 853),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11488   1.8  christos {"evlwhosmx",		  VX (4, 854),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11489   1.8  christos {"evlwhosu",		  VX (4, 855),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11490   1.8  christos {"evlwwsplatmx",	  VX (4, 856),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11491   1.8  christos {"evlwwsplatu",		  VX (4, 857),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11492   1.8  christos {"evlwhsplatwmx",	  VX (4, 858),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11493   1.8  christos {"evlwhsplatwu",	  VX (4, 859),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11494   1.8  christos {"evlwhsplatmx",	  VX (4, 860),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11495   1.8  christos {"evlwhsplatu",		  VX (4, 861),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11496   1.8  christos {"evlbbsplatbmx",	  VX (4, 862),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11497   1.8  christos {"evlbbsplatbu",	  VX (4, 863),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
   11498   1.8  christos {"evstddmx",		  VX (4, 864),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11499   1.8  christos {"evstddu",		  VX (4, 865),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11500   1.8  christos {"evstdwmx",		  VX (4, 866),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11501   1.8  christos {"evstdwu",		  VX (4, 867),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11502   1.8  christos {"evstdhmx",		  VX (4, 868),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11503   1.8  christos {"evstdhu",		  VX (4, 869),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11504   1.8  christos {"evstdbmx",		  VX (4, 870),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11505   1.8  christos {"evstdbu",		  VX (4, 871),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
   11506   1.8  christos {"evlwbemx",		  VX (4, 874),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11507   1.8  christos {"evlwbeu",		  VX (4, 875),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11508   1.8  christos {"evlwboumx",		  VX (4, 876),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11509   1.8  christos {"evlwbouu",		  VX (4, 877),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11510   1.8  christos {"evlwbosmx",		  VX (4, 878),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11511   1.8  christos {"evlwbosu",		  VX (4, 879),		VX_MASK,		PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
   11512   1.8  christos {"evstwhemx",		  VX (4, 880),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11513   1.8  christos {"evstwheu",		  VX (4, 881),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11514   1.8  christos {"evstwbemx",		  VX (4, 882),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11515   1.8  christos {"evstwbeu",		  VX (4, 883),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11516   1.8  christos {"evstwhomx",		  VX (4, 884),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11517   1.8  christos {"evstwhou",		  VX (4, 885),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11518   1.8  christos {"evstwbomx",		  VX (4, 886),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11519   1.8  christos {"evstwbou",		  VX (4, 887),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11520   1.8  christos {"evstwwemx",		  VX (4, 888),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11521   1.8  christos {"evstwweu",		  VX (4, 889),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11522   1.8  christos {"evstwbmx",		  VX (4, 890),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11523   1.8  christos {"evstwbu",		  VX (4, 891),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11524   1.8  christos {"evstwwomx",		  VX (4, 892),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11525   1.8  christos {"evstwwou",		  VX (4, 893),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
   11526   1.8  christos {"evsthbmx",		  VX (4, 894),		VX_MASK,		PPCSPE2, 0, {RS, RA, RB}},
   11527   1.8  christos {"evsthbu",		  VX (4, 895),		VX_MASK,		PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
   11528   1.8  christos {"evmhusi",		  VX (4, 1024),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11529   1.8  christos {"evmhssi",		  VX (4, 1025),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11530   1.8  christos {"evmhsusi",		  VX (4, 1026),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11531   1.8  christos {"evmhssf",		  VX (4, 1028),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11532   1.8  christos {"evmhumi",		  VX (4, 1029),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11533   1.8  christos {"evmhssfr",		  VX (4, 1030),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11534   1.8  christos {"evmhesumi",		  VX (4, 1034),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11535   1.8  christos {"evmhosumi",		  VX (4, 1038),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11536   1.8  christos {"evmbeumi",		  VX (4, 1048),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11537   1.8  christos {"evmbesmi",		  VX (4, 1049),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11538   1.8  christos {"evmbesumi",		  VX (4, 1050),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11539   1.8  christos {"evmboumi",		  VX (4, 1052),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11540   1.8  christos {"evmbosmi",		  VX (4, 1053),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11541   1.8  christos {"evmbosumi",		  VX (4, 1054),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11542   1.8  christos {"evmhesumia",		  VX (4, 1066),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11543   1.8  christos {"evmhosumia",		  VX (4, 1070),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11544   1.8  christos {"evmbeumia",		  VX (4, 1080),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11545   1.8  christos {"evmbesmia",		  VX (4, 1081),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11546   1.8  christos {"evmbesumia",		  VX (4, 1082),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11547   1.8  christos {"evmboumia",		  VX (4, 1084),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11548   1.8  christos {"evmbosmia",		  VX (4, 1085),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11549   1.8  christos {"evmbosumia",		  VX (4, 1086),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11550   1.8  christos {"evmwusiw",		  VX (4, 1088),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11551   1.8  christos {"evmwssiw",		  VX (4, 1089),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11552   1.8  christos {"evmwhssfr",		  VX (4, 1094),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11553   1.8  christos {"evmwehgsmfr",		  VX (4, 1110),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11554   1.8  christos {"evmwehgsmf",		  VX (4, 1111),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11555   1.8  christos {"evmwohgsmfr",		  VX (4, 1118),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11556   1.8  christos {"evmwohgsmf",		  VX (4, 1119),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11557   1.8  christos {"evmwhssfra",		  VX (4, 1126),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11558   1.8  christos {"evmwehgsmfra",	  VX (4, 1142),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11559   1.8  christos {"evmwehgsmfa",		  VX (4, 1143),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11560   1.8  christos {"evmwohgsmfra",	  VX (4, 1150),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11561   1.8  christos {"evmwohgsmfa",		  VX (4, 1151),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11562   1.8  christos {"evaddusiaa",		  VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11563   1.8  christos {"evaddssiaa",		  VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11564   1.8  christos {"evsubfusiaa",		  VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11565   1.8  christos {"evsubfssiaa",		  VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11566   1.8  christos {"evaddsmiaa",		  VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11567   1.8  christos {"evsubfsmiaa",		  VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11568   1.8  christos {"evaddh",		  VX (4, 1160),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11569   1.8  christos {"evaddhss",		  VX (4, 1161),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11570   1.8  christos {"evsubfh",		  VX (4, 1162),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11571   1.8  christos {"evsubfhss",		  VX (4, 1163),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11572   1.8  christos {"evaddhx",		  VX (4, 1164),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11573   1.8  christos {"evaddhxss",		  VX (4, 1165),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11574   1.8  christos {"evsubfhx",		  VX (4, 1166),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11575   1.8  christos {"evsubfhxss",		  VX (4, 1167),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11576   1.8  christos {"evaddd",		  VX (4, 1168),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11577   1.8  christos {"evadddss",		  VX (4, 1169),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11578   1.8  christos {"evsubfd",		  VX (4, 1170),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11579   1.8  christos {"evsubfdss",		  VX (4, 1171),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11580   1.8  christos {"evaddb",		  VX (4, 1172),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11581   1.8  christos {"evaddbss",		  VX (4, 1173),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11582   1.8  christos {"evsubfb",		  VX (4, 1174),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11583   1.8  christos {"evsubfbss",		  VX (4, 1175),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11584   1.8  christos {"evaddsubfh",		  VX (4, 1176),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11585   1.8  christos {"evaddsubfhss",	  VX (4, 1177),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11586   1.8  christos {"evsubfaddh",		  VX (4, 1178),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11587   1.8  christos {"evsubfaddhss",	  VX (4, 1179),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11588   1.8  christos {"evaddsubfhx",		  VX (4, 1180),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11589   1.8  christos {"evaddsubfhxss",	  VX (4, 1181),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11590   1.8  christos {"evsubfaddhx",		  VX (4, 1182),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11591   1.8  christos {"evsubfaddhxss",	  VX (4, 1183),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11592   1.8  christos {"evadddus",		  VX (4, 1184),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11593   1.8  christos {"evaddbus",		  VX (4, 1185),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11594   1.8  christos {"evsubfdus",		  VX (4, 1186),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11595   1.8  christos {"evsubfbus",		  VX (4, 1187),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11596   1.8  christos {"evaddwus",		  VX (4, 1188),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11597   1.8  christos {"evaddwxus",		  VX (4, 1189),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11598   1.8  christos {"evsubfwus",		  VX (4, 1190),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11599   1.8  christos {"evsubfwxus",		  VX (4, 1191),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11600   1.8  christos {"evadd2subf2h",	  VX (4, 1192),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11601   1.8  christos {"evadd2subf2hss",	  VX (4, 1193),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11602   1.8  christos {"evsubf2add2h",	  VX (4, 1194),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11603   1.8  christos {"evsubf2add2hss",	  VX (4, 1195),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11604   1.8  christos {"evaddhus",		  VX (4, 1196),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11605   1.8  christos {"evaddhxus",		  VX (4, 1197),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11606   1.8  christos {"evsubfhus",		  VX (4, 1198),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11607   1.8  christos {"evsubfhxus",		  VX (4, 1199),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11608   1.8  christos {"evaddwss",		  VX (4, 1201),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11609   1.8  christos {"evsubfwss",		  VX (4, 1203),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11610   1.8  christos {"evaddwx",		  VX (4, 1204),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11611   1.8  christos {"evaddwxss",		  VX (4, 1205),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11612   1.8  christos {"evsubfwx",		  VX (4, 1206),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11613   1.8  christos {"evsubfwxss",		  VX (4, 1207),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11614   1.8  christos {"evaddsubfw",		  VX (4, 1208),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11615   1.8  christos {"evaddsubfwss",	  VX (4, 1209),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11616   1.8  christos {"evsubfaddw",		  VX (4, 1210),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11617   1.8  christos {"evsubfaddwss",	  VX (4, 1211),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11618   1.8  christos {"evaddsubfwx",		  VX (4, 1212),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11619   1.8  christos {"evaddsubfwxss",	  VX (4, 1213),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11620   1.8  christos {"evsubfaddwx",		  VX (4, 1214),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11621   1.8  christos {"evsubfaddwxss",	  VX (4, 1215),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11622   1.8  christos {"evmar",		  VX_SPE2_EVMAR (4, 1220),  VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
   11623   1.8  christos {"evsumwu",		  VX_RB_CONST(4, 1221, 0),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11624   1.8  christos {"evsumws",		  VX_RB_CONST(4, 1221, 1),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11625   1.8  christos {"evsum4bu",		  VX_RB_CONST(4, 1221, 2),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11626   1.8  christos {"evsum4bs",		  VX_RB_CONST(4, 1221, 3),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11627   1.8  christos {"evsum2hu",		  VX_RB_CONST(4, 1221, 4),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11628   1.8  christos {"evsum2hs",		  VX_RB_CONST(4, 1221, 5),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11629   1.8  christos {"evdiff2his",		  VX_RB_CONST(4, 1221, 6),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11630   1.8  christos {"evsum2his",		  VX_RB_CONST(4, 1221, 7),  VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11631   1.8  christos {"evsumwua",		  VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11632   1.8  christos {"evsumwsa",		  VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11633   1.8  christos {"evsum4bua",		  VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11634   1.8  christos {"evsum4bsa",		  VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11635   1.8  christos {"evsum2hua",		  VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11636   1.8  christos {"evsum2hsa",		  VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11637   1.8  christos {"evdiff2hisa",		  VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11638   1.8  christos {"evsum2hisa",		  VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11639   1.8  christos {"evsumwuaa",		  VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11640   1.8  christos {"evsumwsaa",		  VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11641   1.8  christos {"evsum4buaaw",		  VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11642   1.8  christos {"evsum4bsaaw",		  VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11643   1.8  christos {"evsum2huaaw",		  VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11644   1.8  christos {"evsum2hsaaw",		  VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11645   1.8  christos {"evdiff2hisaaw",	  VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11646   1.8  christos {"evsum2hisaaw",	  VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK,	PPCSPE2, 0, {RD, RA}},
   11647   1.8  christos {"evdivwsf",		  VX (4, 1228),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11648   1.8  christos {"evdivwuf",		  VX (4, 1229),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11649   1.8  christos {"evdivs",		  VX (4, 1230),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11650   1.8  christos {"evdivu",		  VX (4, 1231),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11651   1.8  christos {"evaddwegsi",		  VX (4, 1232),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11652   1.8  christos {"evaddwegsf",		  VX (4, 1233),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11653   1.8  christos {"evsubfwegsi",		  VX (4, 1234),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11654   1.8  christos {"evsubfwegsf",		  VX (4, 1235),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11655   1.8  christos {"evaddwogsi",		  VX (4, 1236),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11656   1.8  christos {"evaddwogsf",		  VX (4, 1237),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11657   1.8  christos {"evsubfwogsi",		  VX (4, 1238),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11658   1.8  christos {"evsubfwogsf",		  VX (4, 1239),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11659   1.8  christos {"evaddhhiuw",		  VX (4, 1240),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11660   1.8  christos {"evaddhhisw",		  VX (4, 1241),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11661   1.8  christos {"evsubfhhiuw",		  VX (4, 1242),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11662   1.8  christos {"evsubfhhisw",		  VX (4, 1243),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11663   1.8  christos {"evaddhlouw",		  VX (4, 1244),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11664   1.8  christos {"evaddhlosw",		  VX (4, 1245),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11665   1.8  christos {"evsubfhlouw",		  VX (4, 1246),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11666   1.8  christos {"evsubfhlosw",		  VX (4, 1247),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11667   1.8  christos {"evmhesusiaaw",	  VX (4, 1282),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11668   1.8  christos {"evmhosusiaaw",	  VX (4, 1286),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11669   1.8  christos {"evmhesumiaaw",	  VX (4, 1290),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11670   1.8  christos {"evmhosumiaaw",	  VX (4, 1294),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11671   1.8  christos {"evmbeusiaah",		  VX (4, 1296),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11672   1.8  christos {"evmbessiaah",		  VX (4, 1297),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11673   1.8  christos {"evmbesusiaah",	  VX (4, 1298),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11674   1.8  christos {"evmbousiaah",		  VX (4, 1300),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11675   1.8  christos {"evmbossiaah",		  VX (4, 1301),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11676   1.8  christos {"evmbosusiaah",	  VX (4, 1302),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11677   1.8  christos {"evmbeumiaah",		  VX (4, 1304),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11678   1.8  christos {"evmbesmiaah",		  VX (4, 1305),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11679   1.8  christos {"evmbesumiaah",	  VX (4, 1306),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11680   1.8  christos {"evmboumiaah",		  VX (4, 1308),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11681   1.8  christos {"evmbosmiaah",		  VX (4, 1309),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11682   1.8  christos {"evmbosumiaah",	  VX (4, 1310),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11683   1.8  christos {"evmwlusiaaw3",	  VX (4, 1346),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11684   1.8  christos {"evmwlssiaaw3",	  VX (4, 1347),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11685   1.8  christos {"evmwhssfraaw3",	  VX (4, 1348),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11686   1.8  christos {"evmwhssfaaw3",	  VX (4, 1349),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11687   1.8  christos {"evmwhssfraaw",	  VX (4, 1350),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11688   1.8  christos {"evmwhssfaaw",		  VX (4, 1351),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11689   1.8  christos {"evmwlumiaaw3",	  VX (4, 1354),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11690   1.8  christos {"evmwlsmiaaw3",	  VX (4, 1355),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11691   1.8  christos {"evmwusiaa",		  VX (4, 1360),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11692   1.8  christos {"evmwssiaa",		  VX (4, 1361),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11693   1.8  christos {"evmwehgsmfraa",	  VX (4, 1366),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11694   1.8  christos {"evmwehgsmfaa",	  VX (4, 1367),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11695   1.8  christos {"evmwohgsmfraa",	  VX (4, 1374),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11696   1.8  christos {"evmwohgsmfaa",	  VX (4, 1375),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11697   1.8  christos {"evmhesusianw",	  VX (4, 1410),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11698   1.8  christos {"evmhosusianw",	  VX (4, 1414),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11699   1.8  christos {"evmhesumianw",	  VX (4, 1418),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11700   1.8  christos {"evmhosumianw",	  VX (4, 1422),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11701   1.8  christos {"evmbeusianh",		  VX (4, 1424),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11702   1.8  christos {"evmbessianh",		  VX (4, 1425),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11703   1.8  christos {"evmbesusianh",	  VX (4, 1426),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11704   1.8  christos {"evmbousianh",		  VX (4, 1428),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11705   1.8  christos {"evmbossianh",		  VX (4, 1429),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11706   1.8  christos {"evmbosusianh",	  VX (4, 1430),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11707   1.8  christos {"evmbeumianh",		  VX (4, 1432),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11708   1.8  christos {"evmbesmianh",		  VX (4, 1433),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11709   1.8  christos {"evmbesumianh",	  VX (4, 1434),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11710   1.8  christos {"evmboumianh",		  VX (4, 1436),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11711   1.8  christos {"evmbosmianh",		  VX (4, 1437),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11712   1.8  christos {"evmbosumianh",	  VX (4, 1438),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11713   1.8  christos {"evmwlusianw3",	  VX (4, 1474),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11714   1.8  christos {"evmwlssianw3",	  VX (4, 1475),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11715   1.8  christos {"evmwhssfranw3",	  VX (4, 1476),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11716   1.8  christos {"evmwhssfanw3",	  VX (4, 1477),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11717   1.8  christos {"evmwhssfranw",	  VX (4, 1478),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11718   1.8  christos {"evmwhssfanw",		  VX (4, 1479),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11719   1.8  christos {"evmwlumianw3",	  VX (4, 1482),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11720   1.8  christos {"evmwlsmianw3",	  VX (4, 1483),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11721   1.8  christos {"evmwusian",		  VX (4, 1488),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11722   1.8  christos {"evmwssian",		  VX (4, 1489),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11723   1.8  christos {"evmwehgsmfran",	  VX (4, 1494),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11724   1.8  christos {"evmwehgsmfan",	  VX (4, 1495),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11725   1.8  christos {"evmwohgsmfran",	  VX (4, 1502),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11726   1.8  christos {"evmwohgsmfan",	  VX (4, 1503),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11727   1.8  christos {"evseteqb",		  VX (4, 1536),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11728   1.8  christos {"evseteqb.",		  VX (4, 1537),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11729   1.8  christos {"evseteqh",		  VX (4, 1538),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11730   1.8  christos {"evseteqh.",		  VX (4, 1539),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11731   1.8  christos {"evseteqw",		  VX (4, 1540),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11732   1.8  christos {"evseteqw.",		  VX (4, 1541),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11733   1.8  christos {"evsetgthu",		  VX (4, 1544),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11734   1.8  christos {"evsetgthu.",		  VX (4, 1545),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11735   1.8  christos {"evsetgths",		  VX (4, 1546),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11736   1.8  christos {"evsetgths.",		  VX (4, 1547),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11737   1.8  christos {"evsetgtwu",		  VX (4, 1548),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11738   1.8  christos {"evsetgtwu.",		  VX (4, 1549),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11739   1.8  christos {"evsetgtws",		  VX (4, 1550),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11740   1.8  christos {"evsetgtws.",		  VX (4, 1551),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11741   1.8  christos {"evsetgtbu",		  VX (4, 1552),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11742   1.8  christos {"evsetgtbu.",		  VX (4, 1553),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11743   1.8  christos {"evsetgtbs",		  VX (4, 1554),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11744   1.8  christos {"evsetgtbs.",		  VX (4, 1555),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11745   1.8  christos {"evsetltbu",		  VX (4, 1556),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11746   1.8  christos {"evsetltbu.",		  VX (4, 1557),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11747   1.8  christos {"evsetltbs",		  VX (4, 1558),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11748   1.8  christos {"evsetltbs.",		  VX (4, 1559),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11749   1.8  christos {"evsetlthu",		  VX (4, 1560),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11750   1.8  christos {"evsetlthu.",		  VX (4, 1561),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11751   1.8  christos {"evsetlths",		  VX (4, 1562),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11752   1.8  christos {"evsetlths.",		  VX (4, 1563),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11753   1.8  christos {"evsetltwu",		  VX (4, 1564),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11754   1.8  christos {"evsetltwu.",		  VX (4, 1565),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11755   1.8  christos {"evsetltws",		  VX (4, 1566),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11756   1.8  christos {"evsetltws.",		  VX (4, 1567),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11757   1.8  christos {"evsaduw",		  VX (4, 1568),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11758   1.8  christos {"evsadsw",		  VX (4, 1569),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11759   1.8  christos {"evsad4ub",		  VX (4, 1570),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11760   1.8  christos {"evsad4sb",		  VX (4, 1571),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11761   1.8  christos {"evsad2uh",		  VX (4, 1572),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11762   1.8  christos {"evsad2sh",		  VX (4, 1573),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11763   1.8  christos {"evsaduwa",		  VX (4, 1576),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11764   1.8  christos {"evsadswa",		  VX (4, 1577),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11765   1.8  christos {"evsad4uba",		  VX (4, 1578),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11766   1.8  christos {"evsad4sba",		  VX (4, 1579),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11767   1.8  christos {"evsad2uha",		  VX (4, 1580),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11768   1.8  christos {"evsad2sha",		  VX (4, 1581),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11769   1.8  christos {"evabsdifuw",		  VX (4, 1584),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11770   1.8  christos {"evabsdifsw",		  VX (4, 1585),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11771   1.8  christos {"evabsdifub",		  VX (4, 1586),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11772   1.8  christos {"evabsdifsb",		  VX (4, 1587),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11773   1.8  christos {"evabsdifuh",		  VX (4, 1588),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11774   1.8  christos {"evabsdifsh",		  VX (4, 1589),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11775   1.8  christos {"evsaduwaa",		  VX (4, 1592),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11776   1.8  christos {"evsadswaa",		  VX (4, 1593),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11777   1.8  christos {"evsad4ubaaw",		  VX (4, 1594),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11778   1.8  christos {"evsad4sbaaw",		  VX (4, 1595),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11779   1.8  christos {"evsad2uhaaw",		  VX (4, 1596),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11780   1.8  christos {"evsad2shaaw",		  VX (4, 1597),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11781   1.8  christos {"evpkshubs",		  VX (4, 1600),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11782   1.8  christos {"evpkshsbs",		  VX (4, 1601),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11783   1.8  christos {"evpkswuhs",		  VX (4, 1602),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11784   1.8  christos {"evpkswshs",		  VX (4, 1603),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11785   1.8  christos {"evpkuhubs",		  VX (4, 1604),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11786   1.8  christos {"evpkuwuhs",		  VX (4, 1605),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11787   1.8  christos {"evpkswshilvs",	  VX (4, 1606),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11788   1.8  christos {"evpkswgshefrs",	  VX (4, 1607),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11789   1.8  christos {"evpkswshfrs",		  VX (4, 1608),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11790   1.8  christos {"evpkswshilvfrs",	  VX (4, 1609),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11791   1.8  christos {"evpksdswfrs",		  VX (4, 1610),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11792   1.8  christos {"evpksdshefrs",	  VX (4, 1611),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11793   1.8  christos {"evpkuduws",		  VX (4, 1612),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11794   1.8  christos {"evpksdsws",		  VX (4, 1613),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11795   1.8  christos {"evpkswgswfrs",	  VX (4, 1614),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11796   1.8  christos {"evilveh",		  VX (4, 1616),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11797   1.8  christos {"evilveoh",		  VX (4, 1617),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11798   1.8  christos {"evilvhih",		  VX (4, 1618),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11799   1.8  christos {"evilvhiloh",		  VX (4, 1619),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11800   1.8  christos {"evilvloh",		  VX (4, 1620),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11801   1.8  christos {"evilvlohih",		  VX (4, 1621),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11802   1.8  christos {"evilvoeh",		  VX (4, 1622),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11803   1.8  christos {"evilvoh",		  VX (4, 1623),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11804   1.8  christos {"evdlveb",		  VX (4, 1624),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11805   1.8  christos {"evdlveh",		  VX (4, 1625),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11806   1.8  christos {"evdlveob",		  VX (4, 1626),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11807   1.8  christos {"evdlveoh",		  VX (4, 1627),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11808   1.8  christos {"evdlvob",		  VX (4, 1628),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11809   1.8  christos {"evdlvoh",		  VX (4, 1629),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11810   1.8  christos {"evdlvoeb",		  VX (4, 1630),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11811   1.8  christos {"evdlvoeh",		  VX (4, 1631),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11812   1.8  christos {"evmaxbu",		  VX (4, 1632),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11813   1.8  christos {"evmaxbs",		  VX (4, 1633),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11814   1.8  christos {"evmaxhu",		  VX (4, 1634),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11815   1.8  christos {"evmaxhs",		  VX (4, 1635),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11816   1.8  christos {"evmaxwu",		  VX (4, 1636),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11817   1.8  christos {"evmaxws",		  VX (4, 1637),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11818   1.8  christos {"evmaxdu",		  VX (4, 1638),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11819   1.8  christos {"evmaxds",		  VX (4, 1639),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11820   1.8  christos {"evminbu",		  VX (4, 1640),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11821   1.8  christos {"evminbs",		  VX (4, 1641),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11822   1.8  christos {"evminhu",		  VX (4, 1642),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11823   1.8  christos {"evminhs",		  VX (4, 1643),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11824   1.8  christos {"evminwu",		  VX (4, 1644),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11825   1.8  christos {"evminws",		  VX (4, 1645),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11826   1.8  christos {"evmindu",		  VX (4, 1646),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11827   1.8  christos {"evminds",		  VX (4, 1647),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11828   1.8  christos {"evavgwu",		  VX (4, 1648),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11829   1.8  christos {"evavgws",		  VX (4, 1649),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11830   1.8  christos {"evavgbu",		  VX (4, 1650),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11831   1.8  christos {"evavgbs",		  VX (4, 1651),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11832   1.8  christos {"evavghu",		  VX (4, 1652),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11833   1.8  christos {"evavghs",		  VX (4, 1653),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11834   1.8  christos {"evavgdu",		  VX (4, 1654),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11835   1.8  christos {"evavgds",		  VX (4, 1655),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11836   1.8  christos {"evavgwur",		  VX (4, 1656),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11837   1.8  christos {"evavgwsr",		  VX (4, 1657),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11838   1.8  christos {"evavgbur",		  VX (4, 1658),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11839   1.8  christos {"evavgbsr",		  VX (4, 1659),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11840  1.12  christos {"evavghur",		  VX (4, 1660),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11841                 {"evavghsr",		  VX (4, 1661),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11842                 {"evavgdur",		  VX (4, 1662),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11843                 {"evavgdsr",		  VX (4, 1663),		VX_MASK,		PPCSPE2, 0, {RD, RA, RB}},
   11844                 };
   11845                 
   11846                 const unsigned int spe2_num_opcodes = ARRAY_SIZE (spe2_opcodes);
   11847