Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/opcodes/ppc-opc.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    11/* ppc-opc.c -- PowerPC opcode list
    2    Copyright 1994, 1995, 1996, 1997, 1998, 2000
     2   Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003
    33   Free Software Foundation, Inc.
    44   Written by Ian Lance Taylor, Cygnus Support
    55
    6 This file is part of GDB, GAS, and the GNU binutils.
    7 
    8 GDB, GAS, and the GNU binutils are free software; you can redistribute
    9 them and/or modify them under the terms of the GNU General Public
    10 License as published by the Free Software Foundation; either version
    11 2, or (at your option) any later version.
    12 
    13 GDB, GAS, and the GNU binutils are distributed in the hope that they
    14 will be useful, but WITHOUT ANY WARRANTY; without even the implied
    15 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
    16 the GNU General Public License for more details.
    17 
    18 You should have received a copy of the GNU General Public License
    19 along with this file; see the file COPYING.  If not, write to the Free
    20 Software Foundation, 59 Temple Place - Suite 330, Boston, MA
    21 02111-1307, USA.  */
     6   This file is part of GDB, GAS, and the GNU binutils.
     7
     8   GDB, GAS, and the GNU binutils are free software; you can redistribute
     9   them and/or modify them under the terms of the GNU General Public
     10   License as published by the Free Software Foundation; either version
     11   2, or (at your option) any later version.
     12
     13   GDB, GAS, and the GNU binutils are distributed in the hope that they
     14   will be useful, but WITHOUT ANY WARRANTY; without even the implied
     15   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
     16   the GNU General Public License for more details.
     17
     18   You should have received a copy of the GNU General Public License
     19   along with this file; see the file COPYING.  If not, write to the Free
     20   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
     21   02111-1307, USA.  */
    2222
    2323#include <stdio.h>
     
    4040/* Local insertion and extraction functions.  */
    4141
    42 static unsigned long insert_bat PARAMS ((unsigned long, long, const char **));
    43 static long extract_bat PARAMS ((unsigned long, int *));
    44 static unsigned long insert_bba PARAMS ((unsigned long, long, const char **));
    45 static long extract_bba PARAMS ((unsigned long, int *));
    46 static unsigned long insert_bd PARAMS ((unsigned long, long, const char **));
    47 static long extract_bd PARAMS ((unsigned long, int *));
    48 static unsigned long insert_bdm PARAMS ((unsigned long, long, const char **));
    49 static long extract_bdm PARAMS ((unsigned long, int *));
    50 static unsigned long insert_bdp PARAMS ((unsigned long, long, const char **));
    51 static long extract_bdp PARAMS ((unsigned long, int *));
    52 static int valid_bo PARAMS ((long));
    53 static unsigned long insert_bo PARAMS ((unsigned long, long, const char **));
    54 static long extract_bo PARAMS ((unsigned long, int *));
    55 static unsigned long insert_boe PARAMS ((unsigned long, long, const char **));
    56 static long extract_boe PARAMS ((unsigned long, int *));
    57 static unsigned long insert_ds PARAMS ((unsigned long, long, const char **));
    58 static long extract_ds PARAMS ((unsigned long, int *));
    59 static unsigned long insert_li PARAMS ((unsigned long, long, const char **));
    60 static long extract_li PARAMS ((unsigned long, int *));
    61 static unsigned long insert_mbe PARAMS ((unsigned long, long, const char **));
    62 static long extract_mbe PARAMS ((unsigned long, int *));
    63 static unsigned long insert_mb6 PARAMS ((unsigned long, long, const char **));
    64 static long extract_mb6 PARAMS ((unsigned long, int *));
    65 static unsigned long insert_nb PARAMS ((unsigned long, long, const char **));
    66 static long extract_nb PARAMS ((unsigned long, int *));
    67 static unsigned long insert_nsi PARAMS ((unsigned long, long, const char **));
    68 static long extract_nsi PARAMS ((unsigned long, int *));
    69 static unsigned long insert_ral PARAMS ((unsigned long, long, const char **));
    70 static unsigned long insert_ram PARAMS ((unsigned long, long, const char **));
    71 static unsigned long insert_ras PARAMS ((unsigned long, long, const char **));
    72 static unsigned long insert_rbs PARAMS ((unsigned long, long, const char **));
    73 static long extract_rbs PARAMS ((unsigned long, int *));
    74 static unsigned long insert_sh6 PARAMS ((unsigned long, long, const char **));
    75 static long extract_sh6 PARAMS ((unsigned long, int *));
    76 static unsigned long insert_spr PARAMS ((unsigned long, long, const char **));
    77 static long extract_spr PARAMS ((unsigned long, int *));
    78 static unsigned long insert_tbr PARAMS ((unsigned long, long, const char **));
    79 static long extract_tbr PARAMS ((unsigned long, int *));
     42static unsigned long insert_bat
     43  PARAMS ((unsigned long, long, int, const char **));
     44static long extract_bat
     45  PARAMS ((unsigned long, int, int *));
     46static unsigned long insert_bba
     47  PARAMS ((unsigned long, long, int, const char **));
     48static long extract_bba
     49  PARAMS ((unsigned long, int, int *));
     50static unsigned long insert_bd
     51  PARAMS ((unsigned long, long, int, const char **));
     52static long extract_bd
     53  PARAMS ((unsigned long, int, int *));
     54static unsigned long insert_bdm
     55  PARAMS ((unsigned long, long, int, const char **));
     56static long extract_bdm
     57  PARAMS ((unsigned long, int, int *));
     58static unsigned long insert_bdp
     59  PARAMS ((unsigned long, long, int, const char **));
     60static long extract_bdp
     61  PARAMS ((unsigned long, int, int *));
     62static int valid_bo
     63  PARAMS ((long, int));
     64static unsigned long insert_bo
     65  PARAMS ((unsigned long, long, int, const char **));
     66static long extract_bo
     67  PARAMS ((unsigned long, int, int *));
     68static unsigned long insert_boe
     69  PARAMS ((unsigned long, long, int, const char **));
     70static long extract_boe
     71  PARAMS ((unsigned long, int, int *));
     72static unsigned long insert_ds
     73  PARAMS ((unsigned long, long, int, const char **));
     74static long extract_ds
     75  PARAMS ((unsigned long, int, int *));
     76static unsigned long insert_de
     77  PARAMS ((unsigned long, long, int, const char **));
     78static long extract_de
     79  PARAMS ((unsigned long, int, int *));
     80static unsigned long insert_des
     81  PARAMS ((unsigned long, long, int, const char **));
     82static long extract_des
     83  PARAMS ((unsigned long, int, int *));
     84static unsigned long insert_li
     85  PARAMS ((unsigned long, long, int, const char **));
     86static long extract_li
     87  PARAMS ((unsigned long, int, int *));
     88static unsigned long insert_mbe
     89  PARAMS ((unsigned long, long, int, const char **));
     90static long extract_mbe
     91  PARAMS ((unsigned long, int, int *));
     92static unsigned long insert_mb6
     93  PARAMS ((unsigned long, long, int, const char **));
     94static long extract_mb6
     95  PARAMS ((unsigned long, int, int *));
     96static unsigned long insert_nb
     97  PARAMS ((unsigned long, long, int, const char **));
     98static long extract_nb
     99  PARAMS ((unsigned long, int, int *));
     100static unsigned long insert_nsi
     101  PARAMS ((unsigned long, long, int, const char **));
     102static long extract_nsi
     103  PARAMS ((unsigned long, int, int *));
     104static unsigned long insert_ral
     105  PARAMS ((unsigned long, long, int, const char **));
     106static unsigned long insert_ram
     107  PARAMS ((unsigned long, long, int, const char **));
     108static unsigned long insert_ras
     109  PARAMS ((unsigned long, long, int, const char **));
     110static unsigned long insert_rbs
     111  PARAMS ((unsigned long, long, int, const char **));
     112static long extract_rbs
     113  PARAMS ((unsigned long, int, int *));
     114static unsigned long insert_sh6
     115  PARAMS ((unsigned long, long, int, const char **));
     116static long extract_sh6
     117  PARAMS ((unsigned long, int, int *));
     118static unsigned long insert_spr
     119  PARAMS ((unsigned long, long, int, const char **));
     120static long extract_spr
     121  PARAMS ((unsigned long, int, int *));
     122static unsigned long insert_tbr
     123  PARAMS ((unsigned long, long, int, const char **));
     124static long extract_tbr
     125  PARAMS ((unsigned long, int, int *));
     126static unsigned long insert_ev2
     127  PARAMS ((unsigned long, long, int, const char **));
     128static long extract_ev2
     129  PARAMS ((unsigned long, int, int *));
     130static unsigned long insert_ev4
     131  PARAMS ((unsigned long, long, int, const char **));
     132static long extract_ev4
     133  PARAMS ((unsigned long, int, int *));
     134static unsigned long insert_ev8
     135  PARAMS ((unsigned long, long, int, const char **));
     136static long extract_ev8
     137  PARAMS ((unsigned long, int, int *));
    80138
    81139
     
    192250  { 3, 18, 0, 0, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL },
    193251
     252  /* The CRB field in an X form instruction.  */
     253#define CRB CR + 1
     254  { 5, 6, 0, 0, 0 },
     255
     256  /* The CRFD field in an X form instruction.  */
     257#define CRFD CRB + 1
     258  { 3, 23, 0, 0, PPC_OPERAND_CR },
     259
     260  /* The CRFS field in an X form instruction.  */
     261#define CRFS CRFD + 1
     262  { 3, 0, 0, 0, PPC_OPERAND_CR },
     263
     264  /* The CT field in an X form instruction.  */
     265#define CT CRFS + 1
     266  { 5, 21, 0, 0, PPC_OPERAND_OPTIONAL },
     267
    194268  /* The D field in a D form instruction.  This is a displacement off
    195269     a register, and implies that the next operand is a register in
    196270     parentheses.  */
    197 #define D CR + 1
     271#define D CT + 1
    198272  { 16, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
     273
     274  /* The DE field in a DE form instruction.  This is like D, but is 12
     275     bits only.  */
     276#define DE D + 1
     277  { 14, 0, insert_de, extract_de, PPC_OPERAND_PARENS },
     278
     279  /* The DES field in a DES form instruction.  This is like DS, but is 14
     280     bits only (12 stored.)  */
     281#define DES DE + 1
     282  { 14, 0, insert_des, extract_des, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
    199283
    200284  /* The DS field in a DS form instruction.  This is like D, but the
    201285     lower two bits are forced to zero.  */
    202 #define DS D + 1
    203   { 16, 0, insert_ds, extract_ds, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
     286#define DS DES + 1
     287  { 16, 0, insert_ds, extract_ds,
     288      PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
    204289
    205290  /* The E field in a wrteei instruction.  */
     
    263348  { 26, 0, insert_li, extract_li, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
    264349
     350  /* The LS field in an X (sync) form instruction.  */
     351#define LS LIA + 1
     352  { 2, 21, 0, 0, PPC_OPERAND_OPTIONAL },
     353
    265354  /* The MB field in an M form instruction.  */
    266 #define MB LIA + 1
     355#define MB LS + 1
    267356#define MB_MASK (0x1f << 6)
    268357  { 5, 6, 0, 0, 0 },
     
    288377  { 6, 5, insert_mb6, extract_mb6, 0 },
    289378
     379  /* The MO field in an mbar instruction.  */
     380#define MO MB6 + 1
     381  { 5, 21, 0, 0, 0 },
     382
    290383  /* The NB field in an X form instruction.  The value 32 is stored as
    291384     0.  */
    292 #define NB MB6 + 1
     385#define NB MO + 1
    293386  { 6, 11, insert_nb, extract_nb, 0 },
    294387
     
    362455     lower 5 bits are stored in the upper 5 and vice- versa.  */
    363456#define SPR SISIGNOPT + 1
     457#define PMR SPR
    364458#define SPR_MASK (0x3ff << 11)
    365459  { 10, 11, insert_spr, extract_spr, 0 },
     
    379473  { 4, 16, 0, 0, 0 },
    380474
     475  /* The STRM field in an X AltiVec form instruction.  */
     476#define STRM SR + 1
     477#define STRM_MASK (0x3 << 21)
     478  { 2, 21, 0, 0, 0 },
     479
    381480  /* The SV field in a POWER SC form instruction.  */
    382 #define SV SR + 1
     481#define SV STRM + 1
    383482  { 14, 2, 0, 0, 0 },
    384483
     
    401500  { 16, 0, 0, 0, 0 },
    402501
    403   /* The VA field in a VA, VX or VXR form instruction. */
     502  /* The VA field in a VA, VX or VXR form instruction.  */
    404503#define VA UI + 1
    405504#define VA_MASK (0x1f << 16)
    406   {5, 16, 0, 0, PPC_OPERAND_VR},
    407 
    408   /* The VB field in a VA, VX or VXR form instruction. */
     505  { 5, 16, 0, 0, PPC_OPERAND_VR },
     506
     507  /* The VB field in a VA, VX or VXR form instruction.  */
    409508#define VB VA + 1
    410509#define VB_MASK (0x1f << 11)
    411   {5, 11, 0, 0, PPC_OPERAND_VR},
    412 
    413   /* The VC field in a VA form instruction. */
     510  { 5, 11, 0, 0, PPC_OPERAND_VR },
     511
     512  /* The VC field in a VA form instruction.  */
    414513#define VC VB + 1
    415514#define VC_MASK (0x1f << 6)
    416   {5, 6, 0, 0, PPC_OPERAND_VR},
    417 
    418   /* The VD or VS field in a VA, VX, VXR or X form instruction. */
     515  { 5, 6, 0, 0, PPC_OPERAND_VR },
     516
     517  /* The VD or VS field in a VA, VX, VXR or X form instruction.  */
    419518#define VD VC + 1
    420519#define VS VD
    421520#define VD_MASK (0x1f << 21)
    422   {5, 21, 0, 0, PPC_OPERAND_VR},
    423 
    424   /* The SIMM field in a VX form instruction. */
     521  { 5, 21, 0, 0, PPC_OPERAND_VR },
     522
     523  /* The SIMM field in a VX form instruction.  */
    425524#define SIMM VD + 1
    426525  { 5, 16, 0, 0, PPC_OPERAND_SIGNED},
    427526
    428   /* The UIMM field in a VX form instruction. */
     527  /* The UIMM field in a VX form instruction.  */
    429528#define UIMM SIMM + 1
    430529  { 5, 16, 0, 0, 0 },
    431530
    432   /* The SHB field in a VA form instruction. */
     531  /* The SHB field in a VA form instruction.  */
    433532#define SHB UIMM + 1
    434533  { 4, 6, 0, 0, 0 },
     534
     535  /* The other UIMM field in a EVX form instruction.  */
     536#define EVUIMM SHB + 1
     537  { 5, 11, 0, 0, 0 },
     538
     539  /* The other UIMM field in a half word EVX form instruction.  */
     540#define EVUIMM_2 EVUIMM + 1
     541  { 32, 11, insert_ev2, extract_ev2, PPC_OPERAND_PARENS },
     542
     543  /* The other UIMM field in a word EVX form instruction.  */
     544#define EVUIMM_4 EVUIMM_2 + 1
     545  { 32, 11, insert_ev4, extract_ev4, PPC_OPERAND_PARENS },
     546
     547  /* The other UIMM field in a double EVX form instruction.  */
     548#define EVUIMM_8 EVUIMM_4 + 1
     549  { 32, 11, insert_ev8, extract_ev8, PPC_OPERAND_PARENS },
     550
     551  /* The WS field.  */
     552#define WS EVUIMM_8 + 1
     553#define WS_MASK (0x7 << 11)
     554  { 3, 11, 0, 0, 0 },
     555
     556  /* The L field in an mtmsrd instruction */
     557#define MTMSRD_L WS + 1
     558  { 1, 16, 0, 0, PPC_OPERAND_OPTIONAL },
     559
    435560};
    436561
     
    445570/*ARGSUSED*/
    446571static unsigned long
    447 insert_bat (insn, value, errmsg)
     572insert_bat (insn, value, dialect, errmsg)
    448573     unsigned long insn;
    449574     long value ATTRIBUTE_UNUSED;
     575     int dialect ATTRIBUTE_UNUSED;
    450576     const char **errmsg ATTRIBUTE_UNUSED;
    451577{
     
    454580
    455581static long
    456 extract_bat (insn, invalid)
    457      unsigned long insn;
     582extract_bat (insn, dialect, invalid)
     583     unsigned long insn;
     584     int dialect ATTRIBUTE_UNUSED;
    458585     int *invalid;
    459586{
     
    472599/*ARGSUSED*/
    473600static unsigned long
    474 insert_bba (insn, value, errmsg)
     601insert_bba (insn, value, dialect, errmsg)
    475602     unsigned long insn;
    476603     long value ATTRIBUTE_UNUSED;
     604     int dialect ATTRIBUTE_UNUSED;
    477605     const char **errmsg ATTRIBUTE_UNUSED;
    478606{
     
    481609
    482610static long
    483 extract_bba (insn, invalid)
    484      unsigned long insn;
     611extract_bba (insn, dialect, invalid)
     612     unsigned long insn;
     613     int dialect ATTRIBUTE_UNUSED;
    485614     int *invalid;
    486615{
     
    496625/*ARGSUSED*/
    497626static unsigned long
    498 insert_bd (insn, value, errmsg)
     627insert_bd (insn, value, dialect, errmsg)
    499628     unsigned long insn;
    500629     long value;
     630     int dialect ATTRIBUTE_UNUSED;
    501631     const char **errmsg ATTRIBUTE_UNUSED;
    502632{
     
    506636/*ARGSUSED*/
    507637static long
    508 extract_bd (insn, invalid)
    509      unsigned long insn;
     638extract_bd (insn, dialect, invalid)
     639     unsigned long insn;
     640     int dialect ATTRIBUTE_UNUSED;
    510641     int *invalid ATTRIBUTE_UNUSED;
    511642{
    512   if ((insn & 0x8000) != 0)
    513     return (insn & 0xfffc) - 0x10000;
    514   else
    515     return insn & 0xfffc;
     643  return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
    516644}
    517645
    518646/* The BD field in a B form instruction when the - modifier is used.
    519647   This modifier means that the branch is not expected to be taken.
    520    We must set the y bit of the BO field to 1 if the offset is
    521    negative.  When extracting, we require that the y bit be 1 and that
    522    the offset be positive, since if the y bit is 0 we just want to
    523    print the normal form of the instruction.  */
     648   For chips built to versions of the architecture prior to version 2
     649   (ie. not Power4 compatible), we set the y bit of the BO field to 1
     650   if the offset is negative.  When extracting, we require that the y
     651   bit be 1 and that the offset be positive, since if the y bit is 0
     652   we just want to print the normal form of the instruction.
     653   Power4 compatible targets use two bits, "a", and "t", instead of
     654   the "y" bit.  "at" == 00 => no hint, "at" == 01 => unpredictable,
     655   "at" == 10 => not taken, "at" == 11 => taken.  The "t" bit is 00001
     656   in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
     657   for branch on CTR.  We only handle the taken/not-taken hint here.  */
    524658
    525659/*ARGSUSED*/
    526660static unsigned long
    527 insert_bdm (insn, value, errmsg)
     661insert_bdm (insn, value, dialect, errmsg)
    528662     unsigned long insn;
    529663     long value;
     664     int dialect;
    530665     const char **errmsg ATTRIBUTE_UNUSED;
    531666{
    532   if ((value & 0x8000) != 0)
    533     insn |= 1 << 21;
     667  if ((dialect & PPC_OPCODE_POWER4) == 0)
     668    {
     669      if ((value & 0x8000) != 0)
     670        insn |= 1 << 21;
     671    }
     672  else
     673    {
     674      if ((insn & (0x14 << 21)) == (0x04 << 21))
     675        insn |= 0x02 << 21;
     676      else if ((insn & (0x14 << 21)) == (0x10 << 21))
     677        insn |= 0x08 << 21;
     678    }
    534679  return insn | (value & 0xfffc);
    535680}
    536681
    537682static long
    538 extract_bdm (insn, invalid)
    539      unsigned long insn;
     683extract_bdm (insn, dialect, invalid)
     684     unsigned long insn;
     685     int dialect;
    540686     int *invalid;
    541687{
    542   if (invalid != (int *) NULL
    543       && ((insn & (1 << 21)) == 0
    544           || (insn & (1 << 15)) == 0))
    545     *invalid = 1;
    546   if ((insn & 0x8000) != 0)
    547     return (insn & 0xfffc) - 0x10000;
    548   else
    549     return insn & 0xfffc;
     688  if (invalid != (int *) NULL)
     689    {
     690      if ((dialect & PPC_OPCODE_POWER4) == 0)
     691        {
     692          if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
     693            *invalid = 1;
     694        }
     695      else
     696        {
     697          if ((insn & (0x17 << 21)) != (0x06 << 21)
     698              && (insn & (0x1d << 21)) != (0x18 << 21))
     699            *invalid = 1;
     700        }
     701    }
     702  return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
    550703}
    551704
     
    556709/*ARGSUSED*/
    557710static unsigned long
    558 insert_bdp (insn, value, errmsg)
     711insert_bdp (insn, value, dialect, errmsg)
    559712     unsigned long insn;
    560713     long value;
     714     int dialect;
    561715     const char **errmsg ATTRIBUTE_UNUSED;
    562716{
    563   if ((value & 0x8000) == 0)
    564     insn |= 1 << 21;
     717  if ((dialect & PPC_OPCODE_POWER4) == 0)
     718    {
     719      if ((value & 0x8000) == 0)
     720        insn |= 1 << 21;
     721    }
     722  else
     723    {
     724      if ((insn & (0x14 << 21)) == (0x04 << 21))
     725        insn |= 0x03 << 21;
     726      else if ((insn & (0x14 << 21)) == (0x10 << 21))
     727        insn |= 0x09 << 21;
     728    }
    565729  return insn | (value & 0xfffc);
    566730}
    567731
    568732static long
    569 extract_bdp (insn, invalid)
    570      unsigned long insn;
     733extract_bdp (insn, dialect, invalid)
     734     unsigned long insn;
     735     int dialect;
    571736     int *invalid;
    572737{
    573   if (invalid != (int *) NULL
    574       && ((insn & (1 << 21)) == 0
    575           || (insn & (1 << 15)) != 0))
    576     *invalid = 1;
    577   if ((insn & 0x8000) != 0)
    578     return (insn & 0xfffc) - 0x10000;
     738  if (invalid != (int *) NULL)
     739    {
     740      if ((dialect & PPC_OPCODE_POWER4) == 0)
     741        {
     742          if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
     743            *invalid = 1;
     744        }
     745      else
     746        {
     747          if ((insn & (0x17 << 21)) != (0x07 << 21)
     748              && (insn & (0x1d << 21)) != (0x19 << 21))
     749            *invalid = 1;
     750        }
     751    }
     752  return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
     753}
     754
     755/* Check for legal values of a BO field.  */
     756
     757static int
     758valid_bo (value, dialect)
     759     long value;
     760     int dialect;
     761{
     762  if ((dialect & PPC_OPCODE_POWER4) == 0)
     763    {
     764      /* Certain encodings have bits that are required to be zero.
     765         These are (z must be zero, y may be anything):
     766             001zy
     767             011zy
     768             1z00y
     769             1z01y
     770             1z1zz
     771      */
     772      switch (value & 0x14)
     773        {
     774        default:
     775        case 0:
     776          return 1;
     777        case 0x4:
     778          return (value & 0x2) == 0;
     779        case 0x10:
     780          return (value & 0x8) == 0;
     781        case 0x14:
     782          return value == 0x14;
     783        }
     784    }
    579785  else
    580     return insn & 0xfffc;
    581 }
    582 
    583 /* Check for legal values of a BO field.  */
    584 
    585 static int
    586 valid_bo (value)
    587      long value;
    588 {
    589   /* Certain encodings have bits that are required to be zero.  These
    590      are (z must be zero, y may be anything):
    591          001zy
    592          011zy
    593          1z00y
    594          1z01y
    595          1z1zz
    596      */
    597   switch (value & 0x14)
    598786    {
    599     default:
    600     case 0:
    601       return 1;
    602     case 0x4:
    603       return (value & 0x2) == 0;
    604     case 0x10:
    605       return (value & 0x8) == 0;
    606     case 0x14:
    607       return value == 0x14;
     787      /* Certain encodings have bits that are required to be zero.
     788         These are (z must be zero, a & t may be anything):
     789             0000z
     790             0001z
     791             0100z
     792             0101z
     793             001at
     794             011at
     795             1a00t
     796             1a01t
     797             1z1zz
     798      */
     799      if ((value & 0x14) == 0)
     800        return (value & 0x1) == 0;
     801      else if ((value & 0x14) == 0x14)
     802        return value == 0x14;
     803      else
     804        return 1;
    608805    }
    609806}
     
    613810
    614811static unsigned long
    615 insert_bo (insn, value, errmsg)
     812insert_bo (insn, value, dialect, errmsg)
    616813     unsigned long insn;
    617814     long value;
     815     int dialect;
    618816     const char **errmsg;
    619817{
    620818  if (errmsg != (const char **) NULL
    621       && ! valid_bo (value))
     819      && ! valid_bo (value, dialect))
    622820    *errmsg = _("invalid conditional option");
    623821  return insn | ((value & 0x1f) << 21);
     
    625823
    626824static long
    627 extract_bo (insn, invalid)
    628      unsigned long insn;
     825extract_bo (insn, dialect, invalid)
     826     unsigned long insn;
     827     int dialect;
    629828     int *invalid;
    630829{
     
    633832  value = (insn >> 21) & 0x1f;
    634833  if (invalid != (int *) NULL
    635       && ! valid_bo (value))
     834      && ! valid_bo (value, dialect))
    636835    *invalid = 1;
    637836  return value;
     
    643842
    644843static unsigned long
    645 insert_boe (insn, value, errmsg)
     844insert_boe (insn, value, dialect, errmsg)
    646845     unsigned long insn;
    647846     long value;
     847     int dialect;
    648848     const char **errmsg;
    649849{
    650850  if (errmsg != (const char **) NULL)
    651851    {
    652       if (! valid_bo (value))
     852      if (! valid_bo (value, dialect))
    653853        *errmsg = _("invalid conditional option");
    654854      else if ((value & 1) != 0)
     
    659859
    660860static long
    661 extract_boe (insn, invalid)
    662      unsigned long insn;
     861extract_boe (insn, dialect, invalid)
     862     unsigned long insn;
     863     int dialect;
    663864     int *invalid;
    664865{
     
    667868  value = (insn >> 21) & 0x1f;
    668869  if (invalid != (int *) NULL
    669       && ! valid_bo (value))
     870      && ! valid_bo (value, dialect))
    670871    *invalid = 1;
    671872  return value & 0x1e;
    672873}
    673874
     875static unsigned long
     876insert_ev2 (insn, value, dialect, errmsg)
     877     unsigned long insn;
     878     long value;
     879     int dialect ATTRIBUTE_UNUSED;
     880     const char ** errmsg ATTRIBUTE_UNUSED;
     881{
     882  if ((value & 1) != 0 && errmsg != NULL)
     883    *errmsg = _("offset not a multiple of 2");
     884  if ((value > 62) != 0 && errmsg != NULL)
     885    *errmsg = _("offset greater than 62");
     886  return insn | ((value & 0x3e) << 10);
     887}
     888
     889static long
     890extract_ev2 (insn, dialect, invalid)
     891     unsigned long insn;
     892     int dialect ATTRIBUTE_UNUSED;
     893     int * invalid ATTRIBUTE_UNUSED;
     894{
     895  return (insn >> 10) & 0x3e;
     896}
     897
     898static unsigned long
     899insert_ev4 (insn, value, dialect, errmsg)
     900     unsigned long insn;
     901     long value;
     902     int dialect ATTRIBUTE_UNUSED;
     903     const char ** errmsg ATTRIBUTE_UNUSED;
     904{
     905  if ((value & 3) != 0 && errmsg != NULL)
     906    *errmsg = _("offset not a multiple of 4");
     907  if ((value > 124) != 0 && errmsg != NULL)
     908    *errmsg = _("offset greater than 124");
     909  return insn | ((value & 0x7c) << 9);
     910}
     911
     912static long
     913extract_ev4 (insn, dialect, invalid)
     914     unsigned long insn;
     915     int dialect ATTRIBUTE_UNUSED;
     916     int * invalid ATTRIBUTE_UNUSED;
     917{
     918  return (insn >> 9) & 0x7c;
     919}
     920
     921static unsigned long
     922insert_ev8 (insn, value, dialect, errmsg)
     923     unsigned long insn;
     924     long value;
     925     int dialect ATTRIBUTE_UNUSED;
     926     const char ** errmsg ATTRIBUTE_UNUSED;
     927{
     928  if ((value & 7) != 0 && errmsg != NULL)
     929    *errmsg = _("offset not a multiple of 8");
     930  if ((value > 248) != 0 && errmsg != NULL)
     931    *errmsg = _("offset greater than 248");
     932  return insn | ((value & 0xf8) << 8);
     933}
     934
     935static long
     936extract_ev8 (insn, dialect, invalid)
     937     unsigned long insn;
     938     int dialect ATTRIBUTE_UNUSED;
     939     int * invalid ATTRIBUTE_UNUSED;
     940{
     941  return (insn >> 8) & 0xf8;
     942}
     943
    674944/* The DS field in a DS form instruction.  This is like D, but the
    675945   lower two bits are forced to zero.  */
     
    677947/*ARGSUSED*/
    678948static unsigned long
    679 insert_ds (insn, value, errmsg)
     949insert_ds (insn, value, dialect, errmsg)
    680950     unsigned long insn;
    681951     long value;
    682      const char **errmsg ATTRIBUTE_UNUSED;
    683 {
     952     int dialect ATTRIBUTE_UNUSED;
     953     const char **errmsg;
     954{
     955  if ((value & 3) != 0 && errmsg != NULL)
     956    *errmsg = _("offset not a multiple of 4");
    684957  return insn | (value & 0xfffc);
    685958}
     
    687960/*ARGSUSED*/
    688961static long
    689 extract_ds (insn, invalid)
    690      unsigned long insn;
     962extract_ds (insn, dialect, invalid)
     963     unsigned long insn;
     964     int dialect ATTRIBUTE_UNUSED;
    691965     int *invalid ATTRIBUTE_UNUSED;
    692966{
    693   if ((insn & 0x8000) != 0)
    694     return (insn & 0xfffc) - 0x10000;
    695   else
    696     return insn & 0xfffc;
     967  return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
     968}
     969
     970/* The DE field in a DE form instruction.  */
     971
     972/*ARGSUSED*/
     973static unsigned long
     974insert_de (insn, value, dialect, errmsg)
     975     unsigned long insn;
     976     long value;
     977     int dialect ATTRIBUTE_UNUSED;
     978     const char **errmsg;
     979{
     980  if ((value > 2047 || value < -2048) && errmsg != NULL)
     981    *errmsg = _("offset not between -2048 and 2047");
     982  return insn | ((value << 4) & 0xfff0);
     983}
     984
     985/*ARGSUSED*/
     986static long
     987extract_de (insn, dialect, invalid)
     988     unsigned long insn;
     989     int dialect ATTRIBUTE_UNUSED;
     990     int *invalid ATTRIBUTE_UNUSED;
     991{
     992  return (insn & 0xfff0) >> 4;
     993}
     994
     995/* The DES field in a DES form instruction.  */
     996
     997/*ARGSUSED*/
     998static unsigned long
     999insert_des (insn, value, dialect, errmsg)
     1000     unsigned long insn;
     1001     long value;
     1002     int dialect ATTRIBUTE_UNUSED;
     1003     const char **errmsg;
     1004{
     1005  if ((value > 8191 || value < -8192) && errmsg != NULL)
     1006    *errmsg = _("offset not between -8192 and 8191");
     1007  else if ((value & 3) != 0 && errmsg != NULL)
     1008    *errmsg = _("offset not a multiple of 4");
     1009  return insn | ((value << 2) & 0xfff0);
     1010}
     1011
     1012/*ARGSUSED*/
     1013static long
     1014extract_des (insn, dialect, invalid)
     1015     unsigned long insn;
     1016     int dialect ATTRIBUTE_UNUSED;
     1017     int *invalid ATTRIBUTE_UNUSED;
     1018{
     1019  return (((insn >> 2) & 0x3ffc) ^ 0x2000) - 0x2000;
    6971020}
    6981021
     
    7021025/*ARGSUSED*/
    7031026static unsigned long
    704 insert_li (insn, value, errmsg)
     1027insert_li (insn, value, dialect, errmsg)
    7051028     unsigned long insn;
    7061029     long value;
     1030     int dialect ATTRIBUTE_UNUSED;
    7071031     const char **errmsg;
    7081032{
     
    7141038/*ARGSUSED*/
    7151039static long
    716 extract_li (insn, invalid)
    717      unsigned long insn;
     1040extract_li (insn, dialect, invalid)
     1041     unsigned long insn;
     1042     int dialect ATTRIBUTE_UNUSED;
    7181043     int *invalid ATTRIBUTE_UNUSED;
    7191044{
    720   if ((insn & 0x2000000) != 0)
    721     return (insn & 0x3fffffc) - 0x4000000;
    722   else
    723     return insn & 0x3fffffc;
     1045  return ((insn & 0x3fffffc) ^ 0x2000000) - 0x2000000;
    7241046}
    7251047
     
    7301052
    7311053static unsigned long
    732 insert_mbe (insn, value, errmsg)
     1054insert_mbe (insn, value, dialect, errmsg)
    7331055     unsigned long insn;
    7341056     long value;
     1057     int dialect ATTRIBUTE_UNUSED;
    7351058     const char **errmsg;
    7361059{
     
    7871110
    7881111static long
    789 extract_mbe (insn, invalid)
    790      unsigned long insn;
     1112extract_mbe (insn, dialect, invalid)
     1113     unsigned long insn;
     1114     int dialect ATTRIBUTE_UNUSED;
    7911115     int *invalid;
    7921116{
     
    8221146/*ARGSUSED*/
    8231147static unsigned long
    824 insert_mb6 (insn, value, errmsg)
     1148insert_mb6 (insn, value, dialect, errmsg)
    8251149     unsigned long insn;
    8261150     long value;
     1151     int dialect ATTRIBUTE_UNUSED;
    8271152     const char **errmsg ATTRIBUTE_UNUSED;
    8281153{
     
    8321157/*ARGSUSED*/
    8331158static long
    834 extract_mb6 (insn, invalid)
    835      unsigned long insn;
     1159extract_mb6 (insn, dialect, invalid)
     1160     unsigned long insn;
     1161     int dialect ATTRIBUTE_UNUSED;
    8361162     int *invalid ATTRIBUTE_UNUSED;
    8371163{
     
    8431169
    8441170static unsigned long
    845 insert_nb (insn, value, errmsg)
     1171insert_nb (insn, value, dialect, errmsg)
    8461172     unsigned long insn;
    8471173     long value;
     1174     int dialect ATTRIBUTE_UNUSED;
    8481175     const char **errmsg;
    8491176{
     
    8571184/*ARGSUSED*/
    8581185static long
    859 extract_nb (insn, invalid)
    860      unsigned long insn;
     1186extract_nb (insn, dialect, invalid)
     1187     unsigned long insn;
     1188     int dialect ATTRIBUTE_UNUSED;
    8611189     int *invalid ATTRIBUTE_UNUSED;
    8621190{
     
    8761204/*ARGSUSED*/
    8771205static unsigned long
    878 insert_nsi (insn, value, errmsg)
     1206insert_nsi (insn, value, dialect, errmsg)
    8791207     unsigned long insn;
    8801208     long value;
     1209     int dialect ATTRIBUTE_UNUSED;
    8811210     const char **errmsg ATTRIBUTE_UNUSED;
    8821211{
     
    8851214
    8861215static long
    887 extract_nsi (insn, invalid)
    888      unsigned long insn;
     1216extract_nsi (insn, dialect, invalid)
     1217     unsigned long insn;
     1218     int dialect ATTRIBUTE_UNUSED;
    8891219     int *invalid;
    8901220{
    8911221  if (invalid != (int *) NULL)
    8921222    *invalid = 1;
    893   if ((insn & 0x8000) != 0)
    894     return - ((long)(insn & 0xffff) - 0x10000);
    895   else
    896     return - (long)(insn & 0xffff);
     1223  return - (((insn & 0xffff) ^ 0x8000) - 0x8000);
    8971224}
    8981225
     
    9021229
    9031230static unsigned long
    904 insert_ral (insn, value, errmsg)
     1231insert_ral (insn, value, dialect, errmsg)
    9051232     unsigned long insn;
    9061233     long value;
     1234     int dialect ATTRIBUTE_UNUSED;
    9071235     const char **errmsg;
    9081236{
     
    9171245
    9181246static unsigned long
    919 insert_ram (insn, value, errmsg)
     1247insert_ram (insn, value, dialect, errmsg)
    9201248     unsigned long insn;
    9211249     long value;
     1250     int dialect ATTRIBUTE_UNUSED;
    9221251     const char **errmsg;
    9231252{
     
    9321261
    9331262static unsigned long
    934 insert_ras (insn, value, errmsg)
     1263insert_ras (insn, value, dialect, errmsg)
    9351264     unsigned long insn;
    9361265     long value;
     1266     int dialect ATTRIBUTE_UNUSED;
    9371267     const char **errmsg;
    9381268{
     
    9501280/*ARGSUSED*/
    9511281static unsigned long
    952 insert_rbs (insn, value, errmsg)
     1282insert_rbs (insn, value, dialect, errmsg)
    9531283     unsigned long insn;
    9541284     long value ATTRIBUTE_UNUSED;
     1285     int dialect ATTRIBUTE_UNUSED;
    9551286     const char **errmsg ATTRIBUTE_UNUSED;
    9561287{
     
    9591290
    9601291static long
    961 extract_rbs (insn, invalid)
    962      unsigned long insn;
     1292extract_rbs (insn, dialect, invalid)
     1293     unsigned long insn;
     1294     int dialect ATTRIBUTE_UNUSED;
    9631295     int *invalid;
    9641296{
     
    9731305/*ARGSUSED*/
    9741306static unsigned long
    975 insert_sh6 (insn, value, errmsg)
     1307insert_sh6 (insn, value, dialect, errmsg)
    9761308     unsigned long insn;
    9771309     long value;
     1310     int dialect ATTRIBUTE_UNUSED;
    9781311     const char **errmsg ATTRIBUTE_UNUSED;
    9791312{
     
    9831316/*ARGSUSED*/
    9841317static long
    985 extract_sh6 (insn, invalid)
    986      unsigned long insn;
     1318extract_sh6 (insn, dialect, invalid)
     1319     unsigned long insn;
     1320     int dialect ATTRIBUTE_UNUSED;
    9871321     int *invalid ATTRIBUTE_UNUSED;
    9881322{
     
    9941328
    9951329static unsigned long
    996 insert_spr (insn, value, errmsg)
     1330insert_spr (insn, value, dialect, errmsg)
    9971331     unsigned long insn;
    9981332     long value;
     1333     int dialect ATTRIBUTE_UNUSED;
    9991334     const char **errmsg ATTRIBUTE_UNUSED;
    10001335{
     
    10031338
    10041339static long
    1005 extract_spr (insn, invalid)
    1006      unsigned long insn;
     1340extract_spr (insn, dialect, invalid)
     1341     unsigned long insn;
     1342     int dialect ATTRIBUTE_UNUSED;
    10071343     int *invalid ATTRIBUTE_UNUSED;
    10081344{
     
    10211357
    10221358static unsigned long
    1023 insert_tbr (insn, value, errmsg)
     1359insert_tbr (insn, value, dialect, errmsg)
    10241360     unsigned long insn;
    10251361     long value;
     1362     int dialect ATTRIBUTE_UNUSED;
    10261363     const char **errmsg ATTRIBUTE_UNUSED;
    10271364{
     
    10321369
    10331370static long
    1034 extract_tbr (insn, invalid)
    1035      unsigned long insn;
     1371extract_tbr (insn, dialect, invalid)
     1372     unsigned long insn;
     1373     int dialect ATTRIBUTE_UNUSED;
    10361374     int *invalid ATTRIBUTE_UNUSED;
    10371375{
     
    10861424/* A BBO_MASK with the y bit of the BO field removed.  This permits
    10871425   matching a conditional branch regardless of the setting of the y
    1088    bit.  */
    1089 #define Y_MASK (((unsigned long)1) << 21)
    1090 #define BBOY_MASK (BBO_MASK &~ Y_MASK)
     1426   bit.  Similarly for the 'at' bits used for power4 branch hints.  */
     1427#define Y_MASK   (((unsigned long) 1) << 21)
     1428#define AT1_MASK (((unsigned long) 3) << 21)
     1429#define AT2_MASK (((unsigned long) 9) << 21)
     1430#define BBOY_MASK  (BBO_MASK &~ Y_MASK)
     1431#define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
    10911432
    10921433/* A B form instruction setting the BO field and the condition bits of
     
    10981439/* A BBOCB_MASK with the y bit of the BO field removed.  */
    10991440#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
     1441#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
     1442#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
    11001443
    11011444/* A BBOYCB_MASK in which the BI field is fixed.  */
    11021445#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
     1446#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
     1447
     1448/* An Context form instruction.  */
     1449#define CTX(op, xop)   (OP (op) | (((unsigned long)(xop)) & 0x7))
     1450#define CTX_MASK       CTX(0x3f, 0x7)
     1451
     1452/* An User Context form instruction.  */
     1453#define UCTX(op, xop)  (OP (op) | (((unsigned long)(xop)) & 0x1f))
     1454#define UCTX_MASK      UCTX(0x3f, 0x1f)
    11031455
    11041456/* The main opcode mask with the RA field clear.  */
     
    11091461#define DS_MASK DSO (0x3f, 3)
    11101462
     1463/* A DE form instruction.  */
     1464#define DEO(op, xop) (OP (op) | ((xop) & 0xf))
     1465#define DE_MASK DEO (0x3e, 0xf)
     1466
     1467/* An EVSEL form instruction.  */
     1468#define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3)
     1469#define EVSEL_MASK EVSEL(0x3f, 0xff)
     1470
    11111471/* An M form instruction.  */
    11121472#define M(op, rc) (OP (op) | ((rc) & 1))
     
    11431503#define SC_MASK (OP_MASK | (((unsigned long)0x3ff) << 16) | (((unsigned long)1) << 1) | 1)
    11441504
    1145 /* An VX form instruction. */
     1505/* An VX form instruction.  */
    11461506#define VX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff))
    11471507
    1148 /* The mask for an VX form instruction. */
     1508/* The mask for an VX form instruction.  */
    11491509#define VX_MASK VX(0x3f, 0x7ff)
    11501510
    1151 /* An VA form instruction. */
    1152 #define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x07f))
    1153 
    1154 /* The mask for an VA form instruction. */
    1155 #define VXA_MASK VXA(0x3f, 0x7f)
    1156 
    1157 /* An VXR form instruction. */
     1511/* An VA form instruction.  */
     1512#define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x03f))
     1513
     1514/* The mask for an VA form instruction.  */
     1515#define VXA_MASK VXA(0x3f, 0x3f)
     1516
     1517/* An VXR form instruction.  */
    11581518#define VXR(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | (((unsigned long)(xop)) & 0x3ff))
    11591519
    1160 /* The mask for a VXR form instruction. */
     1520/* The mask for a VXR form instruction.  */
    11611521#define VXR_MASK VXR(0x3f, 0x3ff, 1)
    11621522
     
    11821542#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
    11831543
     1544/* An XRARB_MASK, but with the L bit clear.  */
     1545#define XRLARB_MASK (XRARB_MASK & ~((unsigned long) 1 << 16))
     1546
    11841547/* An X_MASK with the RT and RA fields fixed.  */
    11851548#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
     1549
     1550/* An XRTRA_MASK, but with L bit clear.  */
     1551#define XRTLRA_MASK (XRTRA_MASK & ~((unsigned long) 1 << 21))
    11861552
    11871553/* An X form comparison instruction.  */
     
    12031569#define XTLB_MASK (X_MASK | SH_MASK)
    12041570
     1571/* An X form sync instruction.  */
     1572#define XSYNC(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 3) << 21))
     1573
     1574/* An X form sync instruction with everything filled in except the LS field.  */
     1575#define XSYNC_MASK (0xff9fffff)
     1576
     1577/* An X form AltiVec dss instruction.  */
     1578#define XDSS(op, xop, a) (X ((op), (xop)) | ((((unsigned long)(a)) & 1) << 25))
     1579#define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
     1580
    12051581/* An XFL form instruction.  */
    12061582#define XFL(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1))
    12071583#define XFL_MASK (XFL (0x3f, 0x3ff, 1) | (((unsigned long)1) << 25) | (((unsigned long)1) << 16))
     1584
     1585/* An X form isel instruction.  */
     1586#define XISEL(op, xop)  (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1))
     1587#define XISEL_MASK      XISEL(0x3f, 0x1f)
    12081588
    12091589/* An XL form instruction with the LK field set to 0.  */
     
    12781658#define XE_MASK (0xffff7fff)
    12791659
     1660/* An X form user context instruction.  */
     1661#define XUC(op, xop)  (OP (op) | (((unsigned long)(xop)) & 0x1f))
     1662#define XUC_MASK      XUC(0x3f, 0x1f)
     1663
    12801664/* The BO encodings used in extended conditional branch mnemonics.  */
    12811665#define BODNZF  (0x0)
     
    12831667#define BODZF   (0x2)
    12841668#define BODZFP  (0x3)
    1285 #define BOF     (0x4)
    1286 #define BOFP    (0x5)
    12871669#define BODNZT  (0x8)
    12881670#define BODNZTP (0x9)
    12891671#define BODZT   (0xa)
    12901672#define BODZTP  (0xb)
     1673
     1674#define BOF     (0x4)
     1675#define BOFP    (0x5)
     1676#define BOFM4   (0x6)
     1677#define BOFP4   (0x7)
    12911678#define BOT     (0xc)
    12921679#define BOTP    (0xd)
     1680#define BOTM4   (0xe)
     1681#define BOTP4   (0xf)
     1682
    12931683#define BODNZ   (0x10)
    12941684#define BODNZP  (0x11)
    12951685#define BODZ    (0x12)
    12961686#define BODZP   (0x13)
     1687#define BODNZM4 (0x18)
     1688#define BODNZP4 (0x19)
     1689#define BODZM4  (0x1a)
     1690#define BODZP4  (0x1b)
     1691
    12971692#define BOU     (0x14)
    12981693
     
    13271722#define PPC     PPC_OPCODE_PPC | PPC_OPCODE_ANY
    13281723#define PPCCOM  PPC_OPCODE_PPC | PPC_OPCODE_COMMON | PPC_OPCODE_ANY
    1329 #define PPC32   PPC_OPCODE_PPC | PPC_OPCODE_32 | PPC_OPCODE_ANY
    1330 #define PPC64   PPC_OPCODE_PPC | PPC_OPCODE_64 | PPC_OPCODE_ANY
     1724#define NOPOWER4 PPC_OPCODE_NOPOWER4 | PPCCOM
     1725#define POWER4  PPC_OPCODE_POWER4 | PPCCOM
     1726#define PPC32   PPC_OPCODE_32 | PPC_OPCODE_PPC | PPC_OPCODE_ANY
     1727#define PPC64   PPC_OPCODE_64 | PPC_OPCODE_PPC | PPC_OPCODE_ANY
    13311728#define PPCONLY PPC_OPCODE_PPC
    1332 #define PPC403  PPC
     1729#define PPC403  PPC_OPCODE_403
    13331730#define PPC405  PPC403
    13341731#define PPC750  PPC
    13351732#define PPC860  PPC
    1336 #define PPCVEC  PPC_OPCODE_ALTIVEC | PPC_OPCODE_ANY
     1733#define PPCVEC  PPC_OPCODE_ALTIVEC | PPC_OPCODE_ANY | PPC_OPCODE_PPC
    13371734#define POWER   PPC_OPCODE_POWER | PPC_OPCODE_ANY
    13381735#define POWER2  PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_ANY
     
    13441741#define PWRCOM  PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON | PPC_OPCODE_ANY
    13451742#define MFDEC1  PPC_OPCODE_POWER
    1346 #define MFDEC2  PPC_OPCODE_PPC | PPC_OPCODE_601
     1743#define MFDEC2  PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE
     1744#define BOOKE   PPC_OPCODE_BOOKE
     1745#define BOOKE64 PPC_OPCODE_BOOKE64
     1746#define CLASSIC PPC_OPCODE_CLASSIC
     1747#define PPCSPE  PPC_OPCODE_SPE
     1748#define PPCISEL PPC_OPCODE_ISEL
     1749#define PPCEFS  PPC_OPCODE_EFS
     1750#define PPCBRLK PPC_OPCODE_BRLOCK
     1751#define PPCPMR  PPC_OPCODE_PMR
     1752#define PPCCHLK PPC_OPCODE_CACHELCK
     1753#define PPCCHLK64       PPC_OPCODE_CACHELCK | PPC_OPCODE_BOOKE64
     1754#define PPCRFMCI        PPC_OPCODE_RFMCI
    13471755
    13481756
     
    14981906{ "nmaclhwso.", XO(4,494,1,1), XO_MASK, PPC405,         { RT, RA, RB } },
    14991907{ "mfvscr",  VX(4, 1540), VX_MASK,      PPCVEC,         { VD } },
    1500 { "mtvscr",  VX(4, 1604), VX_MASK,      PPCVEC,         { VD } },
     1908{ "mtvscr",  VX(4, 1604), VX_MASK,      PPCVEC,         { VB } },
    15011909{ "vaddcuw", VX(4,  384), VX_MASK,      PPCVEC,         { VD, VA, VB } },
    15021910{ "vaddfp",  VX(4,   10), VX_MASK,      PPCVEC,         { VD, VA, VB } },
     
    15501958{ "vexptefp",  VX(4,  394), VX_MASK,    PPCVEC,         { VD, VB } },
    15511959{ "vlogefp",   VX(4,  458), VX_MASK,    PPCVEC,         { VD, VB } },
    1552 { "vmaddfp",   VXA(4,  46), VXA_MASK,   PPCVEC,         { VD, VA, VB, VC } },
     1960{ "vmaddfp",   VXA(4,  46), VXA_MASK,   PPCVEC,         { VD, VA, VC, VB } },
    15531961{ "vmaxfp",    VX(4, 1034), VX_MASK,    PPCVEC,         { VD, VA, VB } },
    15541962{ "vmaxsb",    VX(4,  258), VX_MASK,    PPCVEC,         { VD, VA, VB } },
     
    16552063{ "vxor",      VX(4, 1220), VX_MASK,    PPCVEC,         { VD, VA, VB } },
    16562064
     2065{ "evaddw",    VX(4, 512), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2066{ "evaddiw",   VX(4, 514), VX_MASK,     PPCSPE,         { RS, RB, UIMM } },
     2067{ "evsubfw",   VX(4, 516), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2068{ "evsubw",    VX(4, 516), VX_MASK,     PPCSPE,         { RS, RB, RA } },
     2069{ "evsubifw",  VX(4, 518), VX_MASK,     PPCSPE,         { RS, UIMM, RB } },
     2070{ "evsubiw",   VX(4, 518), VX_MASK,     PPCSPE,         { RS, RB, UIMM } },
     2071{ "evabs",     VX(4, 520), VX_MASK,     PPCSPE,         { RS, RA } },
     2072{ "evneg",     VX(4, 521), VX_MASK,     PPCSPE,         { RS, RA } },
     2073{ "evextsb",   VX(4, 522), VX_MASK,     PPCSPE,         { RS, RA } },
     2074{ "evextsh",   VX(4, 523), VX_MASK,     PPCSPE,         { RS, RA } },
     2075{ "evrndw",    VX(4, 524), VX_MASK,     PPCSPE,         { RS, RA } },
     2076{ "evcntlzw",  VX(4, 525), VX_MASK,     PPCSPE,         { RS, RA } },
     2077{ "evcntlsw",  VX(4, 526), VX_MASK,     PPCSPE,         { RS, RA } },
     2078
     2079{ "brinc",     VX(4, 527), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2080
     2081{ "evand",     VX(4, 529), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2082{ "evandc",    VX(4, 530), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2083{ "evmr",      VX(4, 535), VX_MASK,     PPCSPE,         { RS, RA, BBA } },
     2084{ "evor",      VX(4, 535), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2085{ "evorc",     VX(4, 539), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2086{ "evxor",     VX(4, 534), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2087{ "eveqv",     VX(4, 537), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2088{ "evnand",    VX(4, 542), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2089{ "evnot",     VX(4, 536), VX_MASK,     PPCSPE,         { RS, RA, BBA } },
     2090{ "evnor",     VX(4, 536), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2091
     2092{ "evrlw",     VX(4, 552), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2093{ "evrlwi",    VX(4, 554), VX_MASK,     PPCSPE,         { RS, RA, EVUIMM } },
     2094{ "evslw",     VX(4, 548), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2095{ "evslwi",    VX(4, 550), VX_MASK,     PPCSPE,         { RS, RA, EVUIMM } },
     2096{ "evsrws",    VX(4, 545), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2097{ "evsrwu",    VX(4, 544), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2098{ "evsrwis",   VX(4, 547), VX_MASK,     PPCSPE,         { RS, RA, EVUIMM } },
     2099{ "evsrwiu",   VX(4, 546), VX_MASK,     PPCSPE,         { RS, RA, EVUIMM } },
     2100{ "evsplati",  VX(4, 553), VX_MASK,     PPCSPE,         { RS, SIMM } },
     2101{ "evsplatfi", VX(4, 555), VX_MASK,     PPCSPE,         { RS, SIMM } },
     2102{ "evmergehi", VX(4, 556), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2103{ "evmergelo", VX(4, 557), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2104{ "evmergehilo",VX(4,558), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2105{ "evmergelohi",VX(4,559), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2106
     2107{ "evcmpgts",  VX(4, 561), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2108{ "evcmpgtu",  VX(4, 560), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2109{ "evcmplts",  VX(4, 563), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2110{ "evcmpltu",  VX(4, 562), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2111{ "evcmpeq",   VX(4, 564), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2112{ "evsel",     EVSEL(4,79),EVSEL_MASK,  PPCSPE,         { RS, RA, RB, CRFS } },
     2113
     2114{ "evldd",     VX(4, 769), VX_MASK,     PPCSPE,         { RS, EVUIMM_8, RA } },
     2115{ "evlddx",    VX(4, 768), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2116{ "evldw",     VX(4, 771), VX_MASK,     PPCSPE,         { RS, EVUIMM_8, RA } },
     2117{ "evldwx",    VX(4, 770), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2118{ "evldh",     VX(4, 773), VX_MASK,     PPCSPE,         { RS, EVUIMM_8, RA } },
     2119{ "evldhx",    VX(4, 772), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2120{ "evlwhe",    VX(4, 785), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2121{ "evlwhex",   VX(4, 784), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2122{ "evlwhou",   VX(4, 789), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2123{ "evlwhoux",  VX(4, 788), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2124{ "evlwhos",   VX(4, 791), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2125{ "evlwhosx",  VX(4, 790), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2126{ "evlwwsplat",VX(4, 793), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2127{ "evlwwsplatx",VX(4, 792), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2128{ "evlwhsplat",VX(4, 797), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2129{ "evlwhsplatx",VX(4, 796), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2130{ "evlhhesplat",VX(4, 777), VX_MASK,    PPCSPE,         { RS, EVUIMM_2, RA } },
     2131{ "evlhhesplatx",VX(4, 776), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2132{ "evlhhousplat",VX(4, 781), VX_MASK,   PPCSPE,         { RS, EVUIMM_2, RA } },
     2133{ "evlhhousplatx",VX(4, 780), VX_MASK,  PPCSPE,         { RS, RA, RB } },
     2134{ "evlhhossplat",VX(4, 783), VX_MASK,   PPCSPE,         { RS, EVUIMM_2, RA } },
     2135{ "evlhhossplatx",VX(4, 782), VX_MASK,  PPCSPE,         { RS, RA, RB } },
     2136
     2137{ "evstdd",    VX(4, 801), VX_MASK,     PPCSPE,         { RS, EVUIMM_8, RA } },
     2138{ "evstddx",   VX(4, 800), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2139{ "evstdw",    VX(4, 803), VX_MASK,     PPCSPE,         { RS, EVUIMM_8, RA } },
     2140{ "evstdwx",   VX(4, 802), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2141{ "evstdh",    VX(4, 805), VX_MASK,     PPCSPE,         { RS, EVUIMM_8, RA } },
     2142{ "evstdhx",   VX(4, 804), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2143{ "evstwwe",   VX(4, 825), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2144{ "evstwwex",  VX(4, 824), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2145{ "evstwwo",   VX(4, 829), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2146{ "evstwwox",  VX(4, 828), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2147{ "evstwhe",   VX(4, 817), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2148{ "evstwhex",  VX(4, 816), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2149{ "evstwho",   VX(4, 821), VX_MASK,     PPCSPE,         { RS, EVUIMM_4, RA } },
     2150{ "evstwhox",  VX(4, 820), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2151
     2152{ "evfsabs",   VX(4, 644), VX_MASK,     PPCSPE,         { RS, RA } },
     2153{ "evfsnabs",  VX(4, 645), VX_MASK,     PPCSPE,         { RS, RA } },
     2154{ "evfsneg",   VX(4, 646), VX_MASK,     PPCSPE,         { RS, RA } },
     2155{ "evfsadd",   VX(4, 640), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2156{ "evfssub",   VX(4, 641), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2157{ "evfsmul",   VX(4, 648), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2158{ "evfsdiv",   VX(4, 649), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2159{ "evfscmpgt", VX(4, 652), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2160{ "evfscmplt", VX(4, 653), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2161{ "evfscmpeq", VX(4, 654), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2162{ "evfststgt", VX(4, 668), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2163{ "evfststlt", VX(4, 669), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2164{ "evfststeq", VX(4, 670), VX_MASK,     PPCSPE,         { CRFD, RA, RB } },
     2165{ "evfscfui",  VX(4, 656), VX_MASK,     PPCSPE,         { RS, RB } },
     2166{ "evfsctuiz", VX(4, 664), VX_MASK,     PPCSPE,         { RS, RB } },
     2167{ "evfscfsi",  VX(4, 657), VX_MASK,     PPCSPE,         { RS, RB } },
     2168{ "evfscfuf",  VX(4, 658), VX_MASK,     PPCSPE,         { RS, RB } },
     2169{ "evfscfsf",  VX(4, 659), VX_MASK,     PPCSPE,         { RS, RB } },
     2170{ "evfsctui",  VX(4, 660), VX_MASK,     PPCSPE,         { RS, RB } },
     2171{ "evfsctsi",  VX(4, 661), VX_MASK,     PPCSPE,         { RS, RB } },
     2172{ "evfsctsiz", VX(4, 666), VX_MASK,     PPCSPE,         { RS, RB } },
     2173{ "evfsctuf",  VX(4, 662), VX_MASK,     PPCSPE,         { RS, RB } },
     2174{ "evfsctsf",  VX(4, 663), VX_MASK,     PPCSPE,         { RS, RB } },
     2175
     2176{ "efsabs",   VX(4, 708), VX_MASK,      PPCEFS,         { RS, RA } },
     2177{ "efsnabs",  VX(4, 709), VX_MASK,      PPCEFS,         { RS, RA } },
     2178{ "efsneg",   VX(4, 710), VX_MASK,      PPCEFS,         { RS, RA } },
     2179{ "efsadd",   VX(4, 704), VX_MASK,      PPCEFS,         { RS, RA, RB } },
     2180{ "efssub",   VX(4, 705), VX_MASK,      PPCEFS,         { RS, RA, RB } },
     2181{ "efsmul",   VX(4, 712), VX_MASK,      PPCEFS,         { RS, RA, RB } },
     2182{ "efsdiv",   VX(4, 713), VX_MASK,      PPCEFS,         { RS, RA, RB } },
     2183{ "efscmpgt", VX(4, 716), VX_MASK,      PPCEFS,         { CRFD, RA, RB } },
     2184{ "efscmplt", VX(4, 717), VX_MASK,      PPCEFS,         { CRFD, RA, RB } },
     2185{ "efscmpeq", VX(4, 718), VX_MASK,      PPCEFS,         { CRFD, RA, RB } },
     2186{ "efststgt", VX(4, 732), VX_MASK,      PPCEFS,         { CRFD, RA, RB } },
     2187{ "efststlt", VX(4, 733), VX_MASK,      PPCEFS,         { CRFD, RA, RB } },
     2188{ "efststeq", VX(4, 734), VX_MASK,      PPCEFS,         { CRFD, RA, RB } },
     2189{ "efscfui",  VX(4, 720), VX_MASK,      PPCEFS,         { RS, RB } },
     2190{ "efsctuiz", VX(4, 728), VX_MASK,      PPCEFS,         { RS, RB } },
     2191{ "efscfsi",  VX(4, 721), VX_MASK,      PPCEFS,         { RS, RB } },
     2192{ "efscfuf",  VX(4, 722), VX_MASK,      PPCEFS,         { RS, RB } },
     2193{ "efscfsf",  VX(4, 723), VX_MASK,      PPCEFS,         { RS, RB } },
     2194{ "efsctui",  VX(4, 724), VX_MASK,      PPCEFS,         { RS, RB } },
     2195{ "efsctsi",  VX(4, 725), VX_MASK,      PPCEFS,         { RS, RB } },
     2196{ "efsctsiz", VX(4, 730), VX_MASK,      PPCEFS,         { RS, RB } },
     2197{ "efsctuf",  VX(4, 726), VX_MASK,      PPCEFS,         { RS, RB } },
     2198{ "efsctsf",  VX(4, 727), VX_MASK,      PPCEFS,         { RS, RB } },
     2199
     2200{ "evmhossf",  VX(4, 1031), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2201{ "evmhossfa", VX(4, 1063), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2202{ "evmhosmf",  VX(4, 1039), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2203{ "evmhosmfa", VX(4, 1071), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2204{ "evmhosmi",  VX(4, 1037), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2205{ "evmhosmia", VX(4, 1069), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2206{ "evmhoumi",  VX(4, 1036), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2207{ "evmhoumia", VX(4, 1068), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2208{ "evmhessf",  VX(4, 1027), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2209{ "evmhessfa", VX(4, 1059), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2210{ "evmhesmf",  VX(4, 1035), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2211{ "evmhesmfa", VX(4, 1067), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2212{ "evmhesmi",  VX(4, 1033), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2213{ "evmhesmia", VX(4, 1065), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2214{ "evmheumi",  VX(4, 1032), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2215{ "evmheumia", VX(4, 1064), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2216
     2217{ "evmhossfaaw",VX(4, 1287), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2218{ "evmhossiaaw",VX(4, 1285), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2219{ "evmhosmfaaw",VX(4, 1295), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2220{ "evmhosmiaaw",VX(4, 1293), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2221{ "evmhousiaaw",VX(4, 1284), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2222{ "evmhoumiaaw",VX(4, 1292), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2223{ "evmhessfaaw",VX(4, 1283), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2224{ "evmhessiaaw",VX(4, 1281), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2225{ "evmhesmfaaw",VX(4, 1291), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2226{ "evmhesmiaaw",VX(4, 1289), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2227{ "evmheusiaaw",VX(4, 1280), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2228{ "evmheumiaaw",VX(4, 1288), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2229
     2230{ "evmhossfanw",VX(4, 1415), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2231{ "evmhossianw",VX(4, 1413), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2232{ "evmhosmfanw",VX(4, 1423), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2233{ "evmhosmianw",VX(4, 1421), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2234{ "evmhousianw",VX(4, 1412), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2235{ "evmhoumianw",VX(4, 1420), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2236{ "evmhessfanw",VX(4, 1411), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2237{ "evmhessianw",VX(4, 1409), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2238{ "evmhesmfanw",VX(4, 1419), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2239{ "evmhesmianw",VX(4, 1417), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2240{ "evmheusianw",VX(4, 1408), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2241{ "evmheumianw",VX(4, 1416), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2242
     2243{ "evmhogsmfaa",VX(4, 1327), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2244{ "evmhogsmiaa",VX(4, 1325), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2245{ "evmhogumiaa",VX(4, 1324), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2246{ "evmhegsmfaa",VX(4, 1323), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2247{ "evmhegsmiaa",VX(4, 1321), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2248{ "evmhegumiaa",VX(4, 1320), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2249
     2250{ "evmhogsmfan",VX(4, 1455), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2251{ "evmhogsmian",VX(4, 1453), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2252{ "evmhogumian",VX(4, 1452), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2253{ "evmhegsmfan",VX(4, 1451), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2254{ "evmhegsmian",VX(4, 1449), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2255{ "evmhegumian",VX(4, 1448), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2256
     2257{ "evmwhssf",  VX(4, 1095), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2258{ "evmwhssfa", VX(4, 1127), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2259{ "evmwhsmf",  VX(4, 1103), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2260{ "evmwhsmfa", VX(4, 1135), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2261{ "evmwhsmi",  VX(4, 1101), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2262{ "evmwhsmia", VX(4, 1133), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2263{ "evmwhumi",  VX(4, 1100), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2264{ "evmwhumia", VX(4, 1132), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2265
     2266{ "evmwlumi",  VX(4, 1096), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2267{ "evmwlumia", VX(4, 1128), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2268
     2269{ "evmwlssiaaw",VX(4, 1345), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2270{ "evmwlsmiaaw",VX(4, 1353), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2271{ "evmwlusiaaw",VX(4, 1344), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2272{ "evmwlumiaaw",VX(4, 1352), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2273
     2274{ "evmwlssianw",VX(4, 1473), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2275{ "evmwlsmianw",VX(4, 1481), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2276{ "evmwlusianw",VX(4, 1472), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2277{ "evmwlumianw",VX(4, 1480), VX_MASK,   PPCSPE,         { RS, RA, RB } },
     2278
     2279{ "evmwssf",   VX(4, 1107), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2280{ "evmwssfa",  VX(4, 1139), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2281{ "evmwsmf",   VX(4, 1115), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2282{ "evmwsmfa",  VX(4, 1147), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2283{ "evmwsmi",   VX(4, 1113), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2284{ "evmwsmia",  VX(4, 1145), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2285{ "evmwumi",   VX(4, 1112), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2286{ "evmwumia",  VX(4, 1144), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2287
     2288{ "evmwssfaa", VX(4, 1363), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2289{ "evmwsmfaa", VX(4, 1371), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2290{ "evmwsmiaa", VX(4, 1369), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2291{ "evmwumiaa", VX(4, 1368), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2292
     2293{ "evmwssfan", VX(4, 1491), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2294{ "evmwsmfan", VX(4, 1499), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2295{ "evmwsmian", VX(4, 1497), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2296{ "evmwumian", VX(4, 1496), VX_MASK,    PPCSPE,         { RS, RA, RB } },
     2297
     2298{ "evaddssiaaw",VX(4, 1217), VX_MASK,   PPCSPE,         { RS, RA } },
     2299{ "evaddsmiaaw",VX(4, 1225), VX_MASK,   PPCSPE,         { RS, RA } },
     2300{ "evaddusiaaw",VX(4, 1216), VX_MASK,   PPCSPE,         { RS, RA } },
     2301{ "evaddumiaaw",VX(4, 1224), VX_MASK,   PPCSPE,         { RS, RA } },
     2302
     2303{ "evsubfssiaaw",VX(4, 1219), VX_MASK,  PPCSPE,         { RS, RA } },
     2304{ "evsubfsmiaaw",VX(4, 1227), VX_MASK,  PPCSPE,         { RS, RA } },
     2305{ "evsubfusiaaw",VX(4, 1218), VX_MASK,  PPCSPE,         { RS, RA } },
     2306{ "evsubfumiaaw",VX(4, 1226), VX_MASK,  PPCSPE,         { RS, RA } },
     2307
     2308{ "evmra",    VX(4, 1220), VX_MASK,     PPCSPE,         { RS, RA } },
     2309
     2310{ "evdivws",  VX(4, 1222), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2311{ "evdivwu",  VX(4, 1223), VX_MASK,     PPCSPE,         { RS, RA, RB } },
     2312
    16572313{ "mulli",   OP(7),     OP_MASK,        PPCCOM,         { RT, RA, SI } },
    16582314{ "muli",    OP(7),     OP_MASK,        PWRCOM,         { RT, RA, SI } },
     
    16622318
    16632319{ "dozi",    OP(9),     OP_MASK,        M601,           { RT, RA, SI } },
     2320
     2321{ "bce",     B(9,0,0),  B_MASK,         BOOKE64,        { BO, BI, BD } },
     2322{ "bcel",    B(9,0,1),  B_MASK,         BOOKE64,        { BO, BI, BD } },
     2323{ "bcea",    B(9,1,0),  B_MASK,         BOOKE64,        { BO, BI, BDA } },
     2324{ "bcela",   B(9,1,1),  B_MASK,         BOOKE64,        { BO, BI, BDA } },
    16642325
    16652326{ "cmplwi",  OPL(10,0), OPL_MASK,       PPCCOM,         { OBF, RA, UI } },
     
    16942355{ "subis",   OP(15),    OP_MASK,        PPCCOM,         { RT, RA, NSI } },
    16952356
    1696 { "bdnz-",   BBO(16,BODNZ,0,0), BBOYBI_MASK, PPCCOM,    { BDM } },
    1697 { "bdnz+",   BBO(16,BODNZ,0,0), BBOYBI_MASK, PPCCOM,    { BDP } },
    1698 { "bdnz",    BBO(16,BODNZ,0,0), BBOYBI_MASK, PPCCOM,    { BD } },
    1699 { "bdn",     BBO(16,BODNZ,0,0), BBOYBI_MASK, PWRCOM,    { BD } },
    1700 { "bdnzl-",  BBO(16,BODNZ,0,1), BBOYBI_MASK, PPCCOM,    { BDM } },
    1701 { "bdnzl+",  BBO(16,BODNZ,0,1), BBOYBI_MASK, PPCCOM,    { BDP } },
    1702 { "bdnzl",   BBO(16,BODNZ,0,1), BBOYBI_MASK, PPCCOM,    { BD } },
    1703 { "bdnl",    BBO(16,BODNZ,0,1), BBOYBI_MASK, PWRCOM,    { BD } },
    1704 { "bdnza-",  BBO(16,BODNZ,1,0), BBOYBI_MASK, PPCCOM,    { BDMA } },
    1705 { "bdnza+",  BBO(16,BODNZ,1,0), BBOYBI_MASK, PPCCOM,    { BDPA } },
    1706 { "bdnza",   BBO(16,BODNZ,1,0), BBOYBI_MASK, PPCCOM,    { BDA } },
    1707 { "bdna",    BBO(16,BODNZ,1,0), BBOYBI_MASK, PWRCOM,    { BDA } },
    1708 { "bdnzla-", BBO(16,BODNZ,1,1), BBOYBI_MASK, PPCCOM,    { BDMA } },
    1709 { "bdnzla+", BBO(16,BODNZ,1,1), BBOYBI_MASK, PPCCOM,    { BDPA } },
    1710 { "bdnzla",  BBO(16,BODNZ,1,1), BBOYBI_MASK, PPCCOM,    { BDA } },
    1711 { "bdnla",   BBO(16,BODNZ,1,1), BBOYBI_MASK, PWRCOM,    { BDA } },
    1712 { "bdz-",    BBO(16,BODZ,0,0),  BBOYBI_MASK, PPCCOM,    { BDM } },
    1713 { "bdz+",    BBO(16,BODZ,0,0),  BBOYBI_MASK, PPCCOM,    { BDP } },
    1714 { "bdz",     BBO(16,BODZ,0,0),  BBOYBI_MASK, COM,       { BD } },
    1715 { "bdzl-",   BBO(16,BODZ,0,1),  BBOYBI_MASK, PPCCOM,    { BDM } },
    1716 { "bdzl+",   BBO(16,BODZ,0,1),  BBOYBI_MASK, PPCCOM,    { BDP } },
    1717 { "bdzl",    BBO(16,BODZ,0,1),  BBOYBI_MASK, COM,       { BD } },
    1718 { "bdza-",   BBO(16,BODZ,1,0),  BBOYBI_MASK, PPCCOM,    { BDMA } },
    1719 { "bdza+",   BBO(16,BODZ,1,0),  BBOYBI_MASK, PPCCOM,    { BDPA } },
    1720 { "bdza",    BBO(16,BODZ,1,0),  BBOYBI_MASK, COM,       { BDA } },
    1721 { "bdzla-",  BBO(16,BODZ,1,1),  BBOYBI_MASK, PPCCOM,    { BDMA } },
    1722 { "bdzla+",  BBO(16,BODZ,1,1),  BBOYBI_MASK, PPCCOM,    { BDPA } },
    1723 { "bdzla",   BBO(16,BODZ,1,1),  BBOYBI_MASK, COM,       { BDA } },
    1724 { "blt-",    BBOCB(16,BOT,CBLT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1725 { "blt+",    BBOCB(16,BOT,CBLT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1726 { "blt",     BBOCB(16,BOT,CBLT,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1727 { "bltl-",   BBOCB(16,BOT,CBLT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1728 { "bltl+",   BBOCB(16,BOT,CBLT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1729 { "bltl",    BBOCB(16,BOT,CBLT,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1730 { "blta-",   BBOCB(16,BOT,CBLT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1731 { "blta+",   BBOCB(16,BOT,CBLT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1732 { "blta",    BBOCB(16,BOT,CBLT,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1733 { "bltla-",  BBOCB(16,BOT,CBLT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1734 { "bltla+",  BBOCB(16,BOT,CBLT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1735 { "bltla",   BBOCB(16,BOT,CBLT,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1736 { "bgt-",    BBOCB(16,BOT,CBGT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1737 { "bgt+",    BBOCB(16,BOT,CBGT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1738 { "bgt",     BBOCB(16,BOT,CBGT,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1739 { "bgtl-",   BBOCB(16,BOT,CBGT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1740 { "bgtl+",   BBOCB(16,BOT,CBGT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1741 { "bgtl",    BBOCB(16,BOT,CBGT,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1742 { "bgta-",   BBOCB(16,BOT,CBGT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1743 { "bgta+",   BBOCB(16,BOT,CBGT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1744 { "bgta",    BBOCB(16,BOT,CBGT,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1745 { "bgtla-",  BBOCB(16,BOT,CBGT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1746 { "bgtla+",  BBOCB(16,BOT,CBGT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1747 { "bgtla",   BBOCB(16,BOT,CBGT,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1748 { "beq-",    BBOCB(16,BOT,CBEQ,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1749 { "beq+",    BBOCB(16,BOT,CBEQ,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1750 { "beq",     BBOCB(16,BOT,CBEQ,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1751 { "beql-",   BBOCB(16,BOT,CBEQ,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1752 { "beql+",   BBOCB(16,BOT,CBEQ,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1753 { "beql",    BBOCB(16,BOT,CBEQ,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1754 { "beqa-",   BBOCB(16,BOT,CBEQ,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1755 { "beqa+",   BBOCB(16,BOT,CBEQ,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1756 { "beqa",    BBOCB(16,BOT,CBEQ,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1757 { "beqla-",  BBOCB(16,BOT,CBEQ,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1758 { "beqla+",  BBOCB(16,BOT,CBEQ,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1759 { "beqla",   BBOCB(16,BOT,CBEQ,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1760 { "bso-",    BBOCB(16,BOT,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1761 { "bso+",    BBOCB(16,BOT,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1762 { "bso",     BBOCB(16,BOT,CBSO,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1763 { "bsol-",   BBOCB(16,BOT,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1764 { "bsol+",   BBOCB(16,BOT,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1765 { "bsol",    BBOCB(16,BOT,CBSO,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1766 { "bsoa-",   BBOCB(16,BOT,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1767 { "bsoa+",   BBOCB(16,BOT,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1768 { "bsoa",    BBOCB(16,BOT,CBSO,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1769 { "bsola-",  BBOCB(16,BOT,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1770 { "bsola+",  BBOCB(16,BOT,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1771 { "bsola",   BBOCB(16,BOT,CBSO,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1772 { "bun-",    BBOCB(16,BOT,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1773 { "bun+",    BBOCB(16,BOT,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1774 { "bun",     BBOCB(16,BOT,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BD } },
    1775 { "bunl-",   BBOCB(16,BOT,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1776 { "bunl+",   BBOCB(16,BOT,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1777 { "bunl",    BBOCB(16,BOT,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BD } },
    1778 { "buna-",   BBOCB(16,BOT,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1779 { "buna+",   BBOCB(16,BOT,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1780 { "buna",    BBOCB(16,BOT,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDA } },
    1781 { "bunla-",  BBOCB(16,BOT,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1782 { "bunla+",  BBOCB(16,BOT,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1783 { "bunla",   BBOCB(16,BOT,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDA } },
    1784 { "bge-",    BBOCB(16,BOF,CBLT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1785 { "bge+",    BBOCB(16,BOF,CBLT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1786 { "bge",     BBOCB(16,BOF,CBLT,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1787 { "bgel-",   BBOCB(16,BOF,CBLT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1788 { "bgel+",   BBOCB(16,BOF,CBLT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1789 { "bgel",    BBOCB(16,BOF,CBLT,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1790 { "bgea-",   BBOCB(16,BOF,CBLT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1791 { "bgea+",   BBOCB(16,BOF,CBLT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1792 { "bgea",    BBOCB(16,BOF,CBLT,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1793 { "bgela-",  BBOCB(16,BOF,CBLT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1794 { "bgela+",  BBOCB(16,BOF,CBLT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1795 { "bgela",   BBOCB(16,BOF,CBLT,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1796 { "bnl-",    BBOCB(16,BOF,CBLT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1797 { "bnl+",    BBOCB(16,BOF,CBLT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1798 { "bnl",     BBOCB(16,BOF,CBLT,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1799 { "bnll-",   BBOCB(16,BOF,CBLT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1800 { "bnll+",   BBOCB(16,BOF,CBLT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1801 { "bnll",    BBOCB(16,BOF,CBLT,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1802 { "bnla-",   BBOCB(16,BOF,CBLT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1803 { "bnla+",   BBOCB(16,BOF,CBLT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1804 { "bnla",    BBOCB(16,BOF,CBLT,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1805 { "bnlla-",  BBOCB(16,BOF,CBLT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1806 { "bnlla+",  BBOCB(16,BOF,CBLT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1807 { "bnlla",   BBOCB(16,BOF,CBLT,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1808 { "ble-",    BBOCB(16,BOF,CBGT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1809 { "ble+",    BBOCB(16,BOF,CBGT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1810 { "ble",     BBOCB(16,BOF,CBGT,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1811 { "blel-",   BBOCB(16,BOF,CBGT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1812 { "blel+",   BBOCB(16,BOF,CBGT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1813 { "blel",    BBOCB(16,BOF,CBGT,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1814 { "blea-",   BBOCB(16,BOF,CBGT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1815 { "blea+",   BBOCB(16,BOF,CBGT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1816 { "blea",    BBOCB(16,BOF,CBGT,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1817 { "blela-",  BBOCB(16,BOF,CBGT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1818 { "blela+",  BBOCB(16,BOF,CBGT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1819 { "blela",   BBOCB(16,BOF,CBGT,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1820 { "bng-",    BBOCB(16,BOF,CBGT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1821 { "bng+",    BBOCB(16,BOF,CBGT,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1822 { "bng",     BBOCB(16,BOF,CBGT,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1823 { "bngl-",   BBOCB(16,BOF,CBGT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1824 { "bngl+",   BBOCB(16,BOF,CBGT,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1825 { "bngl",    BBOCB(16,BOF,CBGT,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1826 { "bnga-",   BBOCB(16,BOF,CBGT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1827 { "bnga+",   BBOCB(16,BOF,CBGT,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1828 { "bnga",    BBOCB(16,BOF,CBGT,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1829 { "bngla-",  BBOCB(16,BOF,CBGT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1830 { "bngla+",  BBOCB(16,BOF,CBGT,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1831 { "bngla",   BBOCB(16,BOF,CBGT,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1832 { "bne-",    BBOCB(16,BOF,CBEQ,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1833 { "bne+",    BBOCB(16,BOF,CBEQ,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1834 { "bne",     BBOCB(16,BOF,CBEQ,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1835 { "bnel-",   BBOCB(16,BOF,CBEQ,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1836 { "bnel+",   BBOCB(16,BOF,CBEQ,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1837 { "bnel",    BBOCB(16,BOF,CBEQ,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1838 { "bnea-",   BBOCB(16,BOF,CBEQ,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1839 { "bnea+",   BBOCB(16,BOF,CBEQ,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1840 { "bnea",    BBOCB(16,BOF,CBEQ,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1841 { "bnela-",  BBOCB(16,BOF,CBEQ,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1842 { "bnela+",  BBOCB(16,BOF,CBEQ,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1843 { "bnela",   BBOCB(16,BOF,CBEQ,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1844 { "bns-",    BBOCB(16,BOF,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1845 { "bns+",    BBOCB(16,BOF,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1846 { "bns",     BBOCB(16,BOF,CBSO,0,0), BBOYCB_MASK, COM,          { CR, BD } },
    1847 { "bnsl-",   BBOCB(16,BOF,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1848 { "bnsl+",   BBOCB(16,BOF,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1849 { "bnsl",    BBOCB(16,BOF,CBSO,0,1), BBOYCB_MASK, COM,          { CR, BD } },
    1850 { "bnsa-",   BBOCB(16,BOF,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1851 { "bnsa+",   BBOCB(16,BOF,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1852 { "bnsa",    BBOCB(16,BOF,CBSO,1,0), BBOYCB_MASK, COM,          { CR, BDA } },
    1853 { "bnsla-",  BBOCB(16,BOF,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1854 { "bnsla+",  BBOCB(16,BOF,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1855 { "bnsla",   BBOCB(16,BOF,CBSO,1,1), BBOYCB_MASK, COM,          { CR, BDA } },
    1856 { "bnu-",    BBOCB(16,BOF,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1857 { "bnu+",    BBOCB(16,BOF,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1858 { "bnu",     BBOCB(16,BOF,CBSO,0,0), BBOYCB_MASK, PPCCOM,       { CR, BD } },
    1859 { "bnul-",   BBOCB(16,BOF,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDM } },
    1860 { "bnul+",   BBOCB(16,BOF,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BDP } },
    1861 { "bnul",    BBOCB(16,BOF,CBSO,0,1), BBOYCB_MASK, PPCCOM,       { CR, BD } },
    1862 { "bnua-",   BBOCB(16,BOF,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1863 { "bnua+",   BBOCB(16,BOF,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1864 { "bnua",    BBOCB(16,BOF,CBSO,1,0), BBOYCB_MASK, PPCCOM,       { CR, BDA } },
    1865 { "bnula-",  BBOCB(16,BOF,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDMA } },
    1866 { "bnula+",  BBOCB(16,BOF,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDPA } },
    1867 { "bnula",   BBOCB(16,BOF,CBSO,1,1), BBOYCB_MASK, PPCCOM,       { CR, BDA } },
    1868 { "bdnzt-",  BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM,     { BI, BDM } },
    1869 { "bdnzt+",  BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM,     { BI, BDP } },
     2357{ "bdnz-",   BBO(16,BODNZ,0,0),      BBOATBI_MASK, PPCCOM,      { BDM } },
     2358{ "bdnz+",   BBO(16,BODNZ,0,0),      BBOATBI_MASK, PPCCOM,      { BDP } },
     2359{ "bdnz",    BBO(16,BODNZ,0,0),      BBOATBI_MASK, PPCCOM,      { BD } },
     2360{ "bdn",     BBO(16,BODNZ,0,0),      BBOATBI_MASK, PWRCOM,      { BD } },
     2361{ "bdnzl-",  BBO(16,BODNZ,0,1),      BBOATBI_MASK, PPCCOM,      { BDM } },
     2362{ "bdnzl+",  BBO(16,BODNZ,0,1),      BBOATBI_MASK, PPCCOM,      { BDP } },
     2363{ "bdnzl",   BBO(16,BODNZ,0,1),      BBOATBI_MASK, PPCCOM,      { BD } },
     2364{ "bdnl",    BBO(16,BODNZ,0,1),      BBOATBI_MASK, PWRCOM,      { BD } },
     2365{ "bdnza-",  BBO(16,BODNZ,1,0),      BBOATBI_MASK, PPCCOM,      { BDMA } },
     2366{ "bdnza+",  BBO(16,BODNZ,1,0),      BBOATBI_MASK, PPCCOM,      { BDPA } },
     2367{ "bdnza",   BBO(16,BODNZ,1,0),      BBOATBI_MASK, PPCCOM,      { BDA } },
     2368{ "bdna",    BBO(16,BODNZ,1,0),      BBOATBI_MASK, PWRCOM,      { BDA } },
     2369{ "bdnzla-", BBO(16,BODNZ,1,1),      BBOATBI_MASK, PPCCOM,      { BDMA } },
     2370{ "bdnzla+", BBO(16,BODNZ,1,1),      BBOATBI_MASK, PPCCOM,      { BDPA } },
     2371{ "bdnzla",  BBO(16,BODNZ,1,1),      BBOATBI_MASK, PPCCOM,      { BDA } },
     2372{ "bdnla",   BBO(16,BODNZ,1,1),      BBOATBI_MASK, PWRCOM,      { BDA } },
     2373{ "bdz-",    BBO(16,BODZ,0,0),       BBOATBI_MASK, PPCCOM,      { BDM } },
     2374{ "bdz+",    BBO(16,BODZ,0,0),       BBOATBI_MASK, PPCCOM,      { BDP } },
     2375{ "bdz",     BBO(16,BODZ,0,0),       BBOATBI_MASK, COM,         { BD } },
     2376{ "bdzl-",   BBO(16,BODZ,0,1),       BBOATBI_MASK, PPCCOM,      { BDM } },
     2377{ "bdzl+",   BBO(16,BODZ,0,1),       BBOATBI_MASK, PPCCOM,      { BDP } },
     2378{ "bdzl",    BBO(16,BODZ,0,1),       BBOATBI_MASK, COM,         { BD } },
     2379{ "bdza-",   BBO(16,BODZ,1,0),       BBOATBI_MASK, PPCCOM,      { BDMA } },
     2380{ "bdza+",   BBO(16,BODZ,1,0),       BBOATBI_MASK, PPCCOM,      { BDPA } },
     2381{ "bdza",    BBO(16,BODZ,1,0),       BBOATBI_MASK, COM,         { BDA } },
     2382{ "bdzla-",  BBO(16,BODZ,1,1),       BBOATBI_MASK, PPCCOM,      { BDMA } },
     2383{ "bdzla+",  BBO(16,BODZ,1,1),       BBOATBI_MASK, PPCCOM,      { BDPA } },
     2384{ "bdzla",   BBO(16,BODZ,1,1),       BBOATBI_MASK, COM,         { BDA } },
     2385{ "blt-",    BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2386{ "blt+",    BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2387{ "blt",     BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2388{ "bltl-",   BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2389{ "bltl+",   BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2390{ "bltl",    BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2391{ "blta-",   BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2392{ "blta+",   BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2393{ "blta",    BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2394{ "bltla-",  BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2395{ "bltla+",  BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2396{ "bltla",   BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2397{ "bgt-",    BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2398{ "bgt+",    BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2399{ "bgt",     BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2400{ "bgtl-",   BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2401{ "bgtl+",   BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2402{ "bgtl",    BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2403{ "bgta-",   BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2404{ "bgta+",   BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2405{ "bgta",    BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2406{ "bgtla-",  BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2407{ "bgtla+",  BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2408{ "bgtla",   BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2409{ "beq-",    BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2410{ "beq+",    BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2411{ "beq",     BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2412{ "beql-",   BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2413{ "beql+",   BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2414{ "beql",    BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2415{ "beqa-",   BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2416{ "beqa+",   BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2417{ "beqa",    BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2418{ "beqla-",  BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2419{ "beqla+",  BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2420{ "beqla",   BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2421{ "bso-",    BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2422{ "bso+",    BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2423{ "bso",     BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2424{ "bsol-",   BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2425{ "bsol+",   BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2426{ "bsol",    BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2427{ "bsoa-",   BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2428{ "bsoa+",   BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2429{ "bsoa",    BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2430{ "bsola-",  BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2431{ "bsola+",  BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2432{ "bsola",   BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2433{ "bun-",    BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2434{ "bun+",    BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2435{ "bun",     BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BD } },
     2436{ "bunl-",   BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2437{ "bunl+",   BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2438{ "bunl",    BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BD } },
     2439{ "buna-",   BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2440{ "buna+",   BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2441{ "buna",    BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDA } },
     2442{ "bunla-",  BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2443{ "bunla+",  BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2444{ "bunla",   BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDA } },
     2445{ "bge-",    BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2446{ "bge+",    BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2447{ "bge",     BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2448{ "bgel-",   BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2449{ "bgel+",   BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2450{ "bgel",    BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2451{ "bgea-",   BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2452{ "bgea+",   BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2453{ "bgea",    BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2454{ "bgela-",  BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2455{ "bgela+",  BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2456{ "bgela",   BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2457{ "bnl-",    BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2458{ "bnl+",    BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2459{ "bnl",     BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2460{ "bnll-",   BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2461{ "bnll+",   BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2462{ "bnll",    BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2463{ "bnla-",   BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2464{ "bnla+",   BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2465{ "bnla",    BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2466{ "bnlla-",  BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2467{ "bnlla+",  BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2468{ "bnlla",   BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2469{ "ble-",    BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2470{ "ble+",    BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2471{ "ble",     BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2472{ "blel-",   BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2473{ "blel+",   BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2474{ "blel",    BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2475{ "blea-",   BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2476{ "blea+",   BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2477{ "blea",    BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2478{ "blela-",  BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2479{ "blela+",  BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2480{ "blela",   BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2481{ "bng-",    BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2482{ "bng+",    BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2483{ "bng",     BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2484{ "bngl-",   BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2485{ "bngl+",   BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2486{ "bngl",    BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2487{ "bnga-",   BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2488{ "bnga+",   BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2489{ "bnga",    BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2490{ "bngla-",  BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2491{ "bngla+",  BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2492{ "bngla",   BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2493{ "bne-",    BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2494{ "bne+",    BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2495{ "bne",     BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2496{ "bnel-",   BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2497{ "bnel+",   BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2498{ "bnel",    BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2499{ "bnea-",   BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2500{ "bnea+",   BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2501{ "bnea",    BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2502{ "bnela-",  BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2503{ "bnela+",  BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2504{ "bnela",   BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2505{ "bns-",    BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2506{ "bns+",    BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2507{ "bns",     BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM,         { CR, BD } },
     2508{ "bnsl-",   BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2509{ "bnsl+",   BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2510{ "bnsl",    BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM,         { CR, BD } },
     2511{ "bnsa-",   BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2512{ "bnsa+",   BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2513{ "bnsa",    BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM,         { CR, BDA } },
     2514{ "bnsla-",  BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2515{ "bnsla+",  BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2516{ "bnsla",   BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM,         { CR, BDA } },
     2517{ "bnu-",    BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2518{ "bnu+",    BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2519{ "bnu",     BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM,      { CR, BD } },
     2520{ "bnul-",   BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDM } },
     2521{ "bnul+",   BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BDP } },
     2522{ "bnul",    BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM,      { CR, BD } },
     2523{ "bnua-",   BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2524{ "bnua+",   BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2525{ "bnua",    BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM,      { CR, BDA } },
     2526{ "bnula-",  BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDMA } },
     2527{ "bnula+",  BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDPA } },
     2528{ "bnula",   BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM,      { CR, BDA } },
     2529{ "bdnzt-",  BBO(16,BODNZT,0,0), BBOY_MASK, NOPOWER4,   { BI, BDM } },
     2530{ "bdnzt+",  BBO(16,BODNZT,0,0), BBOY_MASK, NOPOWER4,   { BI, BDP } },
    18702531{ "bdnzt",   BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM,     { BI, BD } },
    1871 { "bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM,     { BI, BDM } },
    1872 { "bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM,     { BI, BDP } },
     2532{ "bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, NOPOWER4,   { BI, BDM } },
     2533{ "bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, NOPOWER4,   { BI, BDP } },
    18732534{ "bdnztl",  BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM,     { BI, BD } },
    1874 { "bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM,     { BI, BDMA } },
    1875 { "bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM,     { BI, BDPA } },
     2535{ "bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, NOPOWER4,   { BI, BDMA } },
     2536{ "bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, NOPOWER4,   { BI, BDPA } },
    18762537{ "bdnzta",  BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM,     { BI, BDA } },
    1877 { "bdnztla-",BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM,     { BI, BDMA } },
    1878 { "bdnztla+",BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM,     { BI, BDPA } },
     2538{ "bdnztla-",BBO(16,BODNZT,1,1), BBOY_MASK, NOPOWER4,   { BI, BDMA } },
     2539{ "bdnztla+",BBO(16,BODNZT,1,1), BBOY_MASK, NOPOWER4,   { BI, BDPA } },
    18792540{ "bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM,     { BI, BDA } },
    1880 { "bdnzf-",  BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM,     { BI, BDM } },
    1881 { "bdnzf+",  BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM,     { BI, BDP } },
     2541{ "bdnzf-",  BBO(16,BODNZF,0,0), BBOY_MASK, NOPOWER4,   { BI, BDM } },
     2542{ "bdnzf+",  BBO(16,BODNZF,0,0), BBOY_MASK, NOPOWER4,   { BI, BDP } },
    18822543{ "bdnzf",   BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM,     { BI, BD } },
    1883 { "bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM,     { BI, BDM } },
    1884 { "bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM,     { BI, BDP } },
     2544{ "bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, NOPOWER4,   { BI, BDM } },
     2545{ "bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, NOPOWER4,   { BI, BDP } },
    18852546{ "bdnzfl",  BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM,     { BI, BD } },
    1886 { "bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM,     { BI, BDMA } },
    1887 { "bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM,     { BI, BDPA } },
     2547{ "bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, NOPOWER4,   { BI, BDMA } },
     2548{ "bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, NOPOWER4,   { BI, BDPA } },
    18882549{ "bdnzfa",  BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM,     { BI, BDA } },
    1889 { "bdnzfla-",BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM,     { BI, BDMA } },
    1890 { "bdnzfla+",BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM,     { BI, BDPA } },
     2550{ "bdnzfla-",BBO(16,BODNZF,1,1), BBOY_MASK, NOPOWER4,   { BI, BDMA } },
     2551{ "bdnzfla+",BBO(16,BODNZF,1,1), BBOY_MASK, NOPOWER4,   { BI, BDPA } },
    18912552{ "bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM,     { BI, BDA } },
    1892 { "bt-",     BBO(16,BOT,0,0), BBOY_MASK, PPCCOM,        { BI, BDM } },
    1893 { "bt+",     BBO(16,BOT,0,0), BBOY_MASK, PPCCOM,        { BI, BDP } },
    1894 { "bt",      BBO(16,BOT,0,0), BBOY_MASK, PPCCOM,        { BI, BD } },
    1895 { "bbt",     BBO(16,BOT,0,0), BBOY_MASK, PWRCOM,        { BI, BD } },
    1896 { "btl-",    BBO(16,BOT,0,1), BBOY_MASK, PPCCOM,        { BI, BDM } },
    1897 { "btl+",    BBO(16,BOT,0,1), BBOY_MASK, PPCCOM,        { BI, BDP } },
    1898 { "btl",     BBO(16,BOT,0,1), BBOY_MASK, PPCCOM,        { BI, BD } },
    1899 { "bbtl",    BBO(16,BOT,0,1), BBOY_MASK, PWRCOM,        { BI, BD } },
    1900 { "bta-",    BBO(16,BOT,1,0), BBOY_MASK, PPCCOM,        { BI, BDMA } },
    1901 { "bta+",    BBO(16,BOT,1,0), BBOY_MASK, PPCCOM,        { BI, BDPA } },
    1902 { "bta",     BBO(16,BOT,1,0), BBOY_MASK, PPCCOM,        { BI, BDA } },
    1903 { "bbta",    BBO(16,BOT,1,0), BBOY_MASK, PWRCOM,        { BI, BDA } },
    1904 { "btla-",   BBO(16,BOT,1,1), BBOY_MASK, PPCCOM,        { BI, BDMA } },
    1905 { "btla+",   BBO(16,BOT,1,1), BBOY_MASK, PPCCOM,        { BI, BDPA } },
    1906 { "btla",    BBO(16,BOT,1,1), BBOY_MASK, PPCCOM,        { BI, BDA } },
    1907 { "bbtla",   BBO(16,BOT,1,1), BBOY_MASK, PWRCOM,        { BI, BDA } },
    1908 { "bf-",     BBO(16,BOF,0,0), BBOY_MASK, PPCCOM,        { BI, BDM } },
    1909 { "bf+",     BBO(16,BOF,0,0), BBOY_MASK, PPCCOM,        { BI, BDP } },
    1910 { "bf",      BBO(16,BOF,0,0), BBOY_MASK, PPCCOM,        { BI, BD } },
    1911 { "bbf",     BBO(16,BOF,0,0), BBOY_MASK, PWRCOM,        { BI, BD } },
    1912 { "bfl-",    BBO(16,BOF,0,1), BBOY_MASK, PPCCOM,        { BI, BDM } },
    1913 { "bfl+",    BBO(16,BOF,0,1), BBOY_MASK, PPCCOM,        { BI, BDP } },
    1914 { "bfl",     BBO(16,BOF,0,1), BBOY_MASK, PPCCOM,        { BI, BD } },
    1915 { "bbfl",    BBO(16,BOF,0,1), BBOY_MASK, PWRCOM,        { BI, BD } },
    1916 { "bfa-",    BBO(16,BOF,1,0), BBOY_MASK, PPCCOM,        { BI, BDMA } },
    1917 { "bfa+",    BBO(16,BOF,1,0), BBOY_MASK, PPCCOM,        { BI, BDPA } },
    1918 { "bfa",     BBO(16,BOF,1,0), BBOY_MASK, PPCCOM,        { BI, BDA } },
    1919 { "bbfa",    BBO(16,BOF,1,0), BBOY_MASK, PWRCOM,        { BI, BDA } },
    1920 { "bfla-",   BBO(16,BOF,1,1), BBOY_MASK, PPCCOM,        { BI, BDMA } },
    1921 { "bfla+",   BBO(16,BOF,1,1), BBOY_MASK, PPCCOM,        { BI, BDPA } },
    1922 { "bfla",    BBO(16,BOF,1,1), BBOY_MASK, PPCCOM,        { BI, BDA } },
    1923 { "bbfla",   BBO(16,BOF,1,1), BBOY_MASK, PWRCOM,        { BI, BDA } },
    1924 { "bdzt-",   BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM,      { BI, BDM } },
    1925 { "bdzt+",   BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM,      { BI, BDP } },
     2553{ "bt-",     BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM,       { BI, BDM } },
     2554{ "bt+",     BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM,       { BI, BDP } },
     2555{ "bt",      BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM,       { BI, BD } },
     2556{ "bbt",     BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM,       { BI, BD } },
     2557{ "btl-",    BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM,       { BI, BDM } },
     2558{ "btl+",    BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM,       { BI, BDP } },
     2559{ "btl",     BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM,       { BI, BD } },
     2560{ "bbtl",    BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM,       { BI, BD } },
     2561{ "bta-",    BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM,       { BI, BDMA } },
     2562{ "bta+",    BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM,       { BI, BDPA } },
     2563{ "bta",     BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM,       { BI, BDA } },
     2564{ "bbta",    BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM,       { BI, BDA } },
     2565{ "btla-",   BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM,       { BI, BDMA } },
     2566{ "btla+",   BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM,       { BI, BDPA } },
     2567{ "btla",    BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM,       { BI, BDA } },
     2568{ "bbtla",   BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM,       { BI, BDA } },
     2569{ "bf-",     BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM,       { BI, BDM } },
     2570{ "bf+",     BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM,       { BI, BDP } },
     2571{ "bf",      BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM,       { BI, BD } },
     2572{ "bbf",     BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM,       { BI, BD } },
     2573{ "bfl-",    BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM,       { BI, BDM } },
     2574{ "bfl+",    BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM,       { BI, BDP } },
     2575{ "bfl",     BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM,       { BI, BD } },
     2576{ "bbfl",    BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM,       { BI, BD } },
     2577{ "bfa-",    BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM,       { BI, BDMA } },
     2578{ "bfa+",    BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM,       { BI, BDPA } },
     2579{ "bfa",     BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM,       { BI, BDA } },
     2580{ "bbfa",    BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM,       { BI, BDA } },
     2581{ "bfla-",   BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM,       { BI, BDMA } },
     2582{ "bfla+",   BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM,       { BI, BDPA } },
     2583{ "bfla",    BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM,       { BI, BDA } },
     2584{ "bbfla",   BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM,       { BI, BDA } },
     2585{ "bdzt-",   BBO(16,BODZT,0,0), BBOY_MASK, NOPOWER4,    { BI, BDM } },
     2586{ "bdzt+",   BBO(16,BODZT,0,0), BBOY_MASK, NOPOWER4,    { BI, BDP } },
    19262587{ "bdzt",    BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM,      { BI, BD } },
    1927 { "bdztl-",  BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM,      { BI, BDM } },
    1928 { "bdztl+",  BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM,      { BI, BDP } },
     2588{ "bdztl-",  BBO(16,BODZT,0,1), BBOY_MASK, NOPOWER4,    { BI, BDM } },
     2589{ "bdztl+",  BBO(16,BODZT,0,1), BBOY_MASK, NOPOWER4,    { BI, BDP } },
    19292590{ "bdztl",   BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM,      { BI, BD } },
    1930 { "bdzta-",  BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM,      { BI, BDMA } },
    1931 { "bdzta+",  BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM,      { BI, BDPA } },
     2591{ "bdzta-",  BBO(16,BODZT,1,0), BBOY_MASK, NOPOWER4,    { BI, BDMA } },
     2592{ "bdzta+",  BBO(16,BODZT,1,0), BBOY_MASK, NOPOWER4,    { BI, BDPA } },
    19322593{ "bdzta",   BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM,      { BI, BDA } },
    1933 { "bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM,      { BI, BDMA } },
    1934 { "bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM,      { BI, BDPA } },
     2594{ "bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, NOPOWER4,    { BI, BDMA } },
     2595{ "bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, NOPOWER4,    { BI, BDPA } },
    19352596{ "bdztla",  BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM,      { BI, BDA } },
    1936 { "bdzf-",   BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM,      { BI, BDM } },
    1937 { "bdzf+",   BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM,      { BI, BDP } },
     2597{ "bdzf-",   BBO(16,BODZF,0,0), BBOY_MASK, NOPOWER4,    { BI, BDM } },
     2598{ "bdzf+",   BBO(16,BODZF,0,0), BBOY_MASK, NOPOWER4,    { BI, BDP } },
    19382599{ "bdzf",    BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM,      { BI, BD } },
    1939 { "bdzfl-",  BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM,      { BI, BDM } },
    1940 { "bdzfl+",  BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM,      { BI, BDP } },
     2600{ "bdzfl-",  BBO(16,BODZF,0,1), BBOY_MASK, NOPOWER4,    { BI, BDM } },
     2601{ "bdzfl+",  BBO(16,BODZF,0,1), BBOY_MASK, NOPOWER4,    { BI, BDP } },
    19412602{ "bdzfl",   BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM,      { BI, BD } },
    1942 { "bdzfa-",  BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM,      { BI, BDMA } },
    1943 { "bdzfa+",  BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM,      { BI, BDPA } },
     2603{ "bdzfa-",  BBO(16,BODZF,1,0), BBOY_MASK, NOPOWER4,    { BI, BDMA } },
     2604{ "bdzfa+",  BBO(16,BODZF,1,0), BBOY_MASK, NOPOWER4,    { BI, BDPA } },
    19442605{ "bdzfa",   BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM,      { BI, BDA } },
    1945 { "bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM,      { BI, BDMA } },
    1946 { "bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM,      { BI, BDPA } },
     2606{ "bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, NOPOWER4,    { BI, BDMA } },
     2607{ "bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, NOPOWER4,    { BI, BDPA } },
    19472608{ "bdzfla",  BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM,      { BI, BDA } },
    19482609{ "bc-",     B(16,0,0), B_MASK,         PPCCOM,         { BOE, BI, BDM } },
     
    19652626{ "svcla",   SC(17,1,1), SC_MASK,       POWER,          { SV } },
    19662627
    1967 { "b",       B(18,0,0), B_MASK,         COM,    { LI } },
    1968 { "bl",      B(18,0,1), B_MASK,         COM,    { LI } },
    1969 { "ba",      B(18,1,0), B_MASK,         COM,    { LIA } },
    1970 { "bla",     B(18,1,1), B_MASK,         COM,    { LIA } },
    1971 
    1972 { "mcrf",    XL(19,0),  XLBB_MASK|(3<<21)|(3<<16), COM, { BF, BFA } },
     2628{ "b",       B(18,0,0), B_MASK,         COM,            { LI } },
     2629{ "bl",      B(18,0,1), B_MASK,         COM,            { LI } },
     2630{ "ba",      B(18,1,0), B_MASK,         COM,            { LIA } },
     2631{ "bla",     B(18,1,1), B_MASK,         COM,            { LIA } },
     2632
     2633{ "mcrf",    XL(19,0),  XLBB_MASK|(3 << 21)|(3 << 16), COM,     { BF, BFA } },
    19732634
    19742635{ "blr",     XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM,   { 0 } },
     
    19772638{ "brl",     XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM,   { 0 } },
    19782639{ "bdnzlr",  XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } },
    1979 { "bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } },
    1980 { "bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM,        { 0 } },
     2640{ "bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, NOPOWER4,       { 0 } },
     2641{ "bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, NOPOWER4,      { 0 } },
     2642{ "bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, POWER4,       { 0 } },
     2643{ "bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, POWER4,       { 0 } },
    19812644{ "bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } },
    1982 { "bdnzlrl-",XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } },
    1983 { "bdnzlrl+",XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM,        { 0 } },
     2645{ "bdnzlrl-",XLO(19,BODNZ,16,1), XLBOBIBB_MASK, NOPOWER4,       { 0 } },
     2646{ "bdnzlrl+",XLO(19,BODNZP,16,1), XLBOBIBB_MASK, NOPOWER4,      { 0 } },
     2647{ "bdnzlrl-",XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, POWER4,       { 0 } },
     2648{ "bdnzlrl+",XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, POWER4,       { 0 } },
    19842649{ "bdzlr",   XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM,  { 0 } },
    1985 { "bdzlr-",  XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM,  { 0 } },
    1986 { "bdzlr+",  XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } },
     2650{ "bdzlr-",  XLO(19,BODZ,16,0), XLBOBIBB_MASK, NOPOWER4,        { 0 } },
     2651{ "bdzlr+",  XLO(19,BODZP,16,0), XLBOBIBB_MASK, NOPOWER4,       { 0 } },
     2652{ "bdzlr-",  XLO(19,BODZM4,16,0), XLBOBIBB_MASK, POWER4,        { 0 } },
     2653{ "bdzlr+",  XLO(19,BODZP4,16,0), XLBOBIBB_MASK, POWER4,        { 0 } },
    19872654{ "bdzlrl",  XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM,  { 0 } },
    1988 { "bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM,  { 0 } },
    1989 { "bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } },
     2655{ "bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, NOPOWER4,        { 0 } },
     2656{ "bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, NOPOWER4,       { 0 } },
     2657{ "bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, POWER4,        { 0 } },
     2658{ "bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, POWER4,        { 0 } },
    19902659{ "bltlr",   XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    1991 { "bltlr-",  XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    1992 { "bltlr+",  XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2660{ "bltlr-",  XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2661{ "bltlr+",  XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2662{ "bltlr-",  XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2663{ "bltlr+",  XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    19932664{ "bltr",    XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    19942665{ "bltlrl",  XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    1995 { "bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    1996 { "bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2666{ "bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2667{ "bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2668{ "bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2669{ "bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    19972670{ "bltrl",   XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    19982671{ "bgtlr",   XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    1999 { "bgtlr-",  XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2000 { "bgtlr+",  XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2672{ "bgtlr-",  XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2673{ "bgtlr+",  XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2674{ "bgtlr-",  XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2675{ "bgtlr+",  XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20012676{ "bgtr",    XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20022677{ "bgtlrl",  XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2003 { "bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2004 { "bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2678{ "bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2679{ "bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2680{ "bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2681{ "bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20052682{ "bgtrl",   XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20062683{ "beqlr",   XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2007 { "beqlr-",  XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2008 { "beqlr+",  XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2684{ "beqlr-",  XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2685{ "beqlr+",  XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2686{ "beqlr-",  XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2687{ "beqlr+",  XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20092688{ "beqr",    XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20102689{ "beqlrl",  XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2011 { "beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2012 { "beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2690{ "beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2691{ "beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2692{ "beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2693{ "beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20132694{ "beqrl",   XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20142695{ "bsolr",   XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2015 { "bsolr-",  XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2016 { "bsolr+",  XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2696{ "bsolr-",  XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2697{ "bsolr+",  XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2698{ "bsolr-",  XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2699{ "bsolr+",  XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20172700{ "bsor",    XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20182701{ "bsolrl",  XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2019 { "bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2020 { "bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2702{ "bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2703{ "bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2704{ "bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2705{ "bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20212706{ "bsorl",   XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20222707{ "bunlr",   XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2023 { "bunlr-",  XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2024 { "bunlr+",  XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2708{ "bunlr-",  XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2709{ "bunlr+",  XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2710{ "bunlr-",  XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2711{ "bunlr+",  XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20252712{ "bunlrl",  XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2026 { "bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2027 { "bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2713{ "bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2714{ "bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2715{ "bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2716{ "bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20282717{ "bgelr",   XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2029 { "bgelr-",  XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2030 { "bgelr+",  XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2718{ "bgelr-",  XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2719{ "bgelr+",  XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2720{ "bgelr-",  XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2721{ "bgelr+",  XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20312722{ "bger",    XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20322723{ "bgelrl",  XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2033 { "bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2034 { "bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2724{ "bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2725{ "bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2726{ "bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2727{ "bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20352728{ "bgerl",   XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20362729{ "bnllr",   XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2037 { "bnllr-",  XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2038 { "bnllr+",  XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2730{ "bnllr-",  XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2731{ "bnllr+",  XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2732{ "bnllr-",  XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2733{ "bnllr+",  XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20392734{ "bnlr",    XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20402735{ "bnllrl",  XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2041 { "bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2042 { "bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2736{ "bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2737{ "bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2738{ "bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2739{ "bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20432740{ "bnlrl",   XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20442741{ "blelr",   XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2045 { "blelr-",  XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2046 { "blelr+",  XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2742{ "blelr-",  XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2743{ "blelr+",  XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2744{ "blelr-",  XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2745{ "blelr+",  XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20472746{ "bler",    XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20482747{ "blelrl",  XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2049 { "blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2050 { "blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2748{ "blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2749{ "blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2750{ "blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2751{ "blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20512752{ "blerl",   XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20522753{ "bnglr",   XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2053 { "bnglr-",  XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2054 { "bnglr+",  XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2754{ "bnglr-",  XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2755{ "bnglr+",  XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2756{ "bnglr-",  XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2757{ "bnglr+",  XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20552758{ "bngr",    XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20562759{ "bnglrl",  XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2057 { "bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2058 { "bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2760{ "bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2761{ "bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2762{ "bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2763{ "bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20592764{ "bngrl",   XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20602765{ "bnelr",   XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2061 { "bnelr-",  XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2062 { "bnelr+",  XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2766{ "bnelr-",  XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2767{ "bnelr+",  XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2768{ "bnelr-",  XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2769{ "bnelr+",  XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20632770{ "bner",    XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20642771{ "bnelrl",  XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2065 { "bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2066 { "bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2772{ "bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2773{ "bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2774{ "bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2775{ "bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20672776{ "bnerl",   XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20682777{ "bnslr",   XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2069 { "bnslr-",  XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2070 { "bnslr+",  XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2778{ "bnslr-",  XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2779{ "bnslr+",  XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2780{ "bnslr-",  XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2781{ "bnslr+",  XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20712782{ "bnsr",    XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, { CR } },
    20722783{ "bnslrl",  XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2073 { "bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2074 { "bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2784{ "bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2785{ "bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2786{ "bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2787{ "bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20752788{ "bnsrl",   XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, { CR } },
    20762789{ "bnulr",   XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2077 { "bnulr-",  XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
    2078 { "bnulr+",  XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } },
     2790{ "bnulr-",  XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2791{ "bnulr+",  XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2792{ "bnulr-",  XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
     2793{ "bnulr+",  XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } },
    20792794{ "bnulrl",  XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2080 { "bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
    2081 { "bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } },
     2795{ "bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2796{ "bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2797{ "bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
     2798{ "bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } },
    20822799{ "btlr",    XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM,     { BI } },
    2083 { "btlr-",   XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM,     { BI } },
    2084 { "btlr+",   XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM,    { BI } },
     2800{ "btlr-",   XLO(19,BOT,16,0), XLBOBB_MASK, NOPOWER4,   { BI } },
     2801{ "btlr+",   XLO(19,BOTP,16,0), XLBOBB_MASK, NOPOWER4,  { BI } },
     2802{ "btlr-",   XLO(19,BOTM4,16,0), XLBOBB_MASK, POWER4,   { BI } },
     2803{ "btlr+",   XLO(19,BOTP4,16,0), XLBOBB_MASK, POWER4,   { BI } },
    20852804{ "bbtr",    XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM,     { BI } },
    20862805{ "btlrl",   XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM,     { BI } },
    2087 { "btlrl-",  XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM,     { BI } },
    2088 { "btlrl+",  XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM,    { BI } },
     2806{ "btlrl-",  XLO(19,BOT,16,1), XLBOBB_MASK, NOPOWER4,   { BI } },
     2807{ "btlrl+",  XLO(19,BOTP,16,1), XLBOBB_MASK, NOPOWER4,  { BI } },
     2808{ "btlrl-",  XLO(19,BOTM4,16,1), XLBOBB_MASK, POWER4,   { BI } },
     2809{ "btlrl+",  XLO(19,BOTP4,16,1), XLBOBB_MASK, POWER4,   { BI } },
    20892810{ "bbtrl",   XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM,     { BI } },
    20902811{ "bflr",    XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM,     { BI } },
    2091 { "bflr-",   XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM,     { BI } },
    2092 { "bflr+",   XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM,    { BI } },
     2812{ "bflr-",   XLO(19,BOF,16,0), XLBOBB_MASK, NOPOWER4,   { BI } },
     2813{ "bflr+",   XLO(19,BOFP,16,0), XLBOBB_MASK, NOPOWER4,  { BI } },
     2814{ "bflr-",   XLO(19,BOFM4,16,0), XLBOBB_MASK, POWER4,   { BI } },
     2815{ "bflr+",   XLO(19,BOFP4,16,0), XLBOBB_MASK, POWER4,   { BI } },
    20932816{ "bbfr",    XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM,     { BI } },
    20942817{ "bflrl",   XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM,     { BI } },
    2095 { "bflrl-",  XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM,     { BI } },
    2096 { "bflrl+",  XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM,    { BI } },
     2818{ "bflrl-",  XLO(19,BOF,16,1), XLBOBB_MASK, NOPOWER4,   { BI } },
     2819{ "bflrl+",  XLO(19,BOFP,16,1), XLBOBB_MASK, NOPOWER4,  { BI } },
     2820{ "bflrl-",  XLO(19,BOFM4,16,1), XLBOBB_MASK, POWER4,   { BI } },
     2821{ "bflrl+",  XLO(19,BOFP4,16,1), XLBOBB_MASK, POWER4,   { BI } },
    20972822{ "bbfrl",   XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM,     { BI } },
    20982823{ "bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM,  { BI } },
    2099 { "bdnztlr-",XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM,  { BI } },
    2100 { "bdnztlr+",XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, { BI } },
     2824{ "bdnztlr-",XLO(19,BODNZT,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
     2825{ "bdnztlr+",XLO(19,BODNZTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
    21012826{ "bdnztlrl",XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM,  { BI } },
    2102 { "bdnztlrl-",XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, { BI } },
    2103 { "bdnztlrl+",XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM,{ BI } },
     2827{ "bdnztlrl-",XLO(19,BODNZT,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
     2828{ "bdnztlrl+",XLO(19,BODNZTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
    21042829{ "bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM,  { BI } },
    2105 { "bdnzflr-",XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM,  { BI } },
    2106 { "bdnzflr+",XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, { BI } },
     2830{ "bdnzflr-",XLO(19,BODNZF,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
     2831{ "bdnzflr+",XLO(19,BODNZFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
    21072832{ "bdnzflrl",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM,  { BI } },
    2108 { "bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, { BI } },
    2109 { "bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM,{ BI } },
     2833{ "bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
     2834{ "bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
    21102835{ "bdztlr",  XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM,   { BI } },
    2111 { "bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM,   { BI } },
    2112 { "bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM,  { BI } },
     2836{ "bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
     2837{ "bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
    21132838{ "bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM,   { BI } },
    2114 { "bdztlrl-",XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM,   { BI } },
    2115 { "bdztlrl+",XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM,  { BI } },
     2839{ "bdztlrl-",XLO(19,BODZT,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
     2840{ "bdztlrl+",XLO(19,BODZTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
    21162841{ "bdzflr",  XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM,   { BI } },
    2117 { "bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM,   { BI } },
    2118 { "bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM,  { BI } },
     2842{ "bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
     2843{ "bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } },
    21192844{ "bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM,   { BI } },
    2120 { "bdzflrl-",XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM,   { BI } },
    2121 { "bdzflrl+",XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM,  { BI } },
     2845{ "bdzflrl-",XLO(19,BODZF,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
     2846{ "bdzflrl+",XLO(19,BODZFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } },
    21222847{ "bclr",    XLLK(19,16,0), XLYBB_MASK, PPCCOM,         { BO, BI } },
    21232848{ "bclrl",   XLLK(19,16,1), XLYBB_MASK, PPCCOM,         { BO, BI } },
     
    21282853{ "bcr",     XLLK(19,16,0), XLBB_MASK,  PWRCOM,         { BO, BI } },
    21292854{ "bcrl",    XLLK(19,16,1), XLBB_MASK,  PWRCOM,         { BO, BI } },
     2855{ "bclre",   XLLK(19,17,0), XLBB_MASK,  BOOKE64,        { BO, BI } },
     2856{ "bclrel",  XLLK(19,17,1), XLBB_MASK,  BOOKE64,        { BO, BI } },
    21302857
    21312858{ "rfid",    XL(19,18), 0xffffffff,     PPC64,          { 0 } },
     
    21332860{ "crnot",   XL(19,33), XL_MASK,        PPCCOM,         { BT, BA, BBA } },
    21342861{ "crnor",   XL(19,33), XL_MASK,        COM,            { BT, BA, BB } },
     2862{ "rfmci",    X(19,38), 0xffffffff,     PPCRFMCI,       { 0 } },
    21352863
    21362864{ "rfi",     XL(19,50), 0xffffffff,     COM,            { 0 } },
    21372865{ "rfci",    XL(19,51), 0xffffffff,     PPC403,         { 0 } },
     2866{ "rfci",    XL(19,51), 0xffffffff,     BOOKE,          { 0 } },
    21382867
    21392868{ "rfsvc",   XL(19,82), 0xffffffff,     POWER,          { 0 } },
     
    21622891{ "bctrl",   XLO(19,BOU,528,1), XLBOBIBB_MASK, COM,     { 0 } },
    21632892{ "bltctr",  XLOCB(19,BOT,CBLT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2164 { "bltctr-", XLOCB(19,BOT,CBLT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2165 { "bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2893{ "bltctr-", XLOCB(19,BOT,CBLT,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2894{ "bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2895{ "bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2896{ "bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    21662897{ "bltctrl", XLOCB(19,BOT,CBLT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2167 { "bltctrl-",XLOCB(19,BOT,CBLT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2168 { "bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2898{ "bltctrl-",XLOCB(19,BOT,CBLT,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2899{ "bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2900{ "bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2901{ "bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    21692902{ "bgtctr",  XLOCB(19,BOT,CBGT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2170 { "bgtctr-", XLOCB(19,BOT,CBGT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2171 { "bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2903{ "bgtctr-", XLOCB(19,BOT,CBGT,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2904{ "bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2905{ "bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2906{ "bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    21722907{ "bgtctrl", XLOCB(19,BOT,CBGT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2173 { "bgtctrl-",XLOCB(19,BOT,CBGT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2174 { "bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2908{ "bgtctrl-",XLOCB(19,BOT,CBGT,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2909{ "bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2910{ "bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2911{ "bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    21752912{ "beqctr",  XLOCB(19,BOT,CBEQ,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2176 { "beqctr-", XLOCB(19,BOT,CBEQ,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2177 { "beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2913{ "beqctr-", XLOCB(19,BOT,CBEQ,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2914{ "beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2915{ "beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2916{ "beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    21782917{ "beqctrl", XLOCB(19,BOT,CBEQ,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2179 { "beqctrl-",XLOCB(19,BOT,CBEQ,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2180 { "beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2918{ "beqctrl-",XLOCB(19,BOT,CBEQ,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2919{ "beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2920{ "beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2921{ "beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    21812922{ "bsoctr",  XLOCB(19,BOT,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2182 { "bsoctr-", XLOCB(19,BOT,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2183 { "bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2923{ "bsoctr-", XLOCB(19,BOT,CBSO,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2924{ "bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2925{ "bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2926{ "bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    21842927{ "bsoctrl", XLOCB(19,BOT,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2185 { "bsoctrl-",XLOCB(19,BOT,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2186 { "bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2928{ "bsoctrl-",XLOCB(19,BOT,CBSO,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2929{ "bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2930{ "bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2931{ "bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    21872932{ "bunctr",  XLOCB(19,BOT,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2188 { "bunctr-", XLOCB(19,BOT,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2189 { "bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2933{ "bunctr-", XLOCB(19,BOT,CBSO,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2934{ "bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2935{ "bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2936{ "bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    21902937{ "bunctrl", XLOCB(19,BOT,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2191 { "bunctrl-",XLOCB(19,BOT,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2192 { "bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2938{ "bunctrl-",XLOCB(19,BOT,CBSO,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2939{ "bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2940{ "bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2941{ "bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    21932942{ "bgectr",  XLOCB(19,BOF,CBLT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2194 { "bgectr-", XLOCB(19,BOF,CBLT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2195 { "bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2943{ "bgectr-", XLOCB(19,BOF,CBLT,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2944{ "bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2945{ "bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2946{ "bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    21962947{ "bgectrl", XLOCB(19,BOF,CBLT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2197 { "bgectrl-",XLOCB(19,BOF,CBLT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2198 { "bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2948{ "bgectrl-",XLOCB(19,BOF,CBLT,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2949{ "bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2950{ "bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2951{ "bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    21992952{ "bnlctr",  XLOCB(19,BOF,CBLT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2200 { "bnlctr-", XLOCB(19,BOF,CBLT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2201 { "bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2953{ "bnlctr-", XLOCB(19,BOF,CBLT,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2954{ "bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2955{ "bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2956{ "bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    22022957{ "bnlctrl", XLOCB(19,BOF,CBLT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2203 { "bnlctrl-",XLOCB(19,BOF,CBLT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2204 { "bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2958{ "bnlctrl-",XLOCB(19,BOF,CBLT,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2959{ "bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2960{ "bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2961{ "bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    22052962{ "blectr",  XLOCB(19,BOF,CBGT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2206 { "blectr-", XLOCB(19,BOF,CBGT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2207 { "blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2963{ "blectr-", XLOCB(19,BOF,CBGT,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2964{ "blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2965{ "blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2966{ "blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    22082967{ "blectrl", XLOCB(19,BOF,CBGT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2209 { "blectrl-",XLOCB(19,BOF,CBGT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2210 { "blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2968{ "blectrl-",XLOCB(19,BOF,CBGT,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2969{ "blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2970{ "blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2971{ "blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    22112972{ "bngctr",  XLOCB(19,BOF,CBGT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2212 { "bngctr-", XLOCB(19,BOF,CBGT,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2213 { "bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2973{ "bngctr-", XLOCB(19,BOF,CBGT,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2974{ "bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2975{ "bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2976{ "bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    22142977{ "bngctrl", XLOCB(19,BOF,CBGT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2215 { "bngctrl-",XLOCB(19,BOF,CBGT,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2216 { "bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2978{ "bngctrl-",XLOCB(19,BOF,CBGT,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2979{ "bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2980{ "bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2981{ "bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    22172982{ "bnectr",  XLOCB(19,BOF,CBEQ,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2218 { "bnectr-", XLOCB(19,BOF,CBEQ,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2219 { "bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2983{ "bnectr-", XLOCB(19,BOF,CBEQ,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2984{ "bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2985{ "bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2986{ "bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    22202987{ "bnectrl", XLOCB(19,BOF,CBEQ,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2221 { "bnectrl-",XLOCB(19,BOF,CBEQ,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2222 { "bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2988{ "bnectrl-",XLOCB(19,BOF,CBEQ,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2989{ "bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2990{ "bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     2991{ "bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    22232992{ "bnsctr",  XLOCB(19,BOF,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2224 { "bnsctr-", XLOCB(19,BOF,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2225 { "bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2993{ "bnsctr-", XLOCB(19,BOF,CBSO,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2994{ "bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     2995{ "bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     2996{ "bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    22262997{ "bnsctrl", XLOCB(19,BOF,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2227 { "bnsctrl-",XLOCB(19,BOF,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2228 { "bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     2998{ "bnsctrl-",XLOCB(19,BOF,CBSO,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     2999{ "bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     3000{ "bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     3001{ "bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    22293002{ "bnuctr",  XLOCB(19,BOF,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2230 { "bnuctr-", XLOCB(19,BOF,CBSO,528,0),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2231 { "bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM,  { CR } },
     3003{ "bnuctr-", XLOCB(19,BOF,CBSO,528,0),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     3004{ "bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } },
     3005{ "bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
     3006{ "bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } },
    22323007{ "bnuctrl", XLOCB(19,BOF,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2233 { "bnuctrl-",XLOCB(19,BOF,CBSO,528,1),  XLBOCBBB_MASK, PPCCOM,  { CR } },
    2234 { "bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM,  { CR } },
     3008{ "bnuctrl-",XLOCB(19,BOF,CBSO,528,1),  XLBOCBBB_MASK, NOPOWER4, { CR } },
     3009{ "bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } },
     3010{ "bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
     3011{ "bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } },
    22353012{ "btctr",   XLO(19,BOT,528,0),  XLBOBB_MASK, PPCCOM,   { BI } },
    2236 { "btctr-",  XLO(19,BOT,528,0),  XLBOBB_MASK, PPCCOM,   { BI } },
    2237 { "btctr+",  XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM,   { BI } },
     3013{ "btctr-",  XLO(19,BOT,528,0),  XLBOBB_MASK, NOPOWER4, { BI } },
     3014{ "btctr+",  XLO(19,BOTP,528,0), XLBOBB_MASK, NOPOWER4, { BI } },
     3015{ "btctr-",  XLO(19,BOTM4,528,0), XLBOBB_MASK, POWER4, { BI } },
     3016{ "btctr+",  XLO(19,BOTP4,528,0), XLBOBB_MASK, POWER4, { BI } },
    22383017{ "btctrl",  XLO(19,BOT,528,1),  XLBOBB_MASK, PPCCOM,   { BI } },
    2239 { "btctrl-", XLO(19,BOT,528,1),  XLBOBB_MASK, PPCCOM,   { BI } },
    2240 { "btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM,   { BI } },
     3018{ "btctrl-", XLO(19,BOT,528,1),  XLBOBB_MASK, NOPOWER4, { BI } },
     3019{ "btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, NOPOWER4, { BI } },
     3020{ "btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, POWER4, { BI } },
     3021{ "btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, POWER4, { BI } },
    22413022{ "bfctr",   XLO(19,BOF,528,0),  XLBOBB_MASK, PPCCOM,   { BI } },
    2242 { "bfctr-",  XLO(19,BOF,528,0),  XLBOBB_MASK, PPCCOM,   { BI } },
    2243 { "bfctr+",  XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM,   { BI } },
     3023{ "bfctr-",  XLO(19,BOF,528,0),  XLBOBB_MASK, NOPOWER4, { BI } },
     3024{ "bfctr+",  XLO(19,BOFP,528,0), XLBOBB_MASK, NOPOWER4, { BI } },
     3025{ "bfctr-",  XLO(19,BOFM4,528,0), XLBOBB_MASK, POWER4, { BI } },
     3026{ "bfctr+",  XLO(19,BOFP4,528,0), XLBOBB_MASK, POWER4, { BI } },
    22443027{ "bfctrl",  XLO(19,BOF,528,1),  XLBOBB_MASK, PPCCOM,   { BI } },
    2245 { "bfctrl-", XLO(19,BOF,528,1),  XLBOBB_MASK, PPCCOM,   { BI } },
    2246 { "bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM,   { BI } },
     3028{ "bfctrl-", XLO(19,BOF,528,1),  XLBOBB_MASK, NOPOWER4, { BI } },
     3029{ "bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, NOPOWER4, { BI } },
     3030{ "bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, POWER4, { BI } },
     3031{ "bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, POWER4, { BI } },
    22473032{ "bcctr",   XLLK(19,528,0),     XLYBB_MASK,  PPCCOM,   { BO, BI } },
    22483033{ "bcctr-",  XLYLK(19,528,0,0),  XLYBB_MASK,  PPCCOM,   { BOE, BI } },
     
    22533038{ "bcc",     XLLK(19,528,0),     XLBB_MASK,   PWRCOM,   { BO, BI } },
    22543039{ "bccl",    XLLK(19,528,1),     XLBB_MASK,   PWRCOM,   { BO, BI } },
     3040{ "bcctre",  XLLK(19,529,0),     XLYBB_MASK,  BOOKE64,  { BO, BI } },
     3041{ "bcctrel", XLLK(19,529,1),     XLYBB_MASK,  BOOKE64,  { BO, BI } },
    22553042
    22563043{ "rlwimi",  M(20,0),   M_MASK,         PPCCOM,         { RA,RS,SH,MBE,ME } },
     
    22713058{ "rlmi",    M(22,0),   M_MASK,         M601,           { RA,RS,RB,MBE,ME } },
    22723059{ "rlmi.",   M(22,1),   M_MASK,         M601,           { RA,RS,RB,MBE,ME } },
     3060
     3061{ "be",      B(22,0,0), B_MASK,         BOOKE64,        { LI } },
     3062{ "bel",     B(22,0,1), B_MASK,         BOOKE64,        { LI } },
     3063{ "bea",     B(22,1,0), B_MASK,         BOOKE64,        { LIA } },
     3064{ "bela",    B(22,1,1), B_MASK,         BOOKE64,        { LIA } },
    22733065
    22743066{ "rotlw",   MME(23,31,0), MMBME_MASK,  PPCCOM,         { RA, RS, RB } },
     
    23873179{ "mulhwu.", XO(31,11,0,1), XO_MASK,    PPC,            { RT, RA, RB } },
    23883180
     3181{ "isellt",  X(31,15),      X_MASK,     PPCISEL,        { RT, RA, RB } },
     3182{ "iselgt",  X(31,47),      X_MASK,     PPCISEL,        { RT, RA, RB } },
     3183{ "iseleq",  X(31,79),      X_MASK,     PPCISEL,        { RT, RA, RB } },
     3184{ "isel",    XISEL(31,15),  XISEL_MASK, PPCISEL,        { RT, RA, RB, CRB } },
     3185
    23893186{ "mfcr",    X(31,19),  XRARB_MASK,     COM,            { RT } },
    23903187
     
    23923189
    23933190{ "ldx",     X(31,21),  X_MASK,         PPC64,          { RT, RA, RB } },
     3191
     3192{ "icbt",    X(31,22),  X_MASK,         BOOKE,          { CT, RA, RB } },
    23943193
    23953194{ "lwzx",    X(31,23),  X_MASK,         PPCCOM,         { RT, RA, RB } },
     
    24143213{ "maskg",   XRC(31,29,0), X_MASK,      M601,           { RA, RS, RB } },
    24153214{ "maskg.",  XRC(31,29,1), X_MASK,      M601,           { RA, RS, RB } },
     3215
     3216{ "icbte",   X(31,30),  X_MASK,         BOOKE64,        { CT, RA, RB } },
     3217
     3218{ "lwzxe",   X(31,31),  X_MASK,         BOOKE64,        { RT, RA, RB } },
    24163219
    24173220{ "cmplw",   XCMPL(31,32,0), XCMPL_MASK, PPCCOM,        { OBF, RA, RB } },
     
    24363239{ "lux",     X(31,55),  X_MASK,         PWRCOM,         { RT, RA, RB } },
    24373240
     3241{ "dcbste",  X(31,62),  XRT_MASK,       BOOKE64,        { RA, RB } },
     3242
     3243{ "lwzuxe",  X(31,63),  X_MASK,         BOOKE64,        { RT, RAL, RB } },
     3244
    24383245{ "cntlzd",  XRC(31,58,0), XRB_MASK,    PPC64,          { RA, RS } },
    24393246{ "cntlzd.", XRC(31,58,1), XRB_MASK,    PPC64,          { RA, RS } },
    24403247
    2441 { "andc",    XRC(31,60,0), X_MASK,      COM,    { RA, RS, RB } },
    2442 { "andc.",   XRC(31,60,1), X_MASK,      COM,    { RA, RS, RB } },
     3248{ "andc",    XRC(31,60,0), X_MASK,      COM,            { RA, RS, RB } },
     3249{ "andc.",   XRC(31,60,1), X_MASK,      COM,            { RA, RS, RB } },
    24433250
    24443251{ "tdlgt",   XTO(31,68,TOLGT), XTO_MASK, PPC64,         { RA, RB } },
     
    24743281{ "lbzx",    X(31,87),  X_MASK,         COM,            { RT, RA, RB } },
    24753282
     3283{ "dcbfe",   X(31,94),  XRT_MASK,       BOOKE64,        { RA, RB } },
     3284
     3285{ "lbzxe",   X(31,95),  X_MASK,         BOOKE64,        { RT, RA, RB } },
     3286
    24763287{ "neg",     XO(31,104,0,0), XORB_MASK, COM,            { RT, RA } },
    24773288{ "neg.",    XO(31,104,0,1), XORB_MASK, COM,            { RT, RA } },
     
    24863297{ "mtsrdin", X(31,114), XRA_MASK,       PPC64,          { RS, RB } },
    24873298
    2488 { "clf",     X(31,118), XRB_MASK,       POWER,          { RT, RA } },
     3299{ "clf",     X(31,118), XTO_MASK,       POWER,          { RA, RB } },
    24893300
    24903301{ "lbzux",   X(31,119), X_MASK,         COM,            { RT, RAL, RB } },
     
    24953306{ "nor.",    XRC(31,124,1), X_MASK,     COM,            { RA, RS, RB } },
    24963307
     3308{ "lwarxe",  X(31,126), X_MASK,         BOOKE64,        { RT, RA, RB } },
     3309
     3310{ "lbzuxe",  X(31,127), X_MASK,         BOOKE64,        { RT, RAL, RB } },
     3311
    24973312{ "wrtee",   X(31,131), XRARB_MASK,     PPC403,         { RS } },
     3313{ "wrtee",   X(31,131), XRARB_MASK,     BOOKE,          { RS } },
     3314
     3315{ "dcbtstls",X(31,134), X_MASK,         PPCCHLK,        { CT, RA, RB }},
    24983316
    24993317{ "subfe",   XO(31,136,0,0), XO_MASK,   PPCCOM,         { RT, RA, RB } },
     
    25153333{ "aeo.",    XO(31,138,1,1), XO_MASK,   PWRCOM,         { RT, RA, RB } },
    25163334
     3335{ "dcbtstlse",X(31,142),X_MASK,         PPCCHLK64,      { CT, RA, RB }},
     3336
    25173337{ "mtcr",    XFXM(31,144,0xff), XFXFXM_MASK|FXM_MASK, COM,      { RS }},
    25183338{ "mtcrf",   X(31,144), XFXFXM_MASK,    COM,            { FXM, RS } },
     
    25273347{ "stx",     X(31,151), X_MASK,         PWRCOM,         { RS, RA, RB } },
    25283348
     3349{ "stwcxe.", XRC(31,158,1), X_MASK,     BOOKE64,        { RS, RA, RB } },
     3350
     3351{ "stwxe",   X(31,159), X_MASK,         BOOKE64,        { RS, RA, RB } },
     3352
    25293353{ "slq",     XRC(31,152,0), X_MASK,     M601,           { RA, RS, RB } },
    25303354{ "slq.",    XRC(31,152,1), X_MASK,     M601,           { RA, RS, RB } },
     
    25343358
    25353359{ "wrteei",  X(31,163), XE_MASK,        PPC403,         { E } },
    2536 
    2537 { "mtmsrd",  X(31,178), XRARB_MASK,     PPC64,          { RS } },
     3360{ "wrteei",  X(31,163), XE_MASK,        BOOKE,          { E } },
     3361
     3362{ "dcbtls",  X(31,166), X_MASK,         PPCCHLK,        { CT, RA, RB }},
     3363{ "dcbtlse", X(31,174), X_MASK,         PPCCHLK64,      { CT, RA, RB }},
     3364
     3365{ "mtmsrd",  X(31,178), XRLARB_MASK,    PPC64,          { RS, MTMSRD_L } },
    25383366
    25393367{ "stdux",   X(31,181), X_MASK,         PPC64,          { RS, RAS, RB } },
     
    25443372{ "sliq",    XRC(31,184,0), X_MASK,     M601,           { RA, RS, SH } },
    25453373{ "sliq.",   XRC(31,184,1), X_MASK,     M601,           { RA, RS, SH } },
     3374
     3375{ "stwuxe",  X(31,191), X_MASK,         BOOKE64,        { RS, RAS, RB } },
    25463376
    25473377{ "subfze",  XO(31,200,0,0), XORB_MASK, PPCCOM,         { RT, RA } },
     
    25673397{ "stdcx.",  XRC(31,214,1), X_MASK,     PPC64,          { RS, RA, RB } },
    25683398
    2569 { "stbx",    X(31,215), X_MASK,         COM,    { RS, RA, RB } },
     3399{ "stbx",    X(31,215), X_MASK,         COM,            { RS, RA, RB } },
    25703400
    25713401{ "sllq",    XRC(31,216,0), X_MASK,     M601,           { RA, RS, RB } },
     
    25743404{ "sleq",    XRC(31,217,0), X_MASK,     M601,           { RA, RS, RB } },
    25753405{ "sleq.",   XRC(31,217,1), X_MASK,     M601,           { RA, RS, RB } },
     3406
     3407{ "stbxe",   X(31,223), X_MASK,         BOOKE64,        { RS, RA, RB } },
     3408
     3409{ "icblc",   X(31,230), X_MASK,         PPCCHLK,        { CT, RA, RB }},
    25763410
    25773411{ "subfme",  XO(31,232,0,0), XORB_MASK, PPCCOM,         { RT, RA } },
     
    26073441{ "mulso.",  XO(31,235,1,1), XO_MASK,   PWRCOM,         { RT, RA, RB } },
    26083442
     3443{ "icblce",  X(31,238), X_MASK,         PPCCHLK64,      { CT, RA, RB }},
    26093444{ "mtsrin",  X(31,242), XRA_MASK,       PPC32,          { RS, RB } },
    26103445{ "mtsri",   X(31,242), XRA_MASK,       POWER32,        { RS, RB } },
    26113446
    2612 { "dcbtst",  X(31,246), XRT_MASK,       PPC,            { RA, RB } },
     3447{ "dcbtst",  X(31,246), XRT_MASK,       PPC,            { CT, RA, RB } },
    26133448
    26143449{ "stbux",   X(31,247), X_MASK,         COM,            { RS, RAS, RB } },
     
    26163451{ "slliq",   XRC(31,248,0), X_MASK,     M601,           { RA, RS, SH } },
    26173452{ "slliq.",  XRC(31,248,1), X_MASK,     M601,           { RA, RS, SH } },
     3453
     3454{ "dcbtste", X(31,253), X_MASK,         BOOKE64,        { CT, RA, RB } },
     3455
     3456{ "stbuxe",  X(31,255), X_MASK,         BOOKE64,        { RS, RAS, RB } },
     3457
     3458{ "mfdcrx",  X(31,259), X_MASK,         BOOKE,          { RS, RA } },
     3459
     3460{ "icbt",    X(31,262), XRT_MASK,       PPC403,         { RA, RB } },
    26183461
    26193462{ "doz",     XO(31,264,0,0), XO_MASK,   M601,           { RT, RA, RB } },
     
    26313474{ "caxo.",   XO(31,266,1,1), XO_MASK,   PWRCOM,         { RT, RA, RB } },
    26323475
     3476{ "tlbiel",  X(31,274), XRTRA_MASK,     POWER4,         { RB } },
     3477
     3478{ "mfapidi", X(31,275), X_MASK,         BOOKE,          { RT, RA } },
     3479
    26333480{ "lscbx",   XRC(31,277,0), X_MASK,     M601,           { RT, RA, RB } },
    26343481{ "lscbx.",  XRC(31,277,1), X_MASK,     M601,           { RT, RA, RB } },
    26353482
    2636 { "dcbt",    X(31,278), XRT_MASK,       PPC,            { RA, RB } },
     3483{ "dcbt",    X(31,278), XRT_MASK,       PPC,            { CT, RA, RB } },
    26373484
    26383485{ "lhzx",    X(31,279), X_MASK,         COM,            { RT, RA, RB } },
    2639 
    2640 { "icbt",    X(31,262), XRT_MASK,       PPC403,         { RA, RB } },
    26413486
    26423487{ "eqv",     XRC(31,284,0), X_MASK,     COM,            { RA, RS, RB } },
    26433488{ "eqv.",    XRC(31,284,1), X_MASK,     COM,            { RA, RS, RB } },
    26443489
    2645 { "tlbie",   X(31,306), XRTRA_MASK,     PPC,            { RB } },
     3490{ "dcbte",   X(31,286), X_MASK,         BOOKE64,        { CT, RA, RB } },
     3491
     3492{ "lhzxe",   X(31,287), X_MASK,         BOOKE64,        { RT, RA, RB } },
     3493
     3494{ "tlbie",   X(31,306), XRTLRA_MASK,    PPC,            { RB, L } },
    26463495{ "tlbi",    X(31,306), XRT_MASK,       POWER,          { RA, RB } },
    26473496
     
    26533502{ "xor.",    XRC(31,316,1), X_MASK,     COM,            { RA, RS, RB } },
    26543503
    2655 { "mfexisr", XSPR(31,323,64), XSPR_MASK, PPC403,        { RT } },
    2656 { "mfexier", XSPR(31,323,66), XSPR_MASK, PPC403,        { RT } },
    2657 { "mfbr0",   XSPR(31,323,128), XSPR_MASK, PPC403,       { RT } },
    2658 { "mfbr1",   XSPR(31,323,129), XSPR_MASK, PPC403,       { RT } },
    2659 { "mfbr2",   XSPR(31,323,130), XSPR_MASK, PPC403,       { RT } },
    2660 { "mfbr3",   XSPR(31,323,131), XSPR_MASK, PPC403,       { RT } },
    2661 { "mfbr4",   XSPR(31,323,132), XSPR_MASK, PPC403,       { RT } },
    2662 { "mfbr5",   XSPR(31,323,133), XSPR_MASK, PPC403,       { RT } },
    2663 { "mfbr6",   XSPR(31,323,134), XSPR_MASK, PPC403,       { RT } },
    2664 { "mfbr7",   XSPR(31,323,135), XSPR_MASK, PPC403,       { RT } },
    2665 { "mfbear",  XSPR(31,323,144), XSPR_MASK, PPC403,       { RT } },
    2666 { "mfbesr",  XSPR(31,323,145), XSPR_MASK, PPC403,       { RT } },
    2667 { "mfiocr",  XSPR(31,323,160), XSPR_MASK, PPC403,       { RT } },
     3504{ "lhzuxe",  X(31,319), X_MASK,         BOOKE64,        { RT, RAL, RB } },
     3505
     3506{ "mfexisr",  XSPR(31,323,64),  XSPR_MASK, PPC403,      { RT } },
     3507{ "mfexier",  XSPR(31,323,66),  XSPR_MASK, PPC403,      { RT } },
     3508{ "mfbr0",    XSPR(31,323,128), XSPR_MASK, PPC403,      { RT } },
     3509{ "mfbr1",    XSPR(31,323,129), XSPR_MASK, PPC403,      { RT } },
     3510{ "mfbr2",    XSPR(31,323,130), XSPR_MASK, PPC403,      { RT } },
     3511{ "mfbr3",    XSPR(31,323,131), XSPR_MASK, PPC403,      { RT } },
     3512{ "mfbr4",    XSPR(31,323,132), XSPR_MASK, PPC403,      { RT } },
     3513{ "mfbr5",    XSPR(31,323,133), XSPR_MASK, PPC403,      { RT } },
     3514{ "mfbr6",    XSPR(31,323,134), XSPR_MASK, PPC403,      { RT } },
     3515{ "mfbr7",    XSPR(31,323,135), XSPR_MASK, PPC403,      { RT } },
     3516{ "mfbear",   XSPR(31,323,144), XSPR_MASK, PPC403,      { RT } },
     3517{ "mfbesr",   XSPR(31,323,145), XSPR_MASK, PPC403,      { RT } },
     3518{ "mfiocr",   XSPR(31,323,160), XSPR_MASK, PPC403,      { RT } },
    26683519{ "mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403,      { RT } },
    26693520{ "mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403,      { RT } },
     
    26863537{ "mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403,      { RT } },
    26873538{ "mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403,      { RT } },
    2688 { "mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403,       { RT } },
    2689 { "mfdcr",   X(31,323), X_MASK,         PPC403,         { RT, SPR } },
     3539{ "mfdmasr",  XSPR(31,323,224), XSPR_MASK, PPC403,      { RT } },
     3540{ "mfdcr",    X(31,323),        X_MASK,         PPC403,         { RT, SPR } },
     3541{ "mfdcr",    X(31,323),        X_MASK,         BOOKE,          { RT, SPR } },
    26903542
    26913543{ "div",     XO(31,331,0,0), XO_MASK,   M601,           { RT, RA, RB } },
     
    26943546{ "divo.",   XO(31,331,1,1), XO_MASK,   M601,           { RT, RA, RB } },
    26953547
    2696 { "mfmq",     XSPR(31,339,0),   XSPR_MASK, M601,        { RT } },
    2697 { "mfxer",    XSPR(31,339,1),   XSPR_MASK, COM,         { RT } },
    2698 { "mfrtcu",   XSPR(31,339,4),   XSPR_MASK, COM,         { RT } },
    2699 { "mfrtcl",   XSPR(31,339,5),   XSPR_MASK, COM,         { RT } },
    2700 { "mfdec",    XSPR(31,339,6),   XSPR_MASK, MFDEC1,      { RT } },
    2701 { "mflr",     XSPR(31,339,8),   XSPR_MASK, COM,         { RT } },
    2702 { "mfctr",    XSPR(31,339,9),   XSPR_MASK, COM,         { RT } },
    2703 { "mftid",    XSPR(31,339,17),  XSPR_MASK, POWER,       { RT } },
    2704 { "mfdsisr",  XSPR(31,339,18),  XSPR_MASK, COM,         { RT } },
    2705 { "mfdar",    XSPR(31,339,19),  XSPR_MASK, COM,         { RT } },
    2706 { "mfdec",    XSPR(31,339,22),  XSPR_MASK, MFDEC2,      { RT } },
    2707 { "mfsdr0",   XSPR(31,339,24),  XSPR_MASK, POWER,       { RT } },
    2708 { "mfsdr1",   XSPR(31,339,25),  XSPR_MASK, COM,         { RT } },
    2709 { "mfsrr0",   XSPR(31,339,26),  XSPR_MASK, COM,         { RT } },
    2710 { "mfsrr1",   XSPR(31,339,27),  XSPR_MASK, COM,         { RT } },
    2711 { "mfcmpa",   XSPR(31,339,144), XSPR_MASK, PPC860,      { RT } },
    2712 { "mfcmpb",   XSPR(31,339,145), XSPR_MASK, PPC860,      { RT } },
    2713 { "mfcmpc",   XSPR(31,339,146), XSPR_MASK, PPC860,      { RT } },
    2714 { "mfcmpd",   XSPR(31,339,147), XSPR_MASK, PPC860,      { RT } },
    2715 { "mficr",    XSPR(31,339,148), XSPR_MASK, PPC860,      { RT } },
    2716 { "mfder",    XSPR(31,339,149), XSPR_MASK, PPC860,      { RT } },
    2717 { "mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860,      { RT } },
    2718 { "mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860,      { RT } },
    2719 { "mfcmpe",   XSPR(31,339,152), XSPR_MASK, PPC860,      { RT } },
    2720 { "mfcmpf",   XSPR(31,339,153), XSPR_MASK, PPC860,      { RT } },
    2721 { "mfcmpg",   XSPR(31,339,154), XSPR_MASK, PPC860,      { RT } },
    2722 { "mfcmph",   XSPR(31,339,155), XSPR_MASK, PPC860,      { RT } },
    2723 { "mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860,      { RT } },
    2724 { "mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860,      { RT } },
    2725 { "mfictrl",  XSPR(31,339,158), XSPR_MASK, PPC860,      { RT } },
    2726 { "mfbar",    XSPR(31,339,159), XSPR_MASK, PPC860,      { RT } },
    2727 { "mfsprg4",  XSPR(31,339,260), XSPR_MASK, PPC405,      { RT } },
    2728 { "mfsprg5",  XSPR(31,339,261), XSPR_MASK, PPC405,      { RT } },
    2729 { "mfsprg6",  XSPR(31,339,262), XSPR_MASK, PPC405,      { RT } },
    2730 { "mfsprg7",  XSPR(31,339,263), XSPR_MASK, PPC405,      { RT } },
    2731 { "mfsprg",   XSPR(31,339,272), XSPRG_MASK, PPC,        { RT, SPRG } },
    2732 { "mfsprg0",  XSPR(31,339,272), XSPR_MASK, PPC,         { RT } },
    2733 { "mfsprg1",  XSPR(31,339,273), XSPR_MASK, PPC,         { RT } },
    2734 { "mfsprg2",  XSPR(31,339,274), XSPR_MASK, PPC,         { RT } },
    2735 { "mfsprg3",  XSPR(31,339,275), XSPR_MASK, PPC,         { RT } },
    2736 { "mfasr",    XSPR(31,339,280), XSPR_MASK, PPC64,       { RT } },
    2737 { "mfear",    XSPR(31,339,282), XSPR_MASK, PPC,         { RT } },
    2738 { "mfpvr",    XSPR(31,339,287), XSPR_MASK, PPC,         { RT } },
    2739 { "mfibatu",  XSPR(31,339,528), XSPRBAT_MASK, PPC,      { RT, SPRBAT } },
    2740 { "mfibatl",  XSPR(31,339,529), XSPRBAT_MASK, PPC,      { RT, SPRBAT } },
    2741 { "mfdbatu",  XSPR(31,339,536), XSPRBAT_MASK, PPC,      { RT, SPRBAT } },
    2742 { "mfdbatl",  XSPR(31,339,537), XSPRBAT_MASK, PPC,      { RT, SPRBAT } },
    2743 { "mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860,      { RT } },
    2744 { "mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860,      { RT } },
    2745 { "mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860,      { RT } },
    2746 { "mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860,      { RT } },
    2747 { "mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860,      { RT } },
    2748 { "mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860,      { RT } },
    2749 { "mfdpdr",   XSPR(31,339,630), XSPR_MASK, PPC860,      { RT } },
    2750 { "mfdpir",   XSPR(31,339,631), XSPR_MASK, PPC860,      { RT } },
    2751 { "mfimmr",   XSPR(31,339,638), XSPR_MASK, PPC860,      { RT } },
    2752 { "mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860,      { RT } },
    2753 { "mfmi_ap",  XSPR(31,339,786), XSPR_MASK, PPC860,      { RT } },
    2754 { "mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860,      { RT } },
    2755 { "mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860,      { RT } },
    2756 { "mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860,      { RT } },
    2757 { "mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860,      { RT } },
    2758 { "mfm_casid",XSPR(31,339,793), XSPR_MASK, PPC860,      { RT } },
    2759 { "mfmd_ap",  XSPR(31,339,794), XSPR_MASK, PPC860,      { RT } },
    2760 { "mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860,      { RT } },
    2761 { "mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860,      { RT } },
    2762 { "mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860,      { RT } },
    2763 { "mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860,      { RT } },
    2764 { "mfm_tw",   XSPR(31,339,799), XSPR_MASK, PPC860,      { RT } },
    2765 { "mfmi_dbcam",XSPR(31,339,816), XSPR_MASK, PPC860,     { RT } },
    2766 { "mfmi_dbram0",XSPR(31,339,817), XSPR_MASK, PPC860,    { RT } },
    2767 { "mfmi_dbram1",XSPR(31,339,818), XSPR_MASK, PPC860,    { RT } },
    2768 { "mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860,    { RT } },
    2769 { "mfmd_dbram0",XSPR(31,339,825), XSPR_MASK, PPC860,    { RT } },
    2770 { "mfmd_dbram1",XSPR(31,339,826), XSPR_MASK, PPC860,    { RT } },
    2771 { "mfzpr",      XSPR(31,339,944), XSPR_MASK, PPC403,    { RT } },
    2772 { "mfpid",      XSPR(31,339,945), XSPR_MASK, PPC403,    { RT } },
    2773 { "mfccr0",     XSPR(31,339,947), XSPR_MASK, PPC405,    { RT } },
    2774 { "mficdbdr",   XSPR(31,339,979), XSPR_MASK, PPC403,    { RT } },
    2775 { "mfummcr0",   XSPR(31,339,936),  XSPR_MASK, PPC750,   { RT } },
    2776 { "mfupmc1",    XSPR(31,339,937),  XSPR_MASK, PPC750,   { RT } },
    2777 { "mfupmc2",    XSPR(31,339,938),  XSPR_MASK, PPC750,   { RT } },
    2778 { "mfusia",     XSPR(31,339,939),  XSPR_MASK, PPC750,   { RT } },
    2779 { "mfummcr1",   XSPR(31,339,940),  XSPR_MASK, PPC750,   { RT } },
    2780 { "mfupmc3",    XSPR(31,339,941),  XSPR_MASK, PPC750,   { RT } },
    2781 { "mfupmc4",    XSPR(31,339,942),  XSPR_MASK, PPC750,   { RT } },
     3548{ "mfpmr",   X(31,334), X_MASK,         PPCPMR,         { RT, PMR }},
     3549
     3550{ "mfmq",       XSPR(31,339,0),    XSPR_MASK, M601,     { RT } },
     3551{ "mfxer",      XSPR(31,339,1),    XSPR_MASK, COM,      { RT } },
     3552{ "mfrtcu",     XSPR(31,339,4),    XSPR_MASK, COM,      { RT } },
     3553{ "mfrtcl",     XSPR(31,339,5),    XSPR_MASK, COM,      { RT } },
     3554{ "mfdec",      XSPR(31,339,6),    XSPR_MASK, MFDEC1,   { RT } },
     3555{ "mflr",       XSPR(31,339,8),    XSPR_MASK, COM,      { RT } },
     3556{ "mfctr",      XSPR(31,339,9),    XSPR_MASK, COM,      { RT } },
     3557{ "mftid",      XSPR(31,339,17),   XSPR_MASK, POWER,    { RT } },
     3558{ "mfdsisr",    XSPR(31,339,18),   XSPR_MASK, COM,      { RT } },
     3559{ "mfdar",      XSPR(31,339,19),   XSPR_MASK, COM,      { RT } },
     3560{ "mfdec",      XSPR(31,339,22),   XSPR_MASK, MFDEC2,   { RT } },
     3561{ "mfsdr0",     XSPR(31,339,24),   XSPR_MASK, POWER,    { RT } },
     3562{ "mfsdr1",     XSPR(31,339,25),   XSPR_MASK, COM,      { RT } },
     3563{ "mfsrr0",     XSPR(31,339,26),   XSPR_MASK, COM,      { RT } },
     3564{ "mfsrr1",     XSPR(31,339,27),   XSPR_MASK, COM,      { RT } },
     3565{ "mfpid",      XSPR(31,339,48),   XSPR_MASK, BOOKE,    { RT } },
     3566{ "mfcsrr0",    XSPR(31,339,58),   XSPR_MASK, BOOKE,    { RT } },
     3567{ "mfcsrr1",    XSPR(31,339,59),   XSPR_MASK, BOOKE,    { RT } },
     3568{ "mfdear",     XSPR(31,339,61),   XSPR_MASK, BOOKE,    { RT } },
     3569{ "mfesr",      XSPR(31,339,62),   XSPR_MASK, BOOKE,    { RT } },
     3570{ "mfivpr",     XSPR(31,339,63),   XSPR_MASK, BOOKE,    { RT } },
     3571{ "mfcmpa",     XSPR(31,339,144),  XSPR_MASK, PPC860,   { RT } },
     3572{ "mfcmpb",     XSPR(31,339,145),  XSPR_MASK, PPC860,   { RT } },
     3573{ "mfcmpc",     XSPR(31,339,146),  XSPR_MASK, PPC860,   { RT } },
     3574{ "mfcmpd",     XSPR(31,339,147),  XSPR_MASK, PPC860,   { RT } },
     3575{ "mficr",      XSPR(31,339,148),  XSPR_MASK, PPC860,   { RT } },
     3576{ "mfder",      XSPR(31,339,149),  XSPR_MASK, PPC860,   { RT } },
     3577{ "mfcounta",   XSPR(31,339,150),  XSPR_MASK, PPC860,   { RT } },
     3578{ "mfcountb",   XSPR(31,339,151),  XSPR_MASK, PPC860,   { RT } },
     3579{ "mfcmpe",     XSPR(31,339,152),  XSPR_MASK, PPC860,   { RT } },
     3580{ "mfcmpf",     XSPR(31,339,153),  XSPR_MASK, PPC860,   { RT } },
     3581{ "mfcmpg",     XSPR(31,339,154),  XSPR_MASK, PPC860,   { RT } },
     3582{ "mfcmph",     XSPR(31,339,155),  XSPR_MASK, PPC860,   { RT } },
     3583{ "mflctrl1",   XSPR(31,339,156),  XSPR_MASK, PPC860,   { RT } },
     3584{ "mflctrl2",   XSPR(31,339,157),  XSPR_MASK, PPC860,   { RT } },
     3585{ "mfictrl",    XSPR(31,339,158),  XSPR_MASK, PPC860,   { RT } },
     3586{ "mfbar",      XSPR(31,339,159),  XSPR_MASK, PPC860,   { RT } },
     3587{ "mfvrsave",   XSPR(31,339,256),  XSPR_MASK, PPCVEC,   { RT } },
     3588{ "mfusprg0",   XSPR(31,339,256),  XSPR_MASK, BOOKE,    { RT } },
     3589{ "mfsprg4",    XSPR(31,339,260),  XSPR_MASK, PPC405,   { RT } },
     3590{ "mfsprg5",    XSPR(31,339,261),  XSPR_MASK, PPC405,   { RT } },
     3591{ "mfsprg6",    XSPR(31,339,262),  XSPR_MASK, PPC405,   { RT } },
     3592{ "mfsprg7",    XSPR(31,339,263),  XSPR_MASK, PPC405,   { RT } },
     3593{ "mftb",       XSPR(31,339,268),  XSPR_MASK, BOOKE,    { RT } },
     3594{ "mftbl",      XSPR(31,339,268),  XSPR_MASK, BOOKE,    { RT } },
     3595{ "mftbu",      XSPR(31,339,269),  XSPR_MASK, BOOKE,    { RT } },
     3596{ "mfsprg",     XSPR(31,339,272),  XSPRG_MASK, PPC,     { RT, SPRG } },
     3597{ "mfsprg0",    XSPR(31,339,272),  XSPR_MASK, PPC,      { RT } },
     3598{ "mfsprg1",    XSPR(31,339,273),  XSPR_MASK, PPC,      { RT } },
     3599{ "mfsprg2",    XSPR(31,339,274),  XSPR_MASK, PPC,      { RT } },
     3600{ "mfsprg3",    XSPR(31,339,275),  XSPR_MASK, PPC,      { RT } },
     3601{ "mfasr",      XSPR(31,339,280),  XSPR_MASK, PPC64,    { RT } },
     3602{ "mfear",      XSPR(31,339,282),  XSPR_MASK, PPC,      { RT } },
     3603{ "mfpir",      XSPR(31,339,286),  XSPR_MASK, BOOKE,    { RT } },
     3604{ "mfpvr",      XSPR(31,339,287),  XSPR_MASK, PPC,      { RT } },
     3605{ "mfdbsr",     XSPR(31,339,304),  XSPR_MASK, BOOKE,    { RT } },
     3606{ "mfdbcr0",    XSPR(31,339,308),  XSPR_MASK, BOOKE,    { RT } },
     3607{ "mfdbcr1",    XSPR(31,339,309),  XSPR_MASK, BOOKE,    { RT } },
     3608{ "mfdbcr2",    XSPR(31,339,310),  XSPR_MASK, BOOKE,    { RT } },
     3609{ "mfiac1",     XSPR(31,339,312),  XSPR_MASK, BOOKE,    { RT } },
     3610{ "mfiac2",     XSPR(31,339,313),  XSPR_MASK, BOOKE,    { RT } },
     3611{ "mfiac3",     XSPR(31,339,314),  XSPR_MASK, BOOKE,    { RT } },
     3612{ "mfiac4",     XSPR(31,339,315),  XSPR_MASK, BOOKE,    { RT } },
     3613{ "mfdac1",     XSPR(31,339,316),  XSPR_MASK, BOOKE,    { RT } },
     3614{ "mfdac2",     XSPR(31,339,317),  XSPR_MASK, BOOKE,    { RT } },
     3615{ "mfdvc1",     XSPR(31,339,318),  XSPR_MASK, BOOKE,    { RT } },
     3616{ "mfdvc2",     XSPR(31,339,319),  XSPR_MASK, BOOKE,    { RT } },
     3617{ "mftsr",      XSPR(31,339,336),  XSPR_MASK, BOOKE,    { RT } },
     3618{ "mftcr",      XSPR(31,339,340),  XSPR_MASK, BOOKE,    { RT } },
     3619{ "mfivor0",    XSPR(31,339,400),  XSPR_MASK, BOOKE,    { RT } },
     3620{ "mfivor1",    XSPR(31,339,401),  XSPR_MASK, BOOKE,    { RT } },
     3621{ "mfivor2",    XSPR(31,339,402),  XSPR_MASK, BOOKE,    { RT } },
     3622{ "mfivor3",    XSPR(31,339,403),  XSPR_MASK, BOOKE,    { RT } },
     3623{ "mfivor4",    XSPR(31,339,404),  XSPR_MASK, BOOKE,    { RT } },
     3624{ "mfivor5",    XSPR(31,339,405),  XSPR_MASK, BOOKE,    { RT } },
     3625{ "mfivor6",    XSPR(31,339,406),  XSPR_MASK, BOOKE,    { RT } },
     3626{ "mfivor7",    XSPR(31,339,407),  XSPR_MASK, BOOKE,    { RT } },
     3627{ "mfivor8",    XSPR(31,339,408),  XSPR_MASK, BOOKE,    { RT } },
     3628{ "mfivor9",    XSPR(31,339,409),  XSPR_MASK, BOOKE,    { RT } },
     3629{ "mfivor10",   XSPR(31,339,410),  XSPR_MASK, BOOKE,    { RT } },
     3630{ "mfivor11",   XSPR(31,339,411),  XSPR_MASK, BOOKE,    { RT } },
     3631{ "mfivor12",   XSPR(31,339,412),  XSPR_MASK, BOOKE,    { RT } },
     3632{ "mfivor13",   XSPR(31,339,413),  XSPR_MASK, BOOKE,    { RT } },
     3633{ "mfivor14",   XSPR(31,339,414),  XSPR_MASK, BOOKE,    { RT } },
     3634{ "mfivor15",   XSPR(31,339,415),  XSPR_MASK, BOOKE,    { RT } },
     3635{ "mfspefscr",  XSPR(31,339,512),  XSPR_MASK, PPCSPE,   { RT } },
     3636{ "mfbbear",    XSPR(31,339,513),  XSPR_MASK, PPCBRLK,  { RT } },
     3637{ "mfbbtar",    XSPR(31,339,514),  XSPR_MASK, PPCBRLK,  { RT } },
     3638{ "mfibatu",    XSPR(31,339,528),  XSPRBAT_MASK, PPC,   { RT, SPRBAT } },
     3639{ "mfibatl",    XSPR(31,339,529),  XSPRBAT_MASK, PPC,   { RT, SPRBAT } },
     3640{ "mfdbatu",    XSPR(31,339,536),  XSPRBAT_MASK, PPC,   { RT, SPRBAT } },
     3641{ "mfdbatl",    XSPR(31,339,537),  XSPRBAT_MASK, PPC,   { RT, SPRBAT } },
     3642{ "mfic_cst",   XSPR(31,339,560),  XSPR_MASK, PPC860,   { RT } },
     3643{ "mfic_adr",   XSPR(31,339,561),  XSPR_MASK, PPC860,   { RT } },
     3644{ "mfic_dat",   XSPR(31,339,562),  XSPR_MASK, PPC860,   { RT } },
     3645{ "mfdc_cst",   XSPR(31,339,568),  XSPR_MASK, PPC860,   { RT } },
     3646{ "mfdc_adr",   XSPR(31,339,569),  XSPR_MASK, PPC860,   { RT } },
     3647{ "mfdc_dat",   XSPR(31,339,570),  XSPR_MASK, PPC860,   { RT } },
     3648{ "mfmcsrr0",   XSPR(31,339,570),  XSPR_MASK, PPCRFMCI, { RT } },
     3649{ "mfmcsrr1",   XSPR(31,339,571),  XSPR_MASK, PPCRFMCI, { RT } },
     3650{ "mfmcsr",     XSPR(31,339,572),  XSPR_MASK, PPCRFMCI, { RT } },
     3651{ "mfdpdr",     XSPR(31,339,630),  XSPR_MASK, PPC860,   { RT } },
     3652{ "mfdpir",     XSPR(31,339,631),  XSPR_MASK, PPC860,   { RT } },
     3653{ "mfimmr",     XSPR(31,339,638),  XSPR_MASK, PPC860,   { RT } },
     3654{ "mfmi_ctr",   XSPR(31,339,784),  XSPR_MASK, PPC860,   { RT } },
     3655{ "mfmi_ap",    XSPR(31,339,786),  XSPR_MASK, PPC860,   { RT } },
     3656{ "mfmi_epn",   XSPR(31,339,787),  XSPR_MASK, PPC860,   { RT } },
     3657{ "mfmi_twc",   XSPR(31,339,789),  XSPR_MASK, PPC860,   { RT } },
     3658{ "mfmi_rpn",   XSPR(31,339,790),  XSPR_MASK, PPC860,   { RT } },
     3659{ "mfmd_ctr",   XSPR(31,339,792),  XSPR_MASK, PPC860,   { RT } },
     3660{ "mfm_casid",  XSPR(31,339,793),  XSPR_MASK, PPC860,   { RT } },
     3661{ "mfmd_ap",    XSPR(31,339,794),  XSPR_MASK, PPC860,   { RT } },
     3662{ "mfmd_epn",   XSPR(31,339,795),  XSPR_MASK, PPC860,   { RT } },
     3663{ "mfmd_twb",   XSPR(31,339,796),  XSPR_MASK, PPC860,   { RT } },
     3664{ "mfmd_twc",   XSPR(31,339,797),  XSPR_MASK, PPC860,   { RT } },
     3665{ "mfmd_rpn",   XSPR(31,339,798),  XSPR_MASK, PPC860,   { RT } },
     3666{ "mfm_tw",     XSPR(31,339,799),  XSPR_MASK, PPC860,   { RT } },
     3667{ "mfmi_dbcam", XSPR(31,339,816),  XSPR_MASK, PPC860,   { RT } },
     3668{ "mfmi_dbram0",XSPR(31,339,817),  XSPR_MASK, PPC860,   { RT } },
     3669{ "mfmi_dbram1",XSPR(31,339,818),  XSPR_MASK, PPC860,   { RT } },
     3670{ "mfmd_dbcam", XSPR(31,339,824),  XSPR_MASK, PPC860,   { RT } },
     3671{ "mfmd_dbram0",XSPR(31,339,825),  XSPR_MASK, PPC860,   { RT } },
     3672{ "mfmd_dbram1",XSPR(31,339,826),  XSPR_MASK, PPC860,   { RT } },
     3673{ "mfummcr0",   XSPR(31,339,936),  XSPR_MASK, PPC750,   { RT } },
     3674{ "mfupmc1",    XSPR(31,339,937),  XSPR_MASK, PPC750,   { RT } },
     3675{ "mfupmc2",    XSPR(31,339,938),  XSPR_MASK, PPC750,   { RT } },
     3676{ "mfusia",     XSPR(31,339,939),  XSPR_MASK, PPC750,   { RT } },
     3677{ "mfummcr1",   XSPR(31,339,940),  XSPR_MASK, PPC750,   { RT } },
     3678{ "mfupmc3",    XSPR(31,339,941),  XSPR_MASK, PPC750,   { RT } },
     3679{ "mfupmc4",    XSPR(31,339,942),  XSPR_MASK, PPC750,   { RT } },
     3680{ "mfzpr",      XSPR(31,339,944),  XSPR_MASK, PPC403,   { RT } },
     3681{ "mfpid",      XSPR(31,339,945),  XSPR_MASK, PPC403,   { RT } },
     3682{ "mfccr0",     XSPR(31,339,947),  XSPR_MASK, PPC405,   { RT } },
    27823683{ "mfiac3",     XSPR(31,339,948),  XSPR_MASK, PPC405,   { RT } },
    27833684{ "mfiac4",     XSPR(31,339,949),  XSPR_MASK, PPC405,   { RT } },
     
    27963697{ "mfdbcr1",    XSPR(31,339,957),  XSPR_MASK, PPC405,   { RT } },
    27973698{ "mfpmc4",     XSPR(31,339,958),  XSPR_MASK, PPC750,   { RT } },
    2798 { "mfesr",   XSPR(31,339,980), XSPR_MASK, PPC403,       { RT } },
    2799 { "mfdear",  XSPR(31,339,981), XSPR_MASK, PPC403,       { RT } },
    2800 { "mfevpr",  XSPR(31,339,982), XSPR_MASK, PPC403,       { RT } },
    2801 { "mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403,       { RT } },
    2802 { "mftsr",   XSPR(31,339,984), XSPR_MASK, PPC403,       { RT } },
    2803 { "mftcr",   XSPR(31,339,986), XSPR_MASK, PPC403,       { RT } },
    2804 { "mfpit",   XSPR(31,339,987), XSPR_MASK, PPC403,       { RT } },
    2805 { "mftbhi",  XSPR(31,339,988), XSPR_MASK, PPC403,       { RT } },
    2806 { "mftblo",  XSPR(31,339,989), XSPR_MASK, PPC403,       { RT } },
    2807 { "mfsrr2",  XSPR(31,339,990), XSPR_MASK, PPC403,       { RT } },
    2808 { "mfsrr3",  XSPR(31,339,991), XSPR_MASK, PPC403,       { RT } },
    2809 { "mfdbsr",  XSPR(31,339,1008), XSPR_MASK, PPC403,      { RT } },
    2810 { "mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405,      { RT } },
    2811 { "mfiac1",  XSPR(31,339,1012), XSPR_MASK, PPC403,      { RT } },
    2812 { "mfiac2",  XSPR(31,339,1013), XSPR_MASK, PPC403,      { RT } },
    2813 { "mfdac1",  XSPR(31,339,1014), XSPR_MASK, PPC403,      { RT } },
    2814 { "mfdac2",  XSPR(31,339,1015), XSPR_MASK, PPC403,      { RT } },
    2815 { "mfdccr",  XSPR(31,339,1018), XSPR_MASK, PPC403,      { RT } },
    2816 { "mficcr",  XSPR(31,339,1019), XSPR_MASK, PPC403,      { RT } },
    2817 { "mfpbl1",  XSPR(31,339,1020), XSPR_MASK, PPC403,      { RT } },
    2818 { "mfpbu1",  XSPR(31,339,1021), XSPR_MASK, PPC403,      { RT } },
    2819 { "mfpbl2",  XSPR(31,339,1022), XSPR_MASK, PPC403,      { RT } },
    2820 { "mfpbu2",  XSPR(31,339,1023), XSPR_MASK, PPC403,      { RT } },
    2821 { "mfl2cr",     XSPR(31,339,1017), XSPR_MASK, PPC750,   { RT } },
    2822 { "mfictc",     XSPR(31,339,1019), XSPR_MASK, PPC750,   { RT } },
    2823 { "mfthrm1",    XSPR(31,339,1020), XSPR_MASK, PPC750,   { RT } },
    2824 { "mfthrm2",    XSPR(31,339,1021), XSPR_MASK, PPC750,   { RT } },
    2825 { "mfthrm3",    XSPR(31,339,1022), XSPR_MASK, PPC750,   { RT } },
    2826 { "mfspr",   X(31,339), X_MASK,         COM,            { RT, SPR } },
     3699{ "mficdbdr",   XSPR(31,339,979),  XSPR_MASK, PPC403,   { RT } },
     3700{ "mfesr",      XSPR(31,339,980),  XSPR_MASK, PPC403,   { RT } },
     3701{ "mfdear",     XSPR(31,339,981),  XSPR_MASK, PPC403,   { RT } },
     3702{ "mfevpr",     XSPR(31,339,982),  XSPR_MASK, PPC403,   { RT } },
     3703{ "mfcdbcr",    XSPR(31,339,983),  XSPR_MASK, PPC403,   { RT } },
     3704{ "mftsr",      XSPR(31,339,984),  XSPR_MASK, PPC403,   { RT } },
     3705{ "mftcr",      XSPR(31,339,986),  XSPR_MASK, PPC403,   { RT } },
     3706{ "mfpit",      XSPR(31,339,987),  XSPR_MASK, PPC403,   { RT } },
     3707{ "mftbhi",     XSPR(31,339,988),  XSPR_MASK, PPC403,   { RT } },
     3708{ "mftblo",     XSPR(31,339,989),  XSPR_MASK, PPC403,   { RT } },
     3709{ "mfsrr2",     XSPR(31,339,990),  XSPR_MASK, PPC403,   { RT } },
     3710{ "mfsrr3",     XSPR(31,339,991),  XSPR_MASK, PPC403,   { RT } },
     3711{ "mfdbsr",     XSPR(31,339,1008), XSPR_MASK, PPC403,   { RT } },
     3712{ "mfdbcr0",    XSPR(31,339,1010), XSPR_MASK, PPC405,   { RT } },
     3713{ "mfiac1",     XSPR(31,339,1012), XSPR_MASK, PPC403,   { RT } },
     3714{ "mfiac2",     XSPR(31,339,1013), XSPR_MASK, PPC403,   { RT } },
     3715{ "mfdac1",     XSPR(31,339,1014), XSPR_MASK, PPC403,   { RT } },
     3716{ "mfdac2",     XSPR(31,339,1015), XSPR_MASK, PPC403,   { RT } },
     3717{ "mfl2cr",     XSPR(31,339,1017), XSPR_MASK, PPC750,   { RT } },
     3718{ "mfdccr",     XSPR(31,339,1018), XSPR_MASK, PPC403,   { RT } },
     3719{ "mficcr",     XSPR(31,339,1019), XSPR_MASK, PPC403,   { RT } },
     3720{ "mfictc",     XSPR(31,339,1019), XSPR_MASK, PPC750,   { RT } },
     3721{ "mfpbl1",     XSPR(31,339,1020), XSPR_MASK, PPC403,   { RT } },
     3722{ "mfthrm1",    XSPR(31,339,1020), XSPR_MASK, PPC750,   { RT } },
     3723{ "mfpbu1",     XSPR(31,339,1021), XSPR_MASK, PPC403,   { RT } },
     3724{ "mfthrm2",    XSPR(31,339,1021), XSPR_MASK, PPC750,   { RT } },
     3725{ "mfpbl2",     XSPR(31,339,1022), XSPR_MASK, PPC403,   { RT } },
     3726{ "mfthrm3",    XSPR(31,339,1022), XSPR_MASK, PPC750,   { RT } },
     3727{ "mfpbu2",     XSPR(31,339,1023), XSPR_MASK, PPC403,   { RT } },
     3728{ "mfspr",      X(31,339),         X_MASK,    COM,      { RT, SPR } },
    28273729
    28283730{ "lwax",    X(31,341), X_MASK,         PPC64,          { RT, RA, RB } },
    28293731
     3732{ "dst",     XDSS(31,342,0), XDSS_MASK, PPCVEC,         { RA, RB, STRM } },
     3733{ "dstt",    XDSS(31,342,1), XDSS_MASK, PPCVEC,         { RA, RB, STRM } },
     3734
    28303735{ "lhax",    X(31,343), X_MASK,         COM,            { RT, RA, RB } },
     3736
     3737{ "lhaxe",   X(31,351), X_MASK,         BOOKE64,        { RT, RA, RB } },
     3738
     3739{ "dstst",   XDSS(31,374,0), XDSS_MASK, PPCVEC,         { RA, RB, STRM } },
     3740{ "dststt",  XDSS(31,374,1), XDSS_MASK, PPCVEC,         { RA, RB, STRM } },
    28313741
    28323742{ "dccci",   X(31,454), XRT_MASK,       PPC403,         { RA, RB } },
     
    28443754{ "tlbia",   X(31,370), 0xffffffff,     PPC,            { 0 } },
    28453755
    2846 { "mftbl",   XSPR(31,371,268), XSPR_MASK, PPC,          { RT } },
    2847 { "mftbu",   XSPR(31,371,269), XSPR_MASK, PPC,          { RT } },
    2848 { "mftb",    X(31,371), X_MASK,         PPC,            { RT, TBR } },
     3756{ "mftbl",   XSPR(31,371,268), XSPR_MASK, CLASSIC,      { RT } },
     3757{ "mftbu",   XSPR(31,371,269), XSPR_MASK, CLASSIC,      { RT } },
     3758{ "mftb",    X(31,371), X_MASK,         CLASSIC,        { RT, TBR } },
    28493759
    28503760{ "lwaux",   X(31,373), X_MASK,         PPC64,          { RT, RAL, RB } },
    28513761
    28523762{ "lhaux",   X(31,375), X_MASK,         COM,            { RT, RAL, RB } },
     3763
     3764{ "lhauxe",  X(31,383), X_MASK,         BOOKE64,        { RT, RAL, RB } },
     3765
     3766{ "mtdcrx",  X(31,387), X_MASK,         BOOKE,          { RA, RS } },
     3767
     3768{ "dcblc",   X(31,390), X_MASK,         PPCCHLK,        { CT, RA, RB }},
     3769
     3770{ "subfe64", XO(31,392,0,0), XO_MASK,   BOOKE64,        { RT, RA, RB } },
     3771{ "subfe64o",XO(31,392,1,0), XO_MASK,   BOOKE64,        { RT, RA, RB } },
     3772
     3773{ "adde64",  XO(31,394,0,0), XO_MASK,   BOOKE64,        { RT, RA, RB } },
     3774{ "adde64o", XO(31,394,1,0), XO_MASK,   BOOKE64,        { RT, RA, RB } },
     3775
     3776{ "dcblce",  X(31,398), X_MASK,         PPCCHLK64,      { CT, RA, RB }},
     3777
     3778{ "slbmte",  X(31,402), XRA_MASK,       PPC64,          { RS, RB } },
    28533779
    28543780{ "sthx",    X(31,407), X_MASK,         COM,            { RS, RA, RB } },
     
    28683794{ "sradi.",  XS(31,413,1), XS_MASK,     PPC64,          { RA, RS, SH6 } },
    28693795
     3796{ "sthxe",   X(31,415), X_MASK,         BOOKE64,        { RS, RA, RB } },
     3797
    28703798{ "slbie",   X(31,434), XRTRA_MASK,     PPC64,          { RB } },
    28713799
     
    28733801
    28743802{ "sthux",   X(31,439), X_MASK,         COM,            { RS, RAS, RB } },
     3803
     3804{ "sthuxe",  X(31,447), X_MASK,         BOOKE64,        { RS, RAS, RB } },
    28753805
    28763806{ "mr",      XRC(31,444,0), X_MASK,     COM,            { RA, RS, RBS } },
     
    28793809{ "or.",     XRC(31,444,1), X_MASK,     COM,            { RA, RS, RB } },
    28803810
    2881 { "mtexisr", XSPR(31,451,64), XSPR_MASK, PPC403,        { RT } },
    2882 { "mtexier", XSPR(31,451,66), XSPR_MASK, PPC403,        { RT } },
    2883 { "mtbr0",   XSPR(31,451,128), XSPR_MASK, PPC403,       { RT } },
    2884 { "mtbr1",   XSPR(31,451,129), XSPR_MASK, PPC403,       { RT } },
    2885 { "mtbr2",   XSPR(31,451,130), XSPR_MASK, PPC403,       { RT } },
    2886 { "mtbr3",   XSPR(31,451,131), XSPR_MASK, PPC403,       { RT } },
    2887 { "mtbr4",   XSPR(31,451,132), XSPR_MASK, PPC403,       { RT } },
    2888 { "mtbr5",   XSPR(31,451,133), XSPR_MASK, PPC403,       { RT } },
    2889 { "mtbr6",   XSPR(31,451,134), XSPR_MASK, PPC403,       { RT } },
    2890 { "mtbr7",   XSPR(31,451,135), XSPR_MASK, PPC403,       { RT } },
    2891 { "mtbear",  XSPR(31,451,144), XSPR_MASK, PPC403,       { RT } },
    2892 { "mtbesr",  XSPR(31,451,145), XSPR_MASK, PPC403,       { RT } },
    2893 { "mtiocr",  XSPR(31,451,160), XSPR_MASK, PPC403,       { RT } },
     3811{ "mtexisr",  XSPR(31,451,64), XSPR_MASK, PPC403,      { RT } },
     3812{ "mtexier",  XSPR(31,451,66), XSPR_MASK, PPC403,      { RT } },
     3813{ "mtbr0",    XSPR(31,451,128), XSPR_MASK, PPC403,      { RT } },
     3814{ "mtbr1",    XSPR(31,451,129), XSPR_MASK, PPC403,      { RT } },
     3815{ "mtbr2",    XSPR(31,451,130), XSPR_MASK, PPC403,      { RT } },
     3816{ "mtbr3",    XSPR(31,451,131), XSPR_MASK, PPC403,      { RT } },
     3817{ "mtbr4",    XSPR(31,451,132), XSPR_MASK, PPC403,      { RT } },
     3818{ "mtbr5",    XSPR(31,451,133), XSPR_MASK, PPC403,      { RT } },
     3819{ "mtbr6",    XSPR(31,451,134), XSPR_MASK, PPC403,      { RT } },
     3820{ "mtbr7",    XSPR(31,451,135), XSPR_MASK, PPC403,      { RT } },
     3821{ "mtbear",   XSPR(31,451,144), XSPR_MASK, PPC403,      { RT } },
     3822{ "mtbesr",   XSPR(31,451,145), XSPR_MASK, PPC403,      { RT } },
     3823{ "mtiocr",   XSPR(31,451,160), XSPR_MASK, PPC403,      { RT } },
    28943824{ "mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403,      { RT } },
    28953825{ "mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403,      { RT } },
     
    29123842{ "mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403,      { RT } },
    29133843{ "mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403,      { RT } },
    2914 { "mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403,       { RT } },
    2915 { "mtdcr",   X(31,451), X_MASK,         PPC403,         { SPR, RS } },
     3844{ "mtdmasr",  XSPR(31,451,224), XSPR_MASK, PPC403,      { RT } },
     3845{ "mtdcr",    X(31,451),        X_MASK,         PPC403,         { SPR, RS } },
     3846{ "mtdcr",    X(31,451),        X_MASK,         BOOKE,          { SPR, RS } },
     3847
     3848{ "subfze64",XO(31,456,0,0), XORB_MASK, BOOKE64,        { RT, RA } },
     3849{ "subfze64o",XO(31,456,1,0), XORB_MASK, BOOKE64,       { RT, RA } },
    29163850
    29173851{ "divdu",   XO(31,457,0,0), XO_MASK,   PPC64,          { RT, RA, RB } },
     
    29203854{ "divduo.", XO(31,457,1,1), XO_MASK,   PPC64,          { RT, RA, RB } },
    29213855
     3856{ "addze64", XO(31,458,0,0), XORB_MASK, BOOKE64,        { RT, RA } },
     3857{ "addze64o",XO(31,458,1,0), XORB_MASK, BOOKE64,        { RT, RA } },
     3858
    29223859{ "divwu",   XO(31,459,0,0), XO_MASK,   PPC,            { RT, RA, RB } },
    29233860{ "divwu.",  XO(31,459,0,1), XO_MASK,   PPC,            { RT, RA, RB } },
     
    29253862{ "divwuo.", XO(31,459,1,1), XO_MASK,   PPC,            { RT, RA, RB } },
    29263863
    2927 { "mtmq",    XSPR(31,467,0),   XSPR_MASK,    M601,      { RS } },
    2928 { "mtxer",   XSPR(31,467,1),   XSPR_MASK,    COM,       { RS } },
    2929 { "mtlr",    XSPR(31,467,8),   XSPR_MASK,    COM,       { RS } },
    2930 { "mtctr",   XSPR(31,467,9),   XSPR_MASK,    COM,       { RS } },
    2931 { "mttid",   XSPR(31,467,17),  XSPR_MASK,    POWER,     { RS } },
    2932 { "mtdsisr", XSPR(31,467,18),  XSPR_MASK,    COM,       { RS } },
    2933 { "mtdar",   XSPR(31,467,19),  XSPR_MASK,    COM,       { RS } },
    2934 { "mtrtcu",  XSPR(31,467,20),  XSPR_MASK,    COM,       { RS } },
    2935 { "mtrtcl",  XSPR(31,467,21),  XSPR_MASK,    COM,       { RS } },
    2936 { "mtdec",   XSPR(31,467,22),  XSPR_MASK,    COM,       { RS } },
    2937 { "mtsdr0",  XSPR(31,467,24),  XSPR_MASK,    POWER,     { RS } },
    2938 { "mtsdr1",  XSPR(31,467,25),  XSPR_MASK,    COM,       { RS } },
    2939 { "mtsrr0",  XSPR(31,467,26),  XSPR_MASK,    COM,       { RS } },
    2940 { "mtsrr1",  XSPR(31,467,27),  XSPR_MASK,    COM,       { RS } },
    2941 { "mtcmpa",   XSPR(31,467,144), XSPR_MASK, PPC860,      { RT } },
    2942 { "mtcmpb",   XSPR(31,467,145), XSPR_MASK, PPC860,      { RT } },
    2943 { "mtcmpc",   XSPR(31,467,146), XSPR_MASK, PPC860,      { RT } },
    2944 { "mtcmpd",   XSPR(31,467,147), XSPR_MASK, PPC860,      { RT } },
    2945 { "mticr",    XSPR(31,467,148), XSPR_MASK, PPC860,      { RT } },
    2946 { "mtder",    XSPR(31,467,149), XSPR_MASK, PPC860,      { RT } },
    2947 { "mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860,      { RT } },
    2948 { "mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860,      { RT } },
    2949 { "mtcmpe",   XSPR(31,467,152), XSPR_MASK, PPC860,      { RT } },
    2950 { "mtcmpf",   XSPR(31,467,153), XSPR_MASK, PPC860,      { RT } },
    2951 { "mtcmpg",   XSPR(31,467,154), XSPR_MASK, PPC860,      { RT } },
    2952 { "mtcmph",   XSPR(31,467,155), XSPR_MASK, PPC860,      { RT } },
    2953 { "mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860,      { RT } },
    2954 { "mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860,      { RT } },
    2955 { "mtictrl",  XSPR(31,467,158), XSPR_MASK, PPC860,      { RT } },
    2956 { "mtbar",    XSPR(31,467,159), XSPR_MASK, PPC860,      { RT } },
    2957 { "mtsprg",  XSPR(31,467,272), XSPRG_MASK,   PPC,       { SPRG, RS } },
    2958 { "mtsprg0", XSPR(31,467,272), XSPR_MASK,    PPC,       { RT } },
    2959 { "mtsprg1", XSPR(31,467,273), XSPR_MASK,    PPC,       { RT } },
    2960 { "mtsprg2", XSPR(31,467,274), XSPR_MASK,    PPC,       { RT } },
    2961 { "mtsprg3", XSPR(31,467,275), XSPR_MASK,    PPC,       { RT } },
    2962 { "mtsprg4", XSPR(31,467,276), XSPR_MASK,    PPC405,    { RT } },
    2963 { "mtsprg5", XSPR(31,467,277), XSPR_MASK,    PPC405,    { RT } },
    2964 { "mtsprg6", XSPR(31,467,278), XSPR_MASK,    PPC405,    { RT } },
    2965 { "mtsprg7", XSPR(31,467,279), XSPR_MASK,    PPC405,    { RT } },
    2966 { "mtasr",   XSPR(31,467,280), XSPR_MASK,    PPC64,     { RS } },
    2967 { "mtear",   XSPR(31,467,282), XSPR_MASK,    PPC,       { RS } },
    2968 { "mttbl",   XSPR(31,467,284), XSPR_MASK,    PPC,       { RS } },
    2969 { "mttbu",   XSPR(31,467,285), XSPR_MASK,    PPC,       { RS } },
    2970 { "mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC,       { SPRBAT, RS } },
    2971 { "mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC,       { SPRBAT, RS } },
    2972 { "mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC,       { SPRBAT, RS } },
    2973 { "mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC,       { SPRBAT, RS } },
    2974 { "mtzpr",   XSPR(31,467,944), XSPR_MASK, PPC403,       { RT } },
    2975 { "mtpid",   XSPR(31,467,945), XSPR_MASK, PPC403,       { RT } },
    2976 { "mtccr0",  XSPR(31,467,947), XSPR_MASK, PPC405,       { RT } },
    2977 { "mtiac3",  XSPR(31,467,948), XSPR_MASK, PPC405,       { RT } },
    2978 { "mtiac4",  XSPR(31,467,949), XSPR_MASK, PPC405,       { RT } },
    2979 { "mtdvc1",  XSPR(31,467,950), XSPR_MASK, PPC405,       { RT } },
    2980 { "mtdvc2",  XSPR(31,467,951), XSPR_MASK, PPC405,       { RT } },
    2981 { "mtsgr",   XSPR(31,467,953), XSPR_MASK, PPC403,       { RT } },
    2982 { "mtdcwr",  XSPR(31,467,954), XSPR_MASK, PPC403,       { RT } },
    2983 { "mtsler",  XSPR(31,467,955), XSPR_MASK, PPC405,       { RT } },
    2984 { "mtsu0r",  XSPR(31,467,956), XSPR_MASK, PPC405,       { RT } },
    2985 { "mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405,       { RT } },
    2986 { "mticdbdr",XSPR(31,467,979), XSPR_MASK, PPC403,       { RT } },
    2987 { "mtesr",   XSPR(31,467,980), XSPR_MASK, PPC403,       { RT } },
    2988 { "mtdear",  XSPR(31,467,981), XSPR_MASK, PPC403,       { RT } },
    2989 { "mtevpr",  XSPR(31,467,982), XSPR_MASK, PPC403,       { RT } },
    2990 { "mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403,       { RT } },
    2991 { "mttsr",   XSPR(31,467,984), XSPR_MASK, PPC403,       { RT } },
    2992 { "mttcr",   XSPR(31,467,986), XSPR_MASK, PPC403,       { RT } },
    2993 { "mtpit",   XSPR(31,467,987), XSPR_MASK, PPC403,       { RT } },
    2994 { "mttbhi",  XSPR(31,467,988), XSPR_MASK, PPC403,       { RT } },
    2995 { "mttblo",  XSPR(31,467,989), XSPR_MASK, PPC403,       { RT } },
    2996 { "mtsrr2",  XSPR(31,467,990), XSPR_MASK, PPC403,       { RT } },
    2997 { "mtsrr3",  XSPR(31,467,991), XSPR_MASK, PPC403,       { RT } },
    2998 { "mtdbsr",  XSPR(31,467,1008), XSPR_MASK, PPC403,      { RT } },
    2999 { "mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405,      { RT } },
    3000 { "mtiac1",  XSPR(31,467,1012), XSPR_MASK, PPC403,      { RT } },
    3001 { "mtiac2",  XSPR(31,467,1013), XSPR_MASK, PPC403,      { RT } },
    3002 { "mtdac1",  XSPR(31,467,1014), XSPR_MASK, PPC403,      { RT } },
    3003 { "mtdac2",  XSPR(31,467,1015), XSPR_MASK, PPC403,      { RT } },
    3004 { "mtdccr",  XSPR(31,467,1018), XSPR_MASK, PPC403,      { RT } },
    3005 { "mticcr",  XSPR(31,467,1019), XSPR_MASK, PPC403,      { RT } },
    3006 { "mtpbl1",  XSPR(31,467,1020), XSPR_MASK, PPC403,      { RT } },
    3007 { "mtpbu1",  XSPR(31,467,1021), XSPR_MASK, PPC403,      { RT } },
    3008 { "mtpbl2",  XSPR(31,467,1022), XSPR_MASK, PPC403,      { RT } },
    3009 { "mtpbu2",  XSPR(31,467,1023), XSPR_MASK, PPC403,      { RT } },
    3010 { "mtummcr0",   XSPR(31,467,936),  XSPR_MASK, PPC750,   { RT } },
    3011 { "mtupmc1",    XSPR(31,467,937),  XSPR_MASK, PPC750,   { RT } },
    3012 { "mtupmc2",    XSPR(31,467,938),  XSPR_MASK, PPC750,   { RT } },
    3013 { "mtusia",     XSPR(31,467,939),  XSPR_MASK, PPC750,   { RT } },
    3014 { "mtummcr1",   XSPR(31,467,940),  XSPR_MASK, PPC750,   { RT } },
    3015 { "mtupmc3",    XSPR(31,467,941),  XSPR_MASK, PPC750,   { RT } },
    3016 { "mtupmc4",    XSPR(31,467,942),  XSPR_MASK, PPC750,   { RT } },
    3017 { "mtmmcr0",    XSPR(31,467,952),  XSPR_MASK, PPC750,   { RT } },
    3018 { "mtpmc1",     XSPR(31,467,953),  XSPR_MASK, PPC750,   { RT } },
    3019 { "mtpmc2",     XSPR(31,467,954),  XSPR_MASK, PPC750,   { RT } },
    3020 { "mtsia",      XSPR(31,467,955),  XSPR_MASK, PPC750,   { RT } },
    3021 { "mtmmcr1",    XSPR(31,467,956),  XSPR_MASK, PPC750,   { RT } },
    3022 { "mtpmc3",     XSPR(31,467,957),  XSPR_MASK, PPC750,   { RT } },
    3023 { "mtpmc4",     XSPR(31,467,958),  XSPR_MASK, PPC750,   { RT } },
    3024 { "mtl2cr",     XSPR(31,467,1017), XSPR_MASK, PPC750,   { RT } },
    3025 { "mtictc",     XSPR(31,467,1019), XSPR_MASK, PPC750,   { RT } },
    3026 { "mtthrm1",    XSPR(31,467,1020), XSPR_MASK, PPC750,   { RT } },
    3027 { "mtthrm2",    XSPR(31,467,1021), XSPR_MASK, PPC750,   { RT } },
    3028 { "mtthrm3",    XSPR(31,467,1022), XSPR_MASK, PPC750,   { RT } },
    3029 { "mtspr",   X(31,467),        X_MASK,       COM,       { SPR, RS } },
     3864{ "mtmq",      XSPR(31,467,0),    XSPR_MASK, M601,      { RS } },
     3865{ "mtxer",     XSPR(31,467,1),    XSPR_MASK, COM,       { RS } },
     3866{ "mtlr",      XSPR(31,467,8),    XSPR_MASK, COM,       { RS } },
     3867{ "mtctr",     XSPR(31,467,9),    XSPR_MASK, COM,       { RS } },
     3868{ "mttid",     XSPR(31,467,17),   XSPR_MASK, POWER,     { RS } },
     3869{ "mtdsisr",   XSPR(31,467,18),   XSPR_MASK, COM,       { RS } },
     3870{ "mtdar",     XSPR(31,467,19),   XSPR_MASK, COM,       { RS } },
     3871{ "mtrtcu",    XSPR(31,467,20),   XSPR_MASK, COM,       { RS } },
     3872{ "mtrtcl",    XSPR(31,467,21),   XSPR_MASK, COM,       { RS } },
     3873{ "mtdec",     XSPR(31,467,22),   XSPR_MASK, COM,       { RS } },
     3874{ "mtsdr0",    XSPR(31,467,24),   XSPR_MASK, POWER,     { RS } },
     3875{ "mtsdr1",    XSPR(31,467,25),   XSPR_MASK, COM,       { RS } },
     3876{ "mtsrr0",    XSPR(31,467,26),   XSPR_MASK, COM,       { RS } },
     3877{ "mtsrr1",    XSPR(31,467,27),   XSPR_MASK, COM,       { RS } },
     3878{ "mtpid",     XSPR(31,467,48),   XSPR_MASK, BOOKE,     { RS } },
     3879{ "mtdecar",   XSPR(31,467,54),   XSPR_MASK, BOOKE,     { RS } },
     3880{ "mtcsrr0",   XSPR(31,467,58),   XSPR_MASK, BOOKE,     { RS } },
     3881{ "mtcsrr1",   XSPR(31,467,59),   XSPR_MASK, BOOKE,     { RS } },
     3882{ "mtdear",    XSPR(31,467,61),   XSPR_MASK, BOOKE,     { RS } },
     3883{ "mtesr",     XSPR(31,467,62),   XSPR_MASK, BOOKE,     { RS } },
     3884{ "mtivpr",    XSPR(31,467,63),   XSPR_MASK, BOOKE,     { RS } },
     3885{ "mtcmpa",    XSPR(31,467,144),  XSPR_MASK, PPC860,    { RT } },
     3886{ "mtcmpb",    XSPR(31,467,145),  XSPR_MASK, PPC860,    { RT } },
     3887{ "mtcmpc",    XSPR(31,467,146),  XSPR_MASK, PPC860,    { RT } },
     3888{ "mtcmpd",    XSPR(31,467,147),  XSPR_MASK, PPC860,    { RT } },
     3889{ "mticr",     XSPR(31,467,148),  XSPR_MASK, PPC860,    { RT } },
     3890{ "mtder",     XSPR(31,467,149),  XSPR_MASK, PPC860,    { RT } },
     3891{ "mtcounta",  XSPR(31,467,150),  XSPR_MASK, PPC860,    { RT } },
     3892{ "mtcountb",  XSPR(31,467,151),  XSPR_MASK, PPC860,    { RT } },
     3893{ "mtcmpe",    XSPR(31,467,152),  XSPR_MASK, PPC860,    { RT } },
     3894{ "mtcmpf",    XSPR(31,467,153),  XSPR_MASK, PPC860,    { RT } },
     3895{ "mtcmpg",    XSPR(31,467,154),  XSPR_MASK, PPC860,    { RT } },
     3896{ "mtcmph",    XSPR(31,467,155),  XSPR_MASK, PPC860,    { RT } },
     3897{ "mtlctrl1",  XSPR(31,467,156),  XSPR_MASK, PPC860,    { RT } },
     3898{ "mtlctrl2",  XSPR(31,467,157),  XSPR_MASK, PPC860,    { RT } },
     3899{ "mtictrl",   XSPR(31,467,158),  XSPR_MASK, PPC860,    { RT } },
     3900{ "mtbar",     XSPR(31,467,159),  XSPR_MASK, PPC860,    { RT } },
     3901{ "mtvrsave",  XSPR(31,467,256),  XSPR_MASK, PPCVEC,    { RT } },
     3902{ "mtusprg0",  XSPR(31,467,256),  XSPR_MASK, BOOKE,     { RS } },
     3903{ "mtsprg",    XSPR(31,467,272),  XSPRG_MASK,PPC,       { SPRG, RS } },
     3904{ "mtsprg0",   XSPR(31,467,272),  XSPR_MASK, PPC,       { RT } },
     3905{ "mtsprg1",   XSPR(31,467,273),  XSPR_MASK, PPC,       { RT } },
     3906{ "mtsprg2",   XSPR(31,467,274),  XSPR_MASK, PPC,       { RT } },
     3907{ "mtsprg3",   XSPR(31,467,275),  XSPR_MASK, PPC,       { RT } },
     3908{ "mtsprg4",   XSPR(31,467,276),  XSPR_MASK, PPC405,    { RT } },
     3909{ "mtsprg4",   XSPR(31,467,276),  XSPR_MASK, BOOKE,     { RS } },
     3910{ "mtsprg5",   XSPR(31,467,277),  XSPR_MASK, PPC405,    { RT } },
     3911{ "mtsprg5",   XSPR(31,467,277),  XSPR_MASK, BOOKE,     { RS } },
     3912{ "mtsprg6",   XSPR(31,467,278),  XSPR_MASK, PPC405,    { RT } },
     3913{ "mtsprg6",   XSPR(31,467,278),  XSPR_MASK, BOOKE,     { RS } },
     3914{ "mtsprg7",   XSPR(31,467,279),  XSPR_MASK, PPC405,    { RT } },
     3915{ "mtsprg7",   XSPR(31,467,279),  XSPR_MASK, BOOKE,     { RS } },
     3916{ "mtasr",     XSPR(31,467,280),  XSPR_MASK, PPC64,     { RS } },
     3917{ "mtear",     XSPR(31,467,282),  XSPR_MASK, PPC,       { RS } },
     3918{ "mttbl",     XSPR(31,467,284),  XSPR_MASK, PPC,       { RS } },
     3919{ "mttbu",     XSPR(31,467,285),  XSPR_MASK, PPC,       { RS } },
     3920{ "mtdbsr",    XSPR(31,467,304),  XSPR_MASK, BOOKE,     { RS } },
     3921{ "mtdbcr0",   XSPR(31,467,308),  XSPR_MASK, BOOKE,     { RS } },
     3922{ "mtdbcr1",   XSPR(31,467,309),  XSPR_MASK, BOOKE,     { RS } },
     3923{ "mtdbcr2",   XSPR(31,467,310),  XSPR_MASK, BOOKE,     { RS } },
     3924{ "mtiac1",    XSPR(31,467,312),  XSPR_MASK, BOOKE,     { RS } },
     3925{ "mtiac2",    XSPR(31,467,313),  XSPR_MASK, BOOKE,     { RS } },
     3926{ "mtiac3",    XSPR(31,467,314),  XSPR_MASK, BOOKE,     { RS } },
     3927{ "mtiac4",    XSPR(31,467,315),  XSPR_MASK, BOOKE,     { RS } },
     3928{ "mtdac1",    XSPR(31,467,316),  XSPR_MASK, BOOKE,     { RS } },
     3929{ "mtdac2",    XSPR(31,467,317),  XSPR_MASK, BOOKE,     { RS } },
     3930{ "mtdvc1",    XSPR(31,467,318),  XSPR_MASK, BOOKE,     { RS } },
     3931{ "mtdvc2",    XSPR(31,467,319),  XSPR_MASK, BOOKE,     { RS } },
     3932{ "mttsr",     XSPR(31,467,336),  XSPR_MASK, BOOKE,     { RS } },
     3933{ "mttcr",     XSPR(31,467,340),  XSPR_MASK, BOOKE,     { RS } },
     3934{ "mtivor0",   XSPR(31,467,400),  XSPR_MASK, BOOKE,     { RS } },
     3935{ "mtivor1",   XSPR(31,467,401),  XSPR_MASK, BOOKE,     { RS } },
     3936{ "mtivor2",   XSPR(31,467,402),  XSPR_MASK, BOOKE,     { RS } },
     3937{ "mtivor3",   XSPR(31,467,403),  XSPR_MASK, BOOKE,     { RS } },
     3938{ "mtivor4",   XSPR(31,467,404),  XSPR_MASK, BOOKE,     { RS } },
     3939{ "mtivor5",   XSPR(31,467,405),  XSPR_MASK, BOOKE,     { RS } },
     3940{ "mtivor6",   XSPR(31,467,406),  XSPR_MASK, BOOKE,     { RS } },
     3941{ "mtivor7",   XSPR(31,467,407),  XSPR_MASK, BOOKE,     { RS } },
     3942{ "mtivor8",   XSPR(31,467,408),  XSPR_MASK, BOOKE,     { RS } },
     3943{ "mtivor9",   XSPR(31,467,409),  XSPR_MASK, BOOKE,     { RS } },
     3944{ "mtivor10",  XSPR(31,467,410),  XSPR_MASK, BOOKE,     { RS } },
     3945{ "mtivor11",  XSPR(31,467,411),  XSPR_MASK, BOOKE,     { RS } },
     3946{ "mtivor12",  XSPR(31,467,412),  XSPR_MASK, BOOKE,     { RS } },
     3947{ "mtivor13",  XSPR(31,467,413),  XSPR_MASK, BOOKE,     { RS } },
     3948{ "mtivor14",  XSPR(31,467,414),  XSPR_MASK, BOOKE,     { RS } },
     3949{ "mtivor15",  XSPR(31,467,415),  XSPR_MASK, BOOKE,     { RS } },
     3950{ "mtspefscr",  XSPR(31,467,512),  XSPR_MASK, PPCSPE,   { RS } },
     3951{ "mtbbear",   XSPR(31,467,513),  XSPR_MASK, PPCBRLK,   { RS } },
     3952{ "mtbbtar",   XSPR(31,467,514),  XSPR_MASK, PPCBRLK,  { RS } },
     3953{ "mtibatu",   XSPR(31,467,528),  XSPRBAT_MASK, PPC,    { SPRBAT, RS } },
     3954{ "mtibatl",   XSPR(31,467,529),  XSPRBAT_MASK, PPC,    { SPRBAT, RS } },
     3955{ "mtdbatu",   XSPR(31,467,536),  XSPRBAT_MASK, PPC,    { SPRBAT, RS } },
     3956{ "mtdbatl",   XSPR(31,467,537),  XSPRBAT_MASK, PPC,    { SPRBAT, RS } },
     3957{ "mtmcsrr0",  XSPR(31,467,570),  XSPR_MASK, PPCRFMCI,  { RS } },
     3958{ "mtmcsrr1",  XSPR(31,467,571),  XSPR_MASK, PPCRFMCI,  { RS } },
     3959{ "mtmcsr",    XSPR(31,467,572),  XSPR_MASK, PPCRFMCI,  { RS } },
     3960{ "mtummcr0",  XSPR(31,467,936),  XSPR_MASK, PPC750,    { RT } },
     3961{ "mtupmc1",   XSPR(31,467,937),  XSPR_MASK, PPC750,    { RT } },
     3962{ "mtupmc2",   XSPR(31,467,938),  XSPR_MASK, PPC750,    { RT } },
     3963{ "mtusia",    XSPR(31,467,939),  XSPR_MASK, PPC750,    { RT } },
     3964{ "mtummcr1",  XSPR(31,467,940),  XSPR_MASK, PPC750,    { RT } },
     3965{ "mtupmc3",   XSPR(31,467,941),  XSPR_MASK, PPC750,    { RT } },
     3966{ "mtupmc4",   XSPR(31,467,942),  XSPR_MASK, PPC750,    { RT } },
     3967{ "mtzpr",     XSPR(31,467,944),  XSPR_MASK, PPC403,    { RT } },
     3968{ "mtpid",     XSPR(31,467,945),  XSPR_MASK, PPC403,    { RT } },
     3969{ "mtccr0",    XSPR(31,467,947),  XSPR_MASK, PPC405,    { RT } },
     3970{ "mtiac3",    XSPR(31,467,948),  XSPR_MASK, PPC405,    { RT } },
     3971{ "mtiac4",    XSPR(31,467,949),  XSPR_MASK, PPC405,    { RT } },
     3972{ "mtdvc1",    XSPR(31,467,950),  XSPR_MASK, PPC405,    { RT } },
     3973{ "mtdvc2",    XSPR(31,467,951),  XSPR_MASK, PPC405,    { RT } },
     3974{ "mtmmcr0",   XSPR(31,467,952),  XSPR_MASK, PPC750,    { RT } },
     3975{ "mtsgr",     XSPR(31,467,953),  XSPR_MASK, PPC403,    { RT } },
     3976{ "mtpmc1",    XSPR(31,467,953),  XSPR_MASK, PPC750,    { RT } },
     3977{ "mtdcwr",    XSPR(31,467,954),  XSPR_MASK, PPC403,    { RT } },
     3978{ "mtpmc2",    XSPR(31,467,954),  XSPR_MASK, PPC750,    { RT } },
     3979{ "mtsler",    XSPR(31,467,955),  XSPR_MASK, PPC405,    { RT } },
     3980{ "mtsia",     XSPR(31,467,955),  XSPR_MASK, PPC750,    { RT } },
     3981{ "mtsu0r",    XSPR(31,467,956),  XSPR_MASK, PPC405,    { RT } },
     3982{ "mtmmcr1",   XSPR(31,467,956),  XSPR_MASK, PPC750,    { RT } },
     3983{ "mtdbcr1",   XSPR(31,467,957),  XSPR_MASK, PPC405,    { RT } },
     3984{ "mtpmc3",    XSPR(31,467,957),  XSPR_MASK, PPC750,    { RT } },
     3985{ "mtpmc4",    XSPR(31,467,958),  XSPR_MASK, PPC750,    { RT } },
     3986{ "mticdbdr",  XSPR(31,467,979),  XSPR_MASK, PPC403,    { RT } },
     3987{ "mtesr",     XSPR(31,467,980),  XSPR_MASK, PPC403,    { RT } },
     3988{ "mtdear",    XSPR(31,467,981),  XSPR_MASK, PPC403,    { RT } },
     3989{ "mtevpr",    XSPR(31,467,982),  XSPR_MASK, PPC403,    { RT } },
     3990{ "mtcdbcr",   XSPR(31,467,983),  XSPR_MASK, PPC403,    { RT } },
     3991{ "mttsr",     XSPR(31,467,984),  XSPR_MASK, PPC403,    { RT } },
     3992{ "mttcr",     XSPR(31,467,986),  XSPR_MASK, PPC403,    { RT } },
     3993{ "mtpit",     XSPR(31,467,987),  XSPR_MASK, PPC403,    { RT } },
     3994{ "mttbhi",    XSPR(31,467,988),  XSPR_MASK, PPC403,    { RT } },
     3995{ "mttblo",    XSPR(31,467,989),  XSPR_MASK, PPC403,    { RT } },
     3996{ "mtsrr2",    XSPR(31,467,990),  XSPR_MASK, PPC403,    { RT } },
     3997{ "mtsrr3",    XSPR(31,467,991),  XSPR_MASK, PPC403,    { RT } },
     3998{ "mtdbsr",    XSPR(31,467,1008), XSPR_MASK, PPC403,    { RT } },
     3999{ "mtdbcr0",   XSPR(31,467,1010), XSPR_MASK, PPC405,    { RT } },
     4000{ "mtiac1",    XSPR(31,467,1012), XSPR_MASK, PPC403,    { RT } },
     4001{ "mtiac2",    XSPR(31,467,1013), XSPR_MASK, PPC403,    { RT } },
     4002{ "mtdac1",    XSPR(31,467,1014), XSPR_MASK, PPC403,    { RT } },
     4003{ "mtdac2",    XSPR(31,467,1015), XSPR_MASK, PPC403,    { RT } },
     4004{ "mtl2cr",    XSPR(31,467,1017), XSPR_MASK, PPC750,    { RT } },
     4005{ "mtdccr",    XSPR(31,467,1018), XSPR_MASK, PPC403,    { RT } },
     4006{ "mticcr",    XSPR(31,467,1019), XSPR_MASK, PPC403,    { RT } },
     4007{ "mtictc",    XSPR(31,467,1019), XSPR_MASK, PPC750,    { RT } },
     4008{ "mtpbl1",    XSPR(31,467,1020), XSPR_MASK, PPC403,    { RT } },
     4009{ "mtthrm1",   XSPR(31,467,1020), XSPR_MASK, PPC750,    { RT } },
     4010{ "mtpbu1",    XSPR(31,467,1021), XSPR_MASK, PPC403,    { RT } },
     4011{ "mtthrm2",   XSPR(31,467,1021), XSPR_MASK, PPC750,    { RT } },
     4012{ "mtpbl2",    XSPR(31,467,1022), XSPR_MASK, PPC403,    { RT } },
     4013{ "mtthrm3",   XSPR(31,467,1022), XSPR_MASK, PPC750,    { RT } },
     4014{ "mtpbu2",    XSPR(31,467,1023), XSPR_MASK, PPC403,    { RT } },
     4015{ "mtspr",     X(31,467),         X_MASK,    COM,       { SPR, RS } },
    30304016
    30314017{ "dcbi",    X(31,470), XRT_MASK,       PPC,            { RA, RB } },
     
    30344020{ "nand.",   XRC(31,476,1), X_MASK,     COM,            { RA, RS, RB } },
    30354021
     4022{ "dcbie",   X(31,478), XRT_MASK,       BOOKE64,        { RA, RB } },
     4023
    30364024{ "dcread",  X(31,486), X_MASK,         PPC403,         { RT, RA, RB }},
    30374025
     4026{ "mtpmr",   X(31,462), X_MASK,         PPCPMR,         { PMR, RS }},
     4027
     4028{ "icbtls",  X(31,486), X_MASK,         PPCCHLK,        { CT, RA, RB }},
     4029
    30384030{ "nabs",    XO(31,488,0,0), XORB_MASK, M601,           { RT, RA } },
     4031{ "subfme64",XO(31,488,0,0), XORB_MASK, BOOKE64,        { RT, RA } },
    30394032{ "nabs.",   XO(31,488,0,1), XORB_MASK, M601,           { RT, RA } },
    30404033{ "nabso",   XO(31,488,1,0), XORB_MASK, M601,           { RT, RA } },
     4034{ "subfme64o",XO(31,488,1,0), XORB_MASK, BOOKE64,       { RT, RA } },
    30414035{ "nabso.",  XO(31,488,1,1), XORB_MASK, M601,           { RT, RA } },
    30424036
     
    30464040{ "divdo.",  XO(31,489,1,1), XO_MASK,   PPC64,          { RT, RA, RB } },
    30474041
     4042{ "addme64", XO(31,490,0,0), XORB_MASK, BOOKE64,        { RT, RA } },
     4043{ "addme64o",XO(31,490,1,0), XORB_MASK, BOOKE64,        { RT, RA } },
     4044
    30484045{ "divw",    XO(31,491,0,0), XO_MASK,   PPC,            { RT, RA, RB } },
    30494046{ "divw.",   XO(31,491,0,1), XO_MASK,   PPC,            { RT, RA, RB } },
     
    30514048{ "divwo.",  XO(31,491,1,1), XO_MASK,   PPC,            { RT, RA, RB } },
    30524049
     4050{ "icbtlse", X(31,494), X_MASK,         PPCCHLK64,      { CT, RA, RB }},
     4051
    30534052{ "slbia",   X(31,498), 0xffffffff,     PPC64,          { 0 } },
    30544053
    30554054{ "cli",     X(31,502), XRB_MASK,       POWER,          { RT, RA } },
    30564055
     4056{ "stdcxe.", XRC(31,511,1), X_MASK,     BOOKE64,        { RS, RA, RB } },
     4057
    30574058{ "mcrxr",   X(31,512), XRARB_MASK|(3<<21), COM,        { BF } },
     4059
     4060{ "bblels",  X(31,518), X_MASK,         PPCBRLK,        { 0 }},
     4061{ "mcrxr64", X(31,544), XRARB_MASK|(3<<21), BOOKE64,    { BF } },
    30584062
    30594063{ "clcs",    X(31,531), XRB_MASK,       M601,           { RT, RA } },
     
    30814085{ "maskir.", XRC(31,541,1), X_MASK,     M601,           { RA, RS, RB } },
    30824086
     4087{ "lwbrxe",  X(31,542), X_MASK,         BOOKE64,        { RT, RA, RB } },
     4088
     4089{ "lfsxe",   X(31,543), X_MASK,         BOOKE64,        { FRT, RA, RB } },
     4090
     4091{ "bbelr",   X(31,550), X_MASK,         PPCBRLK,        { 0 }},
    30834092{ "tlbsync", X(31,566), 0xffffffff,     PPC,            { 0 } },
    30844093
    30854094{ "lfsux",   X(31,567), X_MASK,         COM,            { FRT, RAS, RB } },
     4095
     4096{ "lfsuxe",  X(31,575), X_MASK,         BOOKE64,        { FRT, RAS, RB } },
    30864097
    30874098{ "mfsr",    X(31,595), XRB_MASK|(1<<20), COM32,        { RT, SR } },
     
    30904101{ "lsi",     X(31,597), X_MASK,         PWRCOM,         { RT, RA, NB } },
    30914102
    3092 { "sync",    X(31,598), 0xffffffff,     PPCCOM,         { 0 } },
     4103{ "lwsync",  XSYNC(31,598,1), 0xffffffff, PPCONLY,      { 0 } },
     4104{ "ptesync", XSYNC(31,598,2), 0xffffffff, PPC64,        { 0 } },
     4105{ "msync",   X(31,598), 0xffffffff,     BOOKE,          { 0 } },
     4106{ "sync",    X(31,598), XSYNC_MASK,     PPCCOM,         { LS } },
    30934107{ "dcs",     X(31,598), 0xffffffff,     PWRCOM,         { 0 } },
    30944108
    30954109{ "lfdx",    X(31,599), X_MASK,         COM,            { FRT, RA, RB } },
    30964110
     4111{ "lfdxe",   X(31,607), X_MASK,         BOOKE64,        { FRT, RA, RB } },
     4112
    30974113{ "mfsri",   X(31,627), X_MASK,         PWRCOM,         { RT, RA, RB } },
    30984114
     
    31004116
    31014117{ "lfdux",   X(31,631), X_MASK,         COM,            { FRT, RAS, RB } },
     4118
     4119{ "lfduxe",  X(31,639), X_MASK,         BOOKE64,        { FRT, RAS, RB } },
    31024120
    31034121{ "mfsrin",  X(31,659), XRA_MASK,       PPC32,          { RT, RB } },
     
    31174135{ "sre.",    XRC(31,665,1), X_MASK,     M601,           { RA, RS, RB } },
    31184136
     4137{ "stwbrxe", X(31,670), X_MASK,         BOOKE64,        { RS, RA, RB } },
     4138
     4139{ "stfsxe",  X(31,671), X_MASK,         BOOKE64,        { FRS, RA, RB } },
     4140
    31194141{ "stfsux",  X(31,695), X_MASK,         COM,            { FRS, RAS, RB } },
    31204142
     
    31224144{ "sriq.",   XRC(31,696,1), X_MASK,     M601,           { RA, RS, SH } },
    31234145
     4146{ "stfsuxe", X(31,703), X_MASK,         BOOKE64,        { FRS, RAS, RB } },
     4147
    31244148{ "stswi",   X(31,725), X_MASK,         PPCCOM,         { RS, RA, NB } },
    31254149{ "stsi",    X(31,725), X_MASK,         PWRCOM,         { RS, RA, NB } },
     
    31334157{ "sreq.",   XRC(31,729,1), X_MASK,     M601,           { RA, RS, RB } },
    31344158
     4159{ "stfdxe",  X(31,735), X_MASK,         BOOKE64,        { FRS, RA, RB } },
     4160
    31354161{ "dcba",    X(31,758), XRT_MASK,       PPC405,         { RA, RB } },
     4162{ "dcba",    X(31,758), XRT_MASK,       BOOKE,          { RA, RB } },
    31364163
    31374164{ "stfdux",  X(31,759), X_MASK,         COM,            { FRS, RAS, RB } },
     
    31394166{ "srliq",   XRC(31,760,0), X_MASK,     M601,           { RA, RS, SH } },
    31404167{ "srliq.",  XRC(31,760,1), X_MASK,     M601,           { RA, RS, SH } },
     4168
     4169{ "dcbae",   X(31,766), XRT_MASK,       BOOKE64,        { RA, RB } },
     4170
     4171{ "stfduxe", X(31,767), X_MASK,         BOOKE64,        { FRS, RAS, RB } },
     4172
     4173{ "tlbivax", X(31,786), XRT_MASK,       BOOKE,          { RA, RB } },
     4174{ "tlbivaxe",X(31,787), XRT_MASK,       BOOKE64,        { RA, RB } },
    31414175
    31424176{ "lhbrx",   X(31,790), X_MASK,         COM,            { RT, RA, RB } },
     
    31504184{ "srad.",   XRC(31,794,1), X_MASK,     PPC64,          { RA, RS, RB } },
    31514185
     4186{ "lhbrxe",  X(31,798), X_MASK,         BOOKE64,        { RT, RA, RB } },
     4187
     4188{ "ldxe",    X(31,799), X_MASK,         BOOKE64,        { RT, RA, RB } },
     4189{ "lduxe",   X(31,831), X_MASK,         BOOKE64,        { RT, RA, RB } },
     4190
    31524191{ "rac",     X(31,818), X_MASK,         PWRCOM,         { RT, RA, RB } },
     4192
     4193{ "dss",     XDSS(31,822,0), XDSS_MASK, PPCVEC,         { STRM } },
     4194{ "dssall",  XDSS(31,822,1), XDSS_MASK, PPCVEC,         { 0 } },
    31534195
    31544196{ "srawi",   XRC(31,824,0), X_MASK,     PPCCOM,         { RA, RS, SH } },
     
    31574199{ "srai.",   XRC(31,824,1), X_MASK,     PWRCOM,         { RA, RS, SH } },
    31584200
     4201{ "slbmfev", X(31,851), XRA_MASK,       PPC64,          { RT, RB } },
     4202
     4203{ "mbar",    X(31,854), X_MASK,         BOOKE,          { MO } },
    31594204{ "eieio",   X(31,854), 0xffffffff,     PPC,            { 0 } },
    31604205
    3161 { "tlbsx",   XRC(31,914,0), X_MASK, PPC403,     { RT, RA, RB } },
    3162 { "tlbsx.",  XRC(31,914,1), X_MASK, PPC403,     { RT, RA, RB } },
     4206{ "tlbsx",   XRC(31,914,0), X_MASK,     PPC403,         { RT, RA, RB } },
     4207{ "tlbsx.",  XRC(31,914,1), X_MASK,     PPC403,         { RT, RA, RB } },
     4208
     4209{ "tlbsx",   XRC(31,914,0), X_MASK,     BOOKE,          { RA, RB } },
     4210{ "tlbsx.",  XRC(31,914,1), X_MASK,     BOOKE,          { RA, RB } },
     4211{ "tlbsxe",  XRC(31,915,0), X_MASK,     BOOKE64,        { RA, RB } },
     4212{ "tlbsxe.", XRC(31,915,1), X_MASK,     BOOKE64,        { RA, RB } },
     4213
     4214{ "slbmfee", X(31,915), XRA_MASK,       PPC64,          { RT, RB } },
    31634215
    31644216{ "sthbrx",  X(31,918), X_MASK,         COM,            { RS, RA, RB } },
     
    31754227{ "exts.",   XRC(31,922,1), XRB_MASK,   PWRCOM,         { RA, RS } },
    31764228
     4229{ "sthbrxe", X(31,926), X_MASK,         BOOKE64,        { RS, RA, RB } },
     4230
     4231{ "stdxe",   X(31,927), X_MASK,         BOOKE64,        { RS, RA, RB } },
     4232
     4233{ "tlbre",   X(31,946), X_MASK,         BOOKE,          { 0 } },
     4234
    31774235{ "tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403,         { RT, RA } },
    31784236{ "tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403,         { RT, RA } },
    3179 { "tlbre",   X(31,946), X_MASK,         PPC403,         { RT, RA, SH } },
     4237{ "tlbre",   X(31,946), X_MASK,         PPC403,         { RS, RA, SH } },
    31804238
    31814239{ "sraiq",   XRC(31,952,0), X_MASK,     M601,           { RA, RS, SH } },
     
    31854243{ "extsb.",  XRC(31,954,1), XRB_MASK,   PPC,            { RA, RS} },
    31864244
     4245{ "stduxe",  X(31,959), X_MASK,         BOOKE64,        { RS, RAS, RB } },
     4246
    31874247{ "iccci",   X(31,966), XRT_MASK,       PPC403,         { RA, RB } },
     4248
     4249{ "tlbwe",   X(31,978), X_MASK,         BOOKE,          { 0 } },
    31884250
    31894251{ "tlbld",   X(31,978), XRTRA_MASK,     PPC,            { RB } },
     
    31974259{ "stfiwx",  X(31,983), X_MASK,         PPC,            { FRS, RA, RB } },
    31984260
    3199 { "extsw",   XRC(31,986,0), XRB_MASK,   PPC,            { RA, RS } },
    3200 { "extsw.",  XRC(31,986,1), XRB_MASK,   PPC,            { RA, RS } },
     4261{ "extsw",   XRC(31,986,0), XRB_MASK,   PPC64 | BOOKE64,{ RA, RS } },
     4262{ "extsw.",  XRC(31,986,1), XRB_MASK,   PPC64,          { RA, RS } },
    32014263
    32024264{ "icread",  X(31,998), XRT_MASK,       PPC403,         { RA, RB } },
     4265
     4266{ "icbie",   X(31,990), XRT_MASK,       BOOKE64,        { RA, RB } },
     4267{ "stfiwxe", X(31,991), X_MASK,         BOOKE64,        { FRS, RA, RB } },
    32034268
    32044269{ "tlbli",   X(31,1010), XRTRA_MASK,    PPC,            { RB } },
     
    32064271{ "dcbz",    X(31,1014), XRT_MASK,      PPC,            { RA, RB } },
    32074272{ "dclz",    X(31,1014), XRT_MASK,      PPC,            { RA, RB } },
     4273
     4274{ "dcbze",   X(31,1022), XRT_MASK,      BOOKE64,        { RA, RB } },
    32084275
    32094276{ "lvebx",   X(31,   7), X_MASK,        PPCVEC,         { VD, RA, RB } },
     
    32784345{ "lfqu",    OP(57),    OP_MASK,        POWER2,         { FRT, D, RA } },
    32794346
     4347{ "lbze",    DEO(58,0), DE_MASK,        BOOKE64,        { RT, DE, RA } },
     4348{ "lbzue",   DEO(58,1), DE_MASK,        BOOKE64,        { RT, DE, RAL } },
     4349{ "lhze",    DEO(58,2), DE_MASK,        BOOKE64,        { RT, DE, RA } },
     4350{ "lhzue",   DEO(58,3), DE_MASK,        BOOKE64,        { RT, DE, RAL } },
     4351{ "lhae",    DEO(58,4), DE_MASK,        BOOKE64,        { RT, DE, RA } },
     4352{ "lhaue",   DEO(58,5), DE_MASK,        BOOKE64,        { RT, DE, RAL } },
     4353{ "lwze",    DEO(58,6), DE_MASK,        BOOKE64,        { RT, DE, RA } },
     4354{ "lwzue",   DEO(58,7), DE_MASK,        BOOKE64,        { RT, DE, RAL } },
     4355{ "stbe",    DEO(58,8), DE_MASK,        BOOKE64,        { RS, DE, RA } },
     4356{ "stbue",   DEO(58,9), DE_MASK,        BOOKE64,        { RS, DE, RAS } },
     4357{ "sthe",    DEO(58,10), DE_MASK,       BOOKE64,        { RS, DE, RA } },
     4358{ "sthue",   DEO(58,11), DE_MASK,       BOOKE64,        { RS, DE, RAS } },
     4359{ "stwe",    DEO(58,14), DE_MASK,       BOOKE64,        { RS, DE, RA } },
     4360{ "stwue",   DEO(58,15), DE_MASK,       BOOKE64,        { RS, DE, RAS } },
     4361
    32804362{ "ld",      DSO(58,0), DS_MASK,        PPC64,          { RT, DS, RA } },
    32814363
     
    33174399
    33184400{ "stfqu",   OP(61),    OP_MASK,        POWER2,         { FRS, D, RA } },
     4401
     4402{ "lde",     DEO(62,0), DE_MASK,        BOOKE64,        { RT, DES, RA } },
     4403{ "ldue",    DEO(62,1), DE_MASK,        BOOKE64,        { RT, DES, RA } },
     4404{ "lfse",    DEO(62,4), DE_MASK,        BOOKE64,        { FRT, DES, RA } },
     4405{ "lfsue",   DEO(62,5), DE_MASK,        BOOKE64,        { FRT, DES, RAS } },
     4406{ "lfde",    DEO(62,6), DE_MASK,        BOOKE64,        { FRT, DES, RA } },
     4407{ "lfdue",   DEO(62,7), DE_MASK,        BOOKE64,        { FRT, DES, RAS } },
     4408{ "stde",    DEO(62,8), DE_MASK,        BOOKE64,        { RS, DES, RA } },
     4409{ "stdue",   DEO(62,9), DE_MASK,        BOOKE64,        { RS, DES, RAS } },
     4410{ "stfse",   DEO(62,12), DE_MASK,       BOOKE64,        { FRS, DES, RA } },
     4411{ "stfsue",  DEO(62,13), DE_MASK,       BOOKE64,        { FRS, DES, RAS } },
     4412{ "stfde",   DEO(62,14), DE_MASK,       BOOKE64,        { FRS, DES, RA } },
     4413{ "stfdue",  DEO(62,15), DE_MASK,       BOOKE64,        { FRS, DES, RAS } },
    33194414
    33204415{ "std",     DSO(62,0), DS_MASK,        PPC64,          { RS, DS, RA } },
     
    34644559{ "extlwi",  4,   PPCCOM,       "rlwinm %0,%1,%3,0,(%2)-1" },
    34654560{ "extlwi.", 4,   PPCCOM,       "rlwinm. %0,%1,%3,0,(%2)-1" },
    3466 { "extrwi",  4,   PPCCOM,       "rlwinm %0,%1,(%2)+(%3),32-(%2),31" },
    3467 { "extrwi.", 4,   PPCCOM,       "rlwinm. %0,%1,(%2)+(%3),32-(%2),31" },
     4561{ "extrwi",  4,   PPCCOM,       "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31" },
     4562{ "extrwi.", 4,   PPCCOM,       "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31" },
    34684563{ "inslwi",  4,   PPCCOM,       "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1" },
    34694564{ "inslwi.", 4,   PPCCOM,       "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
     
    34844579{ "clrlslwi",4,   PPCCOM,       "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)" },
    34854580{ "clrlslwi.",4,  PPCCOM,       "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)" },
    3486 
    34874581};
    34884582
Note: See TracChangeset for help on using the changeset viewer.