/* Instruction opcode table for arc.

THIS FILE IS MACHINE GENERATED WITH CGEN.

Copyright 1996-2007 Free Software Foundation, Inc.

This file is part of the GNU Binutils and/or GDB, the GNU debugger.

   This file is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.

   It is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   License for more details.

   You should have received a copy of the GNU General Public License along
   with this program; if not, write to the Free Software Foundation, Inc.,
   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.

*/

#include "sysdep.h"
#include "ansidecl.h"
#include "bfd.h"
#include "symcat.h"
#include "arc-desc.h"
#include "arc-opc.h"
#include "libiberty.h"

/* -- opc.c */
unsigned int
arc_cgen_dis_hash (const char * buf, int big_p)
{
  const unsigned char *ubuf = (unsigned const char *) buf;
  int b0 = ubuf[0], b1 = ubuf[1], w;

  if (big_p)
    w = (b0 << 8) + b1;
  else
    w = (b1 << 8) + b0;

  switch (w >> 11)
    {
    case 0x01: /* branches */
      return ((w >> 6) | w);
    case 0x04: /* general operations */
    case 0x05: case 0x06: case 0x07: /* 32 bit extension instructions */
      return ((w >> 3) & 768) | (w & 255);
    case 0x0c: /* .s load/add register-register */
    case 0x0d: /* .s add/sub/shift register-immediate */
    case 0x0e: /* .s mov/cmp/add with high register */
      return ((w >> 6) & 992) | (w & 24);
    case 0x0f: /* 16 bit general operations */
      return ((w >> 6) & 992) | (w & 31);
    case 0x17: /* .s shift/subtract/bit immediate */
    case 0x18: /* .s stack-pointer based */
      return ((w >> 6) & 992) | ((w >> 5) & 7);
    case 0x19: /* load/add GP-relative */
    case 0x1e: /* branch conditionally */
      return ((w >> 6) & (992 | 24));
    case 0x1c: /* add/cmp immediate */
    case 0x1d: /* branch on compare register with zero */
      return ((w >> 6) & (992 | 2));
    default:
      return ((w >> 6) & 992);
    }
}

/* -- */
/* The hash functions are recorded here to help keep assembler code out of
   the disassembler and vice versa.  */

static int asm_hash_insn_p        (const CGEN_INSN *);
static unsigned int asm_hash_insn (const char *);
static int dis_hash_insn_p        (const CGEN_INSN *);
static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT, int);

/* Instruction formats.  */

#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define F(f) & arc_cgen_ifld_table[ARC_##f]
#else
#define F(f) & arc_cgen_ifld_table[ARC_/**/f]
#endif
static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
  0, 0, 0x0, { { 0 } }
};

static const CGEN_IFMT ifmt_b_s ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_COND_I2) }, { F (F_REL10) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_bcc_s ATTRIBUTE_UNUSED = {
  32, 32, 0xfe000000, { { F (F_OPM) }, { F (F_COND_I2) }, { F (F_COND_I3) }, { F (F_REL7) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_brcc_s ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_BRSCOND) }, { F (F_REL8) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_bcc_l ATTRIBUTE_UNUSED = {
  32, 32, 0xf8010020, { { F (F_OPM) }, { F (F_REL21) }, { F (F_BUF) }, { F (F_DELAY_N) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_b_l ATTRIBUTE_UNUSED = {
  32, 32, 0xf8010030, { { F (F_OPM) }, { F (F_REL25) }, { F (F_BUF) }, { F (F_DELAY_N) }, { F (F_RES27) }, { 0 } }
};

static const CGEN_IFMT ifmt_brcc_RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8010030, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_REL9) }, { F (F_BUF) }, { F (F_OP_C) }, { F (F_DELAY_N) }, { F (F_BR) }, { F (F_BRCOND) }, { 0 } }
};

static const CGEN_IFMT ifmt_brcc_U6 ATTRIBUTE_UNUSED = {
  32, 32, 0xf8010030, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_REL9) }, { F (F_BUF) }, { F (F_U6) }, { F (F_DELAY_N) }, { F (F_BR) }, { F (F_BRCOND) }, { 0 } }
};

static const CGEN_IFMT ifmt_bl_s ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_REL13BL) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_blcc ATTRIBUTE_UNUSED = {
  32, 32, 0xf8030020, { { F (F_OPM) }, { F (F_REL21BL) }, { F (F_BLUF) }, { F (F_BUF) }, { F (F_DELAY_N) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_bl ATTRIBUTE_UNUSED = {
  32, 32, 0xf8030030, { { F (F_OPM) }, { F (F_REL25BL) }, { F (F_BLUF) }, { F (F_BUF) }, { F (F_DELAY_N) }, { F (F_RES27) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_abs ATTRIBUTE_UNUSED = {
  32, 32, 0xf80007c0, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_S9) }, { F (F_LDODI) }, { F (F_LDOAA) }, { F (F_LDOZZX) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_abc ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_LDRAA) }, { F (F_LDR6ZZX) }, { F (F_LDRDI) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_s_abc ATTRIBUTE_UNUSED = {
  32, 32, 0xf8180000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_I16_43) }, { F (F_OP__A) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_s_abu ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5X4) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_s_absp ATTRIBUTE_UNUSED = {
  32, 32, 0xf8e00000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5X4) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_s_gprel ATTRIBUTE_UNUSED = {
  32, 32, 0xfe000000, { { F (F_OPM) }, { F (F_I16_GP_TYPE) }, { F (F_S9X4) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ld_s_pcrel ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_U8X4) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldb_s_abu ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldb_s_gprel ATTRIBUTE_UNUSED = {
  32, 32, 0xfe000000, { { F (F_OPM) }, { F (F_I16_GP_TYPE) }, { F (F_S9X1) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldw_s_abu ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5X2) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldw_s_gprel ATTRIBUTE_UNUSED = {
  32, 32, 0xfe000000, { { F (F_OPM) }, { F (F_I16_GP_TYPE) }, { F (F_S9X2) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_st_abs ATTRIBUTE_UNUSED = {
  32, 32, 0xf800001f, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_S9) }, { F (F_LDODI) }, { F (F_OP_C) }, { F (F_STOAA) }, { F (F_STOZZR) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_L_s12__RA_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_S12) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_ccu6__RA_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_L_u6__RA_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_L_r_r__RA__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_cc__RA__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_s_cbu3 ATTRIBUTE_UNUSED = {
  32, 32, 0xf8180000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_I16_43) }, { F (F_U3) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_s_mcah ATTRIBUTE_UNUSED = {
  32, 32, 0xf8180000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP_H) }, { F (F_I16_43) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_s_asspsp ATTRIBUTE_UNUSED = {
  32, 32, 0xffe00000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5X4) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_s_gp ATTRIBUTE_UNUSED = {
  32, 32, 0xfe000000, { { F (F_OPM) }, { F (F_I16_GP_TYPE) }, { F (F_S9X4) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_s_r_u7 ATTRIBUTE_UNUSED = {
  32, 32, 0xf8800000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_I16ADDCMPU7_TYPE) }, { F (F_U7) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_I16_GO_SUB_s_go ATTRIBUTE_UNUSED = {
  32, 32, 0xf81f0000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_I16_GO) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_sub_s_go_sub_ne ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_I16_GO) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_sub_s_ssb ATTRIBUTE_UNUSED = {
  32, 32, 0xf8e00000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov_L_u6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov_L_r_r__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov_s_r_u7 ATTRIBUTE_UNUSED = {
  32, 32, 0xf8000000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_U8) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_tst_L_s12_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_S12) }, { 0 } }
};

static const CGEN_IFMT ifmt_tst_ccu6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_tst_L_u6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_tst_L_r_r__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_tst_cc__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_L_r_r___RC_noilink_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_CJ) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_cc___RC_noilink_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_CJ) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_L_r_r___RC_ilink_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_CJ) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_cc___RC_ilink_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_CJ) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_L_s12_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_S12) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_ccu6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_L_u6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_s__S ATTRIBUTE_UNUSED = {
  32, 32, 0xffff0000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_I16_GO) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_L_r_r_d___RC_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_j_cc_d___RC_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_lp_L_s12_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_S12X2) }, { 0 } }
};

static const CGEN_IFMT ifmt_lpcc_ccu6 ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6X2) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_lr_L_r_r___RC_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_lr_L_s12_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_S12) }, { 0 } }
};

static const CGEN_IFMT ifmt_lr_L_u6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_asl_L_r_r__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff003f, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_asl_L_u6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff003f, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_ex_L_r_r__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff003f, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_ex_L_u6_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff003f, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_swi ATTRIBUTE_UNUSED = {
  32, 32, 0xffff7fff, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_B_5_3) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_trap_s ATTRIBUTE_UNUSED = {
  32, 32, 0xf81f0000, { { F (F_OPM) }, { F (F_TRAPNUM) }, { F (F_I16_GO) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_brk_s ATTRIBUTE_UNUSED = {
  32, 32, 0xffff0000, { { F (F_OPM) }, { F (F_TRAPNUM) }, { F (F_I16_GO) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_divaw_ccu6__RA_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_divaw_L_u6__RA_ ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_U6) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_divaw_L_r_r__RA__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

static const CGEN_IFMT ifmt_divaw_cc__RA__RC ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0020, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_GO_CC_TYPE) }, { F (F_COND_Q) }, { 0 } }
};

static const CGEN_IFMT ifmt_pop_s_b ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff0000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_pop_s_blink ATTRIBUTE_UNUSED = {
  32, 32, 0xffff0000, { { F (F_OPM) }, { F (F_OP__B) }, { F (F_OP__C) }, { F (F_U5) }, { F (F_DUMMY) }, { 0 } }
};

static const CGEN_IFMT ifmt_current_loop_end ATTRIBUTE_UNUSED = {
  32, 32, 0xf8ff003f, { { F (F_OPM) }, { F (F_OP_B) }, { F (F_GO_TYPE) }, { F (F_GO_OP) }, { F (F_F) }, { F (F_OP_C) }, { F (F_OP_A) }, { 0 } }
};

#undef F

#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_INSN_##a)
#else
#define A(a) (1 << CGEN_INSN_/**/a)
#endif
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define OPERAND(op) ARC_OPERAND_##op
#else
#define OPERAND(op) ARC_OPERAND_/**/op
#endif
#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))

/* The instruction table.  */

static const CGEN_OPCODE arc_cgen_insn_opcode_table[MAX_INSNS] =
{
  /* Special null first entry.
     A `num' value of zero is thus invalid.
     Also, the special `invalid' insn resides here.  */
  { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
/* b$i2cond $label10 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (I2COND), ' ', OP (LABEL10), 0 } },
    & ifmt_b_s, { 0xf0000000 }
  },
/* b$i3cond$_S $label7 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (I3COND), OP (_S), ' ', OP (LABEL7), 0 } },
    & ifmt_bcc_s, { 0xf6000000 }
  },
/* br$RccS$_S $R_b,0,$label8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (RCCS), OP (_S), ' ', OP (R_B), ',', '0', ',', OP (LABEL8), 0 } },
    & ifmt_brcc_s, { 0xe8000000 }
  },
/* b$Qcondb$_L $label21 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDB), OP (_L), ' ', OP (LABEL21), 0 } },
    & ifmt_bcc_l, { 0x0 }
  },
/* b$Qcondb$_L.d $label21 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDB), OP (_L), '.', 'd', ' ', OP (LABEL21), 0 } },
    & ifmt_bcc_l, { 0x20 }
  },
/* b$uncondb$_L $label25 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (UNCONDB), OP (_L), ' ', OP (LABEL25), 0 } },
    & ifmt_b_l, { 0x10000 }
  },
/* b$uncondb$_L.d $label25 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (UNCONDB), OP (_L), '.', 'd', ' ', OP (LABEL25), 0 } },
    & ifmt_b_l, { 0x10020 }
  },
/* b$Rcc $RB,$RC,$label9 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (RCC), ' ', OP (RB), ',', OP (RC), ',', OP (LABEL9), 0 } },
    & ifmt_brcc_RC, { 0x8010000 }
  },
/* b$Rcc.d $RB,$RC,$label9 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (RCC), '.', 'd', ' ', OP (RB), ',', OP (RC), ',', OP (LABEL9), 0 } },
    & ifmt_brcc_RC, { 0x8010020 }
  },
/* b$Rcc $RB,$U6,$label9 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (RCC), ' ', OP (RB), ',', OP (U6), ',', OP (LABEL9), 0 } },
    & ifmt_brcc_U6, { 0x8010010 }
  },
/* b$Rcc.d $RB,$U6,$label9 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (RCC), '.', 'd', ' ', OP (RB), ',', OP (U6), ',', OP (LABEL9), 0 } },
    & ifmt_brcc_U6, { 0x8010030 }
  },
/* bl$uncondj$_S $label13a */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (UNCONDJ), OP (_S), ' ', OP (LABEL13A), 0 } },
    & ifmt_bl_s, { 0xf8000000 }
  },
/* bl$Qcondj$_L $label21 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDJ), OP (_L), ' ', OP (LABEL21), 0 } },
    & ifmt_blcc, { 0x8000000 }
  },
/* bl$Qcondj$_L.d $label21 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDJ), OP (_L), '.', 'd', ' ', OP (LABEL21), 0 } },
    & ifmt_blcc, { 0x8000020 }
  },
/* bl$uncondj$_L $label25a */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (UNCONDJ), OP (_L), ' ', OP (LABEL25A), 0 } },
    & ifmt_bl, { 0x8020000 }
  },
/* bl$uncondj$_L.d $label25a */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (UNCONDJ), OP (_L), '.', 'd', ' ', OP (LABEL25A), 0 } },
    & ifmt_bl, { 0x8020020 }
  },
/* ld$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000000 }
  },
/* ld$_AW$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000200 }
  },
/* ld.ab$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000400 }
  },
/* ld.as$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000600 }
  },
/* ld$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20300000 }
  },
/* ld$_AW$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20700000 }
  },
/* ld.ab$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20b00000 }
  },
/* ld.as$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20f00000 }
  },
/* ld$_S $R_a,[$R_b,$R_c] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_A), ',', '[', OP (R_B), ',', OP (R_C), ']', 0 } },
    & ifmt_ld_s_abc, { 0x60000000 }
  },
/* ld$_S $R_c,[$R_b,$sc_u5_] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5_), ']', 0 } },
    & ifmt_ld_s_abu, { 0x80000000 }
  },
/* ld$_S $R_b,[$SP,$u5x4] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (SP), ',', OP (U5X4), ']', 0 } },
    & ifmt_ld_s_absp, { 0xc0000000 }
  },
/* ld$_S $R_b,[$GP,$sc_s9_] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (GP), ',', OP (SC_S9_), ']', 0 } },
    & ifmt_ld_s_gprel, { 0xc8000000 }
  },
/* ld$_S $R_b,[$PCL,$u8x4] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (PCL), ',', OP (U8X4), ']', 0 } },
    & ifmt_ld_s_pcrel, { 0xd0000000 }
  },
/* ldb$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000080 }
  },
/* ldb$_AW$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000280 }
  },
/* ldb.ab$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000480 }
  },
/* ldb.as$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000680 }
  },
/* ldb$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20320000 }
  },
/* ldb$_AW$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20720000 }
  },
/* ldb.ab$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20b20000 }
  },
/* ldb.as$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20f20000 }
  },
/* ldb$_S $R_a,[$R_b,$R_c] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_A), ',', '[', OP (R_B), ',', OP (R_C), ']', 0 } },
    & ifmt_ld_s_abc, { 0x60080000 }
  },
/* ldb$_S $R_c,[$R_b,$sc_u5b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5B), ']', 0 } },
    & ifmt_ldb_s_abu, { 0x88000000 }
  },
/* ldb$_S $R_b,[$SP,$u5x4] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (SP), ',', OP (U5X4), ']', 0 } },
    & ifmt_ld_s_absp, { 0xc0200000 }
  },
/* ldb$_S $R_b,[$GP,$sc_s9b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (GP), ',', OP (SC_S9B), ']', 0 } },
    & ifmt_ldb_s_gprel, { 0xca000000 }
  },
/* ldb.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x100000c0 }
  },
/* ldb$_AW.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), '.', 'x', OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x100002c0 }
  },
/* ldb.ab.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x100004c0 }
  },
/* ldb.as.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x100006c0 }
  },
/* ldb.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20330000 }
  },
/* ldb$_AW.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), '.', 'x', OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20730000 }
  },
/* ldb.ab.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20b30000 }
  },
/* ldb.as.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20f30000 }
  },
/* ldw$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000100 }
  },
/* ldw$_AW$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000300 }
  },
/* ldw.ab$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000500 }
  },
/* ldw.as$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000700 }
  },
/* ldw$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20340000 }
  },
/* ldw$_AW$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20740000 }
  },
/* ldw.ab$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20b40000 }
  },
/* ldw.as$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20f40000 }
  },
/* ldw$_S $R_a,[$R_b,$R_c] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_A), ',', '[', OP (R_B), ',', OP (R_C), ']', 0 } },
    & ifmt_ld_s_abc, { 0x60100000 }
  },
/* ldw$_S $R_c,[$R_b,$sc_u5w] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5W), ']', 0 } },
    & ifmt_ldw_s_abu, { 0x90000000 }
  },
/* ldw$_S $R_b,[$GP,$sc_s9w] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (GP), ',', OP (SC_S9W), ']', 0 } },
    & ifmt_ldw_s_gprel, { 0xcc000000 }
  },
/* ldw.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000140 }
  },
/* ldw$_AW.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), '.', 'x', OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000340 }
  },
/* ldw.ab.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000540 }
  },
/* ldw.as.x$LDODi $RA,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDODI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_ld_abs, { 0x10000740 }
  },
/* ldw.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20350000 }
  },
/* ldw$_AW.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), '.', 'x', OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20750000 }
  },
/* ldw.ab.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20b50000 }
  },
/* ldw.as.x$LDRDi $RA,[$RB,$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (LDRDI), ' ', OP (RA), ',', '[', OP (RB), ',', OP (RC), ']', 0 } },
    & ifmt_ld_abc, { 0x20f50000 }
  },
/* ldw$_S.x $R_c,[$R_b,$sc_u5w] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), '.', 'x', ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5W), ']', 0 } },
    & ifmt_ldw_s_abu, { 0x98000000 }
  },
/* st$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000000 }
  },
/* st$_AW$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000008 }
  },
/* st.ab$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000010 }
  },
/* st.as$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000018 }
  },
/* st$_S $R_c,[$R_b,$sc_u5_] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5_), ']', 0 } },
    & ifmt_ld_s_abu, { 0xa0000000 }
  },
/* st$_S $R_b,[$SP,$u5x4] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (SP), ',', OP (U5X4), ']', 0 } },
    & ifmt_ld_s_absp, { 0xc0400000 }
  },
/* stb$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000002 }
  },
/* stb$_AW$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x1800000a }
  },
/* stb.ab$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000012 }
  },
/* stb.as$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x1800001a }
  },
/* stb$_S $R_c,[$R_b,$sc_u5b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5B), ']', 0 } },
    & ifmt_ldb_s_abu, { 0xa8000000 }
  },
/* stb$_S $R_b,[$SP,$u5x4] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', '[', OP (SP), ',', OP (U5X4), ']', 0 } },
    & ifmt_ld_s_absp, { 0xc0600000 }
  },
/* stw$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000004 }
  },
/* stw$_AW$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_AW), OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x1800000c }
  },
/* stw.ab$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x18000014 }
  },
/* stw.as$STODi $RC,[$RB,$s9] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (STODI), ' ', OP (RC), ',', '[', OP (RB), ',', OP (S9), ']', 0 } },
    & ifmt_st_abs, { 0x1800001c }
  },
/* stw$_S $R_c,[$R_b,$sc_u5w] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', '[', OP (R_B), ',', OP (SC_U5W), ']', 0 } },
    & ifmt_ldw_s_abu, { 0xb0000000 }
  },
/* add$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20800000 }
  },
/* add$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c00020 }
  },
/* add$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20400000 }
  },
/* add$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20000000 }
  },
/* add$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c00000 }
  },
/* add$_S $R_a,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_A), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_ld_s_abc, { 0x60180000 }
  },
/* add$_S $R_c,$R_b,$u3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', OP (R_B), ',', OP (U3), 0 } },
    & ifmt_add_s_cbu3, { 0x68000000 }
  },
/* add$_S $R_b,$R_b,$Rh */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (RH), 0 } },
    & ifmt_add_s_mcah, { 0x70000000 }
  },
/* add$_S $R_b,$SP,$u5x4 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (SP), ',', OP (U5X4), 0 } },
    & ifmt_ld_s_absp, { 0xc0800000 }
  },
/* add$_S $SP,$SP,$u5x4 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (SP), ',', OP (SP), ',', OP (U5X4), 0 } },
    & ifmt_add_s_asspsp, { 0xc0a00000 }
  },
/* add$_S $R0,$GP,$s9x4 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R0), ',', OP (GP), ',', OP (S9X4), 0 } },
    & ifmt_add_s_gp, { 0xce000000 }
  },
/* add$_S $R_b,$R_b,$u7 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U7), 0 } },
    & ifmt_add_s_r_u7, { 0xe0000000 }
  },
/* adc$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20810000 }
  },
/* adc$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c10020 }
  },
/* adc$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20410000 }
  },
/* adc$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20010000 }
  },
/* adc$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c10000 }
  },
/* sub$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20820000 }
  },
/* sub$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c20020 }
  },
/* sub$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20420000 }
  },
/* sub$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20020000 }
  },
/* sub$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c20000 }
  },
/* sub$_S $R_c,$R_b,$u3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', OP (R_B), ',', OP (U3), 0 } },
    & ifmt_add_s_cbu3, { 0x68080000 }
  },
/* sub$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78020000 }
  },
/* sub$_S $NE$R_b,$R_b,$R_b */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (NE), OP (R_B), ',', OP (R_B), ',', OP (R_B), 0 } },
    & ifmt_sub_s_go_sub_ne, { 0x78c00000 }
  },
/* sub$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8600000 }
  },
/* sub$_S $SP,$SP,$u5x4 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (SP), ',', OP (SP), ',', OP (U5X4), 0 } },
    & ifmt_add_s_asspsp, { 0xc1a00000 }
  },
/* sbc$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20830000 }
  },
/* sbc$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c30020 }
  },
/* sbc$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20430000 }
  },
/* sbc$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20030000 }
  },
/* sbc$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c30000 }
  },
/* and$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20840000 }
  },
/* and$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c40020 }
  },
/* and$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20440000 }
  },
/* and$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20040000 }
  },
/* and$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c40000 }
  },
/* and$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78040000 }
  },
/* or$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20850000 }
  },
/* or$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c50020 }
  },
/* or$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20450000 }
  },
/* or$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20050000 }
  },
/* or$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c50000 }
  },
/* or$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78050000 }
  },
/* bic$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20860000 }
  },
/* bic$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c60020 }
  },
/* bic$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20460000 }
  },
/* bic$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20060000 }
  },
/* bic$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c60000 }
  },
/* bic$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78060000 }
  },
/* xor$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20870000 }
  },
/* xor$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c70020 }
  },
/* xor$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20470000 }
  },
/* xor$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20070000 }
  },
/* xor$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c70000 }
  },
/* xor$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78070000 }
  },
/* max$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20880000 }
  },
/* max$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c80020 }
  },
/* max$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20480000 }
  },
/* max$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20080000 }
  },
/* max$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c80000 }
  },
/* min$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20890000 }
  },
/* min$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20c90020 }
  },
/* min$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20490000 }
  },
/* min$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20090000 }
  },
/* min$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20c90000 }
  },
/* mov$_L$F $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x208a0000 }
  },
/* mov$Qcondi$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20ca0020 }
  },
/* mov$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_mov_L_u6_, { 0x204a0000 }
  },
/* mov$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_mov_L_r_r__RC, { 0x200a0000 }
  },
/* mov$Qcondi$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20ca0000 }
  },
/* mov$_S $R_b,$Rh */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (RH), 0 } },
    & ifmt_add_s_mcah, { 0x70080000 }
  },
/* mov$_S $Rh,$R_b */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (RH), ',', OP (R_B), 0 } },
    & ifmt_add_s_mcah, { 0x70180000 }
  },
/* mov$_S $R_b,$u7 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (U7), 0 } },
    & ifmt_mov_s_r_u7, { 0xd8000000 }
  },
/* tst$_L$F1 $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_tst_L_s12_, { 0x208b0000 }
  },
/* tst$Qcondi$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_ccu6_, { 0x20cb0020 }
  },
/* tst$_L$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_L_u6_, { 0x204b0000 }
  },
/* tst$_L$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_L_r_r__RC, { 0x200b0000 }
  },
/* tst$Qcondi$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_cc__RC, { 0x20cb0000 }
  },
/* tst$_S $R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x780b0000 }
  },
/* cmp$_L$F1 $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_tst_L_s12_, { 0x208c0000 }
  },
/* cmp$Qcondi$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_ccu6_, { 0x20cc0020 }
  },
/* cmp$_L$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_L_u6_, { 0x204c0000 }
  },
/* cmp$_L$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_L_r_r__RC, { 0x200c0000 }
  },
/* cmp$Qcondi$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_cc__RC, { 0x20cc0000 }
  },
/* cmp$_S $R_b,$Rh */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (RH), 0 } },
    & ifmt_add_s_mcah, { 0x70100000 }
  },
/* cmp$_S $R_b,$u7 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (U7), 0 } },
    & ifmt_add_s_r_u7, { 0xe0800000 }
  },
/* rcmp$_L$F1 $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_tst_L_s12_, { 0x208d0000 }
  },
/* rcmp$Qcondi$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_ccu6_, { 0x20cd0020 }
  },
/* rcmp$_L$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_L_u6_, { 0x204d0000 }
  },
/* rcmp$_L$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_L_r_r__RC, { 0x200d0000 }
  },
/* rcmp$Qcondi$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_cc__RC, { 0x20cd0000 }
  },
/* rsub$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x208e0000 }
  },
/* rsub$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20ce0020 }
  },
/* rsub$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x204e0000 }
  },
/* rsub$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x200e0000 }
  },
/* rsub$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20ce0000 }
  },
/* bset$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x208f0000 }
  },
/* bset$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20cf0020 }
  },
/* bset$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x204f0000 }
  },
/* bset$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x200f0000 }
  },
/* bset$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20cf0000 }
  },
/* bset$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8800000 }
  },
/* bclr$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20900000 }
  },
/* bclr$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d00020 }
  },
/* bclr$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20500000 }
  },
/* bclr$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20100000 }
  },
/* bclr$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d00000 }
  },
/* bclr$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8a00000 }
  },
/* btst$_L$F1 $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_tst_L_s12_, { 0x20910000 }
  },
/* btst$Qcondi$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_ccu6_, { 0x20d10020 }
  },
/* btst$_L$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_L_u6_, { 0x20510000 }
  },
/* btst$_L$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_L_r_r__RC, { 0x20110000 }
  },
/* btst$Qcondi$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_cc__RC, { 0x20d10000 }
  },
/* btst$_S $R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8e00000 }
  },
/* bxor$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20920000 }
  },
/* bxor$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d20020 }
  },
/* bxor$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20520000 }
  },
/* bxor$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20120000 }
  },
/* bxor$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d20000 }
  },
/* bmsk$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20930000 }
  },
/* bmsk$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d30020 }
  },
/* bmsk$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20530000 }
  },
/* bmsk$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20130000 }
  },
/* bmsk$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d30000 }
  },
/* bmsk$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8c00000 }
  },
/* add1$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20940000 }
  },
/* add1$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d40020 }
  },
/* add1$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20540000 }
  },
/* add1$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20140000 }
  },
/* add1$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d40000 }
  },
/* add1$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78140000 }
  },
/* add2$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20950000 }
  },
/* add2$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d50020 }
  },
/* add2$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20550000 }
  },
/* add2$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20150000 }
  },
/* add2$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d50000 }
  },
/* add2$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78150000 }
  },
/* add3$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20960000 }
  },
/* add3$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d60020 }
  },
/* add3$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20560000 }
  },
/* add3$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20160000 }
  },
/* add3$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d60000 }
  },
/* add3$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78160000 }
  },
/* sub1$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20970000 }
  },
/* sub1$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d70020 }
  },
/* sub1$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20570000 }
  },
/* sub1$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20170000 }
  },
/* sub1$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d70000 }
  },
/* sub2$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20980000 }
  },
/* sub2$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d80020 }
  },
/* sub2$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20580000 }
  },
/* sub2$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20180000 }
  },
/* sub2$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d80000 }
  },
/* sub3$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x20990000 }
  },
/* sub3$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20d90020 }
  },
/* sub3$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x20590000 }
  },
/* sub3$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x20190000 }
  },
/* sub3$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20d90000 }
  },
/* mpy$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x209a0000 }
  },
/* mpy$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20da0020 }
  },
/* mpy$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x205a0000 }
  },
/* mpy$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x201a0000 }
  },
/* mpy$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20da0000 }
  },
/* mpyh$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x209b0000 }
  },
/* mpyh$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20db0020 }
  },
/* mpyh$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x205b0000 }
  },
/* mpyh$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x201b0000 }
  },
/* mpyh$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20db0000 }
  },
/* mpyhu$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x209c0000 }
  },
/* mpyhu$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20dc0020 }
  },
/* mpyhu$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x205c0000 }
  },
/* mpyhu$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x201c0000 }
  },
/* mpyhu$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20dc0000 }
  },
/* mpyu$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x209d0000 }
  },
/* mpyu$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x20dd0020 }
  },
/* mpyu$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x205d0000 }
  },
/* mpyu$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x201d0000 }
  },
/* mpyu$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x20dd0000 }
  },
/* j$_L$F0 [$RC_noilink] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', '[', OP (RC_NOILINK), ']', 0 } },
    & ifmt_j_L_r_r___RC_noilink_, { 0x20200000 }
  },
/* j$Qcondi$F0 [$RC_noilink] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', '[', OP (RC_NOILINK), ']', 0 } },
    & ifmt_j_cc___RC_noilink_, { 0x20e00000 }
  },
/* j$_L$F1F [$RC_ilink] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1F), ' ', '[', OP (RC_ILINK), ']', 0 } },
    & ifmt_j_L_r_r___RC_ilink_, { 0x20200000 }
  },
/* j$Qcondi$F1F [$RC_ilink] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1F), ' ', '[', OP (RC_ILINK), ']', 0 } },
    & ifmt_j_cc___RC_ilink_, { 0x20e00000 }
  },
/* j$_L$F0 $s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (S12), 0 } },
    & ifmt_j_L_s12_, { 0x20a00000 }
  },
/* j$Qcondi$F0 $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (U6), 0 } },
    & ifmt_j_ccu6_, { 0x20e00020 }
  },
/* j$_L$F0 $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (U6), 0 } },
    & ifmt_j_L_u6_, { 0x20600000 }
  },
/* j$_S [$R_b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', '[', OP (R_B), ']', 0 } },
    & ifmt_sub_s_go_sub_ne, { 0x78000000 }
  },
/* j$_S [$R31] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', '[', OP (R31), ']', 0 } },
    & ifmt_j_s__S, { 0x7ee00000 }
  },
/* jeq$_S [$R31] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', '[', OP (R31), ']', 0 } },
    & ifmt_j_s__S, { 0x7ce00000 }
  },
/* jne$_S [$R31] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', '[', OP (R31), ']', 0 } },
    & ifmt_j_s__S, { 0x7de00000 }
  },
/* j$_L$F0.d $s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), '.', 'd', ' ', OP (S12), 0 } },
    & ifmt_j_L_s12_, { 0x20a10000 }
  },
/* j$Qcondi$F0.d $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), '.', 'd', ' ', OP (U6), 0 } },
    & ifmt_j_ccu6_, { 0x20e10020 }
  },
/* j$_L$F0.d $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), '.', 'd', ' ', OP (U6), 0 } },
    & ifmt_j_L_u6_, { 0x20610000 }
  },
/* j$_L$F0.d [$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), '.', 'd', ' ', '[', OP (RC), ']', 0 } },
    & ifmt_j_L_r_r_d___RC_, { 0x20210000 }
  },
/* j$Qcondi$F0.d [$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), '.', 'd', ' ', '[', OP (RC), ']', 0 } },
    & ifmt_j_cc_d___RC_, { 0x20e10000 }
  },
/* j$_S.d [$R_b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), '.', 'd', ' ', '[', OP (R_B), ']', 0 } },
    & ifmt_sub_s_go_sub_ne, { 0x78200000 }
  },
/* j$_S.d [$R31] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), '.', 'd', ' ', '[', OP (R31), ']', 0 } },
    & ifmt_j_s__S, { 0x7fe00000 }
  },
/* jl$_L$F0 $s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (S12), 0 } },
    & ifmt_j_L_s12_, { 0x20a20000 }
  },
/* jl$Qcondi$F0 $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (U6), 0 } },
    & ifmt_j_ccu6_, { 0x20e20020 }
  },
/* jl$_L$F0 $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (U6), 0 } },
    & ifmt_j_L_u6_, { 0x20620000 }
  },
/* jl$_S [$R_b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', '[', OP (R_B), ']', 0 } },
    & ifmt_sub_s_go_sub_ne, { 0x78400000 }
  },
/* jl$_L$F0 [$RC_noilink] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', '[', OP (RC_NOILINK), ']', 0 } },
    & ifmt_j_L_r_r___RC_noilink_, { 0x20220000 }
  },
/* jl$Qcondi$F0 [$RC_noilink] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', '[', OP (RC_NOILINK), ']', 0 } },
    & ifmt_j_cc___RC_noilink_, { 0x20e20000 }
  },
/* jl$_L$F0.d $s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), '.', 'd', ' ', OP (S12), 0 } },
    & ifmt_j_L_s12_, { 0x20a30000 }
  },
/* jl$Qcondi$F0.d $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), '.', 'd', ' ', OP (U6), 0 } },
    & ifmt_j_ccu6_, { 0x20e30020 }
  },
/* jl$_L$F0.d $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), '.', 'd', ' ', OP (U6), 0 } },
    & ifmt_j_L_u6_, { 0x20630000 }
  },
/* jl$_L$F0.d [$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), '.', 'd', ' ', '[', OP (RC), ']', 0 } },
    & ifmt_j_L_r_r_d___RC_, { 0x20230000 }
  },
/* jl$Qcondi$F0.d [$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), '.', 'd', ' ', '[', OP (RC), ']', 0 } },
    & ifmt_j_cc_d___RC_, { 0x20e30000 }
  },
/* jl$_S.d [$R_b] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), '.', 'd', ' ', '[', OP (R_B), ']', 0 } },
    & ifmt_sub_s_go_sub_ne, { 0x78600000 }
  },
/* lp$_L$F0 $s12x2 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (S12X2), 0 } },
    & ifmt_lp_L_s12_, { 0x20a80000 }
  },
/* lp$Qcondi$F0 $U6x2 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (U6X2), 0 } },
    & ifmt_lpcc_ccu6, { 0x20e80020 }
  },
/* flag$_L$F0 $s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (S12), 0 } },
    & ifmt_j_L_s12_, { 0x20a90000 }
  },
/* flag$Qcondi$F0 $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (U6), 0 } },
    & ifmt_j_ccu6_, { 0x20e90020 }
  },
/* flag$_L$F0 $U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (U6), 0 } },
    & ifmt_j_L_u6_, { 0x20690000 }
  },
/* flag$_L$F0 $RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RC), 0 } },
    & ifmt_j_L_r_r_d___RC_, { 0x20290000 }
  },
/* flag$Qcondi$F0 $RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (RC), 0 } },
    & ifmt_j_cc_d___RC_, { 0x20e90000 }
  },
/* lr$_L$F0 $RB,[$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', '[', OP (RC), ']', 0 } },
    & ifmt_lr_L_r_r___RC_, { 0x202a0000 }
  },
/* lr$_L$F0 $RB,[$s12] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', '[', OP (S12), ']', 0 } },
    & ifmt_lr_L_s12_, { 0x20aa0000 }
  },
/* lr$_L$F0 $RB,[$U6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', '[', OP (U6), ']', 0 } },
    & ifmt_lr_L_u6_, { 0x206a0000 }
  },
/* sr$_L$F0 $RB,[$RC] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', '[', OP (RC), ']', 0 } },
    & ifmt_lr_L_r_r___RC_, { 0x202b0000 }
  },
/* sr$_L$F0 $RB,[$s12] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', '[', OP (S12), ']', 0 } },
    & ifmt_lr_L_s12_, { 0x20ab0000 }
  },
/* sr$_L$F0 $RB,[$U6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', '[', OP (U6), ']', 0 } },
    & ifmt_lr_L_u6_, { 0x206b0000 }
  },
/* asl$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0000 }
  },
/* asl$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0000 }
  },
/* asl$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x781b0000 }
  },
/* asr$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0001 }
  },
/* asr$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0001 }
  },
/* asr$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x781c0000 }
  },
/* lsr$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0002 }
  },
/* lsr$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0002 }
  },
/* lsr$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x781d0000 }
  },
/* ror$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0003 }
  },
/* ror$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0003 }
  },
/* rrc$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0004 }
  },
/* rrc$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0004 }
  },
/* sexb$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0005 }
  },
/* sexb$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0005 }
  },
/* sexb$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x780d0000 }
  },
/* sexw$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0006 }
  },
/* sexw$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0006 }
  },
/* sexw$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x780e0000 }
  },
/* extb$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0007 }
  },
/* extb$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0007 }
  },
/* extb$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x780f0000 }
  },
/* extw$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0008 }
  },
/* extw$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0008 }
  },
/* extw$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78100000 }
  },
/* abs$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f0009 }
  },
/* abs$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f0009 }
  },
/* abs$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78110000 }
  },
/* not$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f000a }
  },
/* not$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f000a }
  },
/* not$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78120000 }
  },
/* rlc$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x202f000b }
  },
/* rlc$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x206f000b }
  },
/* ex$_L$EXDi $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (EXDI), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_ex_L_r_r__RC, { 0x202f000c }
  },
/* ex$_L$EXDi $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (EXDI), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_ex_L_u6_, { 0x206f000c }
  },
/* neg$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78130000 }
  },
/* swi */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_swi, { 0x226f003f }
  },
/* trap$_S $trapnum */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (TRAPNUM), 0 } },
    & ifmt_trap_s, { 0x781e0000 }
  },
/* brk */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_swi, { 0x256f003f }
  },
/* brk_s */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_brk_s, { 0x7fff0000 }
  },
/* asl$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28800000 }
  },
/* asl$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28c00020 }
  },
/* asl$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28400000 }
  },
/* asl$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28000000 }
  },
/* asl$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28c00000 }
  },
/* asl$_S $R_c,$R_b,$u3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', OP (R_B), ',', OP (U3), 0 } },
    & ifmt_add_s_cbu3, { 0x68100000 }
  },
/* asl$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8000000 }
  },
/* asl$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78180000 }
  },
/* lsr$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28810000 }
  },
/* lsr$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28c10020 }
  },
/* lsr$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28410000 }
  },
/* lsr$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28010000 }
  },
/* lsr$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28c10000 }
  },
/* lsr$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8200000 }
  },
/* lsr$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x78190000 }
  },
/* asr$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28820000 }
  },
/* asr$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28c20020 }
  },
/* asr$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28420000 }
  },
/* asr$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28020000 }
  },
/* asr$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28c20000 }
  },
/* asr$_S $R_c,$R_b,$u3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_C), ',', OP (R_B), ',', OP (U3), 0 } },
    & ifmt_add_s_cbu3, { 0x68180000 }
  },
/* asr$_S $R_b,$R_b,$u5 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (U5), 0 } },
    & ifmt_sub_s_ssb, { 0xb8400000 }
  },
/* asr$_S $R_b,$R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x781a0000 }
  },
/* ror$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28830000 }
  },
/* ror$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28c30020 }
  },
/* ror$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28430000 }
  },
/* ror$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28030000 }
  },
/* ror$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28c30000 }
  },
/* mul64$_L$F1 $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_tst_L_s12_, { 0x28840000 }
  },
/* mul64$Qcondi$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_ccu6_, { 0x28c40020 }
  },
/* mul64$_L$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_L_u6_, { 0x28440000 }
  },
/* mul64$_L$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_L_r_r__RC, { 0x28040000 }
  },
/* mul64$Qcondi$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_cc__RC, { 0x28c40000 }
  },
/* mul64$_S $R_b,$R_c */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), ',', OP (R_C), 0 } },
    & ifmt_I16_GO_SUB_s_go, { 0x780c0000 }
  },
/* mulu64$_L$F1 $RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (S12), 0 } },
    & ifmt_tst_L_s12_, { 0x28850000 }
  },
/* mulu64$Qcondi$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_ccu6_, { 0x28c50020 }
  },
/* mulu64$_L$F1 $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_tst_L_u6_, { 0x28450000 }
  },
/* mulu64$_L$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_L_r_r__RC, { 0x28050000 }
  },
/* mulu64$Qcondi$F1 $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F1), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_tst_cc__RC, { 0x28c50000 }
  },
/* adds$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28860000 }
  },
/* adds$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28c60020 }
  },
/* adds$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28460000 }
  },
/* adds$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28060000 }
  },
/* adds$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28c60000 }
  },
/* subs$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28870000 }
  },
/* subs$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28c70020 }
  },
/* subs$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28470000 }
  },
/* subs$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28070000 }
  },
/* subs$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28c70000 }
  },
/* divaw$_L$F0 $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_lr_L_s12_, { 0x28880000 }
  },
/* divaw$Qcondi$F0 $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_divaw_ccu6__RA_, { 0x28c80020 }
  },
/* divaw$_L$F0 $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_divaw_L_u6__RA_, { 0x28480000 }
  },
/* divaw$_L$F0 $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F0), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_divaw_L_r_r__RA__RC, { 0x28080000 }
  },
/* divaw$Qcondi$F0 $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F0), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_divaw_cc__RA__RC, { 0x28c80000 }
  },
/* asls$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x288a0000 }
  },
/* asls$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28ca0020 }
  },
/* asls$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x284a0000 }
  },
/* asls$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x280a0000 }
  },
/* asls$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28ca0000 }
  },
/* asrs$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x288b0000 }
  },
/* asrs$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28cb0020 }
  },
/* asrs$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x284b0000 }
  },
/* asrs$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x280b0000 }
  },
/* asrs$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28cb0000 }
  },
/* addsdw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28a80000 }
  },
/* addsdw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28e80020 }
  },
/* addsdw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28680000 }
  },
/* addsdw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28280000 }
  },
/* addsdw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28e80000 }
  },
/* subsdw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28a90000 }
  },
/* subsdw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28e90020 }
  },
/* subsdw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28690000 }
  },
/* subsdw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28290000 }
  },
/* subsdw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28e90000 }
  },
/* swap$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0000 }
  },
/* swap$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0000 }
  },
/* norm$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0001 }
  },
/* norm$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0001 }
  },
/* rnd16$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0003 }
  },
/* rnd16$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0003 }
  },
/* abssw$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0004 }
  },
/* abssw$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0004 }
  },
/* abss$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0005 }
  },
/* abss$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0005 }
  },
/* negsw$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0006 }
  },
/* negsw$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0006 }
  },
/* negs$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0007 }
  },
/* negs$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0007 }
  },
/* normw$_L$F $RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RC), 0 } },
    & ifmt_asl_L_r_r__RC, { 0x282f0008 }
  },
/* normw$_L$F $RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (U6), 0 } },
    & ifmt_asl_L_u6_, { 0x286f0008 }
  },
/* nop_s */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_j_s__S, { 0x78e00000 }
  },
/* unimp_s */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_j_s__S, { 0x79e00000 }
  },
/* pop$_S $R_b */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), 0 } },
    & ifmt_pop_s_b, { 0xc0c10000 }
  },
/* pop$_S $R31 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R31), 0 } },
    & ifmt_pop_s_blink, { 0xc0d10000 }
  },
/* push$_S $R_b */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R_B), 0 } },
    & ifmt_pop_s_b, { 0xc0e10000 }
  },
/* push$_S $R31 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_S), ' ', OP (R31), 0 } },
    & ifmt_pop_s_blink, { 0xc0f10000 }
  },
/* mullw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28b10000 }
  },
/* mullw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28f10020 }
  },
/* mullw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28710000 }
  },
/* mullw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28310000 }
  },
/* mullw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28f10000 }
  },
/* maclw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28b30000 }
  },
/* maclw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28f30020 }
  },
/* maclw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28730000 }
  },
/* maclw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28330000 }
  },
/* maclw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28f30000 }
  },
/* machlw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28b60000 }
  },
/* machlw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28f60020 }
  },
/* machlw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28760000 }
  },
/* machlw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28360000 }
  },
/* machlw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28f60000 }
  },
/* mululw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28b00000 }
  },
/* mululw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28f00020 }
  },
/* mululw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28700000 }
  },
/* mululw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28300000 }
  },
/* mululw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28f00000 }
  },
/* machulw$_L$F $RB,$RB,$s12 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (S12), 0 } },
    & ifmt_add_L_s12__RA_, { 0x28b50000 }
  },
/* machulw$Qcondi$F $RB,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_ccu6__RA_, { 0x28f50020 }
  },
/* machulw$_L$F $RA,$RB,$U6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (U6), 0 } },
    & ifmt_add_L_u6__RA_, { 0x28750000 }
  },
/* machulw$_L$F $RA,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (_L), OP (F), ' ', OP (RA), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_L_r_r__RA__RC, { 0x28350000 }
  },
/* machulw$Qcondi$F $RB,$RB,$RC */
  {
    { 0, 0, 0, 0 },
    { { MNEM, OP (QCONDI), OP (F), ' ', OP (RB), ',', OP (RB), ',', OP (RC), 0 } },
    & ifmt_add_cc__RA__RC, { 0x28f50000 }
  },
/*  */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_current_loop_end, { 0x202f003e }
  },
/*  */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_current_loop_end, { 0x202f003e }
  },
/*  */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_current_loop_end, { 0x202f003e }
  },
};

#undef A
#undef OPERAND
#undef MNEM
#undef OP

/* Formats for ALIAS macro-insns.  */

#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define F(f) & arc_cgen_ifld_table[ARC_##f]
#else
#define F(f) & arc_cgen_ifld_table[ARC_/**/f]
#endif
#undef F

/* Each non-simple macro entry points to an array of expansion possibilities.  */

#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_INSN_##a)
#else
#define A(a) (1 << CGEN_INSN_/**/a)
#endif
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define OPERAND(op) ARC_OPERAND_##op
#else
#define OPERAND(op) ARC_OPERAND_/**/op
#endif
#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))

/* The macro instruction table.  */

static const CGEN_IBASE arc_cgen_macro_insn_table[] =
{
};

/* The macro instruction opcode table.  */

static const CGEN_OPCODE arc_cgen_macro_insn_opcode_table[] =
{
};

#undef A
#undef OPERAND
#undef MNEM
#undef OP

#ifndef CGEN_ASM_HASH_P
#define CGEN_ASM_HASH_P(insn) 1
#endif

#ifndef CGEN_DIS_HASH_P
#define CGEN_DIS_HASH_P(insn) 1
#endif

/* Return non-zero if INSN is to be added to the hash table.
   Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file.  */

static int
asm_hash_insn_p (insn)
     const CGEN_INSN *insn ATTRIBUTE_UNUSED;
{
  return CGEN_ASM_HASH_P (insn);
}

static int
dis_hash_insn_p (insn)
     const CGEN_INSN *insn;
{
  /* If building the hash table and the NO-DIS attribute is present,
     ignore.  */
  if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
    return 0;
  return CGEN_DIS_HASH_P (insn);
}

#ifndef CGEN_ASM_HASH
#define CGEN_ASM_HASH_SIZE 127
#ifdef CGEN_MNEMONIC_OPERANDS
#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
#else
#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
#endif
#endif

/* It doesn't make much sense to provide a default here,
   but while this is under development we do.
   BUFFER is a pointer to the bytes of the insn, target order.
   VALUE is the first base_insn_bitsize bits as an int in host order.  */

#ifndef CGEN_DIS_HASH
#define CGEN_DIS_HASH_SIZE 256
#define CGEN_DIS_HASH(buf, value, big_p) (*(unsigned char *) (buf))
#endif

/* The result is the hash value of the insn.
   Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file.  */

static unsigned int
asm_hash_insn (mnem)
     const char * mnem;
{
  return CGEN_ASM_HASH (mnem);
}

/* BUF is a pointer to the bytes of the insn, target order.
   VALUE is the first base_insn_bitsize bits as an int in host order.  */

static unsigned int
dis_hash_insn (buf, value, big_p)
     const char * buf ATTRIBUTE_UNUSED;
     CGEN_INSN_INT value ATTRIBUTE_UNUSED;
     int big_p ATTRIBUTE_UNUSED;
{
  return CGEN_DIS_HASH (buf, value, big_p);
}

/* Set the recorded length of the insn in the CGEN_FIELDS struct.  */

static void
set_fields_bitsize (CGEN_FIELDS *fields, int size)
{
  CGEN_FIELDS_BITSIZE (fields) = size;
}

/* Function to call before using the operand instance table.
   This plugs the opcode entries and macro instructions into the cpu table.  */

void
arc_cgen_init_opcode_table (CGEN_CPU_DESC cd)
{
  int i;
  int num_macros = (sizeof (arc_cgen_macro_insn_table) /
		    sizeof (arc_cgen_macro_insn_table[0]));
  const CGEN_IBASE *ib = & arc_cgen_macro_insn_table[0];
  const CGEN_OPCODE *oc = & arc_cgen_macro_insn_opcode_table[0];
  CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));

  memset (insns, 0, num_macros * sizeof (CGEN_INSN));
  for (i = 0; i < num_macros; ++i)
    {
      insns[i].base = &ib[i];
      insns[i].opcode = &oc[i];
      arc_cgen_build_insn_regex (& insns[i]);
    }
  cd->macro_insn_table.init_entries = insns;
  cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
  cd->macro_insn_table.num_init_entries = num_macros;

  oc = & arc_cgen_insn_opcode_table[0];
  insns = (CGEN_INSN *) cd->insn_table.init_entries;
  for (i = 0; i < MAX_INSNS; ++i)
    {
      insns[i].opcode = &oc[i];
      arc_cgen_build_insn_regex (& insns[i]);
    }

  cd->sizeof_fields = sizeof (CGEN_FIELDS);
  cd->set_fields_bitsize = set_fields_bitsize;

  cd->asm_hash_p = asm_hash_insn_p;
  cd->asm_hash = asm_hash_insn;
  cd->asm_hash_size = CGEN_ASM_HASH_SIZE;

  cd->dis_hash_p = dis_hash_insn_p;
  cd->dis_hash = dis_hash_insn;
  cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
}
