Linux Audio

Check our new training course

Loading...
v3.5.6
   1/* TILE-Gx opcode information.
   2 *
   3 * Copyright 2011 Tilera Corporation. All Rights Reserved.
   4 *
   5 *   This program is free software; you can redistribute it and/or
   6 *   modify it under the terms of the GNU General Public License
   7 *   as published by the Free Software Foundation, version 2.
   8 *
   9 *   This program is distributed in the hope that it will be useful, but
  10 *   WITHOUT ANY WARRANTY; without even the implied warranty of
  11 *   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
  12 *   NON INFRINGEMENT.  See the GNU General Public License for
  13 *   more details.
  14 *
  15 *
  16 *
  17 *
  18 *
  19 */
  20
  21/* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else. */
  22#define BFD_RELOC(x) -1
  23
  24/* Special registers. */
  25#define TREG_LR 55
  26#define TREG_SN 56
  27#define TREG_ZERO 63
  28
 
 
 
  29#include <linux/stddef.h>
  30#include <asm/tile-desc.h>
  31
  32const struct tilegx_opcode tilegx_opcodes[334] =
  33{
  34 { "bpt", TILEGX_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
  35    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
  36  },
  37  { "info", TILEGX_OPC_INFO, 0xf, 1, TREG_ZERO, 1,
  38    { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } },
  39  },
  40  { "infol", TILEGX_OPC_INFOL, 0x3, 1, TREG_ZERO, 1,
  41    { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } },
  42  },
  43  { "move", TILEGX_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
  44    { { 6, 7 }, { 8, 9 }, { 10, 11 }, { 12, 13 }, { 0, } },
  45  },
  46  { "movei", TILEGX_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
  47    { { 6, 0 }, { 8, 1 }, { 10, 2 }, { 12, 3 }, { 0, } },
  48  },
  49  { "moveli", TILEGX_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
  50    { { 6, 4 }, { 8, 5 }, { 0, }, { 0, }, { 0, } },
  51  },
  52  { "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
  53    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  54  },
  55  { "prefetch_add_l1", TILEGX_OPC_PREFETCH_ADD_L1, 0x2, 2, TREG_ZERO, 1,
  56    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  57  },
  58  { "prefetch_add_l1_fault", TILEGX_OPC_PREFETCH_ADD_L1_FAULT, 0x2, 2, TREG_ZERO, 1,
  59    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  60  },
  61  { "prefetch_add_l2", TILEGX_OPC_PREFETCH_ADD_L2, 0x2, 2, TREG_ZERO, 1,
  62    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  63  },
  64  { "prefetch_add_l2_fault", TILEGX_OPC_PREFETCH_ADD_L2_FAULT, 0x2, 2, TREG_ZERO, 1,
  65    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  66  },
  67  { "prefetch_add_l3", TILEGX_OPC_PREFETCH_ADD_L3, 0x2, 2, TREG_ZERO, 1,
  68    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  69  },
  70  { "prefetch_add_l3_fault", TILEGX_OPC_PREFETCH_ADD_L3_FAULT, 0x2, 2, TREG_ZERO, 1,
  71    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  72  },
  73  { "prefetch_l1", TILEGX_OPC_PREFETCH_L1, 0x12, 1, TREG_ZERO, 1,
  74    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  75  },
  76  { "prefetch_l1_fault", TILEGX_OPC_PREFETCH_L1_FAULT, 0x12, 1, TREG_ZERO, 1,
  77    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  78  },
  79  { "prefetch_l2", TILEGX_OPC_PREFETCH_L2, 0x12, 1, TREG_ZERO, 1,
  80    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  81  },
  82  { "prefetch_l2_fault", TILEGX_OPC_PREFETCH_L2_FAULT, 0x12, 1, TREG_ZERO, 1,
  83    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  84  },
  85  { "prefetch_l3", TILEGX_OPC_PREFETCH_L3, 0x12, 1, TREG_ZERO, 1,
  86    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  87  },
  88  { "prefetch_l3_fault", TILEGX_OPC_PREFETCH_L3_FAULT, 0x12, 1, TREG_ZERO, 1,
  89    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  90  },
  91  { "raise", TILEGX_OPC_RAISE, 0x2, 0, TREG_ZERO, 1,
  92    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
  93  },
  94  { "add", TILEGX_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
  95    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
  96  },
  97  { "addi", TILEGX_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
  98    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
  99  },
 100  { "addli", TILEGX_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
 101    { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
 102  },
 103  { "addx", TILEGX_OPC_ADDX, 0xf, 3, TREG_ZERO, 1,
 104    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 105  },
 106  { "addxi", TILEGX_OPC_ADDXI, 0xf, 3, TREG_ZERO, 1,
 107    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 108  },
 109  { "addxli", TILEGX_OPC_ADDXLI, 0x3, 3, TREG_ZERO, 1,
 110    { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
 111  },
 112  { "addxsc", TILEGX_OPC_ADDXSC, 0x3, 3, TREG_ZERO, 1,
 113    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 114  },
 115  { "and", TILEGX_OPC_AND, 0xf, 3, TREG_ZERO, 1,
 116    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 117  },
 118  { "andi", TILEGX_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
 119    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 120  },
 121  { "beqz", TILEGX_OPC_BEQZ, 0x2, 2, TREG_ZERO, 1,
 122    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 123  },
 124  { "beqzt", TILEGX_OPC_BEQZT, 0x2, 2, TREG_ZERO, 1,
 125    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 126  },
 127  { "bfexts", TILEGX_OPC_BFEXTS, 0x1, 4, TREG_ZERO, 1,
 128    { { 6, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 129  },
 130  { "bfextu", TILEGX_OPC_BFEXTU, 0x1, 4, TREG_ZERO, 1,
 131    { { 6, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 132  },
 133  { "bfins", TILEGX_OPC_BFINS, 0x1, 4, TREG_ZERO, 1,
 134    { { 23, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 135  },
 136  { "bgez", TILEGX_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
 137    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 138  },
 139  { "bgezt", TILEGX_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
 140    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 141  },
 142  { "bgtz", TILEGX_OPC_BGTZ, 0x2, 2, TREG_ZERO, 1,
 143    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 144  },
 145  { "bgtzt", TILEGX_OPC_BGTZT, 0x2, 2, TREG_ZERO, 1,
 146    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 147  },
 148  { "blbc", TILEGX_OPC_BLBC, 0x2, 2, TREG_ZERO, 1,
 149    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 150  },
 151  { "blbct", TILEGX_OPC_BLBCT, 0x2, 2, TREG_ZERO, 1,
 152    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 153  },
 154  { "blbs", TILEGX_OPC_BLBS, 0x2, 2, TREG_ZERO, 1,
 155    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 156  },
 157  { "blbst", TILEGX_OPC_BLBST, 0x2, 2, TREG_ZERO, 1,
 158    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 159  },
 160  { "blez", TILEGX_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
 161    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 162  },
 163  { "blezt", TILEGX_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
 164    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 165  },
 166  { "bltz", TILEGX_OPC_BLTZ, 0x2, 2, TREG_ZERO, 1,
 167    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 168  },
 169  { "bltzt", TILEGX_OPC_BLTZT, 0x2, 2, TREG_ZERO, 1,
 170    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 171  },
 172  { "bnez", TILEGX_OPC_BNEZ, 0x2, 2, TREG_ZERO, 1,
 173    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 174  },
 175  { "bnezt", TILEGX_OPC_BNEZT, 0x2, 2, TREG_ZERO, 1,
 176    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 177  },
 178  { "clz", TILEGX_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
 179    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 180  },
 181  { "cmoveqz", TILEGX_OPC_CMOVEQZ, 0x5, 3, TREG_ZERO, 1,
 182    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 183  },
 184  { "cmovnez", TILEGX_OPC_CMOVNEZ, 0x5, 3, TREG_ZERO, 1,
 185    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 186  },
 187  { "cmpeq", TILEGX_OPC_CMPEQ, 0xf, 3, TREG_ZERO, 1,
 188    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 189  },
 190  { "cmpeqi", TILEGX_OPC_CMPEQI, 0xf, 3, TREG_ZERO, 1,
 191    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 192  },
 193  { "cmpexch", TILEGX_OPC_CMPEXCH, 0x2, 3, TREG_ZERO, 1,
 194    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 195  },
 196  { "cmpexch4", TILEGX_OPC_CMPEXCH4, 0x2, 3, TREG_ZERO, 1,
 197    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 198  },
 199  { "cmples", TILEGX_OPC_CMPLES, 0xf, 3, TREG_ZERO, 1,
 200    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 201  },
 202  { "cmpleu", TILEGX_OPC_CMPLEU, 0xf, 3, TREG_ZERO, 1,
 203    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 204  },
 205  { "cmplts", TILEGX_OPC_CMPLTS, 0xf, 3, TREG_ZERO, 1,
 206    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 207  },
 208  { "cmpltsi", TILEGX_OPC_CMPLTSI, 0xf, 3, TREG_ZERO, 1,
 209    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 210  },
 211  { "cmpltu", TILEGX_OPC_CMPLTU, 0xf, 3, TREG_ZERO, 1,
 212    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 213  },
 214  { "cmpltui", TILEGX_OPC_CMPLTUI, 0x3, 3, TREG_ZERO, 1,
 215    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 216  },
 217  { "cmpne", TILEGX_OPC_CMPNE, 0xf, 3, TREG_ZERO, 1,
 218    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 219  },
 220  { "cmul", TILEGX_OPC_CMUL, 0x1, 3, TREG_ZERO, 1,
 221    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 222  },
 223  { "cmula", TILEGX_OPC_CMULA, 0x1, 3, TREG_ZERO, 1,
 224    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 225  },
 226  { "cmulaf", TILEGX_OPC_CMULAF, 0x1, 3, TREG_ZERO, 1,
 227    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 228  },
 229  { "cmulf", TILEGX_OPC_CMULF, 0x1, 3, TREG_ZERO, 1,
 230    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 231  },
 232  { "cmulfr", TILEGX_OPC_CMULFR, 0x1, 3, TREG_ZERO, 1,
 233    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 234  },
 235  { "cmulh", TILEGX_OPC_CMULH, 0x1, 3, TREG_ZERO, 1,
 236    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 237  },
 238  { "cmulhr", TILEGX_OPC_CMULHR, 0x1, 3, TREG_ZERO, 1,
 239    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 240  },
 241  { "crc32_32", TILEGX_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
 242    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 243  },
 244  { "crc32_8", TILEGX_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
 245    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 246  },
 247  { "ctz", TILEGX_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
 248    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 249  },
 250  { "dblalign", TILEGX_OPC_DBLALIGN, 0x1, 3, TREG_ZERO, 1,
 251    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 252  },
 253  { "dblalign2", TILEGX_OPC_DBLALIGN2, 0x3, 3, TREG_ZERO, 1,
 254    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 255  },
 256  { "dblalign4", TILEGX_OPC_DBLALIGN4, 0x3, 3, TREG_ZERO, 1,
 257    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 258  },
 259  { "dblalign6", TILEGX_OPC_DBLALIGN6, 0x3, 3, TREG_ZERO, 1,
 260    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 261  },
 262  { "drain", TILEGX_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0,
 263    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 264  },
 265  { "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
 266    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 267  },
 268  { "exch", TILEGX_OPC_EXCH, 0x2, 3, TREG_ZERO, 1,
 269    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 270  },
 271  { "exch4", TILEGX_OPC_EXCH4, 0x2, 3, TREG_ZERO, 1,
 272    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 273  },
 274  { "fdouble_add_flags", TILEGX_OPC_FDOUBLE_ADD_FLAGS, 0x1, 3, TREG_ZERO, 1,
 275    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 276  },
 277  { "fdouble_addsub", TILEGX_OPC_FDOUBLE_ADDSUB, 0x1, 3, TREG_ZERO, 1,
 278    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 279  },
 280  { "fdouble_mul_flags", TILEGX_OPC_FDOUBLE_MUL_FLAGS, 0x1, 3, TREG_ZERO, 1,
 281    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 282  },
 283  { "fdouble_pack1", TILEGX_OPC_FDOUBLE_PACK1, 0x1, 3, TREG_ZERO, 1,
 284    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 285  },
 286  { "fdouble_pack2", TILEGX_OPC_FDOUBLE_PACK2, 0x1, 3, TREG_ZERO, 1,
 287    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 288  },
 289  { "fdouble_sub_flags", TILEGX_OPC_FDOUBLE_SUB_FLAGS, 0x1, 3, TREG_ZERO, 1,
 290    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 291  },
 292  { "fdouble_unpack_max", TILEGX_OPC_FDOUBLE_UNPACK_MAX, 0x1, 3, TREG_ZERO, 1,
 293    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 294  },
 295  { "fdouble_unpack_min", TILEGX_OPC_FDOUBLE_UNPACK_MIN, 0x1, 3, TREG_ZERO, 1,
 296    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 297  },
 298  { "fetchadd", TILEGX_OPC_FETCHADD, 0x2, 3, TREG_ZERO, 1,
 299    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 300  },
 301  { "fetchadd4", TILEGX_OPC_FETCHADD4, 0x2, 3, TREG_ZERO, 1,
 302    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 303  },
 304  { "fetchaddgez", TILEGX_OPC_FETCHADDGEZ, 0x2, 3, TREG_ZERO, 1,
 305    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 306  },
 307  { "fetchaddgez4", TILEGX_OPC_FETCHADDGEZ4, 0x2, 3, TREG_ZERO, 1,
 308    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 309  },
 310  { "fetchand", TILEGX_OPC_FETCHAND, 0x2, 3, TREG_ZERO, 1,
 311    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 312  },
 313  { "fetchand4", TILEGX_OPC_FETCHAND4, 0x2, 3, TREG_ZERO, 1,
 314    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 315  },
 316  { "fetchor", TILEGX_OPC_FETCHOR, 0x2, 3, TREG_ZERO, 1,
 317    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 318  },
 319  { "fetchor4", TILEGX_OPC_FETCHOR4, 0x2, 3, TREG_ZERO, 1,
 320    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 321  },
 322  { "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
 323    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 324  },
 325  { "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
 326    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 327  },
 328  { "flushwb", TILEGX_OPC_FLUSHWB, 0x2, 0, TREG_ZERO, 1,
 329    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 330  },
 331  { "fnop", TILEGX_OPC_FNOP, 0xf, 0, TREG_ZERO, 1,
 332    { {  }, {  }, {  }, {  }, { 0, } },
 333  },
 334  { "fsingle_add1", TILEGX_OPC_FSINGLE_ADD1, 0x1, 3, TREG_ZERO, 1,
 335    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 336  },
 337  { "fsingle_addsub2", TILEGX_OPC_FSINGLE_ADDSUB2, 0x1, 3, TREG_ZERO, 1,
 338    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 339  },
 340  { "fsingle_mul1", TILEGX_OPC_FSINGLE_MUL1, 0x1, 3, TREG_ZERO, 1,
 341    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 342  },
 343  { "fsingle_mul2", TILEGX_OPC_FSINGLE_MUL2, 0x1, 3, TREG_ZERO, 1,
 344    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 345  },
 346  { "fsingle_pack1", TILEGX_OPC_FSINGLE_PACK1, 0x5, 2, TREG_ZERO, 1,
 347    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 348  },
 349  { "fsingle_pack2", TILEGX_OPC_FSINGLE_PACK2, 0x1, 3, TREG_ZERO, 1,
 350    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 351  },
 352  { "fsingle_sub1", TILEGX_OPC_FSINGLE_SUB1, 0x1, 3, TREG_ZERO, 1,
 353    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 354  },
 355  { "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
 356    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 357  },
 358  { "ill", TILEGX_OPC_ILL, 0xa, 0, TREG_ZERO, 1,
 359    { { 0, }, {  }, { 0, }, {  }, { 0, } },
 360  },
 361  { "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1,
 362    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 363  },
 364  { "iret", TILEGX_OPC_IRET, 0x2, 0, TREG_ZERO, 1,
 365    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 366  },
 367  { "j", TILEGX_OPC_J, 0x2, 1, TREG_ZERO, 1,
 368    { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
 369  },
 370  { "jal", TILEGX_OPC_JAL, 0x2, 1, TREG_LR, 1,
 371    { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
 372  },
 373  { "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1,
 374    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 375  },
 376  { "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1,
 377    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 378  },
 379  { "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1,
 380    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 381  },
 382  { "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1,
 383    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 384  },
 385  { "ld", TILEGX_OPC_LD, 0x12, 2, TREG_ZERO, 1,
 386    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 387  },
 388  { "ld1s", TILEGX_OPC_LD1S, 0x12, 2, TREG_ZERO, 1,
 389    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 390  },
 391  { "ld1s_add", TILEGX_OPC_LD1S_ADD, 0x2, 3, TREG_ZERO, 1,
 392    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 393  },
 394  { "ld1u", TILEGX_OPC_LD1U, 0x12, 2, TREG_ZERO, 1,
 395    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 396  },
 397  { "ld1u_add", TILEGX_OPC_LD1U_ADD, 0x2, 3, TREG_ZERO, 1,
 398    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 399  },
 400  { "ld2s", TILEGX_OPC_LD2S, 0x12, 2, TREG_ZERO, 1,
 401    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 402  },
 403  { "ld2s_add", TILEGX_OPC_LD2S_ADD, 0x2, 3, TREG_ZERO, 1,
 404    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 405  },
 406  { "ld2u", TILEGX_OPC_LD2U, 0x12, 2, TREG_ZERO, 1,
 407    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 408  },
 409  { "ld2u_add", TILEGX_OPC_LD2U_ADD, 0x2, 3, TREG_ZERO, 1,
 410    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 411  },
 412  { "ld4s", TILEGX_OPC_LD4S, 0x12, 2, TREG_ZERO, 1,
 413    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 414  },
 415  { "ld4s_add", TILEGX_OPC_LD4S_ADD, 0x2, 3, TREG_ZERO, 1,
 416    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 417  },
 418  { "ld4u", TILEGX_OPC_LD4U, 0x12, 2, TREG_ZERO, 1,
 419    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 420  },
 421  { "ld4u_add", TILEGX_OPC_LD4U_ADD, 0x2, 3, TREG_ZERO, 1,
 422    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 423  },
 424  { "ld_add", TILEGX_OPC_LD_ADD, 0x2, 3, TREG_ZERO, 1,
 425    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 426  },
 427  { "ldna", TILEGX_OPC_LDNA, 0x2, 2, TREG_ZERO, 1,
 428    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 429  },
 430  { "ldna_add", TILEGX_OPC_LDNA_ADD, 0x2, 3, TREG_ZERO, 1,
 431    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 432  },
 433  { "ldnt", TILEGX_OPC_LDNT, 0x2, 2, TREG_ZERO, 1,
 434    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 435  },
 436  { "ldnt1s", TILEGX_OPC_LDNT1S, 0x2, 2, TREG_ZERO, 1,
 437    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 438  },
 439  { "ldnt1s_add", TILEGX_OPC_LDNT1S_ADD, 0x2, 3, TREG_ZERO, 1,
 440    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 441  },
 442  { "ldnt1u", TILEGX_OPC_LDNT1U, 0x2, 2, TREG_ZERO, 1,
 443    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 444  },
 445  { "ldnt1u_add", TILEGX_OPC_LDNT1U_ADD, 0x2, 3, TREG_ZERO, 1,
 446    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 447  },
 448  { "ldnt2s", TILEGX_OPC_LDNT2S, 0x2, 2, TREG_ZERO, 1,
 449    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 450  },
 451  { "ldnt2s_add", TILEGX_OPC_LDNT2S_ADD, 0x2, 3, TREG_ZERO, 1,
 452    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 453  },
 454  { "ldnt2u", TILEGX_OPC_LDNT2U, 0x2, 2, TREG_ZERO, 1,
 455    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 456  },
 457  { "ldnt2u_add", TILEGX_OPC_LDNT2U_ADD, 0x2, 3, TREG_ZERO, 1,
 458    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 459  },
 460  { "ldnt4s", TILEGX_OPC_LDNT4S, 0x2, 2, TREG_ZERO, 1,
 461    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 462  },
 463  { "ldnt4s_add", TILEGX_OPC_LDNT4S_ADD, 0x2, 3, TREG_ZERO, 1,
 464    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 465  },
 466  { "ldnt4u", TILEGX_OPC_LDNT4U, 0x2, 2, TREG_ZERO, 1,
 467    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 468  },
 469  { "ldnt4u_add", TILEGX_OPC_LDNT4U_ADD, 0x2, 3, TREG_ZERO, 1,
 470    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 471  },
 472  { "ldnt_add", TILEGX_OPC_LDNT_ADD, 0x2, 3, TREG_ZERO, 1,
 473    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 474  },
 475  { "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1,
 476    { { 0, }, { 8 }, { 0, }, { 12 }, { 0, } },
 477  },
 478  { "mf", TILEGX_OPC_MF, 0x2, 0, TREG_ZERO, 1,
 479    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 480  },
 481  { "mfspr", TILEGX_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
 482    { { 0, }, { 8, 27 }, { 0, }, { 0, }, { 0, } },
 483  },
 484  { "mm", TILEGX_OPC_MM, 0x1, 4, TREG_ZERO, 1,
 485    { { 23, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 486  },
 487  { "mnz", TILEGX_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
 488    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 489  },
 490  { "mtspr", TILEGX_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
 491    { { 0, }, { 28, 9 }, { 0, }, { 0, }, { 0, } },
 492  },
 493  { "mul_hs_hs", TILEGX_OPC_MUL_HS_HS, 0x5, 3, TREG_ZERO, 1,
 494    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 495  },
 496  { "mul_hs_hu", TILEGX_OPC_MUL_HS_HU, 0x1, 3, TREG_ZERO, 1,
 497    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 498  },
 499  { "mul_hs_ls", TILEGX_OPC_MUL_HS_LS, 0x1, 3, TREG_ZERO, 1,
 500    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 501  },
 502  { "mul_hs_lu", TILEGX_OPC_MUL_HS_LU, 0x1, 3, TREG_ZERO, 1,
 503    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 504  },
 505  { "mul_hu_hu", TILEGX_OPC_MUL_HU_HU, 0x5, 3, TREG_ZERO, 1,
 506    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 507  },
 508  { "mul_hu_ls", TILEGX_OPC_MUL_HU_LS, 0x1, 3, TREG_ZERO, 1,
 509    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 510  },
 511  { "mul_hu_lu", TILEGX_OPC_MUL_HU_LU, 0x1, 3, TREG_ZERO, 1,
 512    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 513  },
 514  { "mul_ls_ls", TILEGX_OPC_MUL_LS_LS, 0x5, 3, TREG_ZERO, 1,
 515    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 516  },
 517  { "mul_ls_lu", TILEGX_OPC_MUL_LS_LU, 0x1, 3, TREG_ZERO, 1,
 518    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 519  },
 520  { "mul_lu_lu", TILEGX_OPC_MUL_LU_LU, 0x5, 3, TREG_ZERO, 1,
 521    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 522  },
 523  { "mula_hs_hs", TILEGX_OPC_MULA_HS_HS, 0x5, 3, TREG_ZERO, 1,
 524    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 525  },
 526  { "mula_hs_hu", TILEGX_OPC_MULA_HS_HU, 0x1, 3, TREG_ZERO, 1,
 527    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 528  },
 529  { "mula_hs_ls", TILEGX_OPC_MULA_HS_LS, 0x1, 3, TREG_ZERO, 1,
 530    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 531  },
 532  { "mula_hs_lu", TILEGX_OPC_MULA_HS_LU, 0x1, 3, TREG_ZERO, 1,
 533    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 534  },
 535  { "mula_hu_hu", TILEGX_OPC_MULA_HU_HU, 0x5, 3, TREG_ZERO, 1,
 536    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 537  },
 538  { "mula_hu_ls", TILEGX_OPC_MULA_HU_LS, 0x1, 3, TREG_ZERO, 1,
 539    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 540  },
 541  { "mula_hu_lu", TILEGX_OPC_MULA_HU_LU, 0x1, 3, TREG_ZERO, 1,
 542    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 543  },
 544  { "mula_ls_ls", TILEGX_OPC_MULA_LS_LS, 0x5, 3, TREG_ZERO, 1,
 545    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 546  },
 547  { "mula_ls_lu", TILEGX_OPC_MULA_LS_LU, 0x1, 3, TREG_ZERO, 1,
 548    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 549  },
 550  { "mula_lu_lu", TILEGX_OPC_MULA_LU_LU, 0x5, 3, TREG_ZERO, 1,
 551    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 552  },
 553  { "mulax", TILEGX_OPC_MULAX, 0x5, 3, TREG_ZERO, 1,
 554    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 555  },
 556  { "mulx", TILEGX_OPC_MULX, 0x5, 3, TREG_ZERO, 1,
 557    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 558  },
 559  { "mz", TILEGX_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
 560    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 561  },
 562  { "nap", TILEGX_OPC_NAP, 0x2, 0, TREG_ZERO, 0,
 563    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 564  },
 565  { "nop", TILEGX_OPC_NOP, 0xf, 0, TREG_ZERO, 1,
 566    { {  }, {  }, {  }, {  }, { 0, } },
 567  },
 568  { "nor", TILEGX_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
 569    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 570  },
 571  { "or", TILEGX_OPC_OR, 0xf, 3, TREG_ZERO, 1,
 572    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 573  },
 574  { "ori", TILEGX_OPC_ORI, 0x3, 3, TREG_ZERO, 1,
 575    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 576  },
 577  { "pcnt", TILEGX_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
 578    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 579  },
 580  { "revbits", TILEGX_OPC_REVBITS, 0x5, 2, TREG_ZERO, 1,
 581    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 582  },
 583  { "revbytes", TILEGX_OPC_REVBYTES, 0x5, 2, TREG_ZERO, 1,
 584    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 585  },
 586  { "rotl", TILEGX_OPC_ROTL, 0xf, 3, TREG_ZERO, 1,
 587    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 588  },
 589  { "rotli", TILEGX_OPC_ROTLI, 0xf, 3, TREG_ZERO, 1,
 590    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 591  },
 592  { "shl", TILEGX_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
 593    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 594  },
 595  { "shl16insli", TILEGX_OPC_SHL16INSLI, 0x3, 3, TREG_ZERO, 1,
 596    { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
 597  },
 598  { "shl1add", TILEGX_OPC_SHL1ADD, 0xf, 3, TREG_ZERO, 1,
 599    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 600  },
 601  { "shl1addx", TILEGX_OPC_SHL1ADDX, 0xf, 3, TREG_ZERO, 1,
 602    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 603  },
 604  { "shl2add", TILEGX_OPC_SHL2ADD, 0xf, 3, TREG_ZERO, 1,
 605    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 606  },
 607  { "shl2addx", TILEGX_OPC_SHL2ADDX, 0xf, 3, TREG_ZERO, 1,
 608    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 609  },
 610  { "shl3add", TILEGX_OPC_SHL3ADD, 0xf, 3, TREG_ZERO, 1,
 611    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 612  },
 613  { "shl3addx", TILEGX_OPC_SHL3ADDX, 0xf, 3, TREG_ZERO, 1,
 614    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 615  },
 616  { "shli", TILEGX_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
 617    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 618  },
 619  { "shlx", TILEGX_OPC_SHLX, 0x3, 3, TREG_ZERO, 1,
 620    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 621  },
 622  { "shlxi", TILEGX_OPC_SHLXI, 0x3, 3, TREG_ZERO, 1,
 623    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 624  },
 625  { "shrs", TILEGX_OPC_SHRS, 0xf, 3, TREG_ZERO, 1,
 626    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 627  },
 628  { "shrsi", TILEGX_OPC_SHRSI, 0xf, 3, TREG_ZERO, 1,
 629    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 630  },
 631  { "shru", TILEGX_OPC_SHRU, 0xf, 3, TREG_ZERO, 1,
 632    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 633  },
 634  { "shrui", TILEGX_OPC_SHRUI, 0xf, 3, TREG_ZERO, 1,
 635    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 636  },
 637  { "shrux", TILEGX_OPC_SHRUX, 0x3, 3, TREG_ZERO, 1,
 638    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 639  },
 640  { "shruxi", TILEGX_OPC_SHRUXI, 0x3, 3, TREG_ZERO, 1,
 641    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 642  },
 643  { "shufflebytes", TILEGX_OPC_SHUFFLEBYTES, 0x1, 3, TREG_ZERO, 1,
 644    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 645  },
 646  { "st", TILEGX_OPC_ST, 0x12, 2, TREG_ZERO, 1,
 647    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 648  },
 649  { "st1", TILEGX_OPC_ST1, 0x12, 2, TREG_ZERO, 1,
 650    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 651  },
 652  { "st1_add", TILEGX_OPC_ST1_ADD, 0x2, 3, TREG_ZERO, 1,
 653    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 654  },
 655  { "st2", TILEGX_OPC_ST2, 0x12, 2, TREG_ZERO, 1,
 656    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 657  },
 658  { "st2_add", TILEGX_OPC_ST2_ADD, 0x2, 3, TREG_ZERO, 1,
 659    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 660  },
 661  { "st4", TILEGX_OPC_ST4, 0x12, 2, TREG_ZERO, 1,
 662    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 663  },
 664  { "st4_add", TILEGX_OPC_ST4_ADD, 0x2, 3, TREG_ZERO, 1,
 665    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 666  },
 667  { "st_add", TILEGX_OPC_ST_ADD, 0x2, 3, TREG_ZERO, 1,
 668    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 669  },
 670  { "stnt", TILEGX_OPC_STNT, 0x2, 2, TREG_ZERO, 1,
 671    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 672  },
 673  { "stnt1", TILEGX_OPC_STNT1, 0x2, 2, TREG_ZERO, 1,
 674    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 675  },
 676  { "stnt1_add", TILEGX_OPC_STNT1_ADD, 0x2, 3, TREG_ZERO, 1,
 677    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 678  },
 679  { "stnt2", TILEGX_OPC_STNT2, 0x2, 2, TREG_ZERO, 1,
 680    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 681  },
 682  { "stnt2_add", TILEGX_OPC_STNT2_ADD, 0x2, 3, TREG_ZERO, 1,
 683    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 684  },
 685  { "stnt4", TILEGX_OPC_STNT4, 0x2, 2, TREG_ZERO, 1,
 686    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 687  },
 688  { "stnt4_add", TILEGX_OPC_STNT4_ADD, 0x2, 3, TREG_ZERO, 1,
 689    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 690  },
 691  { "stnt_add", TILEGX_OPC_STNT_ADD, 0x2, 3, TREG_ZERO, 1,
 692    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 693  },
 694  { "sub", TILEGX_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
 695    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 696  },
 697  { "subx", TILEGX_OPC_SUBX, 0xf, 3, TREG_ZERO, 1,
 698    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 699  },
 700  { "subxsc", TILEGX_OPC_SUBXSC, 0x3, 3, TREG_ZERO, 1,
 701    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 702  },
 703  { "swint0", TILEGX_OPC_SWINT0, 0x2, 0, TREG_ZERO, 0,
 704    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 705  },
 706  { "swint1", TILEGX_OPC_SWINT1, 0x2, 0, TREG_ZERO, 0,
 707    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 708  },
 709  { "swint2", TILEGX_OPC_SWINT2, 0x2, 0, TREG_ZERO, 0,
 710    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 711  },
 712  { "swint3", TILEGX_OPC_SWINT3, 0x2, 0, TREG_ZERO, 0,
 713    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 714  },
 715  { "tblidxb0", TILEGX_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
 716    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 717  },
 718  { "tblidxb1", TILEGX_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
 719    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 720  },
 721  { "tblidxb2", TILEGX_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
 722    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 723  },
 724  { "tblidxb3", TILEGX_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
 725    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 726  },
 727  { "v1add", TILEGX_OPC_V1ADD, 0x3, 3, TREG_ZERO, 1,
 728    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 729  },
 730  { "v1addi", TILEGX_OPC_V1ADDI, 0x3, 3, TREG_ZERO, 1,
 731    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 732  },
 733  { "v1adduc", TILEGX_OPC_V1ADDUC, 0x3, 3, TREG_ZERO, 1,
 734    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 735  },
 736  { "v1adiffu", TILEGX_OPC_V1ADIFFU, 0x1, 3, TREG_ZERO, 1,
 737    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 738  },
 739  { "v1avgu", TILEGX_OPC_V1AVGU, 0x1, 3, TREG_ZERO, 1,
 740    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 741  },
 742  { "v1cmpeq", TILEGX_OPC_V1CMPEQ, 0x3, 3, TREG_ZERO, 1,
 743    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 744  },
 745  { "v1cmpeqi", TILEGX_OPC_V1CMPEQI, 0x3, 3, TREG_ZERO, 1,
 746    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 747  },
 748  { "v1cmples", TILEGX_OPC_V1CMPLES, 0x3, 3, TREG_ZERO, 1,
 749    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 750  },
 751  { "v1cmpleu", TILEGX_OPC_V1CMPLEU, 0x3, 3, TREG_ZERO, 1,
 752    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 753  },
 754  { "v1cmplts", TILEGX_OPC_V1CMPLTS, 0x3, 3, TREG_ZERO, 1,
 755    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 756  },
 757  { "v1cmpltsi", TILEGX_OPC_V1CMPLTSI, 0x3, 3, TREG_ZERO, 1,
 758    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 759  },
 760  { "v1cmpltu", TILEGX_OPC_V1CMPLTU, 0x3, 3, TREG_ZERO, 1,
 761    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 762  },
 763  { "v1cmpltui", TILEGX_OPC_V1CMPLTUI, 0x3, 3, TREG_ZERO, 1,
 764    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 765  },
 766  { "v1cmpne", TILEGX_OPC_V1CMPNE, 0x3, 3, TREG_ZERO, 1,
 767    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 768  },
 769  { "v1ddotpu", TILEGX_OPC_V1DDOTPU, 0x1, 3, TREG_ZERO, 1,
 770    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 771  },
 772  { "v1ddotpua", TILEGX_OPC_V1DDOTPUA, 0x1, 3, TREG_ZERO, 1,
 773    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 774  },
 775  { "v1ddotpus", TILEGX_OPC_V1DDOTPUS, 0x1, 3, TREG_ZERO, 1,
 776    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 777  },
 778  { "v1ddotpusa", TILEGX_OPC_V1DDOTPUSA, 0x1, 3, TREG_ZERO, 1,
 779    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 780  },
 781  { "v1dotp", TILEGX_OPC_V1DOTP, 0x1, 3, TREG_ZERO, 1,
 782    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 783  },
 784  { "v1dotpa", TILEGX_OPC_V1DOTPA, 0x1, 3, TREG_ZERO, 1,
 785    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 786  },
 787  { "v1dotpu", TILEGX_OPC_V1DOTPU, 0x1, 3, TREG_ZERO, 1,
 788    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 789  },
 790  { "v1dotpua", TILEGX_OPC_V1DOTPUA, 0x1, 3, TREG_ZERO, 1,
 791    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 792  },
 793  { "v1dotpus", TILEGX_OPC_V1DOTPUS, 0x1, 3, TREG_ZERO, 1,
 794    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 795  },
 796  { "v1dotpusa", TILEGX_OPC_V1DOTPUSA, 0x1, 3, TREG_ZERO, 1,
 797    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 798  },
 799  { "v1int_h", TILEGX_OPC_V1INT_H, 0x3, 3, TREG_ZERO, 1,
 800    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 801  },
 802  { "v1int_l", TILEGX_OPC_V1INT_L, 0x3, 3, TREG_ZERO, 1,
 803    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 804  },
 805  { "v1maxu", TILEGX_OPC_V1MAXU, 0x3, 3, TREG_ZERO, 1,
 806    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 807  },
 808  { "v1maxui", TILEGX_OPC_V1MAXUI, 0x3, 3, TREG_ZERO, 1,
 809    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 810  },
 811  { "v1minu", TILEGX_OPC_V1MINU, 0x3, 3, TREG_ZERO, 1,
 812    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 813  },
 814  { "v1minui", TILEGX_OPC_V1MINUI, 0x3, 3, TREG_ZERO, 1,
 815    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 816  },
 817  { "v1mnz", TILEGX_OPC_V1MNZ, 0x3, 3, TREG_ZERO, 1,
 818    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 819  },
 820  { "v1multu", TILEGX_OPC_V1MULTU, 0x1, 3, TREG_ZERO, 1,
 821    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 822  },
 823  { "v1mulu", TILEGX_OPC_V1MULU, 0x1, 3, TREG_ZERO, 1,
 824    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 825  },
 826  { "v1mulus", TILEGX_OPC_V1MULUS, 0x1, 3, TREG_ZERO, 1,
 827    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 828  },
 829  { "v1mz", TILEGX_OPC_V1MZ, 0x3, 3, TREG_ZERO, 1,
 830    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 831  },
 832  { "v1sadau", TILEGX_OPC_V1SADAU, 0x1, 3, TREG_ZERO, 1,
 833    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 834  },
 835  { "v1sadu", TILEGX_OPC_V1SADU, 0x1, 3, TREG_ZERO, 1,
 836    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 837  },
 838  { "v1shl", TILEGX_OPC_V1SHL, 0x3, 3, TREG_ZERO, 1,
 839    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 840  },
 841  { "v1shli", TILEGX_OPC_V1SHLI, 0x3, 3, TREG_ZERO, 1,
 842    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 843  },
 844  { "v1shrs", TILEGX_OPC_V1SHRS, 0x3, 3, TREG_ZERO, 1,
 845    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 846  },
 847  { "v1shrsi", TILEGX_OPC_V1SHRSI, 0x3, 3, TREG_ZERO, 1,
 848    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 849  },
 850  { "v1shru", TILEGX_OPC_V1SHRU, 0x3, 3, TREG_ZERO, 1,
 851    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 852  },
 853  { "v1shrui", TILEGX_OPC_V1SHRUI, 0x3, 3, TREG_ZERO, 1,
 854    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 855  },
 856  { "v1sub", TILEGX_OPC_V1SUB, 0x3, 3, TREG_ZERO, 1,
 857    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 858  },
 859  { "v1subuc", TILEGX_OPC_V1SUBUC, 0x3, 3, TREG_ZERO, 1,
 860    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 861  },
 862  { "v2add", TILEGX_OPC_V2ADD, 0x3, 3, TREG_ZERO, 1,
 863    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 864  },
 865  { "v2addi", TILEGX_OPC_V2ADDI, 0x3, 3, TREG_ZERO, 1,
 866    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 867  },
 868  { "v2addsc", TILEGX_OPC_V2ADDSC, 0x3, 3, TREG_ZERO, 1,
 869    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 870  },
 871  { "v2adiffs", TILEGX_OPC_V2ADIFFS, 0x1, 3, TREG_ZERO, 1,
 872    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 873  },
 874  { "v2avgs", TILEGX_OPC_V2AVGS, 0x1, 3, TREG_ZERO, 1,
 875    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 876  },
 877  { "v2cmpeq", TILEGX_OPC_V2CMPEQ, 0x3, 3, TREG_ZERO, 1,
 878    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 879  },
 880  { "v2cmpeqi", TILEGX_OPC_V2CMPEQI, 0x3, 3, TREG_ZERO, 1,
 881    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 882  },
 883  { "v2cmples", TILEGX_OPC_V2CMPLES, 0x3, 3, TREG_ZERO, 1,
 884    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 885  },
 886  { "v2cmpleu", TILEGX_OPC_V2CMPLEU, 0x3, 3, TREG_ZERO, 1,
 887    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 888  },
 889  { "v2cmplts", TILEGX_OPC_V2CMPLTS, 0x3, 3, TREG_ZERO, 1,
 890    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 891  },
 892  { "v2cmpltsi", TILEGX_OPC_V2CMPLTSI, 0x3, 3, TREG_ZERO, 1,
 893    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 894  },
 895  { "v2cmpltu", TILEGX_OPC_V2CMPLTU, 0x3, 3, TREG_ZERO, 1,
 896    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 897  },
 898  { "v2cmpltui", TILEGX_OPC_V2CMPLTUI, 0x3, 3, TREG_ZERO, 1,
 899    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 900  },
 901  { "v2cmpne", TILEGX_OPC_V2CMPNE, 0x3, 3, TREG_ZERO, 1,
 902    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 903  },
 904  { "v2dotp", TILEGX_OPC_V2DOTP, 0x1, 3, TREG_ZERO, 1,
 905    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 906  },
 907  { "v2dotpa", TILEGX_OPC_V2DOTPA, 0x1, 3, TREG_ZERO, 1,
 908    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 909  },
 910  { "v2int_h", TILEGX_OPC_V2INT_H, 0x3, 3, TREG_ZERO, 1,
 911    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 912  },
 913  { "v2int_l", TILEGX_OPC_V2INT_L, 0x3, 3, TREG_ZERO, 1,
 914    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 915  },
 916  { "v2maxs", TILEGX_OPC_V2MAXS, 0x3, 3, TREG_ZERO, 1,
 917    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 918  },
 919  { "v2maxsi", TILEGX_OPC_V2MAXSI, 0x3, 3, TREG_ZERO, 1,
 920    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 921  },
 922  { "v2mins", TILEGX_OPC_V2MINS, 0x3, 3, TREG_ZERO, 1,
 923    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 924  },
 925  { "v2minsi", TILEGX_OPC_V2MINSI, 0x3, 3, TREG_ZERO, 1,
 926    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 927  },
 928  { "v2mnz", TILEGX_OPC_V2MNZ, 0x3, 3, TREG_ZERO, 1,
 929    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 930  },
 931  { "v2mulfsc", TILEGX_OPC_V2MULFSC, 0x1, 3, TREG_ZERO, 1,
 932    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 933  },
 934  { "v2muls", TILEGX_OPC_V2MULS, 0x1, 3, TREG_ZERO, 1,
 935    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 936  },
 937  { "v2mults", TILEGX_OPC_V2MULTS, 0x1, 3, TREG_ZERO, 1,
 938    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 939  },
 940  { "v2mz", TILEGX_OPC_V2MZ, 0x3, 3, TREG_ZERO, 1,
 941    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 942  },
 943  { "v2packh", TILEGX_OPC_V2PACKH, 0x3, 3, TREG_ZERO, 1,
 944    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 945  },
 946  { "v2packl", TILEGX_OPC_V2PACKL, 0x3, 3, TREG_ZERO, 1,
 947    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 948  },
 949  { "v2packuc", TILEGX_OPC_V2PACKUC, 0x3, 3, TREG_ZERO, 1,
 950    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 951  },
 952  { "v2sadas", TILEGX_OPC_V2SADAS, 0x1, 3, TREG_ZERO, 1,
 953    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 954  },
 955  { "v2sadau", TILEGX_OPC_V2SADAU, 0x1, 3, TREG_ZERO, 1,
 956    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 957  },
 958  { "v2sads", TILEGX_OPC_V2SADS, 0x1, 3, TREG_ZERO, 1,
 959    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 960  },
 961  { "v2sadu", TILEGX_OPC_V2SADU, 0x1, 3, TREG_ZERO, 1,
 962    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 963  },
 964  { "v2shl", TILEGX_OPC_V2SHL, 0x3, 3, TREG_ZERO, 1,
 965    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 966  },
 967  { "v2shli", TILEGX_OPC_V2SHLI, 0x3, 3, TREG_ZERO, 1,
 968    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 969  },
 970  { "v2shlsc", TILEGX_OPC_V2SHLSC, 0x3, 3, TREG_ZERO, 1,
 971    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 972  },
 973  { "v2shrs", TILEGX_OPC_V2SHRS, 0x3, 3, TREG_ZERO, 1,
 974    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 975  },
 976  { "v2shrsi", TILEGX_OPC_V2SHRSI, 0x3, 3, TREG_ZERO, 1,
 977    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 978  },
 979  { "v2shru", TILEGX_OPC_V2SHRU, 0x3, 3, TREG_ZERO, 1,
 980    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 981  },
 982  { "v2shrui", TILEGX_OPC_V2SHRUI, 0x3, 3, TREG_ZERO, 1,
 983    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 984  },
 985  { "v2sub", TILEGX_OPC_V2SUB, 0x3, 3, TREG_ZERO, 1,
 986    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 987  },
 988  { "v2subsc", TILEGX_OPC_V2SUBSC, 0x3, 3, TREG_ZERO, 1,
 989    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 990  },
 991  { "v4add", TILEGX_OPC_V4ADD, 0x3, 3, TREG_ZERO, 1,
 992    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 993  },
 994  { "v4addsc", TILEGX_OPC_V4ADDSC, 0x3, 3, TREG_ZERO, 1,
 995    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 996  },
 997  { "v4int_h", TILEGX_OPC_V4INT_H, 0x3, 3, TREG_ZERO, 1,
 998    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 999  },
1000  { "v4int_l", TILEGX_OPC_V4INT_L, 0x3, 3, TREG_ZERO, 1,
1001    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1002  },
1003  { "v4packsc", TILEGX_OPC_V4PACKSC, 0x3, 3, TREG_ZERO, 1,
1004    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1005  },
1006  { "v4shl", TILEGX_OPC_V4SHL, 0x3, 3, TREG_ZERO, 1,
1007    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1008  },
1009  { "v4shlsc", TILEGX_OPC_V4SHLSC, 0x3, 3, TREG_ZERO, 1,
1010    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1011  },
1012  { "v4shrs", TILEGX_OPC_V4SHRS, 0x3, 3, TREG_ZERO, 1,
1013    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1014  },
1015  { "v4shru", TILEGX_OPC_V4SHRU, 0x3, 3, TREG_ZERO, 1,
1016    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1017  },
1018  { "v4sub", TILEGX_OPC_V4SUB, 0x3, 3, TREG_ZERO, 1,
1019    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1020  },
1021  { "v4subsc", TILEGX_OPC_V4SUBSC, 0x3, 3, TREG_ZERO, 1,
1022    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1023  },
1024  { "wh64", TILEGX_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
1025    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
1026  },
1027  { "xor", TILEGX_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
1028    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1029  },
1030  { "xori", TILEGX_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
1031    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
1032  },
1033  { NULL, TILEGX_OPC_NONE, 0, 0, TREG_ZERO, 0, { { 0, } },
1034  }
1035};
1036#define BITFIELD(start, size) ((start) | (((1 << (size)) - 1) << 6))
1037#define CHILD(array_index) (TILEGX_OPC_NONE + (array_index))
1038
1039static const unsigned short decode_X0_fsm[936] =
1040{
1041  BITFIELD(22, 9) /* index 0 */,
1042  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1043  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1044  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1045  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1046  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1047  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1048  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1049  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1050  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1051  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1052  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1053  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1054  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1055  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1056  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1057  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1058  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1059  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1060  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1061  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1062  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1063  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1064  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1065  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1066  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1067  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1068  CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
1069  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1070  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1071  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1072  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1073  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1074  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1075  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1076  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1077  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1078  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1079  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1080  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1081  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1082  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1083  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1084  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
1085  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1086  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1087  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1088  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BFEXTS,
1089  TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTU,
1090  TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFINS,
1091  TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_MM,
1092  TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_NONE,
1093  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1094  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1095  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1096  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1097  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1098  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1099  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1100  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(528), CHILD(578),
1101  CHILD(583), CHILD(588), CHILD(593), CHILD(598), TILEGX_OPC_NONE,
1102  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1103  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1104  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1105  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1106  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1107  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1108  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1109  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1110  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1111  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1112  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1113  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1114  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1115  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1116  TILEGX_OPC_NONE, CHILD(603), CHILD(620), CHILD(637), CHILD(654), CHILD(671),
1117  CHILD(703), CHILD(797), CHILD(814), CHILD(831), CHILD(848), CHILD(865),
1118  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1119  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1120  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1121  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1122  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1123  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1124  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1125  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1126  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1127  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1128  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1129  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1130  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1131  TILEGX_OPC_NONE, CHILD(889), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1132  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1133  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1134  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1135  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1136  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1137  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1138  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1139  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1140  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1141  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1142  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1143  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1144  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1145  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1146  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1147  TILEGX_OPC_NONE, CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1148  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1149  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1150  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1151  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1152  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1153  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1154  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1155  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1156  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1157  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1158  BITFIELD(6, 2) /* index 513 */,
1159  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
1160  BITFIELD(8, 2) /* index 518 */,
1161  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
1162  BITFIELD(10, 2) /* index 523 */,
1163  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
1164  BITFIELD(20, 2) /* index 528 */,
1165  TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
1166  BITFIELD(6, 2) /* index 533 */,
1167  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
1168  BITFIELD(8, 2) /* index 538 */,
1169  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
1170  BITFIELD(10, 2) /* index 543 */,
1171  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1172  BITFIELD(0, 2) /* index 548 */,
1173  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
1174  BITFIELD(2, 2) /* index 553 */,
1175  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
1176  BITFIELD(4, 2) /* index 558 */,
1177  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
1178  BITFIELD(6, 2) /* index 563 */,
1179  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
1180  BITFIELD(8, 2) /* index 568 */,
1181  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
1182  BITFIELD(10, 2) /* index 573 */,
1183  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1184  BITFIELD(20, 2) /* index 578 */,
1185  TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, TILEGX_OPC_ORI,
1186  BITFIELD(20, 2) /* index 583 */,
1187  TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI, TILEGX_OPC_V1CMPLTSI,
1188  TILEGX_OPC_V1CMPLTUI,
1189  BITFIELD(20, 2) /* index 588 */,
1190  TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI, TILEGX_OPC_V2ADDI,
1191  TILEGX_OPC_V2CMPEQI,
1192  BITFIELD(20, 2) /* index 593 */,
1193  TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI, TILEGX_OPC_V2MAXSI,
1194  TILEGX_OPC_V2MINSI,
1195  BITFIELD(20, 2) /* index 598 */,
1196  TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1197  BITFIELD(18, 4) /* index 603 */,
1198  TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
1199  TILEGX_OPC_AND, TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_CMPEQ,
1200  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1201  TILEGX_OPC_CMPNE, TILEGX_OPC_CMULAF, TILEGX_OPC_CMULA, TILEGX_OPC_CMULFR,
1202  BITFIELD(18, 4) /* index 620 */,
1203  TILEGX_OPC_CMULF, TILEGX_OPC_CMULHR, TILEGX_OPC_CMULH, TILEGX_OPC_CMUL,
1204  TILEGX_OPC_CRC32_32, TILEGX_OPC_CRC32_8, TILEGX_OPC_DBLALIGN2,
1205  TILEGX_OPC_DBLALIGN4, TILEGX_OPC_DBLALIGN6, TILEGX_OPC_DBLALIGN,
1206  TILEGX_OPC_FDOUBLE_ADDSUB, TILEGX_OPC_FDOUBLE_ADD_FLAGS,
1207  TILEGX_OPC_FDOUBLE_MUL_FLAGS, TILEGX_OPC_FDOUBLE_PACK1,
1208  TILEGX_OPC_FDOUBLE_PACK2, TILEGX_OPC_FDOUBLE_SUB_FLAGS,
1209  BITFIELD(18, 4) /* index 637 */,
1210  TILEGX_OPC_FDOUBLE_UNPACK_MAX, TILEGX_OPC_FDOUBLE_UNPACK_MIN,
1211  TILEGX_OPC_FSINGLE_ADD1, TILEGX_OPC_FSINGLE_ADDSUB2,
1212  TILEGX_OPC_FSINGLE_MUL1, TILEGX_OPC_FSINGLE_MUL2, TILEGX_OPC_FSINGLE_PACK2,
1213  TILEGX_OPC_FSINGLE_SUB1, TILEGX_OPC_MNZ, TILEGX_OPC_MULAX,
1214  TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HS_HU, TILEGX_OPC_MULA_HS_LS,
1215  TILEGX_OPC_MULA_HS_LU, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_HU_LS,
1216  BITFIELD(18, 4) /* index 654 */,
1217  TILEGX_OPC_MULA_HU_LU, TILEGX_OPC_MULA_LS_LS, TILEGX_OPC_MULA_LS_LU,
1218  TILEGX_OPC_MULA_LU_LU, TILEGX_OPC_MULX, TILEGX_OPC_MUL_HS_HS,
1219  TILEGX_OPC_MUL_HS_HU, TILEGX_OPC_MUL_HS_LS, TILEGX_OPC_MUL_HS_LU,
1220  TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_HU_LS, TILEGX_OPC_MUL_HU_LU,
1221  TILEGX_OPC_MUL_LS_LS, TILEGX_OPC_MUL_LS_LU, TILEGX_OPC_MUL_LU_LU,
1222  TILEGX_OPC_MZ,
1223  BITFIELD(18, 4) /* index 671 */,
1224  TILEGX_OPC_NOR, CHILD(688), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
1225  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
1226  TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
1227  TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_SHUFFLEBYTES,
1228  TILEGX_OPC_SUBXSC,
1229  BITFIELD(12, 2) /* index 688 */,
1230  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(693),
1231  BITFIELD(14, 2) /* index 693 */,
1232  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(698),
1233  BITFIELD(16, 2) /* index 698 */,
1234  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1235  BITFIELD(18, 4) /* index 703 */,
1236  TILEGX_OPC_SUBX, TILEGX_OPC_SUB, CHILD(720), TILEGX_OPC_V1ADDUC,
1237  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADIFFU, TILEGX_OPC_V1AVGU,
1238  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
1239  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
1240  TILEGX_OPC_V1DDOTPUSA, TILEGX_OPC_V1DDOTPUS, TILEGX_OPC_V1DOTPA,
1241  BITFIELD(12, 4) /* index 720 */,
1242  TILEGX_OPC_NONE, CHILD(737), CHILD(742), CHILD(747), CHILD(752), CHILD(757),
1243  CHILD(762), CHILD(767), CHILD(772), CHILD(777), CHILD(782), CHILD(787),
1244  CHILD(792), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1245  BITFIELD(16, 2) /* index 737 */,
1246  TILEGX_OPC_CLZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1247  BITFIELD(16, 2) /* index 742 */,
1248  TILEGX_OPC_CTZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1249  BITFIELD(16, 2) /* index 747 */,
1250  TILEGX_OPC_FNOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1251  BITFIELD(16, 2) /* index 752 */,
1252  TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1253  BITFIELD(16, 2) /* index 757 */,
1254  TILEGX_OPC_NOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1255  BITFIELD(16, 2) /* index 762 */,
1256  TILEGX_OPC_PCNT, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1257  BITFIELD(16, 2) /* index 767 */,
1258  TILEGX_OPC_REVBITS, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1259  BITFIELD(16, 2) /* index 772 */,
1260  TILEGX_OPC_REVBYTES, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1261  BITFIELD(16, 2) /* index 777 */,
1262  TILEGX_OPC_TBLIDXB0, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1263  BITFIELD(16, 2) /* index 782 */,
1264  TILEGX_OPC_TBLIDXB1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1265  BITFIELD(16, 2) /* index 787 */,
1266  TILEGX_OPC_TBLIDXB2, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1267  BITFIELD(16, 2) /* index 792 */,
1268  TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1269  BITFIELD(18, 4) /* index 797 */,
1270  TILEGX_OPC_V1DOTPUSA, TILEGX_OPC_V1DOTPUS, TILEGX_OPC_V1DOTP,
1271  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1MAXU,
1272  TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MULTU, TILEGX_OPC_V1MULUS,
1273  TILEGX_OPC_V1MULU, TILEGX_OPC_V1MZ, TILEGX_OPC_V1SADAU, TILEGX_OPC_V1SADU,
1274  TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS,
1275  BITFIELD(18, 4) /* index 814 */,
1276  TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC, TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC,
1277  TILEGX_OPC_V2ADD, TILEGX_OPC_V2ADIFFS, TILEGX_OPC_V2AVGS,
1278  TILEGX_OPC_V2CMPEQ, TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU,
1279  TILEGX_OPC_V2CMPLTS, TILEGX_OPC_V2CMPLTU, TILEGX_OPC_V2CMPNE,
1280  TILEGX_OPC_V2DOTPA, TILEGX_OPC_V2DOTP, TILEGX_OPC_V2INT_H,
1281  BITFIELD(18, 4) /* index 831 */,
1282  TILEGX_OPC_V2INT_L, TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ,
1283  TILEGX_OPC_V2MULFSC, TILEGX_OPC_V2MULS, TILEGX_OPC_V2MULTS, TILEGX_OPC_V2MZ,
1284  TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
1285  TILEGX_OPC_V2SADAS, TILEGX_OPC_V2SADAU, TILEGX_OPC_V2SADS,
1286  TILEGX_OPC_V2SADU, TILEGX_OPC_V2SHLSC,
1287  BITFIELD(18, 4) /* index 848 */,
1288  TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU, TILEGX_OPC_V2SUBSC,
1289  TILEGX_OPC_V2SUB, TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
1290  TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
1291  TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
1292  TILEGX_OPC_V4SUB,
1293  BITFIELD(18, 3) /* index 865 */,
1294  CHILD(874), CHILD(877), CHILD(880), CHILD(883), CHILD(886), TILEGX_OPC_NONE,
1295  TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1296  BITFIELD(21, 1) /* index 874 */,
1297  TILEGX_OPC_XOR, TILEGX_OPC_NONE,
1298  BITFIELD(21, 1) /* index 877 */,
1299  TILEGX_OPC_V1DDOTPUA, TILEGX_OPC_NONE,
1300  BITFIELD(21, 1) /* index 880 */,
1301  TILEGX_OPC_V1DDOTPU, TILEGX_OPC_NONE,
1302  BITFIELD(21, 1) /* index 883 */,
1303  TILEGX_OPC_V1DOTPUA, TILEGX_OPC_NONE,
1304  BITFIELD(21, 1) /* index 886 */,
1305  TILEGX_OPC_V1DOTPU, TILEGX_OPC_NONE,
1306  BITFIELD(18, 4) /* index 889 */,
1307  TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
1308  TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
1309  TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
1310  TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1311  TILEGX_OPC_NONE,
1312  BITFIELD(0, 2) /* index 906 */,
1313  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1314  CHILD(911),
1315  BITFIELD(2, 2) /* index 911 */,
1316  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1317  CHILD(916),
1318  BITFIELD(4, 2) /* index 916 */,
1319  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1320  CHILD(921),
1321  BITFIELD(6, 2) /* index 921 */,
1322  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1323  CHILD(926),
1324  BITFIELD(8, 2) /* index 926 */,
1325  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1326  CHILD(931),
1327  BITFIELD(10, 2) /* index 931 */,
1328  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1329  TILEGX_OPC_INFOL,
1330};
1331
1332static const unsigned short decode_X1_fsm[1206] =
1333{
1334  BITFIELD(53, 9) /* index 0 */,
1335  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1336  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1337  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1338  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1339  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1340  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1341  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1342  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1343  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1344  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1345  CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
1346  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1347  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1348  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1349  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1350  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1351  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1352  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1353  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1354  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1355  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1356  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1357  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1358  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1359  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1360  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1361  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
1362  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1363  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1364  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1365  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1366  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1367  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1368  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1369  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BEQZT,
1370  TILEGX_OPC_BEQZT, TILEGX_OPC_BEQZ, TILEGX_OPC_BEQZ, TILEGX_OPC_BGEZT,
1371  TILEGX_OPC_BGEZT, TILEGX_OPC_BGEZ, TILEGX_OPC_BGEZ, TILEGX_OPC_BGTZT,
1372  TILEGX_OPC_BGTZT, TILEGX_OPC_BGTZ, TILEGX_OPC_BGTZ, TILEGX_OPC_BLBCT,
1373  TILEGX_OPC_BLBCT, TILEGX_OPC_BLBC, TILEGX_OPC_BLBC, TILEGX_OPC_BLBST,
1374  TILEGX_OPC_BLBST, TILEGX_OPC_BLBS, TILEGX_OPC_BLBS, TILEGX_OPC_BLEZT,
1375  TILEGX_OPC_BLEZT, TILEGX_OPC_BLEZ, TILEGX_OPC_BLEZ, TILEGX_OPC_BLTZT,
1376  TILEGX_OPC_BLTZT, TILEGX_OPC_BLTZ, TILEGX_OPC_BLTZ, TILEGX_OPC_BNEZT,
1377  TILEGX_OPC_BNEZT, TILEGX_OPC_BNEZ, TILEGX_OPC_BNEZ, CHILD(528), CHILD(578),
1378  CHILD(598), CHILD(663), CHILD(683), CHILD(688), CHILD(693), CHILD(698),
1379  CHILD(703), CHILD(708), CHILD(713), CHILD(718), TILEGX_OPC_NONE,
1380  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1381  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1382  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1383  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1384  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1385  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1386  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1387  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1388  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1389  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1390  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1391  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1392  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_JAL,
1393  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1394  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1395  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1396  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1397  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1398  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1399  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1400  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_J, TILEGX_OPC_J,
1401  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1402  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1403  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1404  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1405  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1406  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1407  CHILD(723), CHILD(740), CHILD(772), CHILD(789), CHILD(1108), CHILD(1125),
1408  CHILD(1142), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1409  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1410  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1411  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1412  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1413  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1414  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1415  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1416  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1417  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1418  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1419  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1420  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1421  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1422  TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1159), TILEGX_OPC_NONE,
1423  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1424  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1425  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1426  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1427  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1428  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1429  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1430  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1431  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1432  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1433  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1434  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1435  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1436  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1437  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1438  TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1176), CHILD(1176), CHILD(1176),
1439  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1440  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1441  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1442  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1443  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1444  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1445  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1446  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1447  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1448  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1449  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1450  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1451  CHILD(1176),
1452  BITFIELD(37, 2) /* index 513 */,
1453  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
1454  BITFIELD(39, 2) /* index 518 */,
1455  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
1456  BITFIELD(41, 2) /* index 523 */,
1457  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
1458  BITFIELD(51, 2) /* index 528 */,
1459  TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
1460  BITFIELD(37, 2) /* index 533 */,
1461  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
1462  BITFIELD(39, 2) /* index 538 */,
1463  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
1464  BITFIELD(41, 2) /* index 543 */,
1465  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1466  BITFIELD(31, 2) /* index 548 */,
1467  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
1468  BITFIELD(33, 2) /* index 553 */,
1469  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
1470  BITFIELD(35, 2) /* index 558 */,
1471  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
1472  BITFIELD(37, 2) /* index 563 */,
1473  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
1474  BITFIELD(39, 2) /* index 568 */,
1475  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
1476  BITFIELD(41, 2) /* index 573 */,
1477  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1478  BITFIELD(51, 2) /* index 578 */,
1479  TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, CHILD(583),
1480  BITFIELD(31, 2) /* index 583 */,
1481  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(588),
1482  BITFIELD(33, 2) /* index 588 */,
1483  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(593),
1484  BITFIELD(35, 2) /* index 593 */,
1485  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD,
1486  TILEGX_OPC_PREFETCH_ADD_L1_FAULT,
1487  BITFIELD(51, 2) /* index 598 */,
1488  CHILD(603), CHILD(618), CHILD(633), CHILD(648),
1489  BITFIELD(31, 2) /* index 603 */,
1490  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(608),
1491  BITFIELD(33, 2) /* index 608 */,
1492  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(613),
1493  BITFIELD(35, 2) /* index 613 */,
1494  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD,
1495  TILEGX_OPC_PREFETCH_ADD_L1,
1496  BITFIELD(31, 2) /* index 618 */,
1497  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(623),
1498  BITFIELD(33, 2) /* index 623 */,
1499  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(628),
1500  BITFIELD(35, 2) /* index 628 */,
1501  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD,
1502  TILEGX_OPC_PREFETCH_ADD_L2_FAULT,
1503  BITFIELD(31, 2) /* index 633 */,
1504  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(638),
1505  BITFIELD(33, 2) /* index 638 */,
1506  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(643),
1507  BITFIELD(35, 2) /* index 643 */,
1508  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD,
1509  TILEGX_OPC_PREFETCH_ADD_L2,
1510  BITFIELD(31, 2) /* index 648 */,
1511  TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, CHILD(653),
1512  BITFIELD(33, 2) /* index 653 */,
1513  TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, CHILD(658),
1514  BITFIELD(35, 2) /* index 658 */,
1515  TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
1516  TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
1517  BITFIELD(51, 2) /* index 663 */,
1518  CHILD(668), TILEGX_OPC_LDNT1S_ADD, TILEGX_OPC_LDNT1U_ADD,
1519  TILEGX_OPC_LDNT2S_ADD,
1520  BITFIELD(31, 2) /* index 668 */,
1521  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(673),
1522  BITFIELD(33, 2) /* index 673 */,
1523  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(678),
1524  BITFIELD(35, 2) /* index 678 */,
1525  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD,
1526  TILEGX_OPC_PREFETCH_ADD_L3,
1527  BITFIELD(51, 2) /* index 683 */,
1528  TILEGX_OPC_LDNT2U_ADD, TILEGX_OPC_LDNT4S_ADD, TILEGX_OPC_LDNT4U_ADD,
1529  TILEGX_OPC_LDNT_ADD,
1530  BITFIELD(51, 2) /* index 688 */,
1531  TILEGX_OPC_LD_ADD, TILEGX_OPC_LDNA_ADD, TILEGX_OPC_MFSPR, TILEGX_OPC_MTSPR,
1532  BITFIELD(51, 2) /* index 693 */,
1533  TILEGX_OPC_ORI, TILEGX_OPC_ST1_ADD, TILEGX_OPC_ST2_ADD, TILEGX_OPC_ST4_ADD,
1534  BITFIELD(51, 2) /* index 698 */,
1535  TILEGX_OPC_STNT1_ADD, TILEGX_OPC_STNT2_ADD, TILEGX_OPC_STNT4_ADD,
1536  TILEGX_OPC_STNT_ADD,
1537  BITFIELD(51, 2) /* index 703 */,
1538  TILEGX_OPC_ST_ADD, TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI,
1539  TILEGX_OPC_V1CMPLTSI,
1540  BITFIELD(51, 2) /* index 708 */,
1541  TILEGX_OPC_V1CMPLTUI, TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI,
1542  TILEGX_OPC_V2ADDI,
1543  BITFIELD(51, 2) /* index 713 */,
1544  TILEGX_OPC_V2CMPEQI, TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI,
1545  TILEGX_OPC_V2MAXSI,
1546  BITFIELD(51, 2) /* index 718 */,
1547  TILEGX_OPC_V2MINSI, TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1548  BITFIELD(49, 4) /* index 723 */,
1549  TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
1550  TILEGX_OPC_AND, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPEXCH4, TILEGX_OPC_CMPEXCH,
1551  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1552  TILEGX_OPC_CMPNE, TILEGX_OPC_DBLALIGN2, TILEGX_OPC_DBLALIGN4,
1553  TILEGX_OPC_DBLALIGN6,
1554  BITFIELD(49, 4) /* index 740 */,
1555  TILEGX_OPC_EXCH4, TILEGX_OPC_EXCH, TILEGX_OPC_FETCHADD4,
1556  TILEGX_OPC_FETCHADDGEZ4, TILEGX_OPC_FETCHADDGEZ, TILEGX_OPC_FETCHADD,
1557  TILEGX_OPC_FETCHAND4, TILEGX_OPC_FETCHAND, TILEGX_OPC_FETCHOR4,
1558  TILEGX_OPC_FETCHOR, TILEGX_OPC_MNZ, TILEGX_OPC_MZ, TILEGX_OPC_NOR,
1559  CHILD(757), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
1560  BITFIELD(43, 2) /* index 757 */,
1561  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(762),
1562  BITFIELD(45, 2) /* index 762 */,
1563  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(767),
1564  BITFIELD(47, 2) /* index 767 */,
1565  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1566  BITFIELD(49, 4) /* index 772 */,
1567  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
1568  TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
1569  TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_ST1,
1570  TILEGX_OPC_ST2, TILEGX_OPC_ST4, TILEGX_OPC_STNT1, TILEGX_OPC_STNT2,
1571  TILEGX_OPC_STNT4,
1572  BITFIELD(46, 7) /* index 789 */,
1573  TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
1574  TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
1575  TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST,
1576  TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_SUBXSC,
1577  TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC,
1578  TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBX,
1579  TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX,
1580  TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
1581  TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB,
1582  TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, CHILD(918), CHILD(927),
1583  CHILD(1006), CHILD(1090), CHILD(1099), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1584  TILEGX_OPC_NONE, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
1585  TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
1586  TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
1587  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
1588  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
1589  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
1590  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
1591  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
1592  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
1593  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
1594  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
1595  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
1596  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
1597  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
1598  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
1599  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
1600  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
1601  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
1602  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
1603  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
1604  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
1605  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
1606  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
1607  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
1608  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
1609  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
1610  BITFIELD(43, 3) /* index 918 */,
1611  TILEGX_OPC_NONE, TILEGX_OPC_DRAIN, TILEGX_OPC_DTLBPR, TILEGX_OPC_FINV,
1612  TILEGX_OPC_FLUSHWB, TILEGX_OPC_FLUSH, TILEGX_OPC_FNOP, TILEGX_OPC_ICOH,
1613  BITFIELD(43, 3) /* index 927 */,
1614  CHILD(936), TILEGX_OPC_INV, TILEGX_OPC_IRET, TILEGX_OPC_JALRP,
1615  TILEGX_OPC_JALR, TILEGX_OPC_JRP, TILEGX_OPC_JR, CHILD(991),
1616  BITFIELD(31, 2) /* index 936 */,
1617  CHILD(941), CHILD(966), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1618  BITFIELD(33, 2) /* index 941 */,
1619  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(946),
1620  BITFIELD(35, 2) /* index 946 */,
1621  TILEGX_OPC_ILL, CHILD(951), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1622  BITFIELD(37, 2) /* index 951 */,
1623  TILEGX_OPC_ILL, CHILD(956), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1624  BITFIELD(39, 2) /* index 956 */,
1625  TILEGX_OPC_ILL, CHILD(961), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1626  BITFIELD(41, 2) /* index 961 */,
1627  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_BPT, TILEGX_OPC_ILL,
1628  BITFIELD(33, 2) /* index 966 */,
1629  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(971),
1630  BITFIELD(35, 2) /* index 971 */,
1631  TILEGX_OPC_ILL, CHILD(976), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1632  BITFIELD(37, 2) /* index 976 */,
1633  TILEGX_OPC_ILL, CHILD(981), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1634  BITFIELD(39, 2) /* index 981 */,
1635  TILEGX_OPC_ILL, CHILD(986), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1636  BITFIELD(41, 2) /* index 986 */,
1637  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_RAISE, TILEGX_OPC_ILL,
1638  BITFIELD(31, 2) /* index 991 */,
1639  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(996),
1640  BITFIELD(33, 2) /* index 996 */,
1641  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1001),
1642  BITFIELD(35, 2) /* index 1001 */,
1643  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
1644  TILEGX_OPC_PREFETCH_L1_FAULT,
1645  BITFIELD(43, 3) /* index 1006 */,
1646  CHILD(1015), CHILD(1030), CHILD(1045), CHILD(1060), CHILD(1075),
1647  TILEGX_OPC_LDNA, TILEGX_OPC_LDNT1S, TILEGX_OPC_LDNT1U,
1648  BITFIELD(31, 2) /* index 1015 */,
1649  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1020),
1650  BITFIELD(33, 2) /* index 1020 */,
1651  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1025),
1652  BITFIELD(35, 2) /* index 1025 */,
1653  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
1654  BITFIELD(31, 2) /* index 1030 */,
1655  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1035),
1656  BITFIELD(33, 2) /* index 1035 */,
1657  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1040),
1658  BITFIELD(35, 2) /* index 1040 */,
1659  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
1660  TILEGX_OPC_PREFETCH_L2_FAULT,
1661  BITFIELD(31, 2) /* index 1045 */,
1662  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1050),
1663  BITFIELD(33, 2) /* index 1050 */,
1664  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1055),
1665  BITFIELD(35, 2) /* index 1055 */,
1666  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
1667  BITFIELD(31, 2) /* index 1060 */,
1668  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1065),
1669  BITFIELD(33, 2) /* index 1065 */,
1670  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1070),
1671  BITFIELD(35, 2) /* index 1070 */,
1672  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S,
1673  TILEGX_OPC_PREFETCH_L3_FAULT,
1674  BITFIELD(31, 2) /* index 1075 */,
1675  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1080),
1676  BITFIELD(33, 2) /* index 1080 */,
1677  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1085),
1678  BITFIELD(35, 2) /* index 1085 */,
1679  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
1680  BITFIELD(43, 3) /* index 1090 */,
1681  TILEGX_OPC_LDNT2S, TILEGX_OPC_LDNT2U, TILEGX_OPC_LDNT4S, TILEGX_OPC_LDNT4U,
1682  TILEGX_OPC_LDNT, TILEGX_OPC_LD, TILEGX_OPC_LNK, TILEGX_OPC_MF,
1683  BITFIELD(43, 3) /* index 1099 */,
1684  TILEGX_OPC_NAP, TILEGX_OPC_NOP, TILEGX_OPC_SWINT0, TILEGX_OPC_SWINT1,
1685  TILEGX_OPC_SWINT2, TILEGX_OPC_SWINT3, TILEGX_OPC_WH64, TILEGX_OPC_NONE,
1686  BITFIELD(49, 4) /* index 1108 */,
1687  TILEGX_OPC_V1MAXU, TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MZ,
1688  TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS, TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC,
1689  TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC, TILEGX_OPC_V2ADD, TILEGX_OPC_V2CMPEQ,
1690  TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU, TILEGX_OPC_V2CMPLTS,
1691  TILEGX_OPC_V2CMPLTU,
1692  BITFIELD(49, 4) /* index 1125 */,
1693  TILEGX_OPC_V2CMPNE, TILEGX_OPC_V2INT_H, TILEGX_OPC_V2INT_L,
1694  TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ, TILEGX_OPC_V2MZ,
1695  TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
1696  TILEGX_OPC_V2SHLSC, TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU,
1697  TILEGX_OPC_V2SUBSC, TILEGX_OPC_V2SUB,
1698  BITFIELD(49, 4) /* index 1142 */,
1699  TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
1700  TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
1701  TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
1702  TILEGX_OPC_V4SUB, TILEGX_OPC_XOR, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1703  TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1704  BITFIELD(49, 4) /* index 1159 */,
1705  TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
1706  TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
1707  TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
1708  TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1709  TILEGX_OPC_NONE,
1710  BITFIELD(31, 2) /* index 1176 */,
1711  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1712  CHILD(1181),
1713  BITFIELD(33, 2) /* index 1181 */,
1714  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1715  CHILD(1186),
1716  BITFIELD(35, 2) /* index 1186 */,
1717  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1718  CHILD(1191),
1719  BITFIELD(37, 2) /* index 1191 */,
1720  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1721  CHILD(1196),
1722  BITFIELD(39, 2) /* index 1196 */,
1723  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1724  CHILD(1201),
1725  BITFIELD(41, 2) /* index 1201 */,
1726  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1727  TILEGX_OPC_INFOL,
1728};
1729
1730static const unsigned short decode_Y0_fsm[178] =
1731{
1732  BITFIELD(27, 4) /* index 0 */,
1733  CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
1734  TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(118), CHILD(123),
1735  CHILD(128), CHILD(133), CHILD(153), CHILD(158), CHILD(163), CHILD(168),
1736  CHILD(173),
1737  BITFIELD(6, 2) /* index 17 */,
1738  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
1739  BITFIELD(8, 2) /* index 22 */,
1740  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
1741  BITFIELD(10, 2) /* index 27 */,
1742  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1743  BITFIELD(0, 2) /* index 32 */,
1744  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
1745  BITFIELD(2, 2) /* index 37 */,
1746  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
1747  BITFIELD(4, 2) /* index 42 */,
1748  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
1749  BITFIELD(6, 2) /* index 47 */,
1750  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
1751  BITFIELD(8, 2) /* index 52 */,
1752  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
1753  BITFIELD(10, 2) /* index 57 */,
1754  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1755  BITFIELD(18, 2) /* index 62 */,
1756  TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
1757  BITFIELD(15, 5) /* index 67 */,
1758  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
1759  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
1760  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD,
1761  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
1762  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
1763  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
1764  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
1765  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(100),
1766  CHILD(109), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1767  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1768  BITFIELD(12, 3) /* index 100 */,
1769  TILEGX_OPC_NONE, TILEGX_OPC_CLZ, TILEGX_OPC_CTZ, TILEGX_OPC_FNOP,
1770  TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NOP, TILEGX_OPC_PCNT,
1771  TILEGX_OPC_REVBITS,
1772  BITFIELD(12, 3) /* index 109 */,
1773  TILEGX_OPC_REVBYTES, TILEGX_OPC_TBLIDXB0, TILEGX_OPC_TBLIDXB1,
1774  TILEGX_OPC_TBLIDXB2, TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1775  TILEGX_OPC_NONE,
1776  BITFIELD(18, 2) /* index 118 */,
1777  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1778  BITFIELD(18, 2) /* index 123 */,
1779  TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE, TILEGX_OPC_MULAX, TILEGX_OPC_MULX,
1780  BITFIELD(18, 2) /* index 128 */,
1781  TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
1782  BITFIELD(18, 2) /* index 133 */,
1783  TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(138), TILEGX_OPC_XOR,
1784  BITFIELD(12, 2) /* index 138 */,
1785  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(143),
1786  BITFIELD(14, 2) /* index 143 */,
1787  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(148),
1788  BITFIELD(16, 2) /* index 148 */,
1789  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1790  BITFIELD(18, 2) /* index 153 */,
1791  TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
1792  BITFIELD(18, 2) /* index 158 */,
1793  TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
1794  TILEGX_OPC_SHL3ADDX,
1795  BITFIELD(18, 2) /* index 163 */,
1796  TILEGX_OPC_MUL_HS_HS, TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_LS_LS,
1797  TILEGX_OPC_MUL_LU_LU,
1798  BITFIELD(18, 2) /* index 168 */,
1799  TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_LS_LS,
1800  TILEGX_OPC_MULA_LU_LU,
1801  BITFIELD(18, 2) /* index 173 */,
1802  TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
1803};
1804
1805static const unsigned short decode_Y1_fsm[167] =
1806{
1807  BITFIELD(58, 4) /* index 0 */,
1808  TILEGX_OPC_NONE, CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
1809  TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(117), CHILD(122),
1810  CHILD(127), CHILD(132), CHILD(152), CHILD(157), CHILD(162), TILEGX_OPC_NONE,
1811  BITFIELD(37, 2) /* index 17 */,
1812  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
1813  BITFIELD(39, 2) /* index 22 */,
1814  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
1815  BITFIELD(41, 2) /* index 27 */,
1816  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1817  BITFIELD(31, 2) /* index 32 */,
1818  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
1819  BITFIELD(33, 2) /* index 37 */,
1820  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
1821  BITFIELD(35, 2) /* index 42 */,
1822  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
1823  BITFIELD(37, 2) /* index 47 */,
1824  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
1825  BITFIELD(39, 2) /* index 52 */,
1826  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
1827  BITFIELD(41, 2) /* index 57 */,
1828  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1829  BITFIELD(49, 2) /* index 62 */,
1830  TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
1831  BITFIELD(47, 4) /* index 67 */,
1832  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
1833  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
1834  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD,
1835  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(84),
1836  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1837  BITFIELD(43, 3) /* index 84 */,
1838  CHILD(93), CHILD(96), CHILD(99), CHILD(102), CHILD(105), CHILD(108),
1839  CHILD(111), CHILD(114),
1840  BITFIELD(46, 1) /* index 93 */,
1841  TILEGX_OPC_NONE, TILEGX_OPC_FNOP,
1842  BITFIELD(46, 1) /* index 96 */,
1843  TILEGX_OPC_NONE, TILEGX_OPC_ILL,
1844  BITFIELD(46, 1) /* index 99 */,
1845  TILEGX_OPC_NONE, TILEGX_OPC_JALRP,
1846  BITFIELD(46, 1) /* index 102 */,
1847  TILEGX_OPC_NONE, TILEGX_OPC_JALR,
1848  BITFIELD(46, 1) /* index 105 */,
1849  TILEGX_OPC_NONE, TILEGX_OPC_JRP,
1850  BITFIELD(46, 1) /* index 108 */,
1851  TILEGX_OPC_NONE, TILEGX_OPC_JR,
1852  BITFIELD(46, 1) /* index 111 */,
1853  TILEGX_OPC_NONE, TILEGX_OPC_LNK,
1854  BITFIELD(46, 1) /* index 114 */,
1855  TILEGX_OPC_NONE, TILEGX_OPC_NOP,
1856  BITFIELD(49, 2) /* index 117 */,
1857  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1858  BITFIELD(49, 2) /* index 122 */,
1859  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE,
1860  BITFIELD(49, 2) /* index 127 */,
1861  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
1862  BITFIELD(49, 2) /* index 132 */,
1863  TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(137), TILEGX_OPC_XOR,
1864  BITFIELD(43, 2) /* index 137 */,
1865  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(142),
1866  BITFIELD(45, 2) /* index 142 */,
1867  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(147),
1868  BITFIELD(47, 2) /* index 147 */,
1869  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1870  BITFIELD(49, 2) /* index 152 */,
1871  TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
1872  BITFIELD(49, 2) /* index 157 */,
1873  TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
1874  TILEGX_OPC_SHL3ADDX,
1875  BITFIELD(49, 2) /* index 162 */,
1876  TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
1877};
1878
1879static const unsigned short decode_Y2_fsm[118] =
1880{
1881  BITFIELD(62, 2) /* index 0 */,
1882  TILEGX_OPC_NONE, CHILD(5), CHILD(66), CHILD(109),
1883  BITFIELD(55, 3) /* index 5 */,
1884  CHILD(14), CHILD(14), CHILD(14), CHILD(17), CHILD(40), CHILD(40), CHILD(40),
1885  CHILD(43),
1886  BITFIELD(26, 1) /* index 14 */,
1887  TILEGX_OPC_LD1S, TILEGX_OPC_LD1U,
1888  BITFIELD(26, 1) /* index 17 */,
1889  CHILD(20), CHILD(30),
1890  BITFIELD(51, 2) /* index 20 */,
1891  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(25),
1892  BITFIELD(53, 2) /* index 25 */,
1893  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
1894  TILEGX_OPC_PREFETCH_L1_FAULT,
1895  BITFIELD(51, 2) /* index 30 */,
1896  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(35),
1897  BITFIELD(53, 2) /* index 35 */,
1898  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
1899  BITFIELD(26, 1) /* index 40 */,
1900  TILEGX_OPC_LD2S, TILEGX_OPC_LD2U,
1901  BITFIELD(26, 1) /* index 43 */,
1902  CHILD(46), CHILD(56),
1903  BITFIELD(51, 2) /* index 46 */,
1904  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(51),
1905  BITFIELD(53, 2) /* index 51 */,
1906  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
1907  TILEGX_OPC_PREFETCH_L2_FAULT,
1908  BITFIELD(51, 2) /* index 56 */,
1909  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(61),
1910  BITFIELD(53, 2) /* index 61 */,
1911  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
1912  BITFIELD(56, 2) /* index 66 */,
1913  CHILD(71), CHILD(74), CHILD(90), CHILD(93),
1914  BITFIELD(26, 1) /* index 71 */,
1915  TILEGX_OPC_NONE, TILEGX_OPC_LD4S,
1916  BITFIELD(26, 1) /* index 74 */,
1917  TILEGX_OPC_NONE, CHILD(77),
1918  BITFIELD(51, 2) /* index 77 */,
1919  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(82),
1920  BITFIELD(53, 2) /* index 82 */,
1921  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(87),
1922  BITFIELD(55, 1) /* index 87 */,
1923  TILEGX_OPC_LD4S, TILEGX_OPC_PREFETCH_L3_FAULT,
1924  BITFIELD(26, 1) /* index 90 */,
1925  TILEGX_OPC_LD4U, TILEGX_OPC_LD,
1926  BITFIELD(26, 1) /* index 93 */,
1927  CHILD(96), TILEGX_OPC_LD,
1928  BITFIELD(51, 2) /* index 96 */,
1929  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(101),
1930  BITFIELD(53, 2) /* index 101 */,
1931  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(106),
1932  BITFIELD(55, 1) /* index 106 */,
1933  TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
1934  BITFIELD(26, 1) /* index 109 */,
1935  CHILD(112), CHILD(115),
1936  BITFIELD(57, 1) /* index 112 */,
1937  TILEGX_OPC_ST1, TILEGX_OPC_ST4,
1938  BITFIELD(57, 1) /* index 115 */,
1939  TILEGX_OPC_ST2, TILEGX_OPC_ST,
1940};
1941
1942#undef BITFIELD
1943#undef CHILD
1944const unsigned short * const
1945tilegx_bundle_decoder_fsms[TILEGX_NUM_PIPELINE_ENCODINGS] =
1946{
1947  decode_X0_fsm,
1948  decode_X1_fsm,
1949  decode_Y0_fsm,
1950  decode_Y1_fsm,
1951  decode_Y2_fsm
1952};
1953const struct tilegx_operand tilegx_operands[35] =
1954{
1955  {
1956    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X0),
1957    8, 1, 0, 0, 0, 0,
1958    create_Imm8_X0, get_Imm8_X0
1959  },
1960  {
1961    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X1),
1962    8, 1, 0, 0, 0, 0,
1963    create_Imm8_X1, get_Imm8_X1
1964  },
1965  {
1966    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y0),
1967    8, 1, 0, 0, 0, 0,
1968    create_Imm8_Y0, get_Imm8_Y0
1969  },
1970  {
1971    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y1),
1972    8, 1, 0, 0, 0, 0,
1973    create_Imm8_Y1, get_Imm8_Y1
1974  },
1975  {
1976    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X0_HW0_LAST),
1977    16, 1, 0, 0, 0, 0,
1978    create_Imm16_X0, get_Imm16_X0
1979  },
1980  {
1981    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X1_HW0_LAST),
1982    16, 1, 0, 0, 0, 0,
1983    create_Imm16_X1, get_Imm16_X1
1984  },
1985  {
1986    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1987    6, 0, 0, 1, 0, 0,
1988    create_Dest_X0, get_Dest_X0
1989  },
1990  {
1991    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1992    6, 0, 1, 0, 0, 0,
1993    create_SrcA_X0, get_SrcA_X0
1994  },
1995  {
1996    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1997    6, 0, 0, 1, 0, 0,
1998    create_Dest_X1, get_Dest_X1
1999  },
2000  {
2001    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2002    6, 0, 1, 0, 0, 0,
2003    create_SrcA_X1, get_SrcA_X1
2004  },
2005  {
2006    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2007    6, 0, 0, 1, 0, 0,
2008    create_Dest_Y0, get_Dest_Y0
2009  },
2010  {
2011    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2012    6, 0, 1, 0, 0, 0,
2013    create_SrcA_Y0, get_SrcA_Y0
2014  },
2015  {
2016    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2017    6, 0, 0, 1, 0, 0,
2018    create_Dest_Y1, get_Dest_Y1
2019  },
2020  {
2021    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2022    6, 0, 1, 0, 0, 0,
2023    create_SrcA_Y1, get_SrcA_Y1
2024  },
2025  {
2026    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2027    6, 0, 1, 0, 0, 0,
2028    create_SrcA_Y2, get_SrcA_Y2
2029  },
2030  {
2031    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2032    6, 0, 1, 1, 0, 0,
2033    create_SrcA_X1, get_SrcA_X1
2034  },
2035  {
2036    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2037    6, 0, 1, 0, 0, 0,
2038    create_SrcB_X0, get_SrcB_X0
2039  },
2040  {
2041    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2042    6, 0, 1, 0, 0, 0,
2043    create_SrcB_X1, get_SrcB_X1
2044  },
2045  {
2046    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2047    6, 0, 1, 0, 0, 0,
2048    create_SrcB_Y0, get_SrcB_Y0
2049  },
2050  {
2051    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2052    6, 0, 1, 0, 0, 0,
2053    create_SrcB_Y1, get_SrcB_Y1
2054  },
2055  {
2056    TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_BROFF_X1),
2057    17, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
2058    create_BrOff_X1, get_BrOff_X1
2059  },
2060  {
2061    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_MMSTART_X0),
2062    6, 0, 0, 0, 0, 0,
2063    create_BFStart_X0, get_BFStart_X0
2064  },
2065  {
2066    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_MMEND_X0),
2067    6, 0, 0, 0, 0, 0,
2068    create_BFEnd_X0, get_BFEnd_X0
2069  },
2070  {
2071    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2072    6, 0, 1, 1, 0, 0,
2073    create_Dest_X0, get_Dest_X0
2074  },
2075  {
2076    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2077    6, 0, 1, 1, 0, 0,
2078    create_Dest_Y0, get_Dest_Y0
2079  },
2080  {
2081    TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_JUMPOFF_X1),
2082    27, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
2083    create_JumpOff_X1, get_JumpOff_X1
2084  },
2085  {
2086    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2087    6, 0, 0, 1, 0, 0,
2088    create_SrcBDest_Y2, get_SrcBDest_Y2
2089  },
2090  {
2091    TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MF_IMM14_X1),
2092    14, 0, 0, 0, 0, 0,
2093    create_MF_Imm14_X1, get_MF_Imm14_X1
2094  },
2095  {
2096    TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MT_IMM14_X1),
2097    14, 0, 0, 0, 0, 0,
2098    create_MT_Imm14_X1, get_MT_Imm14_X1
2099  },
2100  {
2101    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X0),
2102    6, 0, 0, 0, 0, 0,
2103    create_ShAmt_X0, get_ShAmt_X0
2104  },
2105  {
2106    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X1),
2107    6, 0, 0, 0, 0, 0,
2108    create_ShAmt_X1, get_ShAmt_X1
2109  },
2110  {
2111    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y0),
2112    6, 0, 0, 0, 0, 0,
2113    create_ShAmt_Y0, get_ShAmt_Y0
2114  },
2115  {
2116    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y1),
2117    6, 0, 0, 0, 0, 0,
2118    create_ShAmt_Y1, get_ShAmt_Y1
2119  },
2120  {
2121    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2122    6, 0, 1, 0, 0, 0,
2123    create_SrcBDest_Y2, get_SrcBDest_Y2
2124  },
2125  {
2126    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_DEST_IMM8_X1),
2127    8, 1, 0, 0, 0, 0,
2128    create_Dest_Imm8_X1, get_Dest_Imm8_X1
2129  }
2130};
2131
2132
2133
2134
2135/* Given a set of bundle bits and the lookup FSM for a specific pipe,
2136 * returns which instruction the bundle contains in that pipe.
2137 */
2138static const struct tilegx_opcode *
2139find_opcode(tilegx_bundle_bits bits, const unsigned short *table)
2140{
2141  int index = 0;
2142
2143  while (1)
2144  {
2145    unsigned short bitspec = table[index];
2146    unsigned int bitfield =
2147      ((unsigned int)(bits >> (bitspec & 63))) & (bitspec >> 6);
2148
2149    unsigned short next = table[index + 1 + bitfield];
2150    if (next <= TILEGX_OPC_NONE)
2151      return &tilegx_opcodes[next];
2152
2153    index = next - TILEGX_OPC_NONE;
2154  }
2155}
2156
2157
2158int
2159parse_insn_tilegx(tilegx_bundle_bits bits,
2160                  unsigned long long pc,
2161                  struct tilegx_decoded_instruction
2162                  decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE])
2163{
2164  int num_instructions = 0;
2165  int pipe;
2166
2167  int min_pipe, max_pipe;
2168  if ((bits & TILEGX_BUNDLE_MODE_MASK) == 0)
2169  {
2170    min_pipe = TILEGX_PIPELINE_X0;
2171    max_pipe = TILEGX_PIPELINE_X1;
2172  }
2173  else
2174  {
2175    min_pipe = TILEGX_PIPELINE_Y0;
2176    max_pipe = TILEGX_PIPELINE_Y2;
2177  }
2178
2179  /* For each pipe, find an instruction that fits. */
2180  for (pipe = min_pipe; pipe <= max_pipe; pipe++)
2181  {
2182    const struct tilegx_opcode *opc;
2183    struct tilegx_decoded_instruction *d;
2184    int i;
2185
2186    d = &decoded[num_instructions++];
2187    opc = find_opcode (bits, tilegx_bundle_decoder_fsms[pipe]);
2188    d->opcode = opc;
2189
2190    /* Decode each operand, sign extending, etc. as appropriate. */
2191    for (i = 0; i < opc->num_operands; i++)
2192    {
2193      const struct tilegx_operand *op =
2194        &tilegx_operands[opc->operands[pipe][i]];
2195      int raw_opval = op->extract (bits);
2196      long long opval;
2197
2198      if (op->is_signed)
2199      {
2200        /* Sign-extend the operand. */
2201        int shift = (int)((sizeof(int) * 8) - op->num_bits);
2202        raw_opval = (raw_opval << shift) >> shift;
2203      }
2204
2205      /* Adjust PC-relative scaled branch offsets. */
2206      if (op->type == TILEGX_OP_TYPE_ADDRESS)
2207        opval = (raw_opval * TILEGX_BUNDLE_SIZE_IN_BYTES) + pc;
2208      else
2209        opval = raw_opval;
2210
2211      /* Record the final value. */
2212      d->operands[i] = op;
2213      d->operand_values[i] = opval;
2214    }
2215  }
2216
2217  return num_instructions;
2218}
v3.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   1/* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else. */
   2#define BFD_RELOC(x) -1
   3
   4/* Special registers. */
   5#define TREG_LR 55
   6#define TREG_SN 56
   7#define TREG_ZERO 63
   8
   9/* FIXME: Rename this. */
  10#include <asm/opcode-tile_64.h>
  11
  12#include <linux/stddef.h>
 
  13
  14const struct tilegx_opcode tilegx_opcodes[334] =
  15{
  16 { "bpt", TILEGX_OPC_BPT, 0x2, 0, TREG_ZERO, 0,
  17    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
  18  },
  19  { "info", TILEGX_OPC_INFO, 0xf, 1, TREG_ZERO, 1,
  20    { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } },
  21  },
  22  { "infol", TILEGX_OPC_INFOL, 0x3, 1, TREG_ZERO, 1,
  23    { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } },
  24  },
  25  { "move", TILEGX_OPC_MOVE, 0xf, 2, TREG_ZERO, 1,
  26    { { 6, 7 }, { 8, 9 }, { 10, 11 }, { 12, 13 }, { 0, } },
  27  },
  28  { "movei", TILEGX_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1,
  29    { { 6, 0 }, { 8, 1 }, { 10, 2 }, { 12, 3 }, { 0, } },
  30  },
  31  { "moveli", TILEGX_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1,
  32    { { 6, 4 }, { 8, 5 }, { 0, }, { 0, }, { 0, } },
  33  },
  34  { "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1,
  35    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  36  },
  37  { "prefetch_add_l1", TILEGX_OPC_PREFETCH_ADD_L1, 0x2, 2, TREG_ZERO, 1,
  38    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  39  },
  40  { "prefetch_add_l1_fault", TILEGX_OPC_PREFETCH_ADD_L1_FAULT, 0x2, 2, TREG_ZERO, 1,
  41    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  42  },
  43  { "prefetch_add_l2", TILEGX_OPC_PREFETCH_ADD_L2, 0x2, 2, TREG_ZERO, 1,
  44    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  45  },
  46  { "prefetch_add_l2_fault", TILEGX_OPC_PREFETCH_ADD_L2_FAULT, 0x2, 2, TREG_ZERO, 1,
  47    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  48  },
  49  { "prefetch_add_l3", TILEGX_OPC_PREFETCH_ADD_L3, 0x2, 2, TREG_ZERO, 1,
  50    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  51  },
  52  { "prefetch_add_l3_fault", TILEGX_OPC_PREFETCH_ADD_L3_FAULT, 0x2, 2, TREG_ZERO, 1,
  53    { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } },
  54  },
  55  { "prefetch_l1", TILEGX_OPC_PREFETCH_L1, 0x12, 1, TREG_ZERO, 1,
  56    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  57  },
  58  { "prefetch_l1_fault", TILEGX_OPC_PREFETCH_L1_FAULT, 0x12, 1, TREG_ZERO, 1,
  59    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  60  },
  61  { "prefetch_l2", TILEGX_OPC_PREFETCH_L2, 0x12, 1, TREG_ZERO, 1,
  62    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  63  },
  64  { "prefetch_l2_fault", TILEGX_OPC_PREFETCH_L2_FAULT, 0x12, 1, TREG_ZERO, 1,
  65    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  66  },
  67  { "prefetch_l3", TILEGX_OPC_PREFETCH_L3, 0x12, 1, TREG_ZERO, 1,
  68    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  69  },
  70  { "prefetch_l3_fault", TILEGX_OPC_PREFETCH_L3_FAULT, 0x12, 1, TREG_ZERO, 1,
  71    { { 0, }, { 9 }, { 0, }, { 0, }, { 14 } },
  72  },
  73  { "raise", TILEGX_OPC_RAISE, 0x2, 0, TREG_ZERO, 1,
  74    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
  75  },
  76  { "add", TILEGX_OPC_ADD, 0xf, 3, TREG_ZERO, 1,
  77    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
  78  },
  79  { "addi", TILEGX_OPC_ADDI, 0xf, 3, TREG_ZERO, 1,
  80    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
  81  },
  82  { "addli", TILEGX_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1,
  83    { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
  84  },
  85  { "addx", TILEGX_OPC_ADDX, 0xf, 3, TREG_ZERO, 1,
  86    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
  87  },
  88  { "addxi", TILEGX_OPC_ADDXI, 0xf, 3, TREG_ZERO, 1,
  89    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
  90  },
  91  { "addxli", TILEGX_OPC_ADDXLI, 0x3, 3, TREG_ZERO, 1,
  92    { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
  93  },
  94  { "addxsc", TILEGX_OPC_ADDXSC, 0x3, 3, TREG_ZERO, 1,
  95    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
  96  },
  97  { "and", TILEGX_OPC_AND, 0xf, 3, TREG_ZERO, 1,
  98    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
  99  },
 100  { "andi", TILEGX_OPC_ANDI, 0xf, 3, TREG_ZERO, 1,
 101    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 102  },
 103  { "beqz", TILEGX_OPC_BEQZ, 0x2, 2, TREG_ZERO, 1,
 104    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 105  },
 106  { "beqzt", TILEGX_OPC_BEQZT, 0x2, 2, TREG_ZERO, 1,
 107    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 108  },
 109  { "bfexts", TILEGX_OPC_BFEXTS, 0x1, 4, TREG_ZERO, 1,
 110    { { 6, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 111  },
 112  { "bfextu", TILEGX_OPC_BFEXTU, 0x1, 4, TREG_ZERO, 1,
 113    { { 6, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 114  },
 115  { "bfins", TILEGX_OPC_BFINS, 0x1, 4, TREG_ZERO, 1,
 116    { { 23, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 117  },
 118  { "bgez", TILEGX_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1,
 119    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 120  },
 121  { "bgezt", TILEGX_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1,
 122    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 123  },
 124  { "bgtz", TILEGX_OPC_BGTZ, 0x2, 2, TREG_ZERO, 1,
 125    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 126  },
 127  { "bgtzt", TILEGX_OPC_BGTZT, 0x2, 2, TREG_ZERO, 1,
 128    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 129  },
 130  { "blbc", TILEGX_OPC_BLBC, 0x2, 2, TREG_ZERO, 1,
 131    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 132  },
 133  { "blbct", TILEGX_OPC_BLBCT, 0x2, 2, TREG_ZERO, 1,
 134    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 135  },
 136  { "blbs", TILEGX_OPC_BLBS, 0x2, 2, TREG_ZERO, 1,
 137    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 138  },
 139  { "blbst", TILEGX_OPC_BLBST, 0x2, 2, TREG_ZERO, 1,
 140    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 141  },
 142  { "blez", TILEGX_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1,
 143    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 144  },
 145  { "blezt", TILEGX_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1,
 146    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 147  },
 148  { "bltz", TILEGX_OPC_BLTZ, 0x2, 2, TREG_ZERO, 1,
 149    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 150  },
 151  { "bltzt", TILEGX_OPC_BLTZT, 0x2, 2, TREG_ZERO, 1,
 152    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 153  },
 154  { "bnez", TILEGX_OPC_BNEZ, 0x2, 2, TREG_ZERO, 1,
 155    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 156  },
 157  { "bnezt", TILEGX_OPC_BNEZT, 0x2, 2, TREG_ZERO, 1,
 158    { { 0, }, { 9, 20 }, { 0, }, { 0, }, { 0, } },
 159  },
 160  { "clz", TILEGX_OPC_CLZ, 0x5, 2, TREG_ZERO, 1,
 161    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 162  },
 163  { "cmoveqz", TILEGX_OPC_CMOVEQZ, 0x5, 3, TREG_ZERO, 1,
 164    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 165  },
 166  { "cmovnez", TILEGX_OPC_CMOVNEZ, 0x5, 3, TREG_ZERO, 1,
 167    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 168  },
 169  { "cmpeq", TILEGX_OPC_CMPEQ, 0xf, 3, TREG_ZERO, 1,
 170    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 171  },
 172  { "cmpeqi", TILEGX_OPC_CMPEQI, 0xf, 3, TREG_ZERO, 1,
 173    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 174  },
 175  { "cmpexch", TILEGX_OPC_CMPEXCH, 0x2, 3, TREG_ZERO, 1,
 176    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 177  },
 178  { "cmpexch4", TILEGX_OPC_CMPEXCH4, 0x2, 3, TREG_ZERO, 1,
 179    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 180  },
 181  { "cmples", TILEGX_OPC_CMPLES, 0xf, 3, TREG_ZERO, 1,
 182    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 183  },
 184  { "cmpleu", TILEGX_OPC_CMPLEU, 0xf, 3, TREG_ZERO, 1,
 185    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 186  },
 187  { "cmplts", TILEGX_OPC_CMPLTS, 0xf, 3, TREG_ZERO, 1,
 188    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 189  },
 190  { "cmpltsi", TILEGX_OPC_CMPLTSI, 0xf, 3, TREG_ZERO, 1,
 191    { { 6, 7, 0 }, { 8, 9, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } },
 192  },
 193  { "cmpltu", TILEGX_OPC_CMPLTU, 0xf, 3, TREG_ZERO, 1,
 194    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 195  },
 196  { "cmpltui", TILEGX_OPC_CMPLTUI, 0x3, 3, TREG_ZERO, 1,
 197    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 198  },
 199  { "cmpne", TILEGX_OPC_CMPNE, 0xf, 3, TREG_ZERO, 1,
 200    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 201  },
 202  { "cmul", TILEGX_OPC_CMUL, 0x1, 3, TREG_ZERO, 1,
 203    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 204  },
 205  { "cmula", TILEGX_OPC_CMULA, 0x1, 3, TREG_ZERO, 1,
 206    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 207  },
 208  { "cmulaf", TILEGX_OPC_CMULAF, 0x1, 3, TREG_ZERO, 1,
 209    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 210  },
 211  { "cmulf", TILEGX_OPC_CMULF, 0x1, 3, TREG_ZERO, 1,
 212    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 213  },
 214  { "cmulfr", TILEGX_OPC_CMULFR, 0x1, 3, TREG_ZERO, 1,
 215    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 216  },
 217  { "cmulh", TILEGX_OPC_CMULH, 0x1, 3, TREG_ZERO, 1,
 218    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 219  },
 220  { "cmulhr", TILEGX_OPC_CMULHR, 0x1, 3, TREG_ZERO, 1,
 221    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 222  },
 223  { "crc32_32", TILEGX_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1,
 224    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 225  },
 226  { "crc32_8", TILEGX_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1,
 227    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 228  },
 229  { "ctz", TILEGX_OPC_CTZ, 0x5, 2, TREG_ZERO, 1,
 230    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 231  },
 232  { "dblalign", TILEGX_OPC_DBLALIGN, 0x1, 3, TREG_ZERO, 1,
 233    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 234  },
 235  { "dblalign2", TILEGX_OPC_DBLALIGN2, 0x3, 3, TREG_ZERO, 1,
 236    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 237  },
 238  { "dblalign4", TILEGX_OPC_DBLALIGN4, 0x3, 3, TREG_ZERO, 1,
 239    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 240  },
 241  { "dblalign6", TILEGX_OPC_DBLALIGN6, 0x3, 3, TREG_ZERO, 1,
 242    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 243  },
 244  { "drain", TILEGX_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0,
 245    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 246  },
 247  { "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1,
 248    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 249  },
 250  { "exch", TILEGX_OPC_EXCH, 0x2, 3, TREG_ZERO, 1,
 251    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 252  },
 253  { "exch4", TILEGX_OPC_EXCH4, 0x2, 3, TREG_ZERO, 1,
 254    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 255  },
 256  { "fdouble_add_flags", TILEGX_OPC_FDOUBLE_ADD_FLAGS, 0x1, 3, TREG_ZERO, 1,
 257    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 258  },
 259  { "fdouble_addsub", TILEGX_OPC_FDOUBLE_ADDSUB, 0x1, 3, TREG_ZERO, 1,
 260    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 261  },
 262  { "fdouble_mul_flags", TILEGX_OPC_FDOUBLE_MUL_FLAGS, 0x1, 3, TREG_ZERO, 1,
 263    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 264  },
 265  { "fdouble_pack1", TILEGX_OPC_FDOUBLE_PACK1, 0x1, 3, TREG_ZERO, 1,
 266    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 267  },
 268  { "fdouble_pack2", TILEGX_OPC_FDOUBLE_PACK2, 0x1, 3, TREG_ZERO, 1,
 269    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 270  },
 271  { "fdouble_sub_flags", TILEGX_OPC_FDOUBLE_SUB_FLAGS, 0x1, 3, TREG_ZERO, 1,
 272    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 273  },
 274  { "fdouble_unpack_max", TILEGX_OPC_FDOUBLE_UNPACK_MAX, 0x1, 3, TREG_ZERO, 1,
 275    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 276  },
 277  { "fdouble_unpack_min", TILEGX_OPC_FDOUBLE_UNPACK_MIN, 0x1, 3, TREG_ZERO, 1,
 278    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 279  },
 280  { "fetchadd", TILEGX_OPC_FETCHADD, 0x2, 3, TREG_ZERO, 1,
 281    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 282  },
 283  { "fetchadd4", TILEGX_OPC_FETCHADD4, 0x2, 3, TREG_ZERO, 1,
 284    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 285  },
 286  { "fetchaddgez", TILEGX_OPC_FETCHADDGEZ, 0x2, 3, TREG_ZERO, 1,
 287    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 288  },
 289  { "fetchaddgez4", TILEGX_OPC_FETCHADDGEZ4, 0x2, 3, TREG_ZERO, 1,
 290    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 291  },
 292  { "fetchand", TILEGX_OPC_FETCHAND, 0x2, 3, TREG_ZERO, 1,
 293    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 294  },
 295  { "fetchand4", TILEGX_OPC_FETCHAND4, 0x2, 3, TREG_ZERO, 1,
 296    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 297  },
 298  { "fetchor", TILEGX_OPC_FETCHOR, 0x2, 3, TREG_ZERO, 1,
 299    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 300  },
 301  { "fetchor4", TILEGX_OPC_FETCHOR4, 0x2, 3, TREG_ZERO, 1,
 302    { { 0, }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 303  },
 304  { "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1,
 305    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 306  },
 307  { "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1,
 308    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 309  },
 310  { "flushwb", TILEGX_OPC_FLUSHWB, 0x2, 0, TREG_ZERO, 1,
 311    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 312  },
 313  { "fnop", TILEGX_OPC_FNOP, 0xf, 0, TREG_ZERO, 1,
 314    { {  }, {  }, {  }, {  }, { 0, } },
 315  },
 316  { "fsingle_add1", TILEGX_OPC_FSINGLE_ADD1, 0x1, 3, TREG_ZERO, 1,
 317    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 318  },
 319  { "fsingle_addsub2", TILEGX_OPC_FSINGLE_ADDSUB2, 0x1, 3, TREG_ZERO, 1,
 320    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 321  },
 322  { "fsingle_mul1", TILEGX_OPC_FSINGLE_MUL1, 0x1, 3, TREG_ZERO, 1,
 323    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 324  },
 325  { "fsingle_mul2", TILEGX_OPC_FSINGLE_MUL2, 0x1, 3, TREG_ZERO, 1,
 326    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 327  },
 328  { "fsingle_pack1", TILEGX_OPC_FSINGLE_PACK1, 0x5, 2, TREG_ZERO, 1,
 329    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 330  },
 331  { "fsingle_pack2", TILEGX_OPC_FSINGLE_PACK2, 0x1, 3, TREG_ZERO, 1,
 332    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 333  },
 334  { "fsingle_sub1", TILEGX_OPC_FSINGLE_SUB1, 0x1, 3, TREG_ZERO, 1,
 335    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 336  },
 337  { "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1,
 338    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 339  },
 340  { "ill", TILEGX_OPC_ILL, 0xa, 0, TREG_ZERO, 1,
 341    { { 0, }, {  }, { 0, }, {  }, { 0, } },
 342  },
 343  { "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1,
 344    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
 345  },
 346  { "iret", TILEGX_OPC_IRET, 0x2, 0, TREG_ZERO, 1,
 347    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 348  },
 349  { "j", TILEGX_OPC_J, 0x2, 1, TREG_ZERO, 1,
 350    { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
 351  },
 352  { "jal", TILEGX_OPC_JAL, 0x2, 1, TREG_LR, 1,
 353    { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } },
 354  },
 355  { "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1,
 356    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 357  },
 358  { "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1,
 359    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 360  },
 361  { "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1,
 362    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 363  },
 364  { "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1,
 365    { { 0, }, { 9 }, { 0, }, { 13 }, { 0, } },
 366  },
 367  { "ld", TILEGX_OPC_LD, 0x12, 2, TREG_ZERO, 1,
 368    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 369  },
 370  { "ld1s", TILEGX_OPC_LD1S, 0x12, 2, TREG_ZERO, 1,
 371    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 372  },
 373  { "ld1s_add", TILEGX_OPC_LD1S_ADD, 0x2, 3, TREG_ZERO, 1,
 374    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 375  },
 376  { "ld1u", TILEGX_OPC_LD1U, 0x12, 2, TREG_ZERO, 1,
 377    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 378  },
 379  { "ld1u_add", TILEGX_OPC_LD1U_ADD, 0x2, 3, TREG_ZERO, 1,
 380    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 381  },
 382  { "ld2s", TILEGX_OPC_LD2S, 0x12, 2, TREG_ZERO, 1,
 383    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 384  },
 385  { "ld2s_add", TILEGX_OPC_LD2S_ADD, 0x2, 3, TREG_ZERO, 1,
 386    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 387  },
 388  { "ld2u", TILEGX_OPC_LD2U, 0x12, 2, TREG_ZERO, 1,
 389    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 390  },
 391  { "ld2u_add", TILEGX_OPC_LD2U_ADD, 0x2, 3, TREG_ZERO, 1,
 392    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 393  },
 394  { "ld4s", TILEGX_OPC_LD4S, 0x12, 2, TREG_ZERO, 1,
 395    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 396  },
 397  { "ld4s_add", TILEGX_OPC_LD4S_ADD, 0x2, 3, TREG_ZERO, 1,
 398    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 399  },
 400  { "ld4u", TILEGX_OPC_LD4U, 0x12, 2, TREG_ZERO, 1,
 401    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 26, 14 } },
 402  },
 403  { "ld4u_add", TILEGX_OPC_LD4U_ADD, 0x2, 3, TREG_ZERO, 1,
 404    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 405  },
 406  { "ld_add", TILEGX_OPC_LD_ADD, 0x2, 3, TREG_ZERO, 1,
 407    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 408  },
 409  { "ldna", TILEGX_OPC_LDNA, 0x2, 2, TREG_ZERO, 1,
 410    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 411  },
 412  { "ldna_add", TILEGX_OPC_LDNA_ADD, 0x2, 3, TREG_ZERO, 1,
 413    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 414  },
 415  { "ldnt", TILEGX_OPC_LDNT, 0x2, 2, TREG_ZERO, 1,
 416    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 417  },
 418  { "ldnt1s", TILEGX_OPC_LDNT1S, 0x2, 2, TREG_ZERO, 1,
 419    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 420  },
 421  { "ldnt1s_add", TILEGX_OPC_LDNT1S_ADD, 0x2, 3, TREG_ZERO, 1,
 422    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 423  },
 424  { "ldnt1u", TILEGX_OPC_LDNT1U, 0x2, 2, TREG_ZERO, 1,
 425    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 426  },
 427  { "ldnt1u_add", TILEGX_OPC_LDNT1U_ADD, 0x2, 3, TREG_ZERO, 1,
 428    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 429  },
 430  { "ldnt2s", TILEGX_OPC_LDNT2S, 0x2, 2, TREG_ZERO, 1,
 431    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 432  },
 433  { "ldnt2s_add", TILEGX_OPC_LDNT2S_ADD, 0x2, 3, TREG_ZERO, 1,
 434    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 435  },
 436  { "ldnt2u", TILEGX_OPC_LDNT2U, 0x2, 2, TREG_ZERO, 1,
 437    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 438  },
 439  { "ldnt2u_add", TILEGX_OPC_LDNT2U_ADD, 0x2, 3, TREG_ZERO, 1,
 440    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 441  },
 442  { "ldnt4s", TILEGX_OPC_LDNT4S, 0x2, 2, TREG_ZERO, 1,
 443    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 444  },
 445  { "ldnt4s_add", TILEGX_OPC_LDNT4S_ADD, 0x2, 3, TREG_ZERO, 1,
 446    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 447  },
 448  { "ldnt4u", TILEGX_OPC_LDNT4U, 0x2, 2, TREG_ZERO, 1,
 449    { { 0, }, { 8, 9 }, { 0, }, { 0, }, { 0, } },
 450  },
 451  { "ldnt4u_add", TILEGX_OPC_LDNT4U_ADD, 0x2, 3, TREG_ZERO, 1,
 452    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 453  },
 454  { "ldnt_add", TILEGX_OPC_LDNT_ADD, 0x2, 3, TREG_ZERO, 1,
 455    { { 0, }, { 8, 15, 1 }, { 0, }, { 0, }, { 0, } },
 456  },
 457  { "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1,
 458    { { 0, }, { 8 }, { 0, }, { 12 }, { 0, } },
 459  },
 460  { "mf", TILEGX_OPC_MF, 0x2, 0, TREG_ZERO, 1,
 461    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 462  },
 463  { "mfspr", TILEGX_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1,
 464    { { 0, }, { 8, 27 }, { 0, }, { 0, }, { 0, } },
 465  },
 466  { "mm", TILEGX_OPC_MM, 0x1, 4, TREG_ZERO, 1,
 467    { { 23, 7, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } },
 468  },
 469  { "mnz", TILEGX_OPC_MNZ, 0xf, 3, TREG_ZERO, 1,
 470    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 471  },
 472  { "mtspr", TILEGX_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1,
 473    { { 0, }, { 28, 9 }, { 0, }, { 0, }, { 0, } },
 474  },
 475  { "mul_hs_hs", TILEGX_OPC_MUL_HS_HS, 0x5, 3, TREG_ZERO, 1,
 476    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 477  },
 478  { "mul_hs_hu", TILEGX_OPC_MUL_HS_HU, 0x1, 3, TREG_ZERO, 1,
 479    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 480  },
 481  { "mul_hs_ls", TILEGX_OPC_MUL_HS_LS, 0x1, 3, TREG_ZERO, 1,
 482    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 483  },
 484  { "mul_hs_lu", TILEGX_OPC_MUL_HS_LU, 0x1, 3, TREG_ZERO, 1,
 485    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 486  },
 487  { "mul_hu_hu", TILEGX_OPC_MUL_HU_HU, 0x5, 3, TREG_ZERO, 1,
 488    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 489  },
 490  { "mul_hu_ls", TILEGX_OPC_MUL_HU_LS, 0x1, 3, TREG_ZERO, 1,
 491    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 492  },
 493  { "mul_hu_lu", TILEGX_OPC_MUL_HU_LU, 0x1, 3, TREG_ZERO, 1,
 494    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 495  },
 496  { "mul_ls_ls", TILEGX_OPC_MUL_LS_LS, 0x5, 3, TREG_ZERO, 1,
 497    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 498  },
 499  { "mul_ls_lu", TILEGX_OPC_MUL_LS_LU, 0x1, 3, TREG_ZERO, 1,
 500    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 501  },
 502  { "mul_lu_lu", TILEGX_OPC_MUL_LU_LU, 0x5, 3, TREG_ZERO, 1,
 503    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 504  },
 505  { "mula_hs_hs", TILEGX_OPC_MULA_HS_HS, 0x5, 3, TREG_ZERO, 1,
 506    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 507  },
 508  { "mula_hs_hu", TILEGX_OPC_MULA_HS_HU, 0x1, 3, TREG_ZERO, 1,
 509    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 510  },
 511  { "mula_hs_ls", TILEGX_OPC_MULA_HS_LS, 0x1, 3, TREG_ZERO, 1,
 512    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 513  },
 514  { "mula_hs_lu", TILEGX_OPC_MULA_HS_LU, 0x1, 3, TREG_ZERO, 1,
 515    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 516  },
 517  { "mula_hu_hu", TILEGX_OPC_MULA_HU_HU, 0x5, 3, TREG_ZERO, 1,
 518    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 519  },
 520  { "mula_hu_ls", TILEGX_OPC_MULA_HU_LS, 0x1, 3, TREG_ZERO, 1,
 521    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 522  },
 523  { "mula_hu_lu", TILEGX_OPC_MULA_HU_LU, 0x1, 3, TREG_ZERO, 1,
 524    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 525  },
 526  { "mula_ls_ls", TILEGX_OPC_MULA_LS_LS, 0x5, 3, TREG_ZERO, 1,
 527    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 528  },
 529  { "mula_ls_lu", TILEGX_OPC_MULA_LS_LU, 0x1, 3, TREG_ZERO, 1,
 530    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 531  },
 532  { "mula_lu_lu", TILEGX_OPC_MULA_LU_LU, 0x5, 3, TREG_ZERO, 1,
 533    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 534  },
 535  { "mulax", TILEGX_OPC_MULAX, 0x5, 3, TREG_ZERO, 1,
 536    { { 23, 7, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } },
 537  },
 538  { "mulx", TILEGX_OPC_MULX, 0x5, 3, TREG_ZERO, 1,
 539    { { 6, 7, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } },
 540  },
 541  { "mz", TILEGX_OPC_MZ, 0xf, 3, TREG_ZERO, 1,
 542    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 543  },
 544  { "nap", TILEGX_OPC_NAP, 0x2, 0, TREG_ZERO, 0,
 545    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 546  },
 547  { "nop", TILEGX_OPC_NOP, 0xf, 0, TREG_ZERO, 1,
 548    { {  }, {  }, {  }, {  }, { 0, } },
 549  },
 550  { "nor", TILEGX_OPC_NOR, 0xf, 3, TREG_ZERO, 1,
 551    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 552  },
 553  { "or", TILEGX_OPC_OR, 0xf, 3, TREG_ZERO, 1,
 554    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 555  },
 556  { "ori", TILEGX_OPC_ORI, 0x3, 3, TREG_ZERO, 1,
 557    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 558  },
 559  { "pcnt", TILEGX_OPC_PCNT, 0x5, 2, TREG_ZERO, 1,
 560    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 561  },
 562  { "revbits", TILEGX_OPC_REVBITS, 0x5, 2, TREG_ZERO, 1,
 563    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 564  },
 565  { "revbytes", TILEGX_OPC_REVBYTES, 0x5, 2, TREG_ZERO, 1,
 566    { { 6, 7 }, { 0, }, { 10, 11 }, { 0, }, { 0, } },
 567  },
 568  { "rotl", TILEGX_OPC_ROTL, 0xf, 3, TREG_ZERO, 1,
 569    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 570  },
 571  { "rotli", TILEGX_OPC_ROTLI, 0xf, 3, TREG_ZERO, 1,
 572    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 573  },
 574  { "shl", TILEGX_OPC_SHL, 0xf, 3, TREG_ZERO, 1,
 575    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 576  },
 577  { "shl16insli", TILEGX_OPC_SHL16INSLI, 0x3, 3, TREG_ZERO, 1,
 578    { { 6, 7, 4 }, { 8, 9, 5 }, { 0, }, { 0, }, { 0, } },
 579  },
 580  { "shl1add", TILEGX_OPC_SHL1ADD, 0xf, 3, TREG_ZERO, 1,
 581    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 582  },
 583  { "shl1addx", TILEGX_OPC_SHL1ADDX, 0xf, 3, TREG_ZERO, 1,
 584    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 585  },
 586  { "shl2add", TILEGX_OPC_SHL2ADD, 0xf, 3, TREG_ZERO, 1,
 587    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 588  },
 589  { "shl2addx", TILEGX_OPC_SHL2ADDX, 0xf, 3, TREG_ZERO, 1,
 590    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 591  },
 592  { "shl3add", TILEGX_OPC_SHL3ADD, 0xf, 3, TREG_ZERO, 1,
 593    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 594  },
 595  { "shl3addx", TILEGX_OPC_SHL3ADDX, 0xf, 3, TREG_ZERO, 1,
 596    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 597  },
 598  { "shli", TILEGX_OPC_SHLI, 0xf, 3, TREG_ZERO, 1,
 599    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 600  },
 601  { "shlx", TILEGX_OPC_SHLX, 0x3, 3, TREG_ZERO, 1,
 602    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 603  },
 604  { "shlxi", TILEGX_OPC_SHLXI, 0x3, 3, TREG_ZERO, 1,
 605    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 606  },
 607  { "shrs", TILEGX_OPC_SHRS, 0xf, 3, TREG_ZERO, 1,
 608    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 609  },
 610  { "shrsi", TILEGX_OPC_SHRSI, 0xf, 3, TREG_ZERO, 1,
 611    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 612  },
 613  { "shru", TILEGX_OPC_SHRU, 0xf, 3, TREG_ZERO, 1,
 614    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 615  },
 616  { "shrui", TILEGX_OPC_SHRUI, 0xf, 3, TREG_ZERO, 1,
 617    { { 6, 7, 29 }, { 8, 9, 30 }, { 10, 11, 31 }, { 12, 13, 32 }, { 0, } },
 618  },
 619  { "shrux", TILEGX_OPC_SHRUX, 0x3, 3, TREG_ZERO, 1,
 620    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 621  },
 622  { "shruxi", TILEGX_OPC_SHRUXI, 0x3, 3, TREG_ZERO, 1,
 623    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 624  },
 625  { "shufflebytes", TILEGX_OPC_SHUFFLEBYTES, 0x1, 3, TREG_ZERO, 1,
 626    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 627  },
 628  { "st", TILEGX_OPC_ST, 0x12, 2, TREG_ZERO, 1,
 629    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 630  },
 631  { "st1", TILEGX_OPC_ST1, 0x12, 2, TREG_ZERO, 1,
 632    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 633  },
 634  { "st1_add", TILEGX_OPC_ST1_ADD, 0x2, 3, TREG_ZERO, 1,
 635    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 636  },
 637  { "st2", TILEGX_OPC_ST2, 0x12, 2, TREG_ZERO, 1,
 638    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 639  },
 640  { "st2_add", TILEGX_OPC_ST2_ADD, 0x2, 3, TREG_ZERO, 1,
 641    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 642  },
 643  { "st4", TILEGX_OPC_ST4, 0x12, 2, TREG_ZERO, 1,
 644    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 14, 33 } },
 645  },
 646  { "st4_add", TILEGX_OPC_ST4_ADD, 0x2, 3, TREG_ZERO, 1,
 647    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 648  },
 649  { "st_add", TILEGX_OPC_ST_ADD, 0x2, 3, TREG_ZERO, 1,
 650    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 651  },
 652  { "stnt", TILEGX_OPC_STNT, 0x2, 2, TREG_ZERO, 1,
 653    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 654  },
 655  { "stnt1", TILEGX_OPC_STNT1, 0x2, 2, TREG_ZERO, 1,
 656    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 657  },
 658  { "stnt1_add", TILEGX_OPC_STNT1_ADD, 0x2, 3, TREG_ZERO, 1,
 659    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 660  },
 661  { "stnt2", TILEGX_OPC_STNT2, 0x2, 2, TREG_ZERO, 1,
 662    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 663  },
 664  { "stnt2_add", TILEGX_OPC_STNT2_ADD, 0x2, 3, TREG_ZERO, 1,
 665    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 666  },
 667  { "stnt4", TILEGX_OPC_STNT4, 0x2, 2, TREG_ZERO, 1,
 668    { { 0, }, { 9, 17 }, { 0, }, { 0, }, { 0, } },
 669  },
 670  { "stnt4_add", TILEGX_OPC_STNT4_ADD, 0x2, 3, TREG_ZERO, 1,
 671    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 672  },
 673  { "stnt_add", TILEGX_OPC_STNT_ADD, 0x2, 3, TREG_ZERO, 1,
 674    { { 0, }, { 15, 17, 34 }, { 0, }, { 0, }, { 0, } },
 675  },
 676  { "sub", TILEGX_OPC_SUB, 0xf, 3, TREG_ZERO, 1,
 677    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 678  },
 679  { "subx", TILEGX_OPC_SUBX, 0xf, 3, TREG_ZERO, 1,
 680    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
 681  },
 682  { "subxsc", TILEGX_OPC_SUBXSC, 0x3, 3, TREG_ZERO, 1,
 683    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 684  },
 685  { "swint0", TILEGX_OPC_SWINT0, 0x2, 0, TREG_ZERO, 0,
 686    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 687  },
 688  { "swint1", TILEGX_OPC_SWINT1, 0x2, 0, TREG_ZERO, 0,
 689    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 690  },
 691  { "swint2", TILEGX_OPC_SWINT2, 0x2, 0, TREG_ZERO, 0,
 692    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 693  },
 694  { "swint3", TILEGX_OPC_SWINT3, 0x2, 0, TREG_ZERO, 0,
 695    { { 0, }, {  }, { 0, }, { 0, }, { 0, } },
 696  },
 697  { "tblidxb0", TILEGX_OPC_TBLIDXB0, 0x5, 2, TREG_ZERO, 1,
 698    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 699  },
 700  { "tblidxb1", TILEGX_OPC_TBLIDXB1, 0x5, 2, TREG_ZERO, 1,
 701    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 702  },
 703  { "tblidxb2", TILEGX_OPC_TBLIDXB2, 0x5, 2, TREG_ZERO, 1,
 704    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 705  },
 706  { "tblidxb3", TILEGX_OPC_TBLIDXB3, 0x5, 2, TREG_ZERO, 1,
 707    { { 23, 7 }, { 0, }, { 24, 11 }, { 0, }, { 0, } },
 708  },
 709  { "v1add", TILEGX_OPC_V1ADD, 0x3, 3, TREG_ZERO, 1,
 710    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 711  },
 712  { "v1addi", TILEGX_OPC_V1ADDI, 0x3, 3, TREG_ZERO, 1,
 713    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 714  },
 715  { "v1adduc", TILEGX_OPC_V1ADDUC, 0x3, 3, TREG_ZERO, 1,
 716    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 717  },
 718  { "v1adiffu", TILEGX_OPC_V1ADIFFU, 0x1, 3, TREG_ZERO, 1,
 719    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 720  },
 721  { "v1avgu", TILEGX_OPC_V1AVGU, 0x1, 3, TREG_ZERO, 1,
 722    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 723  },
 724  { "v1cmpeq", TILEGX_OPC_V1CMPEQ, 0x3, 3, TREG_ZERO, 1,
 725    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 726  },
 727  { "v1cmpeqi", TILEGX_OPC_V1CMPEQI, 0x3, 3, TREG_ZERO, 1,
 728    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 729  },
 730  { "v1cmples", TILEGX_OPC_V1CMPLES, 0x3, 3, TREG_ZERO, 1,
 731    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 732  },
 733  { "v1cmpleu", TILEGX_OPC_V1CMPLEU, 0x3, 3, TREG_ZERO, 1,
 734    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 735  },
 736  { "v1cmplts", TILEGX_OPC_V1CMPLTS, 0x3, 3, TREG_ZERO, 1,
 737    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 738  },
 739  { "v1cmpltsi", TILEGX_OPC_V1CMPLTSI, 0x3, 3, TREG_ZERO, 1,
 740    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 741  },
 742  { "v1cmpltu", TILEGX_OPC_V1CMPLTU, 0x3, 3, TREG_ZERO, 1,
 743    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 744  },
 745  { "v1cmpltui", TILEGX_OPC_V1CMPLTUI, 0x3, 3, TREG_ZERO, 1,
 746    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 747  },
 748  { "v1cmpne", TILEGX_OPC_V1CMPNE, 0x3, 3, TREG_ZERO, 1,
 749    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 750  },
 751  { "v1ddotpu", TILEGX_OPC_V1DDOTPU, 0x1, 3, TREG_ZERO, 1,
 752    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 753  },
 754  { "v1ddotpua", TILEGX_OPC_V1DDOTPUA, 0x1, 3, TREG_ZERO, 1,
 755    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 756  },
 757  { "v1ddotpus", TILEGX_OPC_V1DDOTPUS, 0x1, 3, TREG_ZERO, 1,
 758    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 759  },
 760  { "v1ddotpusa", TILEGX_OPC_V1DDOTPUSA, 0x1, 3, TREG_ZERO, 1,
 761    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 762  },
 763  { "v1dotp", TILEGX_OPC_V1DOTP, 0x1, 3, TREG_ZERO, 1,
 764    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 765  },
 766  { "v1dotpa", TILEGX_OPC_V1DOTPA, 0x1, 3, TREG_ZERO, 1,
 767    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 768  },
 769  { "v1dotpu", TILEGX_OPC_V1DOTPU, 0x1, 3, TREG_ZERO, 1,
 770    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 771  },
 772  { "v1dotpua", TILEGX_OPC_V1DOTPUA, 0x1, 3, TREG_ZERO, 1,
 773    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 774  },
 775  { "v1dotpus", TILEGX_OPC_V1DOTPUS, 0x1, 3, TREG_ZERO, 1,
 776    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 777  },
 778  { "v1dotpusa", TILEGX_OPC_V1DOTPUSA, 0x1, 3, TREG_ZERO, 1,
 779    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 780  },
 781  { "v1int_h", TILEGX_OPC_V1INT_H, 0x3, 3, TREG_ZERO, 1,
 782    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 783  },
 784  { "v1int_l", TILEGX_OPC_V1INT_L, 0x3, 3, TREG_ZERO, 1,
 785    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 786  },
 787  { "v1maxu", TILEGX_OPC_V1MAXU, 0x3, 3, TREG_ZERO, 1,
 788    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 789  },
 790  { "v1maxui", TILEGX_OPC_V1MAXUI, 0x3, 3, TREG_ZERO, 1,
 791    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 792  },
 793  { "v1minu", TILEGX_OPC_V1MINU, 0x3, 3, TREG_ZERO, 1,
 794    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 795  },
 796  { "v1minui", TILEGX_OPC_V1MINUI, 0x3, 3, TREG_ZERO, 1,
 797    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 798  },
 799  { "v1mnz", TILEGX_OPC_V1MNZ, 0x3, 3, TREG_ZERO, 1,
 800    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 801  },
 802  { "v1multu", TILEGX_OPC_V1MULTU, 0x1, 3, TREG_ZERO, 1,
 803    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 804  },
 805  { "v1mulu", TILEGX_OPC_V1MULU, 0x1, 3, TREG_ZERO, 1,
 806    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 807  },
 808  { "v1mulus", TILEGX_OPC_V1MULUS, 0x1, 3, TREG_ZERO, 1,
 809    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 810  },
 811  { "v1mz", TILEGX_OPC_V1MZ, 0x3, 3, TREG_ZERO, 1,
 812    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 813  },
 814  { "v1sadau", TILEGX_OPC_V1SADAU, 0x1, 3, TREG_ZERO, 1,
 815    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 816  },
 817  { "v1sadu", TILEGX_OPC_V1SADU, 0x1, 3, TREG_ZERO, 1,
 818    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 819  },
 820  { "v1shl", TILEGX_OPC_V1SHL, 0x3, 3, TREG_ZERO, 1,
 821    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 822  },
 823  { "v1shli", TILEGX_OPC_V1SHLI, 0x3, 3, TREG_ZERO, 1,
 824    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 825  },
 826  { "v1shrs", TILEGX_OPC_V1SHRS, 0x3, 3, TREG_ZERO, 1,
 827    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 828  },
 829  { "v1shrsi", TILEGX_OPC_V1SHRSI, 0x3, 3, TREG_ZERO, 1,
 830    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 831  },
 832  { "v1shru", TILEGX_OPC_V1SHRU, 0x3, 3, TREG_ZERO, 1,
 833    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 834  },
 835  { "v1shrui", TILEGX_OPC_V1SHRUI, 0x3, 3, TREG_ZERO, 1,
 836    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 837  },
 838  { "v1sub", TILEGX_OPC_V1SUB, 0x3, 3, TREG_ZERO, 1,
 839    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 840  },
 841  { "v1subuc", TILEGX_OPC_V1SUBUC, 0x3, 3, TREG_ZERO, 1,
 842    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 843  },
 844  { "v2add", TILEGX_OPC_V2ADD, 0x3, 3, TREG_ZERO, 1,
 845    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 846  },
 847  { "v2addi", TILEGX_OPC_V2ADDI, 0x3, 3, TREG_ZERO, 1,
 848    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 849  },
 850  { "v2addsc", TILEGX_OPC_V2ADDSC, 0x3, 3, TREG_ZERO, 1,
 851    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 852  },
 853  { "v2adiffs", TILEGX_OPC_V2ADIFFS, 0x1, 3, TREG_ZERO, 1,
 854    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 855  },
 856  { "v2avgs", TILEGX_OPC_V2AVGS, 0x1, 3, TREG_ZERO, 1,
 857    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 858  },
 859  { "v2cmpeq", TILEGX_OPC_V2CMPEQ, 0x3, 3, TREG_ZERO, 1,
 860    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 861  },
 862  { "v2cmpeqi", TILEGX_OPC_V2CMPEQI, 0x3, 3, TREG_ZERO, 1,
 863    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 864  },
 865  { "v2cmples", TILEGX_OPC_V2CMPLES, 0x3, 3, TREG_ZERO, 1,
 866    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 867  },
 868  { "v2cmpleu", TILEGX_OPC_V2CMPLEU, 0x3, 3, TREG_ZERO, 1,
 869    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 870  },
 871  { "v2cmplts", TILEGX_OPC_V2CMPLTS, 0x3, 3, TREG_ZERO, 1,
 872    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 873  },
 874  { "v2cmpltsi", TILEGX_OPC_V2CMPLTSI, 0x3, 3, TREG_ZERO, 1,
 875    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 876  },
 877  { "v2cmpltu", TILEGX_OPC_V2CMPLTU, 0x3, 3, TREG_ZERO, 1,
 878    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 879  },
 880  { "v2cmpltui", TILEGX_OPC_V2CMPLTUI, 0x3, 3, TREG_ZERO, 1,
 881    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 882  },
 883  { "v2cmpne", TILEGX_OPC_V2CMPNE, 0x3, 3, TREG_ZERO, 1,
 884    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 885  },
 886  { "v2dotp", TILEGX_OPC_V2DOTP, 0x1, 3, TREG_ZERO, 1,
 887    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 888  },
 889  { "v2dotpa", TILEGX_OPC_V2DOTPA, 0x1, 3, TREG_ZERO, 1,
 890    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 891  },
 892  { "v2int_h", TILEGX_OPC_V2INT_H, 0x3, 3, TREG_ZERO, 1,
 893    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 894  },
 895  { "v2int_l", TILEGX_OPC_V2INT_L, 0x3, 3, TREG_ZERO, 1,
 896    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 897  },
 898  { "v2maxs", TILEGX_OPC_V2MAXS, 0x3, 3, TREG_ZERO, 1,
 899    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 900  },
 901  { "v2maxsi", TILEGX_OPC_V2MAXSI, 0x3, 3, TREG_ZERO, 1,
 902    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 903  },
 904  { "v2mins", TILEGX_OPC_V2MINS, 0x3, 3, TREG_ZERO, 1,
 905    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 906  },
 907  { "v2minsi", TILEGX_OPC_V2MINSI, 0x3, 3, TREG_ZERO, 1,
 908    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
 909  },
 910  { "v2mnz", TILEGX_OPC_V2MNZ, 0x3, 3, TREG_ZERO, 1,
 911    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 912  },
 913  { "v2mulfsc", TILEGX_OPC_V2MULFSC, 0x1, 3, TREG_ZERO, 1,
 914    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 915  },
 916  { "v2muls", TILEGX_OPC_V2MULS, 0x1, 3, TREG_ZERO, 1,
 917    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 918  },
 919  { "v2mults", TILEGX_OPC_V2MULTS, 0x1, 3, TREG_ZERO, 1,
 920    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 921  },
 922  { "v2mz", TILEGX_OPC_V2MZ, 0x3, 3, TREG_ZERO, 1,
 923    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 924  },
 925  { "v2packh", TILEGX_OPC_V2PACKH, 0x3, 3, TREG_ZERO, 1,
 926    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 927  },
 928  { "v2packl", TILEGX_OPC_V2PACKL, 0x3, 3, TREG_ZERO, 1,
 929    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 930  },
 931  { "v2packuc", TILEGX_OPC_V2PACKUC, 0x3, 3, TREG_ZERO, 1,
 932    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 933  },
 934  { "v2sadas", TILEGX_OPC_V2SADAS, 0x1, 3, TREG_ZERO, 1,
 935    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 936  },
 937  { "v2sadau", TILEGX_OPC_V2SADAU, 0x1, 3, TREG_ZERO, 1,
 938    { { 23, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 939  },
 940  { "v2sads", TILEGX_OPC_V2SADS, 0x1, 3, TREG_ZERO, 1,
 941    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 942  },
 943  { "v2sadu", TILEGX_OPC_V2SADU, 0x1, 3, TREG_ZERO, 1,
 944    { { 6, 7, 16 }, { 0, }, { 0, }, { 0, }, { 0, } },
 945  },
 946  { "v2shl", TILEGX_OPC_V2SHL, 0x3, 3, TREG_ZERO, 1,
 947    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 948  },
 949  { "v2shli", TILEGX_OPC_V2SHLI, 0x3, 3, TREG_ZERO, 1,
 950    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 951  },
 952  { "v2shlsc", TILEGX_OPC_V2SHLSC, 0x3, 3, TREG_ZERO, 1,
 953    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 954  },
 955  { "v2shrs", TILEGX_OPC_V2SHRS, 0x3, 3, TREG_ZERO, 1,
 956    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 957  },
 958  { "v2shrsi", TILEGX_OPC_V2SHRSI, 0x3, 3, TREG_ZERO, 1,
 959    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 960  },
 961  { "v2shru", TILEGX_OPC_V2SHRU, 0x3, 3, TREG_ZERO, 1,
 962    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 963  },
 964  { "v2shrui", TILEGX_OPC_V2SHRUI, 0x3, 3, TREG_ZERO, 1,
 965    { { 6, 7, 29 }, { 8, 9, 30 }, { 0, }, { 0, }, { 0, } },
 966  },
 967  { "v2sub", TILEGX_OPC_V2SUB, 0x3, 3, TREG_ZERO, 1,
 968    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 969  },
 970  { "v2subsc", TILEGX_OPC_V2SUBSC, 0x3, 3, TREG_ZERO, 1,
 971    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 972  },
 973  { "v4add", TILEGX_OPC_V4ADD, 0x3, 3, TREG_ZERO, 1,
 974    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 975  },
 976  { "v4addsc", TILEGX_OPC_V4ADDSC, 0x3, 3, TREG_ZERO, 1,
 977    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 978  },
 979  { "v4int_h", TILEGX_OPC_V4INT_H, 0x3, 3, TREG_ZERO, 1,
 980    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 981  },
 982  { "v4int_l", TILEGX_OPC_V4INT_L, 0x3, 3, TREG_ZERO, 1,
 983    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 984  },
 985  { "v4packsc", TILEGX_OPC_V4PACKSC, 0x3, 3, TREG_ZERO, 1,
 986    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 987  },
 988  { "v4shl", TILEGX_OPC_V4SHL, 0x3, 3, TREG_ZERO, 1,
 989    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 990  },
 991  { "v4shlsc", TILEGX_OPC_V4SHLSC, 0x3, 3, TREG_ZERO, 1,
 992    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 993  },
 994  { "v4shrs", TILEGX_OPC_V4SHRS, 0x3, 3, TREG_ZERO, 1,
 995    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 996  },
 997  { "v4shru", TILEGX_OPC_V4SHRU, 0x3, 3, TREG_ZERO, 1,
 998    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
 999  },
1000  { "v4sub", TILEGX_OPC_V4SUB, 0x3, 3, TREG_ZERO, 1,
1001    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1002  },
1003  { "v4subsc", TILEGX_OPC_V4SUBSC, 0x3, 3, TREG_ZERO, 1,
1004    { { 6, 7, 16 }, { 8, 9, 17 }, { 0, }, { 0, }, { 0, } },
1005  },
1006  { "wh64", TILEGX_OPC_WH64, 0x2, 1, TREG_ZERO, 1,
1007    { { 0, }, { 9 }, { 0, }, { 0, }, { 0, } },
1008  },
1009  { "xor", TILEGX_OPC_XOR, 0xf, 3, TREG_ZERO, 1,
1010    { { 6, 7, 16 }, { 8, 9, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } },
1011  },
1012  { "xori", TILEGX_OPC_XORI, 0x3, 3, TREG_ZERO, 1,
1013    { { 6, 7, 0 }, { 8, 9, 1 }, { 0, }, { 0, }, { 0, } },
1014  },
1015  { NULL, TILEGX_OPC_NONE, 0, 0, TREG_ZERO, 0, { { 0, } },
1016  }
1017};
1018#define BITFIELD(start, size) ((start) | (((1 << (size)) - 1) << 6))
1019#define CHILD(array_index) (TILEGX_OPC_NONE + (array_index))
1020
1021static const unsigned short decode_X0_fsm[936] =
1022{
1023  BITFIELD(22, 9) /* index 0 */,
1024  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1025  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1026  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1027  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1028  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1029  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1030  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1031  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1032  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1033  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1034  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1035  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1036  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1037  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1038  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1039  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1040  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1041  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1042  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1043  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1044  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1045  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1046  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1047  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1048  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1049  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1050  CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
1051  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1052  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1053  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1054  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1055  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1056  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1057  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1058  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1059  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1060  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1061  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1062  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1063  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1064  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1065  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1066  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
1067  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1068  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1069  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1070  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BFEXTS,
1071  TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTS, TILEGX_OPC_BFEXTU,
1072  TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFEXTU, TILEGX_OPC_BFINS,
1073  TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_BFINS, TILEGX_OPC_MM,
1074  TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_MM, TILEGX_OPC_NONE,
1075  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1076  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1077  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1078  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1079  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1080  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1081  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1082  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(528), CHILD(578),
1083  CHILD(583), CHILD(588), CHILD(593), CHILD(598), TILEGX_OPC_NONE,
1084  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1085  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1086  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1087  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1088  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1089  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1090  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1091  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1092  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1093  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1094  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1095  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1096  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1097  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1098  TILEGX_OPC_NONE, CHILD(603), CHILD(620), CHILD(637), CHILD(654), CHILD(671),
1099  CHILD(703), CHILD(797), CHILD(814), CHILD(831), CHILD(848), CHILD(865),
1100  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1101  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1102  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1103  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1104  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1105  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1106  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1107  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1108  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1109  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1110  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1111  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1112  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1113  TILEGX_OPC_NONE, CHILD(889), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1114  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1115  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1116  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1117  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1118  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1119  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1120  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1121  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1122  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1123  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1124  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1125  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1126  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1127  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1128  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1129  TILEGX_OPC_NONE, CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1130  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1131  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1132  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1133  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1134  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1135  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1136  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1137  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1138  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1139  CHILD(906), CHILD(906), CHILD(906), CHILD(906), CHILD(906),
1140  BITFIELD(6, 2) /* index 513 */,
1141  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
1142  BITFIELD(8, 2) /* index 518 */,
1143  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
1144  BITFIELD(10, 2) /* index 523 */,
1145  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
1146  BITFIELD(20, 2) /* index 528 */,
1147  TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
1148  BITFIELD(6, 2) /* index 533 */,
1149  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
1150  BITFIELD(8, 2) /* index 538 */,
1151  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
1152  BITFIELD(10, 2) /* index 543 */,
1153  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1154  BITFIELD(0, 2) /* index 548 */,
1155  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
1156  BITFIELD(2, 2) /* index 553 */,
1157  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
1158  BITFIELD(4, 2) /* index 558 */,
1159  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
1160  BITFIELD(6, 2) /* index 563 */,
1161  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
1162  BITFIELD(8, 2) /* index 568 */,
1163  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
1164  BITFIELD(10, 2) /* index 573 */,
1165  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1166  BITFIELD(20, 2) /* index 578 */,
1167  TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, TILEGX_OPC_ORI,
1168  BITFIELD(20, 2) /* index 583 */,
1169  TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI, TILEGX_OPC_V1CMPLTSI,
1170  TILEGX_OPC_V1CMPLTUI,
1171  BITFIELD(20, 2) /* index 588 */,
1172  TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI, TILEGX_OPC_V2ADDI,
1173  TILEGX_OPC_V2CMPEQI,
1174  BITFIELD(20, 2) /* index 593 */,
1175  TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI, TILEGX_OPC_V2MAXSI,
1176  TILEGX_OPC_V2MINSI,
1177  BITFIELD(20, 2) /* index 598 */,
1178  TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1179  BITFIELD(18, 4) /* index 603 */,
1180  TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
1181  TILEGX_OPC_AND, TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_CMPEQ,
1182  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1183  TILEGX_OPC_CMPNE, TILEGX_OPC_CMULAF, TILEGX_OPC_CMULA, TILEGX_OPC_CMULFR,
1184  BITFIELD(18, 4) /* index 620 */,
1185  TILEGX_OPC_CMULF, TILEGX_OPC_CMULHR, TILEGX_OPC_CMULH, TILEGX_OPC_CMUL,
1186  TILEGX_OPC_CRC32_32, TILEGX_OPC_CRC32_8, TILEGX_OPC_DBLALIGN2,
1187  TILEGX_OPC_DBLALIGN4, TILEGX_OPC_DBLALIGN6, TILEGX_OPC_DBLALIGN,
1188  TILEGX_OPC_FDOUBLE_ADDSUB, TILEGX_OPC_FDOUBLE_ADD_FLAGS,
1189  TILEGX_OPC_FDOUBLE_MUL_FLAGS, TILEGX_OPC_FDOUBLE_PACK1,
1190  TILEGX_OPC_FDOUBLE_PACK2, TILEGX_OPC_FDOUBLE_SUB_FLAGS,
1191  BITFIELD(18, 4) /* index 637 */,
1192  TILEGX_OPC_FDOUBLE_UNPACK_MAX, TILEGX_OPC_FDOUBLE_UNPACK_MIN,
1193  TILEGX_OPC_FSINGLE_ADD1, TILEGX_OPC_FSINGLE_ADDSUB2,
1194  TILEGX_OPC_FSINGLE_MUL1, TILEGX_OPC_FSINGLE_MUL2, TILEGX_OPC_FSINGLE_PACK2,
1195  TILEGX_OPC_FSINGLE_SUB1, TILEGX_OPC_MNZ, TILEGX_OPC_MULAX,
1196  TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HS_HU, TILEGX_OPC_MULA_HS_LS,
1197  TILEGX_OPC_MULA_HS_LU, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_HU_LS,
1198  BITFIELD(18, 4) /* index 654 */,
1199  TILEGX_OPC_MULA_HU_LU, TILEGX_OPC_MULA_LS_LS, TILEGX_OPC_MULA_LS_LU,
1200  TILEGX_OPC_MULA_LU_LU, TILEGX_OPC_MULX, TILEGX_OPC_MUL_HS_HS,
1201  TILEGX_OPC_MUL_HS_HU, TILEGX_OPC_MUL_HS_LS, TILEGX_OPC_MUL_HS_LU,
1202  TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_HU_LS, TILEGX_OPC_MUL_HU_LU,
1203  TILEGX_OPC_MUL_LS_LS, TILEGX_OPC_MUL_LS_LU, TILEGX_OPC_MUL_LU_LU,
1204  TILEGX_OPC_MZ,
1205  BITFIELD(18, 4) /* index 671 */,
1206  TILEGX_OPC_NOR, CHILD(688), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
1207  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
1208  TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
1209  TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_SHUFFLEBYTES,
1210  TILEGX_OPC_SUBXSC,
1211  BITFIELD(12, 2) /* index 688 */,
1212  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(693),
1213  BITFIELD(14, 2) /* index 693 */,
1214  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(698),
1215  BITFIELD(16, 2) /* index 698 */,
1216  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1217  BITFIELD(18, 4) /* index 703 */,
1218  TILEGX_OPC_SUBX, TILEGX_OPC_SUB, CHILD(720), TILEGX_OPC_V1ADDUC,
1219  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADIFFU, TILEGX_OPC_V1AVGU,
1220  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
1221  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
1222  TILEGX_OPC_V1DDOTPUSA, TILEGX_OPC_V1DDOTPUS, TILEGX_OPC_V1DOTPA,
1223  BITFIELD(12, 4) /* index 720 */,
1224  TILEGX_OPC_NONE, CHILD(737), CHILD(742), CHILD(747), CHILD(752), CHILD(757),
1225  CHILD(762), CHILD(767), CHILD(772), CHILD(777), CHILD(782), CHILD(787),
1226  CHILD(792), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1227  BITFIELD(16, 2) /* index 737 */,
1228  TILEGX_OPC_CLZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1229  BITFIELD(16, 2) /* index 742 */,
1230  TILEGX_OPC_CTZ, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1231  BITFIELD(16, 2) /* index 747 */,
1232  TILEGX_OPC_FNOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1233  BITFIELD(16, 2) /* index 752 */,
1234  TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1235  BITFIELD(16, 2) /* index 757 */,
1236  TILEGX_OPC_NOP, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1237  BITFIELD(16, 2) /* index 762 */,
1238  TILEGX_OPC_PCNT, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1239  BITFIELD(16, 2) /* index 767 */,
1240  TILEGX_OPC_REVBITS, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1241  BITFIELD(16, 2) /* index 772 */,
1242  TILEGX_OPC_REVBYTES, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1243  BITFIELD(16, 2) /* index 777 */,
1244  TILEGX_OPC_TBLIDXB0, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1245  BITFIELD(16, 2) /* index 782 */,
1246  TILEGX_OPC_TBLIDXB1, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1247  BITFIELD(16, 2) /* index 787 */,
1248  TILEGX_OPC_TBLIDXB2, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1249  BITFIELD(16, 2) /* index 792 */,
1250  TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1251  BITFIELD(18, 4) /* index 797 */,
1252  TILEGX_OPC_V1DOTPUSA, TILEGX_OPC_V1DOTPUS, TILEGX_OPC_V1DOTP,
1253  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1MAXU,
1254  TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MULTU, TILEGX_OPC_V1MULUS,
1255  TILEGX_OPC_V1MULU, TILEGX_OPC_V1MZ, TILEGX_OPC_V1SADAU, TILEGX_OPC_V1SADU,
1256  TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS,
1257  BITFIELD(18, 4) /* index 814 */,
1258  TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC, TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC,
1259  TILEGX_OPC_V2ADD, TILEGX_OPC_V2ADIFFS, TILEGX_OPC_V2AVGS,
1260  TILEGX_OPC_V2CMPEQ, TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU,
1261  TILEGX_OPC_V2CMPLTS, TILEGX_OPC_V2CMPLTU, TILEGX_OPC_V2CMPNE,
1262  TILEGX_OPC_V2DOTPA, TILEGX_OPC_V2DOTP, TILEGX_OPC_V2INT_H,
1263  BITFIELD(18, 4) /* index 831 */,
1264  TILEGX_OPC_V2INT_L, TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ,
1265  TILEGX_OPC_V2MULFSC, TILEGX_OPC_V2MULS, TILEGX_OPC_V2MULTS, TILEGX_OPC_V2MZ,
1266  TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
1267  TILEGX_OPC_V2SADAS, TILEGX_OPC_V2SADAU, TILEGX_OPC_V2SADS,
1268  TILEGX_OPC_V2SADU, TILEGX_OPC_V2SHLSC,
1269  BITFIELD(18, 4) /* index 848 */,
1270  TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU, TILEGX_OPC_V2SUBSC,
1271  TILEGX_OPC_V2SUB, TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
1272  TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
1273  TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
1274  TILEGX_OPC_V4SUB,
1275  BITFIELD(18, 3) /* index 865 */,
1276  CHILD(874), CHILD(877), CHILD(880), CHILD(883), CHILD(886), TILEGX_OPC_NONE,
1277  TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1278  BITFIELD(21, 1) /* index 874 */,
1279  TILEGX_OPC_XOR, TILEGX_OPC_NONE,
1280  BITFIELD(21, 1) /* index 877 */,
1281  TILEGX_OPC_V1DDOTPUA, TILEGX_OPC_NONE,
1282  BITFIELD(21, 1) /* index 880 */,
1283  TILEGX_OPC_V1DDOTPU, TILEGX_OPC_NONE,
1284  BITFIELD(21, 1) /* index 883 */,
1285  TILEGX_OPC_V1DOTPUA, TILEGX_OPC_NONE,
1286  BITFIELD(21, 1) /* index 886 */,
1287  TILEGX_OPC_V1DOTPU, TILEGX_OPC_NONE,
1288  BITFIELD(18, 4) /* index 889 */,
1289  TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
1290  TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
1291  TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
1292  TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1293  TILEGX_OPC_NONE,
1294  BITFIELD(0, 2) /* index 906 */,
1295  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1296  CHILD(911),
1297  BITFIELD(2, 2) /* index 911 */,
1298  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1299  CHILD(916),
1300  BITFIELD(4, 2) /* index 916 */,
1301  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1302  CHILD(921),
1303  BITFIELD(6, 2) /* index 921 */,
1304  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1305  CHILD(926),
1306  BITFIELD(8, 2) /* index 926 */,
1307  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1308  CHILD(931),
1309  BITFIELD(10, 2) /* index 931 */,
1310  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1311  TILEGX_OPC_INFOL,
1312};
1313
1314static const unsigned short decode_X1_fsm[1206] =
1315{
1316  BITFIELD(53, 9) /* index 0 */,
1317  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1318  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1319  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1320  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1321  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1322  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1323  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1324  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1325  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1326  CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513), CHILD(513),
1327  CHILD(513), CHILD(513), CHILD(513), CHILD(513), TILEGX_OPC_ADDXLI,
1328  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1329  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1330  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1331  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1332  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1333  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1334  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1335  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1336  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1337  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1338  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1339  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1340  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1341  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1342  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI,
1343  TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_ADDXLI, TILEGX_OPC_NONE,
1344  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1345  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1346  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1347  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1348  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1349  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1350  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1351  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_BEQZT,
1352  TILEGX_OPC_BEQZT, TILEGX_OPC_BEQZ, TILEGX_OPC_BEQZ, TILEGX_OPC_BGEZT,
1353  TILEGX_OPC_BGEZT, TILEGX_OPC_BGEZ, TILEGX_OPC_BGEZ, TILEGX_OPC_BGTZT,
1354  TILEGX_OPC_BGTZT, TILEGX_OPC_BGTZ, TILEGX_OPC_BGTZ, TILEGX_OPC_BLBCT,
1355  TILEGX_OPC_BLBCT, TILEGX_OPC_BLBC, TILEGX_OPC_BLBC, TILEGX_OPC_BLBST,
1356  TILEGX_OPC_BLBST, TILEGX_OPC_BLBS, TILEGX_OPC_BLBS, TILEGX_OPC_BLEZT,
1357  TILEGX_OPC_BLEZT, TILEGX_OPC_BLEZ, TILEGX_OPC_BLEZ, TILEGX_OPC_BLTZT,
1358  TILEGX_OPC_BLTZT, TILEGX_OPC_BLTZ, TILEGX_OPC_BLTZ, TILEGX_OPC_BNEZT,
1359  TILEGX_OPC_BNEZT, TILEGX_OPC_BNEZ, TILEGX_OPC_BNEZ, CHILD(528), CHILD(578),
1360  CHILD(598), CHILD(663), CHILD(683), CHILD(688), CHILD(693), CHILD(698),
1361  CHILD(703), CHILD(708), CHILD(713), CHILD(718), TILEGX_OPC_NONE,
1362  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1363  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1364  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1365  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1366  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1367  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1368  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1369  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1370  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1371  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1372  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1373  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1374  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_JAL,
1375  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1376  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1377  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1378  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1379  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1380  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1381  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL,
1382  TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_JAL, TILEGX_OPC_J, TILEGX_OPC_J,
1383  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1384  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1385  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1386  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1387  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1388  TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J, TILEGX_OPC_J,
1389  CHILD(723), CHILD(740), CHILD(772), CHILD(789), CHILD(1108), CHILD(1125),
1390  CHILD(1142), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1391  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1392  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1393  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1394  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1395  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1396  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1397  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1398  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1399  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1400  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1401  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1402  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1403  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1404  TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1159), TILEGX_OPC_NONE,
1405  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1406  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1407  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1408  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1409  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1410  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1411  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1412  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1413  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1414  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1415  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1416  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1417  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1418  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1419  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1420  TILEGX_OPC_NONE, TILEGX_OPC_NONE, CHILD(1176), CHILD(1176), CHILD(1176),
1421  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1422  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1423  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1424  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1425  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1426  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1427  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1428  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1429  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1430  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1431  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1432  CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176), CHILD(1176),
1433  CHILD(1176),
1434  BITFIELD(37, 2) /* index 513 */,
1435  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(518),
1436  BITFIELD(39, 2) /* index 518 */,
1437  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, CHILD(523),
1438  BITFIELD(41, 2) /* index 523 */,
1439  TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_ADDLI, TILEGX_OPC_MOVELI,
1440  BITFIELD(51, 2) /* index 528 */,
1441  TILEGX_OPC_NONE, CHILD(533), TILEGX_OPC_ADDXI, CHILD(548),
1442  BITFIELD(37, 2) /* index 533 */,
1443  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(538),
1444  BITFIELD(39, 2) /* index 538 */,
1445  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(543),
1446  BITFIELD(41, 2) /* index 543 */,
1447  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1448  BITFIELD(31, 2) /* index 548 */,
1449  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(553),
1450  BITFIELD(33, 2) /* index 553 */,
1451  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(558),
1452  BITFIELD(35, 2) /* index 558 */,
1453  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(563),
1454  BITFIELD(37, 2) /* index 563 */,
1455  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(568),
1456  BITFIELD(39, 2) /* index 568 */,
1457  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(573),
1458  BITFIELD(41, 2) /* index 573 */,
1459  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1460  BITFIELD(51, 2) /* index 578 */,
1461  TILEGX_OPC_CMPEQI, TILEGX_OPC_CMPLTSI, TILEGX_OPC_CMPLTUI, CHILD(583),
1462  BITFIELD(31, 2) /* index 583 */,
1463  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(588),
1464  BITFIELD(33, 2) /* index 588 */,
1465  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, CHILD(593),
1466  BITFIELD(35, 2) /* index 593 */,
1467  TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD, TILEGX_OPC_LD1S_ADD,
1468  TILEGX_OPC_PREFETCH_ADD_L1_FAULT,
1469  BITFIELD(51, 2) /* index 598 */,
1470  CHILD(603), CHILD(618), CHILD(633), CHILD(648),
1471  BITFIELD(31, 2) /* index 603 */,
1472  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(608),
1473  BITFIELD(33, 2) /* index 608 */,
1474  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, CHILD(613),
1475  BITFIELD(35, 2) /* index 613 */,
1476  TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD, TILEGX_OPC_LD1U_ADD,
1477  TILEGX_OPC_PREFETCH_ADD_L1,
1478  BITFIELD(31, 2) /* index 618 */,
1479  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(623),
1480  BITFIELD(33, 2) /* index 623 */,
1481  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, CHILD(628),
1482  BITFIELD(35, 2) /* index 628 */,
1483  TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD, TILEGX_OPC_LD2S_ADD,
1484  TILEGX_OPC_PREFETCH_ADD_L2_FAULT,
1485  BITFIELD(31, 2) /* index 633 */,
1486  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(638),
1487  BITFIELD(33, 2) /* index 638 */,
1488  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, CHILD(643),
1489  BITFIELD(35, 2) /* index 643 */,
1490  TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD, TILEGX_OPC_LD2U_ADD,
1491  TILEGX_OPC_PREFETCH_ADD_L2,
1492  BITFIELD(31, 2) /* index 648 */,
1493  TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, CHILD(653),
1494  BITFIELD(33, 2) /* index 653 */,
1495  TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, CHILD(658),
1496  BITFIELD(35, 2) /* index 658 */,
1497  TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD, TILEGX_OPC_LD4S_ADD,
1498  TILEGX_OPC_PREFETCH_ADD_L3_FAULT,
1499  BITFIELD(51, 2) /* index 663 */,
1500  CHILD(668), TILEGX_OPC_LDNT1S_ADD, TILEGX_OPC_LDNT1U_ADD,
1501  TILEGX_OPC_LDNT2S_ADD,
1502  BITFIELD(31, 2) /* index 668 */,
1503  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(673),
1504  BITFIELD(33, 2) /* index 673 */,
1505  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, CHILD(678),
1506  BITFIELD(35, 2) /* index 678 */,
1507  TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD, TILEGX_OPC_LD4U_ADD,
1508  TILEGX_OPC_PREFETCH_ADD_L3,
1509  BITFIELD(51, 2) /* index 683 */,
1510  TILEGX_OPC_LDNT2U_ADD, TILEGX_OPC_LDNT4S_ADD, TILEGX_OPC_LDNT4U_ADD,
1511  TILEGX_OPC_LDNT_ADD,
1512  BITFIELD(51, 2) /* index 688 */,
1513  TILEGX_OPC_LD_ADD, TILEGX_OPC_LDNA_ADD, TILEGX_OPC_MFSPR, TILEGX_OPC_MTSPR,
1514  BITFIELD(51, 2) /* index 693 */,
1515  TILEGX_OPC_ORI, TILEGX_OPC_ST1_ADD, TILEGX_OPC_ST2_ADD, TILEGX_OPC_ST4_ADD,
1516  BITFIELD(51, 2) /* index 698 */,
1517  TILEGX_OPC_STNT1_ADD, TILEGX_OPC_STNT2_ADD, TILEGX_OPC_STNT4_ADD,
1518  TILEGX_OPC_STNT_ADD,
1519  BITFIELD(51, 2) /* index 703 */,
1520  TILEGX_OPC_ST_ADD, TILEGX_OPC_V1ADDI, TILEGX_OPC_V1CMPEQI,
1521  TILEGX_OPC_V1CMPLTSI,
1522  BITFIELD(51, 2) /* index 708 */,
1523  TILEGX_OPC_V1CMPLTUI, TILEGX_OPC_V1MAXUI, TILEGX_OPC_V1MINUI,
1524  TILEGX_OPC_V2ADDI,
1525  BITFIELD(51, 2) /* index 713 */,
1526  TILEGX_OPC_V2CMPEQI, TILEGX_OPC_V2CMPLTSI, TILEGX_OPC_V2CMPLTUI,
1527  TILEGX_OPC_V2MAXSI,
1528  BITFIELD(51, 2) /* index 718 */,
1529  TILEGX_OPC_V2MINSI, TILEGX_OPC_XORI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1530  BITFIELD(49, 4) /* index 723 */,
1531  TILEGX_OPC_NONE, TILEGX_OPC_ADDXSC, TILEGX_OPC_ADDX, TILEGX_OPC_ADD,
1532  TILEGX_OPC_AND, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPEXCH4, TILEGX_OPC_CMPEXCH,
1533  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1534  TILEGX_OPC_CMPNE, TILEGX_OPC_DBLALIGN2, TILEGX_OPC_DBLALIGN4,
1535  TILEGX_OPC_DBLALIGN6,
1536  BITFIELD(49, 4) /* index 740 */,
1537  TILEGX_OPC_EXCH4, TILEGX_OPC_EXCH, TILEGX_OPC_FETCHADD4,
1538  TILEGX_OPC_FETCHADDGEZ4, TILEGX_OPC_FETCHADDGEZ, TILEGX_OPC_FETCHADD,
1539  TILEGX_OPC_FETCHAND4, TILEGX_OPC_FETCHAND, TILEGX_OPC_FETCHOR4,
1540  TILEGX_OPC_FETCHOR, TILEGX_OPC_MNZ, TILEGX_OPC_MZ, TILEGX_OPC_NOR,
1541  CHILD(757), TILEGX_OPC_ROTL, TILEGX_OPC_SHL1ADDX,
1542  BITFIELD(43, 2) /* index 757 */,
1543  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(762),
1544  BITFIELD(45, 2) /* index 762 */,
1545  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(767),
1546  BITFIELD(47, 2) /* index 767 */,
1547  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1548  BITFIELD(49, 4) /* index 772 */,
1549  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADDX, TILEGX_OPC_SHL2ADD,
1550  TILEGX_OPC_SHL3ADDX, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHLX, TILEGX_OPC_SHL,
1551  TILEGX_OPC_SHRS, TILEGX_OPC_SHRUX, TILEGX_OPC_SHRU, TILEGX_OPC_ST1,
1552  TILEGX_OPC_ST2, TILEGX_OPC_ST4, TILEGX_OPC_STNT1, TILEGX_OPC_STNT2,
1553  TILEGX_OPC_STNT4,
1554  BITFIELD(46, 7) /* index 789 */,
1555  TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
1556  TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT, TILEGX_OPC_STNT,
1557  TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST,
1558  TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_ST, TILEGX_OPC_SUBXSC,
1559  TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC,
1560  TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBXSC, TILEGX_OPC_SUBX,
1561  TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX,
1562  TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
1563  TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB,
1564  TILEGX_OPC_SUB, TILEGX_OPC_SUB, TILEGX_OPC_SUB, CHILD(918), CHILD(927),
1565  CHILD(1006), CHILD(1090), CHILD(1099), TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1566  TILEGX_OPC_NONE, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
1567  TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC,
1568  TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADDUC, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
1569  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD,
1570  TILEGX_OPC_V1ADD, TILEGX_OPC_V1ADD, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
1571  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
1572  TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ, TILEGX_OPC_V1CMPEQ,
1573  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
1574  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES,
1575  TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLES, TILEGX_OPC_V1CMPLEU,
1576  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
1577  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLEU,
1578  TILEGX_OPC_V1CMPLEU, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
1579  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
1580  TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS, TILEGX_OPC_V1CMPLTS,
1581  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
1582  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU,
1583  TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPLTU, TILEGX_OPC_V1CMPNE,
1584  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
1585  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1CMPNE,
1586  TILEGX_OPC_V1CMPNE, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
1587  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
1588  TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H, TILEGX_OPC_V1INT_H,
1589  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
1590  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
1591  TILEGX_OPC_V1INT_L, TILEGX_OPC_V1INT_L,
1592  BITFIELD(43, 3) /* index 918 */,
1593  TILEGX_OPC_NONE, TILEGX_OPC_DRAIN, TILEGX_OPC_DTLBPR, TILEGX_OPC_FINV,
1594  TILEGX_OPC_FLUSHWB, TILEGX_OPC_FLUSH, TILEGX_OPC_FNOP, TILEGX_OPC_ICOH,
1595  BITFIELD(43, 3) /* index 927 */,
1596  CHILD(936), TILEGX_OPC_INV, TILEGX_OPC_IRET, TILEGX_OPC_JALRP,
1597  TILEGX_OPC_JALR, TILEGX_OPC_JRP, TILEGX_OPC_JR, CHILD(991),
1598  BITFIELD(31, 2) /* index 936 */,
1599  CHILD(941), CHILD(966), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1600  BITFIELD(33, 2) /* index 941 */,
1601  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(946),
1602  BITFIELD(35, 2) /* index 946 */,
1603  TILEGX_OPC_ILL, CHILD(951), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1604  BITFIELD(37, 2) /* index 951 */,
1605  TILEGX_OPC_ILL, CHILD(956), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1606  BITFIELD(39, 2) /* index 956 */,
1607  TILEGX_OPC_ILL, CHILD(961), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1608  BITFIELD(41, 2) /* index 961 */,
1609  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_BPT, TILEGX_OPC_ILL,
1610  BITFIELD(33, 2) /* index 966 */,
1611  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_ILL, CHILD(971),
1612  BITFIELD(35, 2) /* index 971 */,
1613  TILEGX_OPC_ILL, CHILD(976), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1614  BITFIELD(37, 2) /* index 976 */,
1615  TILEGX_OPC_ILL, CHILD(981), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1616  BITFIELD(39, 2) /* index 981 */,
1617  TILEGX_OPC_ILL, CHILD(986), TILEGX_OPC_ILL, TILEGX_OPC_ILL,
1618  BITFIELD(41, 2) /* index 986 */,
1619  TILEGX_OPC_ILL, TILEGX_OPC_ILL, TILEGX_OPC_RAISE, TILEGX_OPC_ILL,
1620  BITFIELD(31, 2) /* index 991 */,
1621  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(996),
1622  BITFIELD(33, 2) /* index 996 */,
1623  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(1001),
1624  BITFIELD(35, 2) /* index 1001 */,
1625  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
1626  TILEGX_OPC_PREFETCH_L1_FAULT,
1627  BITFIELD(43, 3) /* index 1006 */,
1628  CHILD(1015), CHILD(1030), CHILD(1045), CHILD(1060), CHILD(1075),
1629  TILEGX_OPC_LDNA, TILEGX_OPC_LDNT1S, TILEGX_OPC_LDNT1U,
1630  BITFIELD(31, 2) /* index 1015 */,
1631  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1020),
1632  BITFIELD(33, 2) /* index 1020 */,
1633  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(1025),
1634  BITFIELD(35, 2) /* index 1025 */,
1635  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
1636  BITFIELD(31, 2) /* index 1030 */,
1637  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1035),
1638  BITFIELD(33, 2) /* index 1035 */,
1639  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(1040),
1640  BITFIELD(35, 2) /* index 1040 */,
1641  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
1642  TILEGX_OPC_PREFETCH_L2_FAULT,
1643  BITFIELD(31, 2) /* index 1045 */,
1644  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1050),
1645  BITFIELD(33, 2) /* index 1050 */,
1646  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(1055),
1647  BITFIELD(35, 2) /* index 1055 */,
1648  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
1649  BITFIELD(31, 2) /* index 1060 */,
1650  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1065),
1651  BITFIELD(33, 2) /* index 1065 */,
1652  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(1070),
1653  BITFIELD(35, 2) /* index 1070 */,
1654  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S,
1655  TILEGX_OPC_PREFETCH_L3_FAULT,
1656  BITFIELD(31, 2) /* index 1075 */,
1657  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1080),
1658  BITFIELD(33, 2) /* index 1080 */,
1659  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(1085),
1660  BITFIELD(35, 2) /* index 1085 */,
1661  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
1662  BITFIELD(43, 3) /* index 1090 */,
1663  TILEGX_OPC_LDNT2S, TILEGX_OPC_LDNT2U, TILEGX_OPC_LDNT4S, TILEGX_OPC_LDNT4U,
1664  TILEGX_OPC_LDNT, TILEGX_OPC_LD, TILEGX_OPC_LNK, TILEGX_OPC_MF,
1665  BITFIELD(43, 3) /* index 1099 */,
1666  TILEGX_OPC_NAP, TILEGX_OPC_NOP, TILEGX_OPC_SWINT0, TILEGX_OPC_SWINT1,
1667  TILEGX_OPC_SWINT2, TILEGX_OPC_SWINT3, TILEGX_OPC_WH64, TILEGX_OPC_NONE,
1668  BITFIELD(49, 4) /* index 1108 */,
1669  TILEGX_OPC_V1MAXU, TILEGX_OPC_V1MINU, TILEGX_OPC_V1MNZ, TILEGX_OPC_V1MZ,
1670  TILEGX_OPC_V1SHL, TILEGX_OPC_V1SHRS, TILEGX_OPC_V1SHRU, TILEGX_OPC_V1SUBUC,
1671  TILEGX_OPC_V1SUB, TILEGX_OPC_V2ADDSC, TILEGX_OPC_V2ADD, TILEGX_OPC_V2CMPEQ,
1672  TILEGX_OPC_V2CMPLES, TILEGX_OPC_V2CMPLEU, TILEGX_OPC_V2CMPLTS,
1673  TILEGX_OPC_V2CMPLTU,
1674  BITFIELD(49, 4) /* index 1125 */,
1675  TILEGX_OPC_V2CMPNE, TILEGX_OPC_V2INT_H, TILEGX_OPC_V2INT_L,
1676  TILEGX_OPC_V2MAXS, TILEGX_OPC_V2MINS, TILEGX_OPC_V2MNZ, TILEGX_OPC_V2MZ,
1677  TILEGX_OPC_V2PACKH, TILEGX_OPC_V2PACKL, TILEGX_OPC_V2PACKUC,
1678  TILEGX_OPC_V2SHLSC, TILEGX_OPC_V2SHL, TILEGX_OPC_V2SHRS, TILEGX_OPC_V2SHRU,
1679  TILEGX_OPC_V2SUBSC, TILEGX_OPC_V2SUB,
1680  BITFIELD(49, 4) /* index 1142 */,
1681  TILEGX_OPC_V4ADDSC, TILEGX_OPC_V4ADD, TILEGX_OPC_V4INT_H,
1682  TILEGX_OPC_V4INT_L, TILEGX_OPC_V4PACKSC, TILEGX_OPC_V4SHLSC,
1683  TILEGX_OPC_V4SHL, TILEGX_OPC_V4SHRS, TILEGX_OPC_V4SHRU, TILEGX_OPC_V4SUBSC,
1684  TILEGX_OPC_V4SUB, TILEGX_OPC_XOR, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1685  TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1686  BITFIELD(49, 4) /* index 1159 */,
1687  TILEGX_OPC_NONE, TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHLXI,
1688  TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI, TILEGX_OPC_SHRUXI, TILEGX_OPC_V1SHLI,
1689  TILEGX_OPC_V1SHRSI, TILEGX_OPC_V1SHRUI, TILEGX_OPC_V2SHLI,
1690  TILEGX_OPC_V2SHRSI, TILEGX_OPC_V2SHRUI, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1691  TILEGX_OPC_NONE,
1692  BITFIELD(31, 2) /* index 1176 */,
1693  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1694  CHILD(1181),
1695  BITFIELD(33, 2) /* index 1181 */,
1696  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1697  CHILD(1186),
1698  BITFIELD(35, 2) /* index 1186 */,
1699  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1700  CHILD(1191),
1701  BITFIELD(37, 2) /* index 1191 */,
1702  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1703  CHILD(1196),
1704  BITFIELD(39, 2) /* index 1196 */,
1705  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1706  CHILD(1201),
1707  BITFIELD(41, 2) /* index 1201 */,
1708  TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI, TILEGX_OPC_SHL16INSLI,
1709  TILEGX_OPC_INFOL,
1710};
1711
1712static const unsigned short decode_Y0_fsm[178] =
1713{
1714  BITFIELD(27, 4) /* index 0 */,
1715  CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
1716  TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(118), CHILD(123),
1717  CHILD(128), CHILD(133), CHILD(153), CHILD(158), CHILD(163), CHILD(168),
1718  CHILD(173),
1719  BITFIELD(6, 2) /* index 17 */,
1720  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
1721  BITFIELD(8, 2) /* index 22 */,
1722  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
1723  BITFIELD(10, 2) /* index 27 */,
1724  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1725  BITFIELD(0, 2) /* index 32 */,
1726  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
1727  BITFIELD(2, 2) /* index 37 */,
1728  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
1729  BITFIELD(4, 2) /* index 42 */,
1730  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
1731  BITFIELD(6, 2) /* index 47 */,
1732  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
1733  BITFIELD(8, 2) /* index 52 */,
1734  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
1735  BITFIELD(10, 2) /* index 57 */,
1736  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1737  BITFIELD(18, 2) /* index 62 */,
1738  TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
1739  BITFIELD(15, 5) /* index 67 */,
1740  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
1741  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
1742  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD,
1743  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
1744  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
1745  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
1746  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD,
1747  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(100),
1748  CHILD(109), TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1749  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1750  BITFIELD(12, 3) /* index 100 */,
1751  TILEGX_OPC_NONE, TILEGX_OPC_CLZ, TILEGX_OPC_CTZ, TILEGX_OPC_FNOP,
1752  TILEGX_OPC_FSINGLE_PACK1, TILEGX_OPC_NOP, TILEGX_OPC_PCNT,
1753  TILEGX_OPC_REVBITS,
1754  BITFIELD(12, 3) /* index 109 */,
1755  TILEGX_OPC_REVBYTES, TILEGX_OPC_TBLIDXB0, TILEGX_OPC_TBLIDXB1,
1756  TILEGX_OPC_TBLIDXB2, TILEGX_OPC_TBLIDXB3, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1757  TILEGX_OPC_NONE,
1758  BITFIELD(18, 2) /* index 118 */,
1759  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1760  BITFIELD(18, 2) /* index 123 */,
1761  TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE, TILEGX_OPC_MULAX, TILEGX_OPC_MULX,
1762  BITFIELD(18, 2) /* index 128 */,
1763  TILEGX_OPC_CMOVEQZ, TILEGX_OPC_CMOVNEZ, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
1764  BITFIELD(18, 2) /* index 133 */,
1765  TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(138), TILEGX_OPC_XOR,
1766  BITFIELD(12, 2) /* index 138 */,
1767  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(143),
1768  BITFIELD(14, 2) /* index 143 */,
1769  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(148),
1770  BITFIELD(16, 2) /* index 148 */,
1771  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1772  BITFIELD(18, 2) /* index 153 */,
1773  TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
1774  BITFIELD(18, 2) /* index 158 */,
1775  TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
1776  TILEGX_OPC_SHL3ADDX,
1777  BITFIELD(18, 2) /* index 163 */,
1778  TILEGX_OPC_MUL_HS_HS, TILEGX_OPC_MUL_HU_HU, TILEGX_OPC_MUL_LS_LS,
1779  TILEGX_OPC_MUL_LU_LU,
1780  BITFIELD(18, 2) /* index 168 */,
1781  TILEGX_OPC_MULA_HS_HS, TILEGX_OPC_MULA_HU_HU, TILEGX_OPC_MULA_LS_LS,
1782  TILEGX_OPC_MULA_LU_LU,
1783  BITFIELD(18, 2) /* index 173 */,
1784  TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
1785};
1786
1787static const unsigned short decode_Y1_fsm[167] =
1788{
1789  BITFIELD(58, 4) /* index 0 */,
1790  TILEGX_OPC_NONE, CHILD(17), TILEGX_OPC_ADDXI, CHILD(32), TILEGX_OPC_CMPEQI,
1791  TILEGX_OPC_CMPLTSI, CHILD(62), CHILD(67), CHILD(117), CHILD(122),
1792  CHILD(127), CHILD(132), CHILD(152), CHILD(157), CHILD(162), TILEGX_OPC_NONE,
1793  BITFIELD(37, 2) /* index 17 */,
1794  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(22),
1795  BITFIELD(39, 2) /* index 22 */,
1796  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, CHILD(27),
1797  BITFIELD(41, 2) /* index 27 */,
1798  TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_ADDI, TILEGX_OPC_MOVEI,
1799  BITFIELD(31, 2) /* index 32 */,
1800  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(37),
1801  BITFIELD(33, 2) /* index 37 */,
1802  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(42),
1803  BITFIELD(35, 2) /* index 42 */,
1804  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(47),
1805  BITFIELD(37, 2) /* index 47 */,
1806  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(52),
1807  BITFIELD(39, 2) /* index 52 */,
1808  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, CHILD(57),
1809  BITFIELD(41, 2) /* index 57 */,
1810  TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_ANDI, TILEGX_OPC_INFO,
1811  BITFIELD(49, 2) /* index 62 */,
1812  TILEGX_OPC_ADDX, TILEGX_OPC_ADD, TILEGX_OPC_SUBX, TILEGX_OPC_SUB,
1813  BITFIELD(47, 4) /* index 67 */,
1814  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL1ADD,
1815  TILEGX_OPC_SHL1ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD,
1816  TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL2ADD, TILEGX_OPC_SHL3ADD,
1817  TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, TILEGX_OPC_SHL3ADD, CHILD(84),
1818  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_NONE,
1819  BITFIELD(43, 3) /* index 84 */,
1820  CHILD(93), CHILD(96), CHILD(99), CHILD(102), CHILD(105), CHILD(108),
1821  CHILD(111), CHILD(114),
1822  BITFIELD(46, 1) /* index 93 */,
1823  TILEGX_OPC_NONE, TILEGX_OPC_FNOP,
1824  BITFIELD(46, 1) /* index 96 */,
1825  TILEGX_OPC_NONE, TILEGX_OPC_ILL,
1826  BITFIELD(46, 1) /* index 99 */,
1827  TILEGX_OPC_NONE, TILEGX_OPC_JALRP,
1828  BITFIELD(46, 1) /* index 102 */,
1829  TILEGX_OPC_NONE, TILEGX_OPC_JALR,
1830  BITFIELD(46, 1) /* index 105 */,
1831  TILEGX_OPC_NONE, TILEGX_OPC_JRP,
1832  BITFIELD(46, 1) /* index 108 */,
1833  TILEGX_OPC_NONE, TILEGX_OPC_JR,
1834  BITFIELD(46, 1) /* index 111 */,
1835  TILEGX_OPC_NONE, TILEGX_OPC_LNK,
1836  BITFIELD(46, 1) /* index 114 */,
1837  TILEGX_OPC_NONE, TILEGX_OPC_NOP,
1838  BITFIELD(49, 2) /* index 117 */,
1839  TILEGX_OPC_CMPLES, TILEGX_OPC_CMPLEU, TILEGX_OPC_CMPLTS, TILEGX_OPC_CMPLTU,
1840  BITFIELD(49, 2) /* index 122 */,
1841  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_CMPEQ, TILEGX_OPC_CMPNE,
1842  BITFIELD(49, 2) /* index 127 */,
1843  TILEGX_OPC_NONE, TILEGX_OPC_NONE, TILEGX_OPC_MNZ, TILEGX_OPC_MZ,
1844  BITFIELD(49, 2) /* index 132 */,
1845  TILEGX_OPC_AND, TILEGX_OPC_NOR, CHILD(137), TILEGX_OPC_XOR,
1846  BITFIELD(43, 2) /* index 137 */,
1847  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(142),
1848  BITFIELD(45, 2) /* index 142 */,
1849  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, CHILD(147),
1850  BITFIELD(47, 2) /* index 147 */,
1851  TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_OR, TILEGX_OPC_MOVE,
1852  BITFIELD(49, 2) /* index 152 */,
1853  TILEGX_OPC_ROTL, TILEGX_OPC_SHL, TILEGX_OPC_SHRS, TILEGX_OPC_SHRU,
1854  BITFIELD(49, 2) /* index 157 */,
1855  TILEGX_OPC_NONE, TILEGX_OPC_SHL1ADDX, TILEGX_OPC_SHL2ADDX,
1856  TILEGX_OPC_SHL3ADDX,
1857  BITFIELD(49, 2) /* index 162 */,
1858  TILEGX_OPC_ROTLI, TILEGX_OPC_SHLI, TILEGX_OPC_SHRSI, TILEGX_OPC_SHRUI,
1859};
1860
1861static const unsigned short decode_Y2_fsm[118] =
1862{
1863  BITFIELD(62, 2) /* index 0 */,
1864  TILEGX_OPC_NONE, CHILD(5), CHILD(66), CHILD(109),
1865  BITFIELD(55, 3) /* index 5 */,
1866  CHILD(14), CHILD(14), CHILD(14), CHILD(17), CHILD(40), CHILD(40), CHILD(40),
1867  CHILD(43),
1868  BITFIELD(26, 1) /* index 14 */,
1869  TILEGX_OPC_LD1S, TILEGX_OPC_LD1U,
1870  BITFIELD(26, 1) /* index 17 */,
1871  CHILD(20), CHILD(30),
1872  BITFIELD(51, 2) /* index 20 */,
1873  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, CHILD(25),
1874  BITFIELD(53, 2) /* index 25 */,
1875  TILEGX_OPC_LD1S, TILEGX_OPC_LD1S, TILEGX_OPC_LD1S,
1876  TILEGX_OPC_PREFETCH_L1_FAULT,
1877  BITFIELD(51, 2) /* index 30 */,
1878  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, CHILD(35),
1879  BITFIELD(53, 2) /* index 35 */,
1880  TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_LD1U, TILEGX_OPC_PREFETCH,
1881  BITFIELD(26, 1) /* index 40 */,
1882  TILEGX_OPC_LD2S, TILEGX_OPC_LD2U,
1883  BITFIELD(26, 1) /* index 43 */,
1884  CHILD(46), CHILD(56),
1885  BITFIELD(51, 2) /* index 46 */,
1886  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, CHILD(51),
1887  BITFIELD(53, 2) /* index 51 */,
1888  TILEGX_OPC_LD2S, TILEGX_OPC_LD2S, TILEGX_OPC_LD2S,
1889  TILEGX_OPC_PREFETCH_L2_FAULT,
1890  BITFIELD(51, 2) /* index 56 */,
1891  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, CHILD(61),
1892  BITFIELD(53, 2) /* index 61 */,
1893  TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_LD2U, TILEGX_OPC_PREFETCH_L2,
1894  BITFIELD(56, 2) /* index 66 */,
1895  CHILD(71), CHILD(74), CHILD(90), CHILD(93),
1896  BITFIELD(26, 1) /* index 71 */,
1897  TILEGX_OPC_NONE, TILEGX_OPC_LD4S,
1898  BITFIELD(26, 1) /* index 74 */,
1899  TILEGX_OPC_NONE, CHILD(77),
1900  BITFIELD(51, 2) /* index 77 */,
1901  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(82),
1902  BITFIELD(53, 2) /* index 82 */,
1903  TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, TILEGX_OPC_LD4S, CHILD(87),
1904  BITFIELD(55, 1) /* index 87 */,
1905  TILEGX_OPC_LD4S, TILEGX_OPC_PREFETCH_L3_FAULT,
1906  BITFIELD(26, 1) /* index 90 */,
1907  TILEGX_OPC_LD4U, TILEGX_OPC_LD,
1908  BITFIELD(26, 1) /* index 93 */,
1909  CHILD(96), TILEGX_OPC_LD,
1910  BITFIELD(51, 2) /* index 96 */,
1911  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(101),
1912  BITFIELD(53, 2) /* index 101 */,
1913  TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, TILEGX_OPC_LD4U, CHILD(106),
1914  BITFIELD(55, 1) /* index 106 */,
1915  TILEGX_OPC_LD4U, TILEGX_OPC_PREFETCH_L3,
1916  BITFIELD(26, 1) /* index 109 */,
1917  CHILD(112), CHILD(115),
1918  BITFIELD(57, 1) /* index 112 */,
1919  TILEGX_OPC_ST1, TILEGX_OPC_ST4,
1920  BITFIELD(57, 1) /* index 115 */,
1921  TILEGX_OPC_ST2, TILEGX_OPC_ST,
1922};
1923
1924#undef BITFIELD
1925#undef CHILD
1926const unsigned short * const
1927tilegx_bundle_decoder_fsms[TILEGX_NUM_PIPELINE_ENCODINGS] =
1928{
1929  decode_X0_fsm,
1930  decode_X1_fsm,
1931  decode_Y0_fsm,
1932  decode_Y1_fsm,
1933  decode_Y2_fsm
1934};
1935const struct tilegx_operand tilegx_operands[35] =
1936{
1937  {
1938    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X0),
1939    8, 1, 0, 0, 0, 0,
1940    create_Imm8_X0, get_Imm8_X0
1941  },
1942  {
1943    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_X1),
1944    8, 1, 0, 0, 0, 0,
1945    create_Imm8_X1, get_Imm8_X1
1946  },
1947  {
1948    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y0),
1949    8, 1, 0, 0, 0, 0,
1950    create_Imm8_Y0, get_Imm8_Y0
1951  },
1952  {
1953    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM8_Y1),
1954    8, 1, 0, 0, 0, 0,
1955    create_Imm8_Y1, get_Imm8_Y1
1956  },
1957  {
1958    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X0_HW0_LAST),
1959    16, 1, 0, 0, 0, 0,
1960    create_Imm16_X0, get_Imm16_X0
1961  },
1962  {
1963    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_IMM16_X1_HW0_LAST),
1964    16, 1, 0, 0, 0, 0,
1965    create_Imm16_X1, get_Imm16_X1
1966  },
1967  {
1968    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1969    6, 0, 0, 1, 0, 0,
1970    create_Dest_X0, get_Dest_X0
1971  },
1972  {
1973    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1974    6, 0, 1, 0, 0, 0,
1975    create_SrcA_X0, get_SrcA_X0
1976  },
1977  {
1978    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1979    6, 0, 0, 1, 0, 0,
1980    create_Dest_X1, get_Dest_X1
1981  },
1982  {
1983    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1984    6, 0, 1, 0, 0, 0,
1985    create_SrcA_X1, get_SrcA_X1
1986  },
1987  {
1988    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1989    6, 0, 0, 1, 0, 0,
1990    create_Dest_Y0, get_Dest_Y0
1991  },
1992  {
1993    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1994    6, 0, 1, 0, 0, 0,
1995    create_SrcA_Y0, get_SrcA_Y0
1996  },
1997  {
1998    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
1999    6, 0, 0, 1, 0, 0,
2000    create_Dest_Y1, get_Dest_Y1
2001  },
2002  {
2003    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2004    6, 0, 1, 0, 0, 0,
2005    create_SrcA_Y1, get_SrcA_Y1
2006  },
2007  {
2008    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2009    6, 0, 1, 0, 0, 0,
2010    create_SrcA_Y2, get_SrcA_Y2
2011  },
2012  {
2013    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2014    6, 0, 1, 1, 0, 0,
2015    create_SrcA_X1, get_SrcA_X1
2016  },
2017  {
2018    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2019    6, 0, 1, 0, 0, 0,
2020    create_SrcB_X0, get_SrcB_X0
2021  },
2022  {
2023    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2024    6, 0, 1, 0, 0, 0,
2025    create_SrcB_X1, get_SrcB_X1
2026  },
2027  {
2028    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2029    6, 0, 1, 0, 0, 0,
2030    create_SrcB_Y0, get_SrcB_Y0
2031  },
2032  {
2033    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2034    6, 0, 1, 0, 0, 0,
2035    create_SrcB_Y1, get_SrcB_Y1
2036  },
2037  {
2038    TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_BROFF_X1),
2039    17, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
2040    create_BrOff_X1, get_BrOff_X1
2041  },
2042  {
2043    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(NONE),
2044    6, 0, 0, 0, 0, 0,
2045    create_BFStart_X0, get_BFStart_X0
2046  },
2047  {
2048    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(NONE),
2049    6, 0, 0, 0, 0, 0,
2050    create_BFEnd_X0, get_BFEnd_X0
2051  },
2052  {
2053    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2054    6, 0, 1, 1, 0, 0,
2055    create_Dest_X0, get_Dest_X0
2056  },
2057  {
2058    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2059    6, 0, 1, 1, 0, 0,
2060    create_Dest_Y0, get_Dest_Y0
2061  },
2062  {
2063    TILEGX_OP_TYPE_ADDRESS, BFD_RELOC(TILEGX_JUMPOFF_X1),
2064    27, 1, 0, 0, 1, TILEGX_LOG2_BUNDLE_ALIGNMENT_IN_BYTES,
2065    create_JumpOff_X1, get_JumpOff_X1
2066  },
2067  {
2068    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2069    6, 0, 0, 1, 0, 0,
2070    create_SrcBDest_Y2, get_SrcBDest_Y2
2071  },
2072  {
2073    TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MF_IMM14_X1),
2074    14, 0, 0, 0, 0, 0,
2075    create_MF_Imm14_X1, get_MF_Imm14_X1
2076  },
2077  {
2078    TILEGX_OP_TYPE_SPR, BFD_RELOC(TILEGX_MT_IMM14_X1),
2079    14, 0, 0, 0, 0, 0,
2080    create_MT_Imm14_X1, get_MT_Imm14_X1
2081  },
2082  {
2083    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X0),
2084    6, 0, 0, 0, 0, 0,
2085    create_ShAmt_X0, get_ShAmt_X0
2086  },
2087  {
2088    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_X1),
2089    6, 0, 0, 0, 0, 0,
2090    create_ShAmt_X1, get_ShAmt_X1
2091  },
2092  {
2093    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y0),
2094    6, 0, 0, 0, 0, 0,
2095    create_ShAmt_Y0, get_ShAmt_Y0
2096  },
2097  {
2098    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_SHAMT_Y1),
2099    6, 0, 0, 0, 0, 0,
2100    create_ShAmt_Y1, get_ShAmt_Y1
2101  },
2102  {
2103    TILEGX_OP_TYPE_REGISTER, BFD_RELOC(NONE),
2104    6, 0, 1, 0, 0, 0,
2105    create_SrcBDest_Y2, get_SrcBDest_Y2
2106  },
2107  {
2108    TILEGX_OP_TYPE_IMMEDIATE, BFD_RELOC(TILEGX_DEST_IMM8_X1),
2109    8, 1, 0, 0, 0, 0,
2110    create_Dest_Imm8_X1, get_Dest_Imm8_X1
2111  }
2112};
2113
2114
2115
2116
2117/* Given a set of bundle bits and the lookup FSM for a specific pipe,
2118 * returns which instruction the bundle contains in that pipe.
2119 */
2120static const struct tilegx_opcode *
2121find_opcode(tilegx_bundle_bits bits, const unsigned short *table)
2122{
2123  int index = 0;
2124
2125  while (1)
2126  {
2127    unsigned short bitspec = table[index];
2128    unsigned int bitfield =
2129      ((unsigned int)(bits >> (bitspec & 63))) & (bitspec >> 6);
2130
2131    unsigned short next = table[index + 1 + bitfield];
2132    if (next <= TILEGX_OPC_NONE)
2133      return &tilegx_opcodes[next];
2134
2135    index = next - TILEGX_OPC_NONE;
2136  }
2137}
2138
2139
2140int
2141parse_insn_tilegx(tilegx_bundle_bits bits,
2142                  unsigned long long pc,
2143                  struct tilegx_decoded_instruction
2144                  decoded[TILEGX_MAX_INSTRUCTIONS_PER_BUNDLE])
2145{
2146  int num_instructions = 0;
2147  int pipe;
2148
2149  int min_pipe, max_pipe;
2150  if ((bits & TILEGX_BUNDLE_MODE_MASK) == 0)
2151  {
2152    min_pipe = TILEGX_PIPELINE_X0;
2153    max_pipe = TILEGX_PIPELINE_X1;
2154  }
2155  else
2156  {
2157    min_pipe = TILEGX_PIPELINE_Y0;
2158    max_pipe = TILEGX_PIPELINE_Y2;
2159  }
2160
2161  /* For each pipe, find an instruction that fits. */
2162  for (pipe = min_pipe; pipe <= max_pipe; pipe++)
2163  {
2164    const struct tilegx_opcode *opc;
2165    struct tilegx_decoded_instruction *d;
2166    int i;
2167
2168    d = &decoded[num_instructions++];
2169    opc = find_opcode (bits, tilegx_bundle_decoder_fsms[pipe]);
2170    d->opcode = opc;
2171
2172    /* Decode each operand, sign extending, etc. as appropriate. */
2173    for (i = 0; i < opc->num_operands; i++)
2174    {
2175      const struct tilegx_operand *op =
2176        &tilegx_operands[opc->operands[pipe][i]];
2177      int raw_opval = op->extract (bits);
2178      long long opval;
2179
2180      if (op->is_signed)
2181      {
2182        /* Sign-extend the operand. */
2183        int shift = (int)((sizeof(int) * 8) - op->num_bits);
2184        raw_opval = (raw_opval << shift) >> shift;
2185      }
2186
2187      /* Adjust PC-relative scaled branch offsets. */
2188      if (op->type == TILEGX_OP_TYPE_ADDRESS)
2189        opval = (raw_opval * TILEGX_BUNDLE_SIZE_IN_BYTES) + pc;
2190      else
2191        opval = raw_opval;
2192
2193      /* Record the final value. */
2194      d->operands[i] = op;
2195      d->operand_values[i] = opval;
2196    }
2197  }
2198
2199  return num_instructions;
2200}