/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
/* Instruction opcode table for epiphany.

THIS FILE IS MACHINE GENERATED WITH CGEN.

Copyright (C) 1996-2021 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 "epiphany-desc.h"
#include "epiphany-opc.h"
#include "libiberty.h"

/* -- opc.c */



/* -- asm.c */
/* 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);

/* Instruction formats.  */

#define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
  0, 0, 0x0, { { 0 } }
};

static const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_jr16 ATTRIBUTE_UNUSED = {
  16, 16, 0xe3ff, { { F (F_DC_15_3) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_rts ATTRIBUTE_UNUSED = {
  32, 32, 0xffffffff, { { F (F_DC_31_3) }, { F (F_RN_X) }, { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_DC_15_3) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
  32, 32, 0xe3ffe3ff, { { F (F_DC_31_3) }, { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_DC_15_3) }, { F (F_RN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbx16_s ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbx_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_ADDSUBX) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbp_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_DC_22_2) }, { F (F_ADDSUBX) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbd16_s ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbd_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_PM) }, { F (F_SUBD) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_DISP11) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov16EQ ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmovEQ ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_movts16 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_RD) }, { F (F_SN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_movts6 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_movtsdma ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_movtsmem ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_movtsmesh ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
  16, 16, 0xffff, { { F (F_DC_15_7) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
  32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
};

static const CGEN_IFMT ifmt_gien ATTRIBUTE_UNUSED = {
  16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_GIEN_GIDIS_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_swi_num ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_swi ATTRIBUTE_UNUSED = {
  16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_trap16 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_add16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_DC_22_3) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_addi16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
  32, 32, 0x300007f, { { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_lsri16 ATTRIBUTE_UNUSED = {
  16, 16, 0x1f, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_lsri32 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff001f, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_bitr16 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_bitr ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_fext ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov8 ATTRIBUTE_UNUSED = {
  16, 16, 0x1f, { { F (F_RD) }, { F (F_IMM8) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov16 ATTRIBUTE_UNUSED = {
  32, 32, 0x100f001f, { { F (F_DC_28_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_IMM16) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_absf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_absf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_DC_22_3) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_loatf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_recipf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
};

#undef F

#define A(a) (1 << CGEN_INSN_##a)
#define OPERAND(op) EPIPHANY_OPERAND_##op
#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 epiphany_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}},
/* beq.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x0 }
  },
/* beq.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x8 }
  },
/* bne.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x10 }
  },
/* bne.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x18 }
  },
/* bgtu.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x20 }
  },
/* bgtu.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x28 }
  },
/* bgteu.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x30 }
  },
/* bgteu.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x38 }
  },
/* blteu.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x40 }
  },
/* blteu.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x48 }
  },
/* bltu.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x50 }
  },
/* bltu.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x58 }
  },
/* bgt.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x60 }
  },
/* bgt.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x68 }
  },
/* bgte.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x70 }
  },
/* bgte.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x78 }
  },
/* blt.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x80 }
  },
/* blt.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x88 }
  },
/* blte.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0x90 }
  },
/* blte.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0x98 }
  },
/* bbeq.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0xa0 }
  },
/* bbeq.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0xa8 }
  },
/* bbne.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0xb0 }
  },
/* bbne.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0xb8 }
  },
/* bblt.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0xc0 }
  },
/* bblt.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0xc8 }
  },
/* bblte.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0xd0 }
  },
/* bblte.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0xd8 }
  },
/* b.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0xe0 }
  },
/* b.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0xe8 }
  },
/* bl.s $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16, { 0xf0 }
  },
/* bl.l $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq, { 0xf8 }
  },
/* jr $rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RN), 0 } },
    & ifmt_jr16, { 0x142 }
  },
/* rts */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_rts, { 0x402194f }
  },
/* jr $rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RN6), 0 } },
    & ifmt_jr, { 0x2014f }
  },
/* jalr $rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RN), 0 } },
    & ifmt_jr16, { 0x152 }
  },
/* jalr $rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RN6), 0 } },
    & ifmt_jr, { 0x2015f }
  },
/* ldrb $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x1 }
  },
/* ldrb $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x5 }
  },
/* ldrb $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x9 }
  },
/* ldrb $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0xd }
  },
/* ldrb $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x4 }
  },
/* ldrb $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0xc }
  },
/* ldrb $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200000c }
  },
/* ldrh $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x21 }
  },
/* ldrh $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x25 }
  },
/* ldrh $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x29 }
  },
/* ldrh $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x2d }
  },
/* ldrh $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x24 }
  },
/* ldrh $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x2c }
  },
/* ldrh $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200002c }
  },
/* ldr $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x41 }
  },
/* ldr $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x45 }
  },
/* ldr $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x49 }
  },
/* ldr $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x4d }
  },
/* ldr $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x44 }
  },
/* ldr $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x4c }
  },
/* ldr $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200004c }
  },
/* ldrd $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x61 }
  },
/* ldrd $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x65 }
  },
/* ldrd $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x69 }
  },
/* ldrd $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x6d }
  },
/* ldrd $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x64 }
  },
/* ldrd $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x6c }
  },
/* ldrd $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200006c }
  },
/* testsetb $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x200009 }
  },
/* testseth $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x200029 }
  },
/* testset $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x200049 }
  },
/* strb $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x11 }
  },
/* strb $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x19 }
  },
/* strb $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x15 }
  },
/* strb $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x1d }
  },
/* strb $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x14 }
  },
/* strb $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x1c }
  },
/* strb $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200001c }
  },
/* strh $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x31 }
  },
/* strh $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x39 }
  },
/* strh $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x35 }
  },
/* strh $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x3d }
  },
/* strh $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x34 }
  },
/* strh $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x3c }
  },
/* strh $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200003c }
  },
/* str $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x51 }
  },
/* str $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x59 }
  },
/* str $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x55 }
  },
/* str $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x5d }
  },
/* str $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x54 }
  },
/* str $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x5c }
  },
/* str $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200005c }
  },
/* strd $rd,[$rn,$rm] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
    & ifmt_ldrbx16_s, { 0x71 }
  },
/* strd $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx_l, { 0x79 }
  },
/* strd $rd,[$rn],$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
    & ifmt_ldrbx16_s, { 0x75 }
  },
/* strd $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp_l, { 0x7d }
  },
/* strd $rd,[$rn,$disp3] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
    & ifmt_ldrbd16_s, { 0x74 }
  },
/* strd $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd_l, { 0x7c }
  },
/* strd $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbd_l, { 0x200007c }
  },
/* moveq $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x2 }
  },
/* moveq $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2000f }
  },
/* movne $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x12 }
  },
/* movne $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2001f }
  },
/* movgtu $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x22 }
  },
/* movgtu $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2002f }
  },
/* movgteu $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x32 }
  },
/* movgteu $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2003f }
  },
/* movlteu $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x42 }
  },
/* movlteu $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2004f }
  },
/* movltu $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x52 }
  },
/* movltu $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2005f }
  },
/* movgt $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x62 }
  },
/* movgt $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2006f }
  },
/* movgte $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x72 }
  },
/* movgte $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2007f }
  },
/* movlt $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x82 }
  },
/* movlt $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2008f }
  },
/* movlte $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0x92 }
  },
/* movlte $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x2009f }
  },
/* mov $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0xe2 }
  },
/* mov $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x200ef }
  },
/* movbeq $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0xa2 }
  },
/* movbeq $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x200af }
  },
/* movbne $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0xb2 }
  },
/* movbne $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x200bf }
  },
/* movblt $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0xc2 }
  },
/* movblt $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x200cf }
  },
/* movblte $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_cmov16EQ, { 0xd2 }
  },
/* movblte $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmovEQ, { 0x200df }
  },
/* movts $sn,$rd */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SN), ',', OP (RD), 0 } },
    & ifmt_movts16, { 0x102 }
  },
/* movts $sn6,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
    & ifmt_movts6, { 0x2010f }
  },
/* movts $sndma,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
    & ifmt_movtsdma, { 0x12010f }
  },
/* movts $snmem,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
    & ifmt_movtsmem, { 0x22010f }
  },
/* movts $snmesh,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
    & ifmt_movtsmesh, { 0x32010f }
  },
/* movfs $rd,$sn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (SN), 0 } },
    & ifmt_movts16, { 0x112 }
  },
/* movfs $rd6,$sn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
    & ifmt_movts6, { 0x2011f }
  },
/* movfs $rd6,$sndma */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
    & ifmt_movtsdma, { 0x12011f }
  },
/* movfs $rd6,$snmem */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
    & ifmt_movtsmem, { 0x22011f }
  },
/* movfs $rd6,$snmesh */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
    & ifmt_movtsmesh, { 0x32011f }
  },
/* nop */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x1a2 }
  },
/* snop */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x3a2 }
  },
/* unimpl */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_unimpl, { 0xf000f }
  },
/* idle */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x1b2 }
  },
/* bkpt */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x1c2 }
  },
/* mbkpt */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x3c2 }
  },
/* rti */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x1d2 }
  },
/* wand */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x182 }
  },
/* sync */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_nop, { 0x1f2 }
  },
/* gie */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_gien, { 0x192 }
  },
/* gid */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_gien, { 0x392 }
  },
/* swi $swi_num */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SWI_NUM), 0 } },
    & ifmt_swi_num, { 0x1e2 }
  },
/* swi */
  {
    { 0, 0, 0, 0 },
    { { MNEM, 0 } },
    & ifmt_swi, { 0x1e2 }
  },
/* trap $trapnum6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (TRAPNUM6), 0 } },
    & ifmt_trap16, { 0x3e2 }
  },
/* add $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x1a }
  },
/* add $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa001f }
  },
/* sub $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x3a }
  },
/* sub $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa003f }
  },
/* and $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x5a }
  },
/* and $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa005f }
  },
/* orr $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x7a }
  },
/* orr $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa007f }
  },
/* eor $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0xa }
  },
/* eor $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa000f }
  },
/* add.s $rd,$rn,$simm3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
    & ifmt_addi16, { 0x13 }
  },
/* add.l $rd6,$rn6,$simm11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
    & ifmt_addi, { 0x1b }
  },
/* sub.s $rd,$rn,$simm3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
    & ifmt_addi16, { 0x33 }
  },
/* sub.l $rd6,$rn6,$simm11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
    & ifmt_addi, { 0x3b }
  },
/* asr $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x6a }
  },
/* asr $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa006f }
  },
/* lsr $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x4a }
  },
/* lsr $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa004f }
  },
/* lsl $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x2a }
  },
/* lsl $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0xa002f }
  },
/* lsr $rd,$rn,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
    & ifmt_lsri16, { 0x6 }
  },
/* lsr $rd6,$rn6,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
    & ifmt_lsri32, { 0x6000f }
  },
/* lsl $rd,$rn,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
    & ifmt_lsri16, { 0x16 }
  },
/* lsl $rd6,$rn6,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
    & ifmt_lsri32, { 0x6001f }
  },
/* asr $rd,$rn,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
    & ifmt_lsri16, { 0xe }
  },
/* asr $rd6,$rn6,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
    & ifmt_lsri32, { 0xe000f }
  },
/* bitr $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_bitr16, { 0x1e }
  },
/* bitr $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_bitr, { 0xe001f }
  },
/* fext $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_fext, { 0x1a000f }
  },
/* fdep $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_fext, { 0x1a001f }
  },
/* lfsr $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_fext, { 0x1a002f }
  },
/* mov.b $rd,$imm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
    & ifmt_mov8, { 0x3 }
  },
/* mov.l $rd6,$imm16 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
    & ifmt_mov16, { 0x2000b }
  },
/* movt $rd6,$imm16 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
    & ifmt_mov16, { 0x1002000b }
  },
/* fadd $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x7 }
  },
/* fadd $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0x7000f }
  },
/* fsub $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x17 }
  },
/* fsub $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0x7001f }
  },
/* fmul $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x27 }
  },
/* fmul $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0x7002f }
  },
/* fmadd $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x37 }
  },
/* fmadd $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0x7003f }
  },
/* fmsub $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_add16, { 0x47 }
  },
/* fmsub $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add, { 0x7004f }
  },
/* fabs rd,rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', 'r', 'd', ',', 'r', 'n', 0 } },
    & ifmt_f_absf16, { 0x77 }
  },
/* fabs $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_f_absf32, { 0x7007f }
  },
/* float $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_f_loatf16, { 0x57 }
  },
/* float $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_f_absf32, { 0x7005f }
  },
/* fix $rd,$rn */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
    & ifmt_f_absf16, { 0x67 }
  },
/* fix $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_f_absf32, { 0x7006f }
  },
/* frecip $frd6,$frn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
    & ifmt_f_recipf32, { 0x17000f }
  },
/* fsqrt $frd6,$frn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
    & ifmt_f_recipf32, { 0x17001f }
  },
};

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

/* Formats for ALIAS macro-insns.  */

#define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
static const CGEN_IFMT ifmt_beq16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbx ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbp ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbd ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbdpm ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbdl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrbdl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhx ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhp ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhd ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhdpm ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhdl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrhdl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrx ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrp ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrd ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdpm ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdx ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdp ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdd ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrddpm ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrdds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrddl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_ldrddl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_testsetbt_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_testsetht_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_testsett_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbx_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbp_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbd_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbdpm_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbdl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strbdl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhx_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhp_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhd_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhdpm_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhdl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strhdl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strx_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strp_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strd_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdpm_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdx_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdp_l ATTRIBUTE_UNUSED = {
  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdd_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strddpm_l ATTRIBUTE_UNUSED = {
  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strdds0 ATTRIBUTE_UNUSED = {
  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_strddl0 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_strddl0_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lEQ ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lNE ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lGTU ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lGTEU ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lLTEU ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lLTU ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lGT ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lGTE ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lLT ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lLTE ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lB ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lBEQ ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lBNE ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lBLT ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_cmov_lBLTE ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movts_l6 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movts_ldma ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movts_lmem ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movts_lmesh ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movfs_l6 ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movfs_ldma ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movfs_lmem ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_movfs_lmesh ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_add_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_sub_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_and_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_orr_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_eor_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_addir ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_addi32r ATTRIBUTE_UNUSED = {
  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_addi32m ATTRIBUTE_UNUSED = {
  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_subir ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
};

static const CGEN_IFMT ifmt_subi32r ATTRIBUTE_UNUSED = {
  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_subi32m ATTRIBUTE_UNUSED = {
  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
};

static const CGEN_IFMT ifmt_asr_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_lsr_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_lsl_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_lsri32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
};

static const CGEN_IFMT ifmt_lsli32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
};

static const CGEN_IFMT ifmt_asri32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
};

static const CGEN_IFMT ifmt_bitrl ATTRIBUTE_UNUSED = {
  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
};

static const CGEN_IFMT ifmt_fext_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_fdep_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_lfsr_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov8r ATTRIBUTE_UNUSED = {
  16, 16, 0x1f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_RD) }, { F (F_IMM8) }, { 0 } }
};

static const CGEN_IFMT ifmt_mov16r ATTRIBUTE_UNUSED = {
  32, 32, 0x100f001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_28_1) }, { F (F_RD6) }, { F (F_IMM16) }, { 0 } }
};

static const CGEN_IFMT ifmt_movtl ATTRIBUTE_UNUSED = {
  32, 32, 0x100f001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_28_1) }, { F (F_RD6) }, { F (F_IMM16) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_addf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_addf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_addf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_addf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_subf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_subf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_subf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_subf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_mulf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_mulf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_mulf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_mulf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_maddf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_maddf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_maddf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_maddf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_msubf16 ATTRIBUTE_UNUSED = {
  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_msubf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_msubf32 ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_i_msubf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_absf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_loatf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_ixf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_recipf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
};

static const CGEN_IFMT ifmt_f_sqrtf32_l ATTRIBUTE_UNUSED = {
  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
};

#undef F

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

#define A(a) (1 << CGEN_INSN_##a)
#define OPERAND(op) EPIPHANY_OPERAND_##op
#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 epiphany_cgen_macro_insn_table[] =
{
/* beq $simm8 */
  {
    -1, "beq16r", "beq", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* beq $simm24 */
  {
    -1, "beq32r", "beq", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bne $simm8 */
  {
    -1, "bne16r", "bne", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bne $simm24 */
  {
    -1, "bne32r", "bne", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgtu $simm8 */
  {
    -1, "bgtu16r", "bgtu", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgtu $simm24 */
  {
    -1, "bgtu32r", "bgtu", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgteu $simm8 */
  {
    -1, "bgteu16r", "bgteu", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgteu $simm24 */
  {
    -1, "bgteu32r", "bgteu", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* blteu $simm8 */
  {
    -1, "blteu16r", "blteu", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* blteu $simm24 */
  {
    -1, "blteu32r", "blteu", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bltu $simm8 */
  {
    -1, "bltu16r", "bltu", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bltu $simm24 */
  {
    -1, "bltu32r", "bltu", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgt $simm8 */
  {
    -1, "bgt16r", "bgt", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgt $simm24 */
  {
    -1, "bgt32r", "bgt", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgte $simm8 */
  {
    -1, "bgte16r", "bgte", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bgte $simm24 */
  {
    -1, "bgte32r", "bgte", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* blt $simm8 */
  {
    -1, "blt16r", "blt", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* blt $simm24 */
  {
    -1, "blt32r", "blt", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* blte $simm8 */
  {
    -1, "blte16r", "blte", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* blte $simm24 */
  {
    -1, "blte32r", "blte", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bbeq $simm8 */
  {
    -1, "bbeq16r", "bbeq", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bbeq $simm24 */
  {
    -1, "bbeq32r", "bbeq", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bbne $simm8 */
  {
    -1, "bbne16r", "bbne", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bbne $simm24 */
  {
    -1, "bbne32r", "bbne", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bblt $simm8 */
  {
    -1, "bblt16r", "bblt", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bblt $simm24 */
  {
    -1, "bblt32r", "bblt", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bblte $simm8 */
  {
    -1, "bblte16r", "bblte", 16,
    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bblte $simm24 */
  {
    -1, "bblte32r", "bblte", 32,
    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* b $simm8 */
  {
    -1, "b16r", "b", 16,
    { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* b $simm24 */
  {
    -1, "b32r", "b", 32,
    { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bl $simm8 */
  {
    -1, "bl16r", "bl", 16,
    { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bl $simm24 */
  {
    -1, "blr", "bl", 32,
    { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "ldrbx", "ldrb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "ldrbp", "ldrb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "ldrbd", "ldrb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "ldrbdpm", "ldrb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb $rd,[$rn] */
  {
    -1, "ldrbds0", "ldrb", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb $rd6,[$rn6] */
  {
    -1, "ldrbdl0", "ldrb", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrb.l $rd6,[$rn6] */
  {
    -1, "ldrbdl0.l", "ldrb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "ldrhx", "ldrh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "ldrhp", "ldrh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "ldrhd", "ldrh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "ldrhdpm", "ldrh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh $rd,[$rn] */
  {
    -1, "ldrhds0", "ldrh", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh $rd6,[$rn6] */
  {
    -1, "ldrhdl0", "ldrh", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrh.l $rd6,[$rn6] */
  {
    -1, "ldrhdl0.l", "ldrh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "ldrx", "ldr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "ldrp", "ldr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "ldrd", "ldr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "ldrdpm", "ldr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr $rd,[$rn] */
  {
    -1, "ldrds0", "ldr", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr $rd6,[$rn6] */
  {
    -1, "ldrdl0", "ldr", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldr.l $rd6,[$rn6] */
  {
    -1, "ldrdl0.l", "ldr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "ldrdx", "ldrd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "ldrdp", "ldrd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "ldrdd", "ldrd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "ldrddpm", "ldrd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd $rd,[$rn] */
  {
    -1, "ldrdds0", "ldrd", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd $rd6,[$rn6] */
  {
    -1, "ldrddl0", "ldrd", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* ldrd.l $rd6,[$rn6] */
  {
    -1, "ldrddl0.l", "ldrd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* testsetb.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "testsetbt.l", "testsetb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* testseth.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "testsetht.l", "testseth.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* testset.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "testsett.l", "testset.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "strbx.l", "strb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "strbp.l", "strb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "strbd.l", "strb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "strbdpm.l", "strb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb $rd,[$rn] */
  {
    -1, "strbds0", "strb", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb $rd6,[$rn6] */
  {
    -1, "strbdl0", "strb", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strb.l $rd6,[$rn6] */
  {
    -1, "strbdl0.l", "strb.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "strhx.l", "strh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "strhp.l", "strh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "strhd.l", "strh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "strhdpm.l", "strh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh $rd,[$rn] */
  {
    -1, "strhds0", "strh", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh $rd6,[$rn6] */
  {
    -1, "strhdl0", "strh", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strh.l $rd6,[$rn6] */
  {
    -1, "strhdl0.l", "strh.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "strx.l", "str.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "strp.l", "str.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "strd.l", "str.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "strdpm.l", "str.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str $rd,[$rn] */
  {
    -1, "strds0", "str", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str $rd6,[$rn6] */
  {
    -1, "strdl0", "str", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* str.l $rd6,[$rn6] */
  {
    -1, "strdl0.l", "str.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd.l $rd6,[$rn6,$direction$rm6] */
  {
    -1, "strdx.l", "strd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd.l $rd6,[$rn6],$direction$rm6 */
  {
    -1, "strdp.l", "strd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd.l $rd6,[$rn6,$dpmi$disp11] */
  {
    -1, "strdd.l", "strd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd.l $rd6,[$rn6],$dpmi$disp11 */
  {
    -1, "strddpm.l", "strd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd $rd,[$rn] */
  {
    -1, "strdds0", "strd", 16,
    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd $rd6,[$rn6] */
  {
    -1, "strddl0", "strd", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* strd.l $rd6,[$rn6] */
  {
    -1, "strddl0.l", "strd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* moveq.l $rd6,$rn6 */
  {
    -1, "cmov.lEQ", "moveq.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movne.l $rd6,$rn6 */
  {
    -1, "cmov.lNE", "movne.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movgtu.l $rd6,$rn6 */
  {
    -1, "cmov.lGTU", "movgtu.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movgteu.l $rd6,$rn6 */
  {
    -1, "cmov.lGTEU", "movgteu.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movlteu.l $rd6,$rn6 */
  {
    -1, "cmov.lLTEU", "movlteu.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movltu.l $rd6,$rn6 */
  {
    -1, "cmov.lLTU", "movltu.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movgt.l $rd6,$rn6 */
  {
    -1, "cmov.lGT", "movgt.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movgte.l $rd6,$rn6 */
  {
    -1, "cmov.lGTE", "movgte.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movlt.l $rd6,$rn6 */
  {
    -1, "cmov.lLT", "movlt.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movlte.l $rd6,$rn6 */
  {
    -1, "cmov.lLTE", "movlte.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* mov.l $rd6,$rn6 */
  {
    -1, "cmov.lB", "mov.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movbeq.l $rd6,$rn6 */
  {
    -1, "cmov.lBEQ", "movbeq.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movbne.l $rd6,$rn6 */
  {
    -1, "cmov.lBNE", "movbne.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movblt.l $rd6,$rn6 */
  {
    -1, "cmov.lBLT", "movblt.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movblte.l $rd6,$rn6 */
  {
    -1, "cmov.lBLTE", "movblte.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movts.l $sn6,$rd6 */
  {
    -1, "movts.l6", "movts.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movts.l $sndma,$rd6 */
  {
    -1, "movts.ldma", "movts.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movts.l $snmem,$rd6 */
  {
    -1, "movts.lmem", "movts.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movts.l $snmesh,$rd6 */
  {
    -1, "movts.lmesh", "movts.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movfs.l $rd6,$sn6 */
  {
    -1, "movfs.l6", "movfs.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movfs.l $rd6,$sndma */
  {
    -1, "movfs.ldma", "movfs.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movfs.l $rd6,$snmem */
  {
    -1, "movfs.lmem", "movfs.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movfs.l $rd6,$snmesh */
  {
    -1, "movfs.lmesh", "movfs.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* add.l $rd6,$rn6,$rm6 */
  {
    -1, "add.l", "add.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* sub.l $rd6,$rn6,$rm6 */
  {
    -1, "sub.l", "sub.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* and.l $rd6,$rn6,$rm6 */
  {
    -1, "and.l", "and.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* orr.l $rd6,$rn6,$rm6 */
  {
    -1, "orr.l", "orr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* eor.l $rd6,$rn6,$rm6 */
  {
    -1, "eor.l", "eor.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* add $rd,$rn,$simm3 */
  {
    -1, "addir", "add", 16,
    { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* add $rd6,$rn6,$simm11 */
  {
    -1, "addi32r", "add", 32,
    { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* add $rd6,$rn6,$simm11 */
  {
    -1, "addi32m", "add", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* sub $rd,$rn,$simm3 */
  {
    -1, "subir", "sub", 16,
    { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* sub $rd6,$rn6,$simm11 */
  {
    -1, "subi32r", "sub", 32,
    { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* sub $rd6,$rn6,$simm11 */
  {
    -1, "subi32m", "sub", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* asr.l $rd6,$rn6,$rm6 */
  {
    -1, "asr.l", "asr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* lsr.l $rd6,$rn6,$rm6 */
  {
    -1, "lsr.l", "lsr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* lsl.l $rd6,$rn6,$rm6 */
  {
    -1, "lsl.l", "lsl.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* lsr.l $rd6,$rn6,$shift */
  {
    -1, "lsri32.l", "lsr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* lsl.l $rd6,$rn6,$shift */
  {
    -1, "lsli32.l", "lsl.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* asr.l $rd6,$rn6,$shift */
  {
    -1, "asri32.l", "asr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* bitr.l $rd6,$rn6 */
  {
    -1, "bitrl", "bitr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fext.l $rd6,$rn6,$rm6 */
  {
    -1, "fext.l", "fext.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fdep.l $rd6,$rn6,$rm6 */
  {
    -1, "fdep.l", "fdep.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* lfsr.l $rd6,$rn6,$rm6 */
  {
    -1, "lfsr.l", "lfsr.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* mov $rd,$imm8 */
  {
    -1, "mov8r", "mov", 16,
    { 0|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* mov $rd6,$imm16 */
  {
    -1, "mov16r", "mov", 32,
    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* movt.l $rd6,$imm16 */
  {
    -1, "movtl", "movt.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* iadd $rd,$rn,$rm */
  {
    -1, "i_addf16", "iadd", 16,
    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fadd.l $rd6,$rn6,$rm6 */
  {
    -1, "f_addf32.l", "fadd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* iadd $rd6,$rn6,$rm6 */
  {
    -1, "i_addf32", "iadd", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* iadd.l $rd6,$rn6,$rm6 */
  {
    -1, "i_addf32.l", "iadd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* isub $rd,$rn,$rm */
  {
    -1, "i_subf16", "isub", 16,
    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fsub.l $rd6,$rn6,$rm6 */
  {
    -1, "f_subf32.l", "fsub.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* isub $rd6,$rn6,$rm6 */
  {
    -1, "i_subf32", "isub", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* isub.l $rd6,$rn6,$rm6 */
  {
    -1, "i_subf32.l", "isub.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imul $rd,$rn,$rm */
  {
    -1, "i_mulf16", "imul", 16,
    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fmul.l $rd6,$rn6,$rm6 */
  {
    -1, "f_mulf32.l", "fmul.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imul $rd6,$rn6,$rm6 */
  {
    -1, "i_mulf32", "imul", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imul.l $rd6,$rn6,$rm6 */
  {
    -1, "i_mulf32.l", "imul.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imadd $rd,$rn,$rm */
  {
    -1, "i_maddf16", "imadd", 16,
    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fmadd.l $rd6,$rn6,$rm6 */
  {
    -1, "f_maddf32.l", "fmadd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imadd $rd6,$rn6,$rm6 */
  {
    -1, "i_maddf32", "imadd", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imadd.l $rd6,$rn6,$rm6 */
  {
    -1, "i_maddf32.l", "imadd.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imsub $rd,$rn,$rm */
  {
    -1, "i_msubf16", "imsub", 16,
    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fmsub.l $rd6,$rn6,$rm6 */
  {
    -1, "f_msubf32.l", "fmsub.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imsub $rd6,$rn6,$rm6 */
  {
    -1, "i_msubf32", "imsub", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* imsub.l $rd6,$rn6,$rm6 */
  {
    -1, "i_msubf32.l", "imsub.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fabs.l $rd6,$rn6 */
  {
    -1, "f_absf32.l", "fabs.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* float.l $rd6,$rn6 */
  {
    -1, "f_loatf32.l", "float.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fix.l $rd6,$rn6 */
  {
    -1, "f_ixf32.l", "fix.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* frecip.l $frd6,$frn6 */
  {
    -1, "f_recipf32.l", "frecip.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
/* fsqrt.l $frd6,$frn6 */
  {
    -1, "f_sqrtf32.l", "fsqrt.l", 32,
    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
  },
};

/* The macro instruction opcode table.  */

static const CGEN_OPCODE epiphany_cgen_macro_insn_opcode_table[] =
{
/* beq $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_beq16r, { 0x0 }
  },
/* beq $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_beq32r, { 0x8 }
  },
/* bne $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bne16r, { 0x10 }
  },
/* bne $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bne32r, { 0x18 }
  },
/* bgtu $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bgtu16r, { 0x20 }
  },
/* bgtu $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bgtu32r, { 0x28 }
  },
/* bgteu $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bgteu16r, { 0x30 }
  },
/* bgteu $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bgteu32r, { 0x38 }
  },
/* blteu $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_blteu16r, { 0x40 }
  },
/* blteu $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_blteu32r, { 0x48 }
  },
/* bltu $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bltu16r, { 0x50 }
  },
/* bltu $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bltu32r, { 0x58 }
  },
/* bgt $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bgt16r, { 0x60 }
  },
/* bgt $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bgt32r, { 0x68 }
  },
/* bgte $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bgte16r, { 0x70 }
  },
/* bgte $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bgte32r, { 0x78 }
  },
/* blt $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_blt16r, { 0x80 }
  },
/* blt $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_blt32r, { 0x88 }
  },
/* blte $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_blte16r, { 0x90 }
  },
/* blte $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_blte32r, { 0x98 }
  },
/* bbeq $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bbeq16r, { 0xa0 }
  },
/* bbeq $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bbeq32r, { 0xa8 }
  },
/* bbne $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bbne16r, { 0xb0 }
  },
/* bbne $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bbne32r, { 0xb8 }
  },
/* bblt $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bblt16r, { 0xc0 }
  },
/* bblt $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bblt32r, { 0xc8 }
  },
/* bblte $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bblte16r, { 0xd0 }
  },
/* bblte $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_bblte32r, { 0xd8 }
  },
/* b $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_b16r, { 0xe0 }
  },
/* b $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_b32r, { 0xe8 }
  },
/* bl $simm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM8), 0 } },
    & ifmt_bl16r, { 0xf0 }
  },
/* bl $simm24 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SIMM24), 0 } },
    & ifmt_blr, { 0xf8 }
  },
/* ldrb.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrbx, { 0x9 }
  },
/* ldrb.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrbp, { 0xd }
  },
/* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrbd, { 0xc }
  },
/* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrbdpm, { 0x200000c }
  },
/* ldrb $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_ldrbds0, { 0x4 }
  },
/* ldrb $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrbdl0, { 0xc }
  },
/* ldrb.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrbdl0_l, { 0xc }
  },
/* ldrh.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrhx, { 0x29 }
  },
/* ldrh.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrhp, { 0x2d }
  },
/* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrhd, { 0x2c }
  },
/* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrhdpm, { 0x200002c }
  },
/* ldrh $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_ldrhds0, { 0x24 }
  },
/* ldrh $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrhdl0, { 0x2c }
  },
/* ldrh.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrhdl0_l, { 0x2c }
  },
/* ldr.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrx, { 0x49 }
  },
/* ldr.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrp, { 0x4d }
  },
/* ldr.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrd, { 0x4c }
  },
/* ldr.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrdpm, { 0x200004c }
  },
/* ldr $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_ldrds0, { 0x44 }
  },
/* ldr $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrdl0, { 0x4c }
  },
/* ldr.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrdl0_l, { 0x4c }
  },
/* ldrd.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_ldrdx, { 0x69 }
  },
/* ldrd.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_ldrdp, { 0x6d }
  },
/* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_ldrdd, { 0x6c }
  },
/* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_ldrddpm, { 0x200006c }
  },
/* ldrd $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_ldrdds0, { 0x64 }
  },
/* ldrd $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrddl0, { 0x6c }
  },
/* ldrd.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_ldrddl0_l, { 0x6c }
  },
/* testsetb.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_testsetbt_l, { 0x200009 }
  },
/* testseth.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_testsetht_l, { 0x200029 }
  },
/* testset.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_testsett_l, { 0x200049 }
  },
/* strb.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_strbx_l, { 0x19 }
  },
/* strb.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_strbp_l, { 0x1d }
  },
/* strb.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_strbd_l, { 0x1c }
  },
/* strb.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_strbdpm_l, { 0x200001c }
  },
/* strb $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_strbds0, { 0x14 }
  },
/* strb $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strbdl0, { 0x1c }
  },
/* strb.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strbdl0_l, { 0x1c }
  },
/* strh.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_strhx_l, { 0x39 }
  },
/* strh.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_strhp_l, { 0x3d }
  },
/* strh.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_strhd_l, { 0x3c }
  },
/* strh.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_strhdpm_l, { 0x200003c }
  },
/* strh $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_strhds0, { 0x34 }
  },
/* strh $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strhdl0, { 0x3c }
  },
/* strh.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strhdl0_l, { 0x3c }
  },
/* str.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_strx_l, { 0x59 }
  },
/* str.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_strp_l, { 0x5d }
  },
/* str.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_strd_l, { 0x5c }
  },
/* str.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_strdpm_l, { 0x200005c }
  },
/* str $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_strds0, { 0x54 }
  },
/* str $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strdl0, { 0x5c }
  },
/* str.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strdl0_l, { 0x5c }
  },
/* strd.l $rd6,[$rn6,$direction$rm6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
    & ifmt_strdx_l, { 0x79 }
  },
/* strd.l $rd6,[$rn6],$direction$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
    & ifmt_strdp_l, { 0x7d }
  },
/* strd.l $rd6,[$rn6,$dpmi$disp11] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
    & ifmt_strdd_l, { 0x7c }
  },
/* strd.l $rd6,[$rn6],$dpmi$disp11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
    & ifmt_strddpm_l, { 0x200007c }
  },
/* strd $rd,[$rn] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
    & ifmt_strdds0, { 0x74 }
  },
/* strd $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strddl0, { 0x7c }
  },
/* strd.l $rd6,[$rn6] */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
    & ifmt_strddl0_l, { 0x7c }
  },
/* moveq.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lEQ, { 0x2000f }
  },
/* movne.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lNE, { 0x2001f }
  },
/* movgtu.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lGTU, { 0x2002f }
  },
/* movgteu.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lGTEU, { 0x2003f }
  },
/* movlteu.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lLTEU, { 0x2004f }
  },
/* movltu.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lLTU, { 0x2005f }
  },
/* movgt.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lGT, { 0x2006f }
  },
/* movgte.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lGTE, { 0x2007f }
  },
/* movlt.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lLT, { 0x2008f }
  },
/* movlte.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lLTE, { 0x2009f }
  },
/* mov.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lB, { 0x200ef }
  },
/* movbeq.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lBEQ, { 0x200af }
  },
/* movbne.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lBNE, { 0x200bf }
  },
/* movblt.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lBLT, { 0x200cf }
  },
/* movblte.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_cmov_lBLTE, { 0x200df }
  },
/* movts.l $sn6,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
    & ifmt_movts_l6, { 0x2010f }
  },
/* movts.l $sndma,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
    & ifmt_movts_ldma, { 0x12010f }
  },
/* movts.l $snmem,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
    & ifmt_movts_lmem, { 0x22010f }
  },
/* movts.l $snmesh,$rd6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
    & ifmt_movts_lmesh, { 0x32010f }
  },
/* movfs.l $rd6,$sn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
    & ifmt_movfs_l6, { 0x2011f }
  },
/* movfs.l $rd6,$sndma */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
    & ifmt_movfs_ldma, { 0x12011f }
  },
/* movfs.l $rd6,$snmem */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
    & ifmt_movfs_lmem, { 0x22011f }
  },
/* movfs.l $rd6,$snmesh */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
    & ifmt_movfs_lmesh, { 0x32011f }
  },
/* add.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_add_l, { 0xa001f }
  },
/* sub.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_sub_l, { 0xa003f }
  },
/* and.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_and_l, { 0xa005f }
  },
/* orr.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_orr_l, { 0xa007f }
  },
/* eor.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_eor_l, { 0xa000f }
  },
/* add $rd,$rn,$simm3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
    & ifmt_addir, { 0x13 }
  },
/* add $rd6,$rn6,$simm11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
    & ifmt_addi32r, { 0x1b }
  },
/* add $rd6,$rn6,$simm11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
    & ifmt_addi32m, { 0x1b }
  },
/* sub $rd,$rn,$simm3 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
    & ifmt_subir, { 0x33 }
  },
/* sub $rd6,$rn6,$simm11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
    & ifmt_subi32r, { 0x3b }
  },
/* sub $rd6,$rn6,$simm11 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
    & ifmt_subi32m, { 0x3b }
  },
/* asr.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_asr_l, { 0xa006f }
  },
/* lsr.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_lsr_l, { 0xa004f }
  },
/* lsl.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_lsl_l, { 0xa002f }
  },
/* lsr.l $rd6,$rn6,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
    & ifmt_lsri32_l, { 0x6000f }
  },
/* lsl.l $rd6,$rn6,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
    & ifmt_lsli32_l, { 0x6001f }
  },
/* asr.l $rd6,$rn6,$shift */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
    & ifmt_asri32_l, { 0xe000f }
  },
/* bitr.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_bitrl, { 0xe001f }
  },
/* fext.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_fext_l, { 0x1a000f }
  },
/* fdep.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_fdep_l, { 0x1a001f }
  },
/* lfsr.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_lfsr_l, { 0x1a002f }
  },
/* mov $rd,$imm8 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
    & ifmt_mov8r, { 0x3 }
  },
/* mov $rd6,$imm16 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
    & ifmt_mov16r, { 0x2000b }
  },
/* movt.l $rd6,$imm16 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
    & ifmt_movtl, { 0x1002000b }
  },
/* iadd $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_i_addf16, { 0x7 }
  },
/* fadd.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_f_addf32_l, { 0x7000f }
  },
/* iadd $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_addf32, { 0x7000f }
  },
/* iadd.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_addf32_l, { 0x7000f }
  },
/* isub $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_i_subf16, { 0x17 }
  },
/* fsub.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_f_subf32_l, { 0x7001f }
  },
/* isub $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_subf32, { 0x7001f }
  },
/* isub.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_subf32_l, { 0x7001f }
  },
/* imul $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_i_mulf16, { 0x27 }
  },
/* fmul.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_f_mulf32_l, { 0x7002f }
  },
/* imul $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_mulf32, { 0x7002f }
  },
/* imul.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_mulf32_l, { 0x7002f }
  },
/* imadd $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_i_maddf16, { 0x37 }
  },
/* fmadd.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_f_maddf32_l, { 0x7003f }
  },
/* imadd $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_maddf32, { 0x7003f }
  },
/* imadd.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_maddf32_l, { 0x7003f }
  },
/* imsub $rd,$rn,$rm */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
    & ifmt_i_msubf16, { 0x47 }
  },
/* fmsub.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_f_msubf32_l, { 0x7004f }
  },
/* imsub $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_msubf32, { 0x7004f }
  },
/* imsub.l $rd6,$rn6,$rm6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
    & ifmt_i_msubf32_l, { 0x7004f }
  },
/* fabs.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_f_absf32_l, { 0x7007f }
  },
/* float.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_f_loatf32_l, { 0x7005f }
  },
/* fix.l $rd6,$rn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
    & ifmt_f_ixf32_l, { 0x7006f }
  },
/* frecip.l $frd6,$frn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
    & ifmt_f_recipf32_l, { 0x17000f }
  },
/* fsqrt.l $frd6,$frn6 */
  {
    { 0, 0, 0, 0 },
    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
    & ifmt_f_sqrtf32_l, { 0x17001f }
  },
};

#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 (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
{
  return CGEN_ASM_HASH_P (insn);
}

static int
dis_hash_insn_p (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) (*(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 (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 (const char *buf ATTRIBUTE_UNUSED,
		     CGEN_INSN_INT value ATTRIBUTE_UNUSED)
{
  return CGEN_DIS_HASH (buf, value);
}

/* 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
epiphany_cgen_init_opcode_table (CGEN_CPU_DESC cd)
{
  int i;
  int num_macros = (sizeof (epiphany_cgen_macro_insn_table) /
		    sizeof (epiphany_cgen_macro_insn_table[0]));
  const CGEN_IBASE *ib = & epiphany_cgen_macro_insn_table[0];
  const CGEN_OPCODE *oc = & epiphany_cgen_macro_insn_opcode_table[0];
  CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));

  /* This test has been added to avoid a warning generated
     if memset is called with a third argument of value zero.  */
  if (num_macros >= 1)
    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];
      epiphany_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 = & epiphany_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];
      epiphany_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;
}
