blob: 006b6eb1cefbcd76ddabf8fd3a8a71a41eddee90 [file] [log] [blame]
/* CPU data for arc.
THIS FILE IS MACHINE GENERATED WITH CGEN.
Copyright 1996-2007 Free Software Foundation, Inc.
This file is part of the GNU Binutils and/or GDB, the GNU debugger.
This file is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
It is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "sysdep.h"
#include <stdio.h>
#include <stdarg.h>
#include "ansidecl.h"
#include "bfd.h"
#include "symcat.h"
#include "arc-desc.h"
#include "arc-opc.h"
#include "opintl.h"
#include "libiberty.h"
#include "xregex.h"
/* Attributes. */
static const CGEN_ATTR_ENTRY bool_attr[] =
{
{ "#f", 0 },
{ "#t", 1 },
{ 0, 0 }
};
static const CGEN_ATTR_ENTRY MACH_attr[] ATTRIBUTE_UNUSED =
{
{ "base", MACH_BASE },
{ "a5", MACH_A5 },
{ "arc600", MACH_ARC600 },
{ "arc700", MACH_ARC700 },
{ "max", MACH_MAX },
{ 0, 0 }
};
static const CGEN_ATTR_ENTRY ISA_attr[] ATTRIBUTE_UNUSED =
{
{ "ARCompact", ISA_ARCOMPACT },
{ "max", ISA_MAX },
{ 0, 0 }
};
static const CGEN_ATTR_ENTRY LIMM_attr[] ATTRIBUTE_UNUSED =
{
{ "none", LIMM_NONE },
{ "h", LIMM_H },
{ "B", LIMM_B },
{ "BC", LIMM_BC },
{ "C", LIMM_C },
{ 0, 0 }
};
const CGEN_ATTR_TABLE arc_cgen_ifield_attr_table[] =
{
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
{ "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
{ "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
{ "RESERVED", &bool_attr[0], &bool_attr[0] },
{ "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
{ "SIGNED", &bool_attr[0], &bool_attr[0] },
{ 0, 0, 0 }
};
const CGEN_ATTR_TABLE arc_cgen_hardware_attr_table[] =
{
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
{ "CACHE-ADDR", &bool_attr[0], &bool_attr[0] },
{ "PC", &bool_attr[0], &bool_attr[0] },
{ "PROFILE", &bool_attr[0], &bool_attr[0] },
{ 0, 0, 0 }
};
const CGEN_ATTR_TABLE arc_cgen_operand_attr_table[] =
{
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
{ "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
{ "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
{ "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
{ "SIGNED", &bool_attr[0], &bool_attr[0] },
{ "NEGATIVE", &bool_attr[0], &bool_attr[0] },
{ "RELAX", &bool_attr[0], &bool_attr[0] },
{ "SEM-ONLY", &bool_attr[0], &bool_attr[0] },
{ 0, 0, 0 }
};
const CGEN_ATTR_TABLE arc_cgen_insn_attr_table[] =
{
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
{ "LIMM", & LIMM_attr[0], & LIMM_attr[0] },
{ "ALIAS", &bool_attr[0], &bool_attr[0] },
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
{ "UNCOND-CTI", &bool_attr[0], &bool_attr[0] },
{ "COND-CTI", &bool_attr[0], &bool_attr[0] },
{ "SKIP-CTI", &bool_attr[0], &bool_attr[0] },
{ "DELAY-SLOT", &bool_attr[0], &bool_attr[0] },
{ "RELAXABLE", &bool_attr[0], &bool_attr[0] },
{ "RELAXED", &bool_attr[0], &bool_attr[0] },
{ "NO-DIS", &bool_attr[0], &bool_attr[0] },
{ "PBB", &bool_attr[0], &bool_attr[0] },
{ "SHORT_P", &bool_attr[0], &bool_attr[0] },
{ 0, 0, 0 }
};
/* Instruction set variants. */
static const CGEN_ISA arc_cgen_isa_table[] = {
{ "ARCompact", 32, 32, 32, 32 },
{ 0, 0, 0, 0, 0 }
};
/* Machine variants. */
static const CGEN_MACH arc_cgen_mach_table[] = {
{ "a5", "A5", MACH_A5, 16 },
{ "arc600", "ARC600", MACH_ARC600, 16 },
{ "arc700", "ARC700", MACH_ARC700, 16 },
{ 0, 0, 0, 0 }
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_cr_names_entries[] =
{
{ "gp", 26, {0, {{{0, 0}}}}, 0, 0 },
{ "fp", 27, {0, {{{0, 0}}}}, 0, 0 },
{ "sp", 28, {0, {{{0, 0}}}}, 0, 0 },
{ "blink", 31, {0, {{{0, 0}}}}, 0, 0 },
{ "mlo", 57, {0, {{{0, 0}}}}, 0, 0 },
{ "mmid", 58, {0, {{{0, 0}}}}, 0, 0 },
{ "mhi", 59, {0, {{{0, 0}}}}, 0, 0 },
{ "lp_count", 60, {0, {{{0, 0}}}}, 0, 0 },
{ "pcl", 63, {0, {{{0, 0}}}}, 0, 0 },
{ "ilink1", 29, {0, {{{0, 0}}}}, 0, 0 },
{ "ilink2", 30, {0, {{{0, 0}}}}, 0, 0 },
{ "r29", 29, {0, {{{0, 0}}}}, 0, 0 },
{ "r30", 30, {0, {{{0, 0}}}}, 0, 0 },
{ "r0", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "r1", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "r2", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "r3", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "r4", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "r5", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "r6", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "r7", 7, {0, {{{0, 0}}}}, 0, 0 },
{ "r8", 8, {0, {{{0, 0}}}}, 0, 0 },
{ "r9", 9, {0, {{{0, 0}}}}, 0, 0 },
{ "r10", 10, {0, {{{0, 0}}}}, 0, 0 },
{ "r11", 11, {0, {{{0, 0}}}}, 0, 0 },
{ "r12", 12, {0, {{{0, 0}}}}, 0, 0 },
{ "r13", 13, {0, {{{0, 0}}}}, 0, 0 },
{ "r14", 14, {0, {{{0, 0}}}}, 0, 0 },
{ "r15", 15, {0, {{{0, 0}}}}, 0, 0 },
{ "r16", 16, {0, {{{0, 0}}}}, 0, 0 },
{ "r17", 17, {0, {{{0, 0}}}}, 0, 0 },
{ "r18", 18, {0, {{{0, 0}}}}, 0, 0 },
{ "r19", 19, {0, {{{0, 0}}}}, 0, 0 },
{ "r20", 20, {0, {{{0, 0}}}}, 0, 0 },
{ "r21", 21, {0, {{{0, 0}}}}, 0, 0 },
{ "r22", 22, {0, {{{0, 0}}}}, 0, 0 },
{ "r23", 23, {0, {{{0, 0}}}}, 0, 0 },
{ "r24", 24, {0, {{{0, 0}}}}, 0, 0 },
{ "r25", 25, {0, {{{0, 0}}}}, 0, 0 },
{ "r26", 26, {0, {{{0, 0}}}}, 0, 0 },
{ "r27", 27, {0, {{{0, 0}}}}, 0, 0 },
{ "r28", 28, {0, {{{0, 0}}}}, 0, 0 },
{ "r31", 31, {0, {{{0, 0}}}}, 0, 0 },
{ "r32", 32, {0, {{{0, 0}}}}, 0, 0 },
{ "r33", 33, {0, {{{0, 0}}}}, 0, 0 },
{ "r34", 34, {0, {{{0, 0}}}}, 0, 0 },
{ "r35", 35, {0, {{{0, 0}}}}, 0, 0 },
{ "r36", 36, {0, {{{0, 0}}}}, 0, 0 },
{ "r37", 37, {0, {{{0, 0}}}}, 0, 0 },
{ "r38", 38, {0, {{{0, 0}}}}, 0, 0 },
{ "r39", 39, {0, {{{0, 0}}}}, 0, 0 },
{ "r40", 40, {0, {{{0, 0}}}}, 0, 0 },
{ "r41", 41, {0, {{{0, 0}}}}, 0, 0 },
{ "r42", 42, {0, {{{0, 0}}}}, 0, 0 },
{ "r43", 43, {0, {{{0, 0}}}}, 0, 0 },
{ "r44", 44, {0, {{{0, 0}}}}, 0, 0 },
{ "r45", 45, {0, {{{0, 0}}}}, 0, 0 },
{ "r46", 46, {0, {{{0, 0}}}}, 0, 0 },
{ "r47", 47, {0, {{{0, 0}}}}, 0, 0 },
{ "r48", 48, {0, {{{0, 0}}}}, 0, 0 },
{ "r49", 49, {0, {{{0, 0}}}}, 0, 0 },
{ "r50", 50, {0, {{{0, 0}}}}, 0, 0 },
{ "r51", 51, {0, {{{0, 0}}}}, 0, 0 },
{ "r52", 52, {0, {{{0, 0}}}}, 0, 0 },
{ "r53", 53, {0, {{{0, 0}}}}, 0, 0 },
{ "r54", 54, {0, {{{0, 0}}}}, 0, 0 },
{ "r55", 55, {0, {{{0, 0}}}}, 0, 0 },
{ "r56", 56, {0, {{{0, 0}}}}, 0, 0 },
{ "r57", 57, {0, {{{0, 0}}}}, 0, 0 },
{ "r58", 58, {0, {{{0, 0}}}}, 0, 0 },
{ "r59", 59, {0, {{{0, 0}}}}, 0, 0 },
{ "r60", 60, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_cr_names =
{
& arc_cgen_opval_cr_names_entries[0],
72,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_Qcondb_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "ra", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "al", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "eq", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "z", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "ne", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "nz", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "pl", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "p", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "mi", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "n", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "cs", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "c", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "lo", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "cc", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "nc", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "hs", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "vs", 7, {0, {{{0, 0}}}}, 0, 0 },
{ "v", 7, {0, {{{0, 0}}}}, 0, 0 },
{ "vc", 8, {0, {{{0, 0}}}}, 0, 0 },
{ "nv", 8, {0, {{{0, 0}}}}, 0, 0 },
{ "gt", 9, {0, {{{0, 0}}}}, 0, 0 },
{ "ge", 10, {0, {{{0, 0}}}}, 0, 0 },
{ "lt", 11, {0, {{{0, 0}}}}, 0, 0 },
{ "le", 12, {0, {{{0, 0}}}}, 0, 0 },
{ "hi", 13, {0, {{{0, 0}}}}, 0, 0 },
{ "ls", 14, {0, {{{0, 0}}}}, 0, 0 },
{ "pnz", 15, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_Qcondb =
{
& arc_cgen_opval_h_Qcondb_entries[0],
28,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_Qcondj_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "al", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "eq", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "z", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "ne", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "nz", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "pl", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "p", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "mi", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "n", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "cs", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "c", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "lo", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "cc", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "nc", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "hs", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "vs", 7, {0, {{{0, 0}}}}, 0, 0 },
{ "v", 7, {0, {{{0, 0}}}}, 0, 0 },
{ "vc", 8, {0, {{{0, 0}}}}, 0, 0 },
{ "nv", 8, {0, {{{0, 0}}}}, 0, 0 },
{ "gt", 9, {0, {{{0, 0}}}}, 0, 0 },
{ "ge", 10, {0, {{{0, 0}}}}, 0, 0 },
{ "lt", 11, {0, {{{0, 0}}}}, 0, 0 },
{ "le", 12, {0, {{{0, 0}}}}, 0, 0 },
{ "hi", 13, {0, {{{0, 0}}}}, 0, 0 },
{ "ls", 14, {0, {{{0, 0}}}}, 0, 0 },
{ "pnz", 15, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_Qcondj =
{
& arc_cgen_opval_h_Qcondj_entries[0],
27,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_Qcondi_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".al", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".eq", 1, {0, {{{0, 0}}}}, 0, 0 },
{ ".z", 1, {0, {{{0, 0}}}}, 0, 0 },
{ ".ne", 2, {0, {{{0, 0}}}}, 0, 0 },
{ ".nz", 2, {0, {{{0, 0}}}}, 0, 0 },
{ ".pl", 3, {0, {{{0, 0}}}}, 0, 0 },
{ ".p", 3, {0, {{{0, 0}}}}, 0, 0 },
{ ".mi", 4, {0, {{{0, 0}}}}, 0, 0 },
{ ".n", 4, {0, {{{0, 0}}}}, 0, 0 },
{ ".cs", 5, {0, {{{0, 0}}}}, 0, 0 },
{ ".c", 5, {0, {{{0, 0}}}}, 0, 0 },
{ ".lo", 5, {0, {{{0, 0}}}}, 0, 0 },
{ ".cc", 6, {0, {{{0, 0}}}}, 0, 0 },
{ ".nc", 6, {0, {{{0, 0}}}}, 0, 0 },
{ ".hs", 6, {0, {{{0, 0}}}}, 0, 0 },
{ ".vs", 7, {0, {{{0, 0}}}}, 0, 0 },
{ ".v", 7, {0, {{{0, 0}}}}, 0, 0 },
{ ".vc", 8, {0, {{{0, 0}}}}, 0, 0 },
{ ".nv", 8, {0, {{{0, 0}}}}, 0, 0 },
{ ".gt", 9, {0, {{{0, 0}}}}, 0, 0 },
{ ".ge", 10, {0, {{{0, 0}}}}, 0, 0 },
{ ".lt", 11, {0, {{{0, 0}}}}, 0, 0 },
{ ".le", 12, {0, {{{0, 0}}}}, 0, 0 },
{ ".hi", 13, {0, {{{0, 0}}}}, 0, 0 },
{ ".ls", 14, {0, {{{0, 0}}}}, 0, 0 },
{ ".pnz", 15, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_Qcondi =
{
& arc_cgen_opval_h_Qcondi_entries[0],
27,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_uncondb_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "al", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "ra", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_uncondb =
{
& arc_cgen_opval_h_uncondb_entries[0],
3,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_uncondj_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "al", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_uncondj =
{
& arc_cgen_opval_h_uncondj_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_uncondi_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".al", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_uncondi =
{
& arc_cgen_opval_h_uncondi_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_i2cond_entries[] =
{
{ "COND2_", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "COND2_al", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "COND2_ra", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "COND2_eq", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "COND2_z", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "COND2_ne", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "COND2_nz", 2, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_i2cond =
{
& arc_cgen_opval_h_i2cond_entries[0],
7,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_i3cond_entries[] =
{
{ "COND3_gt", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_ge", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_lt", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_le", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_hi", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_cc", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_nc", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_hs", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_cs", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_c", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_lo", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "COND3_ls", 7, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_i3cond =
{
& arc_cgen_opval_h_i3cond_entries[0],
12,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_delay_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".d", 1, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_delay =
{
& arc_cgen_opval_h_delay_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_uflags_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".f", 1, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_uflags =
{
& arc_cgen_opval_h_uflags_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_nil_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_nil =
{
& arc_cgen_opval_h_nil_entries[0],
1,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_auflags_entries[] =
{
{ "", 1, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_auflags =
{
& arc_cgen_opval_h_auflags_entries[0],
1,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_aufflags_entries[] =
{
{ ".f", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "", 1, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_aufflags =
{
& arc_cgen_opval_h_aufflags_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_Di_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".di", 1, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_Di =
{
& arc_cgen_opval_h_Di_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_insn16_entries[] =
{
{ "_s", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_insn16 =
{
& arc_cgen_opval_h_insn16_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_insn32_entries[] =
{
{ "", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "_l", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_insn32 =
{
& arc_cgen_opval_h_insn32_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h__aw_entries[] =
{
{ ".a", 0, {0, {{{0, 0}}}}, 0, 0 },
{ ".aw", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h__aw =
{
& arc_cgen_opval_h__aw_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_cr16_entries[] =
{
{ "r0", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "r1", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "r2", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "r3", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "r12", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "r13", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "r14", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "r15", 7, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_cr16 =
{
& arc_cgen_opval_h_cr16_entries[0],
8,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_r0_entries[] =
{
{ "r0", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_r0 =
{
& arc_cgen_opval_h_r0_entries[0],
1,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_gp_entries[] =
{
{ "r26", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "gp", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_gp =
{
& arc_cgen_opval_h_gp_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_sp_entries[] =
{
{ "sp", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "r28", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_sp =
{
& arc_cgen_opval_h_sp_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_pcl_entries[] =
{
{ "pcl", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "r63", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_pcl =
{
& arc_cgen_opval_h_pcl_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_noilink_entries[] =
{
{ "gp", 26, {0, {{{0, 0}}}}, 0, 0 },
{ "fp", 27, {0, {{{0, 0}}}}, 0, 0 },
{ "sp", 28, {0, {{{0, 0}}}}, 0, 0 },
{ "blink", 31, {0, {{{0, 0}}}}, 0, 0 },
{ "mlo", 57, {0, {{{0, 0}}}}, 0, 0 },
{ "mmid", 58, {0, {{{0, 0}}}}, 0, 0 },
{ "mhi", 59, {0, {{{0, 0}}}}, 0, 0 },
{ "lp_count", 60, {0, {{{0, 0}}}}, 0, 0 },
{ "pcl", 63, {0, {{{0, 0}}}}, 0, 0 },
{ "r0", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "r1", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "r2", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "r3", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "r4", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "r5", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "r6", 6, {0, {{{0, 0}}}}, 0, 0 },
{ "r7", 7, {0, {{{0, 0}}}}, 0, 0 },
{ "r8", 8, {0, {{{0, 0}}}}, 0, 0 },
{ "r9", 9, {0, {{{0, 0}}}}, 0, 0 },
{ "r10", 10, {0, {{{0, 0}}}}, 0, 0 },
{ "r11", 11, {0, {{{0, 0}}}}, 0, 0 },
{ "r12", 12, {0, {{{0, 0}}}}, 0, 0 },
{ "r13", 13, {0, {{{0, 0}}}}, 0, 0 },
{ "r14", 14, {0, {{{0, 0}}}}, 0, 0 },
{ "r15", 15, {0, {{{0, 0}}}}, 0, 0 },
{ "r16", 16, {0, {{{0, 0}}}}, 0, 0 },
{ "r17", 17, {0, {{{0, 0}}}}, 0, 0 },
{ "r18", 18, {0, {{{0, 0}}}}, 0, 0 },
{ "r19", 19, {0, {{{0, 0}}}}, 0, 0 },
{ "r20", 20, {0, {{{0, 0}}}}, 0, 0 },
{ "r21", 21, {0, {{{0, 0}}}}, 0, 0 },
{ "r22", 22, {0, {{{0, 0}}}}, 0, 0 },
{ "r23", 23, {0, {{{0, 0}}}}, 0, 0 },
{ "r24", 24, {0, {{{0, 0}}}}, 0, 0 },
{ "r25", 25, {0, {{{0, 0}}}}, 0, 0 },
{ "r26", 26, {0, {{{0, 0}}}}, 0, 0 },
{ "r27", 27, {0, {{{0, 0}}}}, 0, 0 },
{ "r28", 28, {0, {{{0, 0}}}}, 0, 0 },
{ "r31", 31, {0, {{{0, 0}}}}, 0, 0 },
{ "r32", 32, {0, {{{0, 0}}}}, 0, 0 },
{ "r33", 33, {0, {{{0, 0}}}}, 0, 0 },
{ "r34", 34, {0, {{{0, 0}}}}, 0, 0 },
{ "r35", 35, {0, {{{0, 0}}}}, 0, 0 },
{ "r36", 36, {0, {{{0, 0}}}}, 0, 0 },
{ "r37", 37, {0, {{{0, 0}}}}, 0, 0 },
{ "r38", 38, {0, {{{0, 0}}}}, 0, 0 },
{ "r39", 39, {0, {{{0, 0}}}}, 0, 0 },
{ "r40", 40, {0, {{{0, 0}}}}, 0, 0 },
{ "r41", 41, {0, {{{0, 0}}}}, 0, 0 },
{ "r42", 42, {0, {{{0, 0}}}}, 0, 0 },
{ "r43", 43, {0, {{{0, 0}}}}, 0, 0 },
{ "r44", 44, {0, {{{0, 0}}}}, 0, 0 },
{ "r45", 45, {0, {{{0, 0}}}}, 0, 0 },
{ "r46", 46, {0, {{{0, 0}}}}, 0, 0 },
{ "r47", 47, {0, {{{0, 0}}}}, 0, 0 },
{ "r48", 48, {0, {{{0, 0}}}}, 0, 0 },
{ "r49", 49, {0, {{{0, 0}}}}, 0, 0 },
{ "r50", 50, {0, {{{0, 0}}}}, 0, 0 },
{ "r51", 51, {0, {{{0, 0}}}}, 0, 0 },
{ "r52", 52, {0, {{{0, 0}}}}, 0, 0 },
{ "r53", 53, {0, {{{0, 0}}}}, 0, 0 },
{ "r54", 54, {0, {{{0, 0}}}}, 0, 0 },
{ "r55", 55, {0, {{{0, 0}}}}, 0, 0 },
{ "r56", 56, {0, {{{0, 0}}}}, 0, 0 },
{ "r57", 57, {0, {{{0, 0}}}}, 0, 0 },
{ "r58", 58, {0, {{{0, 0}}}}, 0, 0 },
{ "r59", 59, {0, {{{0, 0}}}}, 0, 0 },
{ "r60", 60, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_noilink =
{
& arc_cgen_opval_h_noilink_entries[0],
68,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_ilinkx_entries[] =
{
{ "ilink1", 29, {0, {{{0, 0}}}}, 0, 0 },
{ "r29", 29, {0, {{{0, 0}}}}, 0, 0 },
{ "ilink2", 30, {0, {{{0, 0}}}}, 0, 0 },
{ "r30", 30, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_ilinkx =
{
& arc_cgen_opval_h_ilinkx_entries[0],
4,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_r31_entries[] =
{
{ "blink", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "r31", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_r31 =
{
& arc_cgen_opval_h_r31_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_status32_entries[] =
{
{ "status32", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_status32 =
{
& arc_cgen_opval_h_status32_entries[0],
1,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_ne_entries[] =
{
{ "ne", 0, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_ne =
{
& arc_cgen_opval_h_ne_entries[0],
1,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_RccS_entries[] =
{
{ "eq", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "ne", 1, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_RccS =
{
& arc_cgen_opval_h_RccS_entries[0],
2,
0, 0, 0, 0, ""
};
static CGEN_KEYWORD_ENTRY arc_cgen_opval_h_Rcc_entries[] =
{
{ "req", 0, {0, {{{0, 0}}}}, 0, 0 },
{ "rne", 1, {0, {{{0, 0}}}}, 0, 0 },
{ "rlt", 2, {0, {{{0, 0}}}}, 0, 0 },
{ "rge", 3, {0, {{{0, 0}}}}, 0, 0 },
{ "rlo", 4, {0, {{{0, 0}}}}, 0, 0 },
{ "rhs", 5, {0, {{{0, 0}}}}, 0, 0 },
{ "bit0", 14, {0, {{{0, 0}}}}, 0, 0 },
{ "bit1", 15, {0, {{{0, 0}}}}, 0, 0 }
};
CGEN_KEYWORD arc_cgen_opval_h_Rcc =
{
& arc_cgen_opval_h_Rcc_entries[0],
8,
0, 0, 0, 0, ""
};
/* The hardware table. */
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_HW_##a)
#else
#define A(a) (1 << CGEN_HW_/**/a)
#endif
const CGEN_HW_ENTRY arc_cgen_hw_table[] =
{
{ "h-memory", HW_H_MEMORY, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-sint", HW_H_SINT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-uint", HW_H_UINT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-addr", HW_H_ADDR, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-iaddr", HW_H_IADDR, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-lbit", HW_H_LBIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-zbit", HW_H_ZBIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-nbit", HW_H_NBIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-cbit", HW_H_CBIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-vbit", HW_H_VBIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-ubit", HW_H_UBIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-e1", HW_H_E1, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-e2", HW_H_E2, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-s1bit", HW_H_S1BIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-s2bit", HW_H_S2BIT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-Qcondb", HW_H_QCONDB, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_Qcondb, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-Qcondj", HW_H_QCONDJ, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_Qcondj, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-Qcondi", HW_H_QCONDI, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_Qcondi, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-uncondb", HW_H_UNCONDB, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_uncondb, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-uncondj", HW_H_UNCONDJ, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_uncondj, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-uncondi", HW_H_UNCONDI, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_uncondi, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-i2cond", HW_H_I2COND, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_i2cond, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-i3cond", HW_H_I3COND, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_i3cond, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-delay", HW_H_DELAY, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_delay, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-uflags", HW_H_UFLAGS, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_uflags, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-nil", HW_H_NIL, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_nil, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-auflags", HW_H_AUFLAGS, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_auflags, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-aufflags", HW_H_AUFFLAGS, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_aufflags, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-Di", HW_H_DI, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_Di, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-insn16", HW_H_INSN16, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_insn16, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-insn32", HW_H_INSN32, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_insn32, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-_aw", HW_H__AW, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h__aw, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-cr", HW_H_CR, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_cr_names, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-cr16", HW_H_CR16, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_cr16, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-r0", HW_H_R0, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_r0, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-gp", HW_H_GP, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_gp, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-sp", HW_H_SP, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_sp, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-pcl", HW_H_PCL, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_pcl, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-noilink", HW_H_NOILINK, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_noilink, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-ilinkx", HW_H_ILINKX, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_ilinkx, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-r31", HW_H_R31, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_r31, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-auxr", HW_H_AUXR, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_cr_names, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-status32", HW_H_STATUS32, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_status32, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-timer-expire", HW_H_TIMER_EXPIRE, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-prof-offset", HW_H_PROF_OFFSET, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-ne", HW_H_NE, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_ne, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-pc", HW_H_PC, CGEN_ASM_NONE, 0, { 0|A(PROFILE)|A(PC), { { { (1<<MACH_BASE), 0 } } } } },
{ "h-RccS", HW_H_RCCS, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_RccS, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ "h-Rcc", HW_H_RCC, CGEN_ASM_KEYWORD, (PTR) & arc_cgen_opval_h_Rcc, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ 0, 0, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } }
};
#undef A
/* The instruction field table. */
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_IFLD_##a)
#else
#define A(a) (1 << CGEN_IFLD_/**/a)
#endif
const CGEN_IFLD arc_cgen_ifld_table[] =
{
{ ARC_F_NIL, "f-nil", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_ANYOF, "f-anyof", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_COND_Q, "f-cond-Q", 0, 32, 27, 5, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_COND_I2, "f-cond-i2", 0, 32, 5, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_COND_I3, "f-cond-i3", 0, 32, 7, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_BRCOND, "f-brcond", 0, 32, 28, 4, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP__A, "f-op--a", 0, 32, 13, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP__B, "f-op--b", 0, 32, 5, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP__C, "f-op--c", 0, 32, 8, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_B_5_3, "f-B-5-3", 0, 32, 17, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP_B, "f-op-B", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP_C, "f-op-C", 0, 32, 20, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP_CJ, "f-op-Cj", 0, 32, 20, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_H_2_0, "f-h-2-0", 0, 32, 8, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_H_5_3, "f-h-5-3", 0, 32, 13, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP_H, "f-op-h", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U6, "f-u6", 0, 32, 20, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U6X2, "f-u6x2", 0, 32, 20, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_DELAY_N, "f-delay-N", 0, 32, 26, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_RES27, "f-res27", 0, 32, 27, 1, { 0|A(RESERVED), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_F, "f-F", 0, 32, 16, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_CBRANCH_IMM, "f-cbranch-imm", 0, 32, 27, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OP_A, "f-op-A", 0, 32, 26, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S12H, "f-s12h", 0, 32, 26, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S12, "f-s12", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S12X2, "f-s12x2", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL10, "f-rel10", 0, 32, 7, 9, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL7, "f-rel7", 0, 32, 10, 6, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL8, "f-rel8", 0, 32, 9, 7, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL13BL, "f-rel13bl", 0, 32, 5, 11, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D21L, "f-d21l", 0, 32, 5, 10, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D21BL, "f-d21bl", 0, 32, 5, 9, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D21H, "f-d21h", 0, 32, 16, 10, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D25M, "f-d25m", 0, 32, 16, 10, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D25H, "f-d25h", 0, 32, 28, 4, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL21, "f-rel21", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL21BL, "f-rel21bl", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL25, "f-rel25", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL25BL, "f-rel25bl", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D9L, "f-d9l", 0, 32, 8, 7, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_D9H, "f-d9h", 0, 32, 16, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_REL9, "f-rel9", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U3, "f-u3", 0, 32, 13, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U5, "f-u5", 0, 32, 11, 5, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U7, "f-u7", 0, 32, 9, 7, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U8, "f-u8", 0, 32, 8, 8, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S9, "f-s9", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U5X2, "f-u5x2", 0, 32, 11, 5, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U5X4, "f-u5x4", 0, 32, 11, 5, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_U8X4, "f-u8x4", 0, 32, 8, 8, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S9X1, "f-s9x1", 0, 32, 7, 9, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S9X2, "f-s9x2", 0, 32, 7, 9, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_S9X4, "f-s9x4", 0, 32, 7, 9, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_DUMMY, "f-dummy", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_OPM, "f-opm", 0, 32, 0, 5, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_GO_TYPE, "f-go-type", 0, 32, 8, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_GO_CC_TYPE, "f-go-cc-type", 0, 32, 26, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_GO_OP, "f-go-op", 0, 32, 10, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_I16_43, "f-i16-43", 0, 32, 11, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_I16_GO, "f-i16-go", 0, 32, 11, 5, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_I16_GP_TYPE, "f-i16-gp-type", 0, 32, 5, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_I16ADDCMPU7_TYPE, "f-i16addcmpu7-type", 0, 32, 8, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_BUF, "f-buf", 0, 32, 15, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_BR, "f-br", 0, 32, 27, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_BLUF, "f-bluf", 0, 32, 14, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_BRSCOND, "f-brscond", 0, 32, 8, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_LDOZZX, "f-ldozzx", 0, 32, 23, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_LDR6ZZX, "f-ldr6zzx", 0, 32, 10, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_STOZZR, "f-stozzr", 0, 32, 29, 3, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_LDOAA, "f-ldoaa", 0, 32, 21, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_LDRAA, "f-ldraa", 0, 32, 8, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_STOAA, "f-stoaa", 0, 32, 27, 2, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_LDODI, "f-LDODi", 0, 32, 20, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_LDRDI, "f-LDRDi", 0, 32, 16, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_STODI, "f-STODi", 0, 32, 26, 1, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ ARC_F_TRAPNUM, "f-trapnum", 0, 32, 5, 6, { 0, { { { (1<<MACH_BASE), 0 } } } } },
{ 0, 0, 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } } } } }
};
#undef A
/* multi ifield declarations */
const CGEN_MAYBE_MULTI_IFLD ARC_F_OP_B_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_OP_H_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_S12_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_S12X2_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL21_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL21BL_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL25_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL25BL_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL9_MULTI_IFIELD [];
const CGEN_MAYBE_MULTI_IFLD ARC_F_S9_MULTI_IFIELD [];
/* multi ifield definitions */
const CGEN_MAYBE_MULTI_IFLD ARC_F_OP_B_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP__B] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_B_5_3] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_OP_H_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_H_2_0] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_H_5_3] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_S12_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U6] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_S12H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_S12X2_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U6] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_S12H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL21_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D21L] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D21H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL21BL_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D21BL] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D21H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL25_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D21L] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D25M] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D25H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL25BL_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D21BL] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D25M] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D25H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_REL9_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D9L] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D9H] } },
{ 0, { (const PTR) 0 } }
};
const CGEN_MAYBE_MULTI_IFLD ARC_F_S9_MULTI_IFIELD [] =
{
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U8] } },
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_D9H] } },
{ 0, { (const PTR) 0 } }
};
/* The operand table. */
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_OPERAND_##a)
#else
#define A(a) (1 << CGEN_OPERAND_/**/a)
#endif
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define OPERAND(op) ARC_OPERAND_##op
#else
#define OPERAND(op) ARC_OPERAND_/**/op
#endif
const CGEN_OPERAND arc_cgen_operand_table[] =
{
/* pc: program counter */
{ "pc", ARC_OPERAND_PC, HW_H_PC, 0, 0,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_NIL] } },
{ 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } } } } },
/* lbit: loop inhibit bit */
{ "lbit", ARC_OPERAND_LBIT, HW_H_LBIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* zbit: zero bit */
{ "zbit", ARC_OPERAND_ZBIT, HW_H_ZBIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* nbit: negative bit */
{ "nbit", ARC_OPERAND_NBIT, HW_H_NBIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* cbit: carry bit */
{ "cbit", ARC_OPERAND_CBIT, HW_H_CBIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* vbit: overflow bit */
{ "vbit", ARC_OPERAND_VBIT, HW_H_VBIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* s1bit: channel 1 saturate */
{ "s1bit", ARC_OPERAND_S1BIT, HW_H_S1BIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* s2bit: channel 2 saturate */
{ "s2bit", ARC_OPERAND_S2BIT, HW_H_S2BIT, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* Qcondb: Condition */
{ "Qcondb", ARC_OPERAND_QCONDB, HW_H_QCONDB, 27, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_COND_Q] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* Qcondj: Condition */
{ "Qcondj", ARC_OPERAND_QCONDJ, HW_H_QCONDJ, 27, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_COND_Q] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* Qcondi: Condition */
{ "Qcondi", ARC_OPERAND_QCONDI, HW_H_QCONDI, 27, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_COND_Q] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* uncondb: unconditional branch */
{ "uncondb", ARC_OPERAND_UNCONDB, HW_H_UNCONDB, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* uncondj: unconditional jump */
{ "uncondj", ARC_OPERAND_UNCONDJ, HW_H_UNCONDJ, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* uncondi: unconditional insn */
{ "uncondi", ARC_OPERAND_UNCONDI, HW_H_UNCONDI, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* i2cond: Condition */
{ "i2cond", ARC_OPERAND_I2COND, HW_H_I2COND, 5, 2,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_COND_I2] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* i3cond: Condition */
{ "i3cond", ARC_OPERAND_I3COND, HW_H_I3COND, 7, 3,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_COND_I3] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* delay_N: Delay slot exposed */
{ "delay_N", ARC_OPERAND_DELAY_N, HW_H_DELAY, 26, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_DELAY_N] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* _S: 16 bit opcode */
{ "_S", ARC_OPERAND__S, HW_H_INSN16, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* _L: 32 bit opcode */
{ "_L", ARC_OPERAND__L, HW_H_INSN32, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* F: update flags */
{ "F", ARC_OPERAND_F, HW_H_UFLAGS, 16, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_F] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* F1: always update flags */
{ "F1", ARC_OPERAND_F1, HW_H_AUFLAGS, 16, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_F] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* F1F: always update flags; .F allowed */
{ "F1F", ARC_OPERAND_F1F, HW_H_AUFFLAGS, 16, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_F] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* F0: never update flags */
{ "F0", ARC_OPERAND_F0, HW_H_NIL, 16, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_F] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* R_a: Core Register a */
{ "R_a", ARC_OPERAND_R_A, HW_H_CR16, 13, 3,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP__A] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RA: Core Register A */
{ "RA", ARC_OPERAND_RA, HW_H_CR, 26, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP_A] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* R_b: Core Register b */
{ "R_b", ARC_OPERAND_R_B, HW_H_CR16, 5, 3,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP__B] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RB: Core Register B */
{ "RB", ARC_OPERAND_RB, HW_H_CR, 5, 6,
{ 2, { (const PTR) &ARC_F_OP_B_MULTI_IFIELD[0] } },
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* R_c: Core Register b */
{ "R_c", ARC_OPERAND_R_C, HW_H_CR16, 8, 3,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP__C] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RC: Core Register C */
{ "RC", ARC_OPERAND_RC, HW_H_CR, 20, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP_C] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* Rh: Core register h */
{ "Rh", ARC_OPERAND_RH, HW_H_CR, 8, 6,
{ 2, { (const PTR) &ARC_F_OP_H_MULTI_IFIELD[0] } },
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* R0: Core Register 0 */
{ "R0", ARC_OPERAND_R0, HW_H_R0, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* R31: Core Register 31 */
{ "R31", ARC_OPERAND_R31, HW_H_R31, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* GP: Global Pointer */
{ "GP", ARC_OPERAND_GP, HW_H_GP, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* SP: Stack Pointer */
{ "SP", ARC_OPERAND_SP, HW_H_SP, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* PCL: read PC - aligned */
{ "PCL", ARC_OPERAND_PCL, HW_H_PCL, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RA_0: encode A as 0 */
{ "RA_0", ARC_OPERAND_RA_0, HW_H_NIL, 26, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP_A] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RB_0: encode B as 0 */
{ "RB_0", ARC_OPERAND_RB_0, HW_H_NIL, 5, 6,
{ 2, { (const PTR) &ARC_F_OP_B_MULTI_IFIELD[0] } },
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* RC_ilink: inlink[01] as op C */
{ "RC_ilink", ARC_OPERAND_RC_ILINK, HW_H_ILINKX, 20, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP_CJ] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RC_noilink: Core reg C, not ilink */
{ "RC_noilink", ARC_OPERAND_RC_NOILINK, HW_H_NOILINK, 20, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_OP_CJ] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* NE: NE condition */
{ "NE", ARC_OPERAND_NE, HW_H_NE, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* U6: 6 bit unsigned immediate */
{ "U6", ARC_OPERAND_U6, HW_H_UINT, 20, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U6] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* U6x2: 6 bit unsigned immediate */
{ "U6x2", ARC_OPERAND_U6X2, HW_H_UINT, 20, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U6X2] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* u3: 3 bit unsigned immediate */
{ "u3", ARC_OPERAND_U3, HW_H_UINT, 13, 3,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U3] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* u5: 5 bit unsigned immediate */
{ "u5", ARC_OPERAND_U5, HW_H_UINT, 11, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U5] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* u7: 7 bit unsigned immediate */
{ "u7", ARC_OPERAND_U7, HW_H_UINT, 9, 7,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U7] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* u8: 8 bit unsigned immediate */
{ "u8", ARC_OPERAND_U8, HW_H_UINT, 8, 8,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U8] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* s9: 8 bit signed immediate */
{ "s9", ARC_OPERAND_S9, HW_H_SINT, 8, 9,
{ 2, { (const PTR) &ARC_F_S9_MULTI_IFIELD[0] } },
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* s12: 12 bit signed immediate */
{ "s12", ARC_OPERAND_S12, HW_H_SINT, 20, 12,
{ 2, { (const PTR) &ARC_F_S12_MULTI_IFIELD[0] } },
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* s12x2: 12 bit signed immediate */
{ "s12x2", ARC_OPERAND_S12X2, HW_H_SINT, 20, 12,
{ 2, { (const PTR) &ARC_F_S12X2_MULTI_IFIELD[0] } },
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* u5x4: 5 bit uns imm times 4 */
{ "u5x4", ARC_OPERAND_U5X4, HW_H_UINT, 11, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U5X4] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sc_u5_: 5 bit uns imm times 4 */
{ "sc_u5_", ARC_OPERAND_SC_U5_, HW_H_UINT, 11, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U5X4] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sc_u5w: 5 bit uns imm times 2 */
{ "sc_u5w", ARC_OPERAND_SC_U5W, HW_H_UINT, 11, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U5X2] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sc_u5b: 5 bit uns imm times 1 */
{ "sc_u5b", ARC_OPERAND_SC_U5B, HW_H_UINT, 11, 5,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U5] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* u8x4: 8 bit uns imm times 4 */
{ "u8x4", ARC_OPERAND_U8X4, HW_H_UINT, 8, 8,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_U8X4] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* s9x4: 9 bit sgn imm times 4 */
{ "s9x4", ARC_OPERAND_S9X4, HW_H_UINT, 7, 9,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_S9X4] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sc_s9_: 8 bit uns imm times 4 */
{ "sc_s9_", ARC_OPERAND_SC_S9_, HW_H_UINT, 7, 9,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_S9X4] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sc_s9w: 8 bit uns imm times 2 */
{ "sc_s9w", ARC_OPERAND_SC_S9W, HW_H_UINT, 7, 9,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_S9X2] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sc_s9b: 8 bit uns imm times 1 */
{ "sc_s9b", ARC_OPERAND_SC_S9B, HW_H_UINT, 7, 9,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_S9X1] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* label7: 7 bit pc relative address */
{ "label7", ARC_OPERAND_LABEL7, HW_H_IADDR, 10, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_REL7] } },
{ 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
/* label8: 8 bit pc relative address */
{ "label8", ARC_OPERAND_LABEL8, HW_H_IADDR, 9, 7,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_REL8] } },
{ 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
/* label9: 9 bit pc relative address */
{ "label9", ARC_OPERAND_LABEL9, HW_H_IADDR, 8, 8,
{ 2, { (const PTR) &ARC_F_REL9_MULTI_IFIELD[0] } },
{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* label10: 10 bit pc relative address */
{ "label10", ARC_OPERAND_LABEL10, HW_H_IADDR, 7, 9,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_REL10] } },
{ 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
/* label13a: 13 bit bl pc rel address */
{ "label13a", ARC_OPERAND_LABEL13A, HW_H_IADDR, 5, 11,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_REL13BL] } },
{ 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } } } } },
/* label21: 21 bit pc relative address */
{ "label21", ARC_OPERAND_LABEL21, HW_H_IADDR, 5, 20,
{ 2, { (const PTR) &ARC_F_REL21_MULTI_IFIELD[0] } },
{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* label21a: 21 bit bl pc rel address */
{ "label21a", ARC_OPERAND_LABEL21A, HW_H_IADDR, 5, 19,
{ 2, { (const PTR) &ARC_F_REL21BL_MULTI_IFIELD[0] } },
{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* label25: 25 bit pc relative address */
{ "label25", ARC_OPERAND_LABEL25, HW_H_IADDR, 5, 24,
{ 3, { (const PTR) &ARC_F_REL25_MULTI_IFIELD[0] } },
{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* label25a: 25 bit bl pc rel address */
{ "label25a", ARC_OPERAND_LABEL25A, HW_H_IADDR, 5, 23,
{ 3, { (const PTR) &ARC_F_REL25BL_MULTI_IFIELD[0] } },
{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } } } } },
/* dummy-op: (first 16 bit of) next insn */
{ "dummy-op", ARC_OPERAND_DUMMY_OP, HW_H_UINT, 16, 16,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_DUMMY] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* RccS: BRcc_s */
{ "RccS", ARC_OPERAND_RCCS, HW_H_RCCS, 8, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_BRSCOND] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* Rcc: BRcc / BBIT Condition */
{ "Rcc", ARC_OPERAND_RCC, HW_H_RCC, 28, 4,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_BRCOND] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* LDODi: ld /w offs Direct mem access */
{ "LDODi", ARC_OPERAND_LDODI, HW_H_DI, 20, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_LDODI] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* LDRDi: ld reg-reg Direct mem access */
{ "LDRDi", ARC_OPERAND_LDRDI, HW_H_DI, 16, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_LDRDI] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* STODi: ld w/ offs Direct mem access */
{ "STODi", ARC_OPERAND_STODI, HW_H_DI, 26, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_STODI] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* EXDi: ex Direct memory access */
{ "EXDi", ARC_OPERAND_EXDI, HW_H_DI, 16, 1,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_F] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* _AW: .AW suffix */
{ "_AW", ARC_OPERAND__AW, HW_H__AW, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* trapnum: 6 bit trap number */
{ "trapnum", ARC_OPERAND_TRAPNUM, HW_H_UINT, 5, 6,
{ 0, { (const PTR) &arc_cgen_ifld_table[ARC_F_TRAPNUM] } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } },
/* sentinel */
{ 0, 0, 0, 0, 0,
{ 0, { (const PTR) 0 } },
{ 0, { { { (1<<MACH_BASE), 0 } } } } }
};
#undef A
/* The instruction table. */
#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_INSN_##a)
#else
#define A(a) (1 << CGEN_INSN_/**/a)
#endif
static const CGEN_IBASE arc_cgen_insn_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, { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } } },
/* b$i2cond $label10 */
{
ARC_INSN_B_S, "b_s", "b", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$i3cond$_S $label7 */
{
ARC_INSN_BCC_S, "bcc_s", "b", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* br$RccS$_S $R_b,0,$label8 */
{
ARC_INSN_BRCC_S, "brcc_s", "br", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$Qcondb$_L $label21 */
{
ARC_INSN_BCC_L, "bcc_l", "b", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$Qcondb$_L.d $label21 */
{
ARC_INSN_BCC_L_D, "bcc_l.d", "b", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$uncondb$_L $label25 */
{
ARC_INSN_B_L, "b_l", "b", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$uncondb$_L.d $label25 */
{
ARC_INSN_B_L_D, "b_l.d", "b", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$Rcc $RB,$RC,$label9 */
{
ARC_INSN_BRCC_RC, "brcc_RC", "b", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* b$Rcc.d $RB,$RC,$label9 */
{
ARC_INSN_BRCC_RC_D, "brcc_RC.d", "b", 32,
{ 0|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* b$Rcc $RB,$U6,$label9 */
{
ARC_INSN_BRCC_U6, "brcc_U6", "b", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* b$Rcc.d $RB,$U6,$label9 */
{
ARC_INSN_BRCC_U6_D, "brcc_U6.d", "b", 32,
{ 0|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bl$uncondj$_S $label13a */
{
ARC_INSN_BL_S, "bl_s", "bl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bl$Qcondj$_L $label21 */
{
ARC_INSN_BLCC, "blcc", "bl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bl$Qcondj$_L.d $label21 */
{
ARC_INSN_BLCC_D, "blcc.d", "bl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bl$uncondj$_L $label25a */
{
ARC_INSN_BL, "bl", "bl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bl$uncondj$_L.d $label25a */
{
ARC_INSN_BL_D, "bl.d", "bl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ld$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LD_ABS, "ld_abs", "ld", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ld$_AW$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LD__AW_ABS, "ld$_AW_abs", "ld", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ld.ab$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LD_AB_ABS, "ld.ab_abs", "ld.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ld.as$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LD_AS_ABS, "ld.as_abs", "ld.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ld$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LD_ABC, "ld_abc", "ld", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ld$_AW$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LD__AW_ABC, "ld$_AW_abc", "ld", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ld.ab$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LD_AB_ABC, "ld.ab_abc", "ld.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ld.as$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LD_AS_ABC, "ld.as_abc", "ld.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ld$_S $R_a,[$R_b,$R_c] */
{
ARC_INSN_LD_S_ABC, "ld_s_abc", "ld", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ld$_S $R_c,[$R_b,$sc_u5_] */
{
ARC_INSN_LD_S_ABU, "ld_s_abu", "ld", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ld$_S $R_b,[$SP,$u5x4] */
{
ARC_INSN_LD_S_ABSP, "ld_s_absp", "ld", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ld$_S $R_b,[$GP,$sc_s9_] */
{
ARC_INSN_LD_S_GPREL, "ld_s_gprel", "ld", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ld$_S $R_b,[$PCL,$u8x4] */
{
ARC_INSN_LD_S_PCREL, "ld_s_pcrel", "ld", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldb$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB_ABS, "ldb_abs", "ldb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb$_AW$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB__AW_ABS, "ldb$_AW_abs", "ldb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb.ab$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB_AB_ABS, "ldb.ab_abs", "ldb.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb.as$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB_AS_ABS, "ldb.as_abs", "ldb.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB_ABC, "ldb_abc", "ldb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb$_AW$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB__AW_ABC, "ldb$_AW_abc", "ldb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb.ab$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB_AB_ABC, "ldb.ab_abc", "ldb.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb.as$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB_AS_ABC, "ldb.as_abc", "ldb.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb$_S $R_a,[$R_b,$R_c] */
{
ARC_INSN_LDB_S_ABC, "ldb_s_abc", "ldb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldb$_S $R_c,[$R_b,$sc_u5b] */
{
ARC_INSN_LDB_S_ABU, "ldb_s_abu", "ldb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldb$_S $R_b,[$SP,$u5x4] */
{
ARC_INSN_LDB_S_ABSP, "ldb_s_absp", "ldb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldb$_S $R_b,[$GP,$sc_s9b] */
{
ARC_INSN_LDB_S_GPREL, "ldb_s_gprel", "ldb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldb.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB_X_ABS, "ldb.x_abs", "ldb.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb$_AW.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB__AW_X_ABS, "ldb$_AW.x_abs", "ldb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb.ab.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB_AB_X_ABS, "ldb.ab.x_abs", "ldb.ab.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb.as.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDB_AS_X_ABS, "ldb.as.x_abs", "ldb.as.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldb.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB_X_ABC, "ldb.x_abc", "ldb.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb$_AW.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB__AW_X_ABC, "ldb$_AW.x_abc", "ldb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb.ab.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB_AB_X_ABC, "ldb.ab.x_abc", "ldb.ab.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldb.as.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDB_AS_X_ABC, "ldb.as.x_abc", "ldb.as.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW_ABS, "ldw_abs", "ldw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw$_AW$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW__AW_ABS, "ldw$_AW_abs", "ldw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw.ab$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW_AB_ABS, "ldw.ab_abs", "ldw.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw.as$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW_AS_ABS, "ldw.as_abs", "ldw.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW_ABC, "ldw_abc", "ldw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw$_AW$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW__AW_ABC, "ldw$_AW_abc", "ldw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw.ab$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW_AB_ABC, "ldw.ab_abc", "ldw.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw.as$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW_AS_ABC, "ldw.as_abc", "ldw.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw$_S $R_a,[$R_b,$R_c] */
{
ARC_INSN_LDW_S_ABC, "ldw_s_abc", "ldw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldw$_S $R_c,[$R_b,$sc_u5w] */
{
ARC_INSN_LDW_S_ABU, "ldw_s_abu", "ldw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldw$_S $R_b,[$GP,$sc_s9w] */
{
ARC_INSN_LDW_S_GPREL, "ldw_s_gprel", "ldw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ldw.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW_X_ABS, "ldw.x_abs", "ldw.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw$_AW.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW__AW_X_ABS, "ldw$_AW.x_abs", "ldw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw.ab.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW_AB_X_ABS, "ldw.ab.x_abs", "ldw.ab.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw.as.x$LDODi $RA,[$RB,$s9] */
{
ARC_INSN_LDW_AS_X_ABS, "ldw.as.x_abs", "ldw.as.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ldw.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW_X_ABC, "ldw.x_abc", "ldw.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw$_AW.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW__AW_X_ABC, "ldw$_AW.x_abc", "ldw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw.ab.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW_AB_X_ABC, "ldw.ab.x_abc", "ldw.ab.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw.as.x$LDRDi $RA,[$RB,$RC] */
{
ARC_INSN_LDW_AS_X_ABC, "ldw.as.x_abc", "ldw.as.x", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ldw$_S.x $R_c,[$R_b,$sc_u5w] */
{
ARC_INSN_LDW_S_X_ABU, "ldw_s.x_abu", "ldw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* st$STODi $RC,[$RB,$s9] */
{
ARC_INSN_ST_ABS, "st_abs", "st", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* st$_AW$STODi $RC,[$RB,$s9] */
{
ARC_INSN_ST__AW_ABS, "st$_AW_abs", "st", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* st.ab$STODi $RC,[$RB,$s9] */
{
ARC_INSN_ST_AB_ABS, "st.ab_abs", "st.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* st.as$STODi $RC,[$RB,$s9] */
{
ARC_INSN_ST_AS_ABS, "st.as_abs", "st.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* st$_S $R_c,[$R_b,$sc_u5_] */
{
ARC_INSN_ST_S_ABU, "st_s_abu", "st", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* st$_S $R_b,[$SP,$u5x4] */
{
ARC_INSN_ST_S_ABSP, "st_s_absp", "st", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* stb$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STB_ABS, "stb_abs", "stb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stb$_AW$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STB__AW_ABS, "stb$_AW_abs", "stb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stb.ab$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STB_AB_ABS, "stb.ab_abs", "stb.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stb.as$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STB_AS_ABS, "stb.as_abs", "stb.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stb$_S $R_c,[$R_b,$sc_u5b] */
{
ARC_INSN_STB_S_ABU, "stb_s_abu", "stb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* stb$_S $R_b,[$SP,$u5x4] */
{
ARC_INSN_STB_S_ABSP, "stb_s_absp", "stb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* stw$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STW_ABS, "stw_abs", "stw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stw$_AW$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STW__AW_ABS, "stw$_AW_abs", "stw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stw.ab$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STW_AB_ABS, "stw.ab_abs", "stw.ab", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stw.as$STODi $RC,[$RB,$s9] */
{
ARC_INSN_STW_AS_ABS, "stw.as_abs", "stw.as", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* stw$_S $R_c,[$R_b,$sc_u5w] */
{
ARC_INSN_STW_S_ABU, "stw_s_abu", "stw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADD_L_S12__RA_, "add_L_s12 $RA,", "add", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADD_CCU6__RA_, "add_ccu6 $RA,", "add", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADD_L_U6__RA_, "add_L_u6 $RA,", "add", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADD_L_R_R__RA__RC, "add_L_r_r $RA,$RC", "add", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADD_CC__RA__RC, "add_cc $RA,$RC", "add", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add$_S $R_a,$R_b,$R_c */
{
ARC_INSN_ADD_S_ABC, "add_s_abc", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add$_S $R_c,$R_b,$u3 */
{
ARC_INSN_ADD_S_CBU3, "add_s_cbu3", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add$_S $R_b,$R_b,$Rh */
{
ARC_INSN_ADD_S_MCAH, "add_s_mcah", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_H, 0 } } } }
},
/* add$_S $R_b,$SP,$u5x4 */
{
ARC_INSN_ADD_S_ABSP, "add_s_absp", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add$_S $SP,$SP,$u5x4 */
{
ARC_INSN_ADD_S_ASSPSP, "add_s_asspsp", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add$_S $R0,$GP,$s9x4 */
{
ARC_INSN_ADD_S_GP, "add_s_gp", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add$_S $R_b,$R_b,$u7 */
{
ARC_INSN_ADD_S_R_U7, "add_s_r_u7", "add", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* adc$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADC_L_S12__RA_, "adc_L_s12 $RA,", "adc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* adc$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADC_CCU6__RA_, "adc_ccu6 $RA,", "adc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* adc$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADC_L_U6__RA_, "adc_L_u6 $RA,", "adc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* adc$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADC_L_R_R__RA__RC, "adc_L_r_r $RA,$RC", "adc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* adc$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADC_CC__RA__RC, "adc_cc $RA,$RC", "adc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SUB_L_S12__RA_, "sub_L_s12 $RA,", "sub", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SUB_CCU6__RA_, "sub_ccu6 $RA,", "sub", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SUB_L_U6__RA_, "sub_L_u6 $RA,", "sub", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub$_L$F $RA,$RB,$RC */
{
ARC_INSN_SUB_L_R_R__RA__RC, "sub_L_r_r $RA,$RC", "sub", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SUB_CC__RA__RC, "sub_cc $RA,$RC", "sub", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub$_S $R_c,$R_b,$u3 */
{
ARC_INSN_SUB_S_CBU3, "sub_s_cbu3", "sub", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sub$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_SUB_S_GO, "I16_GO_SUB_s_go", "sub", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sub$_S $NE$R_b,$R_b,$R_b */
{
ARC_INSN_SUB_S_GO_SUB_NE, "sub_s_go_sub_ne", "sub", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sub$_S $R_b,$R_b,$u5 */
{
ARC_INSN_SUB_S_SSB, "sub_s_ssb", "sub", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sub$_S $SP,$SP,$u5x4 */
{
ARC_INSN_SUB_S_ASSPSP, "sub_s_asspsp", "sub", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sbc$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SBC_L_S12__RA_, "sbc_L_s12 $RA,", "sbc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sbc$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SBC_CCU6__RA_, "sbc_ccu6 $RA,", "sbc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sbc$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SBC_L_U6__RA_, "sbc_L_u6 $RA,", "sbc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sbc$_L$F $RA,$RB,$RC */
{
ARC_INSN_SBC_L_R_R__RA__RC, "sbc_L_r_r $RA,$RC", "sbc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sbc$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SBC_CC__RA__RC, "sbc_cc $RA,$RC", "sbc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* and$_L$F $RB,$RB,$s12 */
{
ARC_INSN_AND_L_S12__RA_, "and_L_s12 $RA,", "and", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* and$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_AND_CCU6__RA_, "and_ccu6 $RA,", "and", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* and$_L$F $RA,$RB,$U6 */
{
ARC_INSN_AND_L_U6__RA_, "and_L_u6 $RA,", "and", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* and$_L$F $RA,$RB,$RC */
{
ARC_INSN_AND_L_R_R__RA__RC, "and_L_r_r $RA,$RC", "and", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* and$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_AND_CC__RA__RC, "and_cc $RA,$RC", "and", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* and$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_AND_S_GO, "I16_GO_AND_s_go", "and", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* or$_L$F $RB,$RB,$s12 */
{
ARC_INSN_OR_L_S12__RA_, "or_L_s12 $RA,", "or", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* or$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_OR_CCU6__RA_, "or_ccu6 $RA,", "or", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* or$_L$F $RA,$RB,$U6 */
{
ARC_INSN_OR_L_U6__RA_, "or_L_u6 $RA,", "or", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* or$_L$F $RA,$RB,$RC */
{
ARC_INSN_OR_L_R_R__RA__RC, "or_L_r_r $RA,$RC", "or", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* or$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_OR_CC__RA__RC, "or_cc $RA,$RC", "or", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* or$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_OR_S_GO, "I16_GO_OR_s_go", "or", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bic$_L$F $RB,$RB,$s12 */
{
ARC_INSN_BIC_L_S12__RA_, "bic_L_s12 $RA,", "bic", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bic$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_BIC_CCU6__RA_, "bic_ccu6 $RA,", "bic", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bic$_L$F $RA,$RB,$U6 */
{
ARC_INSN_BIC_L_U6__RA_, "bic_L_u6 $RA,", "bic", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bic$_L$F $RA,$RB,$RC */
{
ARC_INSN_BIC_L_R_R__RA__RC, "bic_L_r_r $RA,$RC", "bic", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bic$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_BIC_CC__RA__RC, "bic_cc $RA,$RC", "bic", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bic$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_BIC_S_GO, "I16_GO_BIC_s_go", "bic", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* xor$_L$F $RB,$RB,$s12 */
{
ARC_INSN_XOR_L_S12__RA_, "xor_L_s12 $RA,", "xor", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* xor$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_XOR_CCU6__RA_, "xor_ccu6 $RA,", "xor", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* xor$_L$F $RA,$RB,$U6 */
{
ARC_INSN_XOR_L_U6__RA_, "xor_L_u6 $RA,", "xor", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* xor$_L$F $RA,$RB,$RC */
{
ARC_INSN_XOR_L_R_R__RA__RC, "xor_L_r_r $RA,$RC", "xor", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* xor$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_XOR_CC__RA__RC, "xor_cc $RA,$RC", "xor", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* xor$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_XOR_S_GO, "I16_GO_XOR_s_go", "xor", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* max$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MAX_L_S12__RA_, "max_L_s12 $RA,", "max", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* max$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MAX_CCU6__RA_, "max_ccu6 $RA,", "max", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* max$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MAX_L_U6__RA_, "max_L_u6 $RA,", "max", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* max$_L$F $RA,$RB,$RC */
{
ARC_INSN_MAX_L_R_R__RA__RC, "max_L_r_r $RA,$RC", "max", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* max$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MAX_CC__RA__RC, "max_cc $RA,$RC", "max", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* min$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MIN_L_S12__RA_, "min_L_s12 $RA,", "min", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* min$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MIN_CCU6__RA_, "min_ccu6 $RA,", "min", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* min$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MIN_L_U6__RA_, "min_L_u6 $RA,", "min", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* min$_L$F $RA,$RB,$RC */
{
ARC_INSN_MIN_L_R_R__RA__RC, "min_L_r_r $RA,$RC", "min", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* min$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MIN_CC__RA__RC, "min_cc $RA,$RC", "min", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mov$_L$F $RB,$s12 */
{
ARC_INSN_MOV_L_S12_, "mov_L_s12 ", "mov", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* mov$Qcondi$F $RB,$U6 */
{
ARC_INSN_MOV_CCU6_, "mov_ccu6 ", "mov", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* mov$_L$F $RB,$U6 */
{
ARC_INSN_MOV_L_U6_, "mov_L_u6 ", "mov", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* mov$_L$F $RB,$RC */
{
ARC_INSN_MOV_L_R_R__RC, "mov_L_r_r $RC", "mov", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* mov$Qcondi$F $RB,$RC */
{
ARC_INSN_MOV_CC__RC, "mov_cc $RC", "mov", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* mov$_S $R_b,$Rh */
{
ARC_INSN_MOV_S_MCAH, "mov_s_mcah", "mov", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_H, 0 } } } }
},
/* mov$_S $Rh,$R_b */
{
ARC_INSN_MOV_S_MCAHB, "mov_s_mcahb", "mov", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* mov$_S $R_b,$u7 */
{
ARC_INSN_MOV_S_R_U7, "mov_s_r_u7", "mov", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* tst$_L$F1 $RB,$s12 */
{
ARC_INSN_TST_L_S12_, "tst_L_s12 ", "tst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* tst$Qcondi$F1 $RB,$U6 */
{
ARC_INSN_TST_CCU6_, "tst_ccu6 ", "tst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* tst$_L$F1 $RB,$U6 */
{
ARC_INSN_TST_L_U6_, "tst_L_u6 ", "tst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* tst$_L$F1 $RB,$RC */
{
ARC_INSN_TST_L_R_R__RC, "tst_L_r_r $RC", "tst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* tst$Qcondi$F1 $RB,$RC */
{
ARC_INSN_TST_CC__RC, "tst_cc $RC", "tst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* tst$_S $R_b,$R_c */
{
ARC_INSN_TST_S_GO, "tst_s_go", "tst", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* cmp$_L$F1 $RB,$s12 */
{
ARC_INSN_CMP_L_S12_, "cmp_L_s12 ", "cmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* cmp$Qcondi$F1 $RB,$U6 */
{
ARC_INSN_CMP_CCU6_, "cmp_ccu6 ", "cmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* cmp$_L$F1 $RB,$U6 */
{
ARC_INSN_CMP_L_U6_, "cmp_L_u6 ", "cmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* cmp$_L$F1 $RB,$RC */
{
ARC_INSN_CMP_L_R_R__RC, "cmp_L_r_r $RC", "cmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* cmp$Qcondi$F1 $RB,$RC */
{
ARC_INSN_CMP_CC__RC, "cmp_cc $RC", "cmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* cmp$_S $R_b,$Rh */
{
ARC_INSN_CMP_S_MCAH, "cmp_s_mcah", "cmp", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_H, 0 } } } }
},
/* cmp$_S $R_b,$u7 */
{
ARC_INSN_CMP_S_R_U7, "cmp_s_r_u7", "cmp", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* rcmp$_L$F1 $RB,$s12 */
{
ARC_INSN_RCMP_L_S12_, "rcmp_L_s12 ", "rcmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rcmp$Qcondi$F1 $RB,$U6 */
{
ARC_INSN_RCMP_CCU6_, "rcmp_ccu6 ", "rcmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rcmp$_L$F1 $RB,$U6 */
{
ARC_INSN_RCMP_L_U6_, "rcmp_L_u6 ", "rcmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rcmp$_L$F1 $RB,$RC */
{
ARC_INSN_RCMP_L_R_R__RC, "rcmp_L_r_r $RC", "rcmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* rcmp$Qcondi$F1 $RB,$RC */
{
ARC_INSN_RCMP_CC__RC, "rcmp_cc $RC", "rcmp", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* rsub$_L$F $RB,$RB,$s12 */
{
ARC_INSN_RSUB_L_S12__RA_, "rsub_L_s12 $RA,", "rsub", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rsub$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_RSUB_CCU6__RA_, "rsub_ccu6 $RA,", "rsub", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rsub$_L$F $RA,$RB,$U6 */
{
ARC_INSN_RSUB_L_U6__RA_, "rsub_L_u6 $RA,", "rsub", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rsub$_L$F $RA,$RB,$RC */
{
ARC_INSN_RSUB_L_R_R__RA__RC, "rsub_L_r_r $RA,$RC", "rsub", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* rsub$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_RSUB_CC__RA__RC, "rsub_cc $RA,$RC", "rsub", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bset$_L$F $RB,$RB,$s12 */
{
ARC_INSN_BSET_L_S12__RA_, "bset_L_s12 $RA,", "bset", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bset$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_BSET_CCU6__RA_, "bset_ccu6 $RA,", "bset", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bset$_L$F $RA,$RB,$U6 */
{
ARC_INSN_BSET_L_U6__RA_, "bset_L_u6 $RA,", "bset", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bset$_L$F $RA,$RB,$RC */
{
ARC_INSN_BSET_L_R_R__RA__RC, "bset_L_r_r $RA,$RC", "bset", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bset$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_BSET_CC__RA__RC, "bset_cc $RA,$RC", "bset", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bset$_S $R_b,$R_b,$u5 */
{
ARC_INSN_BSET_S_SSB, "bset_s_ssb", "bset", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bclr$_L$F $RB,$RB,$s12 */
{
ARC_INSN_BCLR_L_S12__RA_, "bclr_L_s12 $RA,", "bclr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bclr$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_BCLR_CCU6__RA_, "bclr_ccu6 $RA,", "bclr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bclr$_L$F $RA,$RB,$U6 */
{
ARC_INSN_BCLR_L_U6__RA_, "bclr_L_u6 $RA,", "bclr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bclr$_L$F $RA,$RB,$RC */
{
ARC_INSN_BCLR_L_R_R__RA__RC, "bclr_L_r_r $RA,$RC", "bclr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bclr$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_BCLR_CC__RA__RC, "bclr_cc $RA,$RC", "bclr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bclr$_S $R_b,$R_b,$u5 */
{
ARC_INSN_BCLR_S_SSB, "bclr_s_ssb", "bclr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* btst$_L$F1 $RB,$s12 */
{
ARC_INSN_BTST_L_S12_, "btst_L_s12 ", "btst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* btst$Qcondi$F1 $RB,$U6 */
{
ARC_INSN_BTST_CCU6_, "btst_ccu6 ", "btst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* btst$_L$F1 $RB,$U6 */
{
ARC_INSN_BTST_L_U6_, "btst_L_u6 ", "btst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* btst$_L$F1 $RB,$RC */
{
ARC_INSN_BTST_L_R_R__RC, "btst_L_r_r $RC", "btst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* btst$Qcondi$F1 $RB,$RC */
{
ARC_INSN_BTST_CC__RC, "btst_cc $RC", "btst", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* btst$_S $R_b,$u5 */
{
ARC_INSN_BTST_S_SSB, "btst_s_ssb", "btst", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* bxor$_L$F $RB,$RB,$s12 */
{
ARC_INSN_BXOR_L_S12__RA_, "bxor_L_s12 $RA,", "bxor", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bxor$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_BXOR_CCU6__RA_, "bxor_ccu6 $RA,", "bxor", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bxor$_L$F $RA,$RB,$U6 */
{
ARC_INSN_BXOR_L_U6__RA_, "bxor_L_u6 $RA,", "bxor", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bxor$_L$F $RA,$RB,$RC */
{
ARC_INSN_BXOR_L_R_R__RA__RC, "bxor_L_r_r $RA,$RC", "bxor", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bxor$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_BXOR_CC__RA__RC, "bxor_cc $RA,$RC", "bxor", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bmsk$_L$F $RB,$RB,$s12 */
{
ARC_INSN_BMSK_L_S12__RA_, "bmsk_L_s12 $RA,", "bmsk", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bmsk$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_BMSK_CCU6__RA_, "bmsk_ccu6 $RA,", "bmsk", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bmsk$_L$F $RA,$RB,$U6 */
{
ARC_INSN_BMSK_L_U6__RA_, "bmsk_L_u6 $RA,", "bmsk", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* bmsk$_L$F $RA,$RB,$RC */
{
ARC_INSN_BMSK_L_R_R__RA__RC, "bmsk_L_r_r $RA,$RC", "bmsk", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bmsk$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_BMSK_CC__RA__RC, "bmsk_cc $RA,$RC", "bmsk", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* bmsk$_S $R_b,$R_b,$u5 */
{
ARC_INSN_BMSK_S_SSB, "bmsk_s_ssb", "bmsk", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add1$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADD1_L_S12__RA_, "add1_L_s12 $RA,", "add1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add1$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADD1_CCU6__RA_, "add1_ccu6 $RA,", "add1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add1$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADD1_L_U6__RA_, "add1_L_u6 $RA,", "add1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add1$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADD1_L_R_R__RA__RC, "add1_L_r_r $RA,$RC", "add1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add1$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADD1_CC__RA__RC, "add1_cc $RA,$RC", "add1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add1$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ADD1_S_GO, "I16_GO_ADD1_s_go", "add1", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add2$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADD2_L_S12__RA_, "add2_L_s12 $RA,", "add2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add2$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADD2_CCU6__RA_, "add2_ccu6 $RA,", "add2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add2$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADD2_L_U6__RA_, "add2_L_u6 $RA,", "add2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add2$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADD2_L_R_R__RA__RC, "add2_L_r_r $RA,$RC", "add2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add2$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADD2_CC__RA__RC, "add2_cc $RA,$RC", "add2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add2$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ADD2_S_GO, "I16_GO_ADD2_s_go", "add2", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* add3$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADD3_L_S12__RA_, "add3_L_s12 $RA,", "add3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add3$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADD3_CCU6__RA_, "add3_ccu6 $RA,", "add3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add3$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADD3_L_U6__RA_, "add3_L_u6 $RA,", "add3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* add3$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADD3_L_R_R__RA__RC, "add3_L_r_r $RA,$RC", "add3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add3$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADD3_CC__RA__RC, "add3_cc $RA,$RC", "add3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* add3$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ADD3_S_GO, "I16_GO_ADD3_s_go", "add3", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sub1$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SUB1_L_S12__RA_, "sub1_L_s12 $RA,", "sub1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub1$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SUB1_CCU6__RA_, "sub1_ccu6 $RA,", "sub1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub1$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SUB1_L_U6__RA_, "sub1_L_u6 $RA,", "sub1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub1$_L$F $RA,$RB,$RC */
{
ARC_INSN_SUB1_L_R_R__RA__RC, "sub1_L_r_r $RA,$RC", "sub1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub1$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SUB1_CC__RA__RC, "sub1_cc $RA,$RC", "sub1", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub2$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SUB2_L_S12__RA_, "sub2_L_s12 $RA,", "sub2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub2$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SUB2_CCU6__RA_, "sub2_ccu6 $RA,", "sub2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub2$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SUB2_L_U6__RA_, "sub2_L_u6 $RA,", "sub2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub2$_L$F $RA,$RB,$RC */
{
ARC_INSN_SUB2_L_R_R__RA__RC, "sub2_L_r_r $RA,$RC", "sub2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub2$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SUB2_CC__RA__RC, "sub2_cc $RA,$RC", "sub2", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub3$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SUB3_L_S12__RA_, "sub3_L_s12 $RA,", "sub3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub3$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SUB3_CCU6__RA_, "sub3_ccu6 $RA,", "sub3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub3$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SUB3_L_U6__RA_, "sub3_L_u6 $RA,", "sub3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sub3$_L$F $RA,$RB,$RC */
{
ARC_INSN_SUB3_L_R_R__RA__RC, "sub3_L_r_r $RA,$RC", "sub3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sub3$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SUB3_CC__RA__RC, "sub3_cc $RA,$RC", "sub3", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpy$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MPY_L_S12__RA_, "mpy_L_s12 $RA,", "mpy", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpy$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MPY_CCU6__RA_, "mpy_ccu6 $RA,", "mpy", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpy$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MPY_L_U6__RA_, "mpy_L_u6 $RA,", "mpy", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpy$_L$F $RA,$RB,$RC */
{
ARC_INSN_MPY_L_R_R__RA__RC, "mpy_L_r_r $RA,$RC", "mpy", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpy$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MPY_CC__RA__RC, "mpy_cc $RA,$RC", "mpy", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpyh$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MPYH_L_S12__RA_, "mpyh_L_s12 $RA,", "mpyh", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyh$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MPYH_CCU6__RA_, "mpyh_ccu6 $RA,", "mpyh", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyh$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MPYH_L_U6__RA_, "mpyh_L_u6 $RA,", "mpyh", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyh$_L$F $RA,$RB,$RC */
{
ARC_INSN_MPYH_L_R_R__RA__RC, "mpyh_L_r_r $RA,$RC", "mpyh", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpyh$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MPYH_CC__RA__RC, "mpyh_cc $RA,$RC", "mpyh", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpyhu$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MPYHU_L_S12__RA_, "mpyhu_L_s12 $RA,", "mpyhu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyhu$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MPYHU_CCU6__RA_, "mpyhu_ccu6 $RA,", "mpyhu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyhu$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MPYHU_L_U6__RA_, "mpyhu_L_u6 $RA,", "mpyhu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyhu$_L$F $RA,$RB,$RC */
{
ARC_INSN_MPYHU_L_R_R__RA__RC, "mpyhu_L_r_r $RA,$RC", "mpyhu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpyhu$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MPYHU_CC__RA__RC, "mpyhu_cc $RA,$RC", "mpyhu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpyu$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MPYU_L_S12__RA_, "mpyu_L_s12 $RA,", "mpyu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyu$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MPYU_CCU6__RA_, "mpyu_ccu6 $RA,", "mpyu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyu$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MPYU_L_U6__RA_, "mpyu_L_u6 $RA,", "mpyu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mpyu$_L$F $RA,$RB,$RC */
{
ARC_INSN_MPYU_L_R_R__RA__RC, "mpyu_L_r_r $RA,$RC", "mpyu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mpyu$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MPYU_CC__RA__RC, "mpyu_cc $RA,$RC", "mpyu", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$_L$F0 [$RC_noilink] */
{
ARC_INSN_J_L_R_R___RC_NOILINK_, "j_L_r_r [$RC_noilink]", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$Qcondi$F0 [$RC_noilink] */
{
ARC_INSN_J_CC___RC_NOILINK_, "j_cc [$RC_noilink]", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$_L$F1F [$RC_ilink] */
{
ARC_INSN_J_L_R_R___RC_ILINK_, "j_L_r_r [$RC_ilink]", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$Qcondi$F1F [$RC_ilink] */
{
ARC_INSN_J_CC___RC_ILINK_, "j_cc [$RC_ilink]", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$_L$F0 $s12 */
{
ARC_INSN_J_L_S12_, "j_L_s12 ", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* j$Qcondi$F0 $U6 */
{
ARC_INSN_J_CCU6_, "j_ccu6 ", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* j$_L$F0 $U6 */
{
ARC_INSN_J_L_U6_, "j_L_u6 ", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* j$_S [$R_b] */
{
ARC_INSN_J_S, "j_s", "j", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* j$_S [$R31] */
{
ARC_INSN_J_S__S, "j_s$_S", "j", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* jeq$_S [$R31] */
{
ARC_INSN_J_SEQ__S, "j_seq$_S", "jeq", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* jne$_S [$R31] */
{
ARC_INSN_J_SNE__S, "j_sne$_S", "jne", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* j$_L$F0.d $s12 */
{
ARC_INSN_J_L_S12_D_, "j_L_s12.d ", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* j$Qcondi$F0.d $U6 */
{
ARC_INSN_J_CCU6_D_, "j_ccu6.d ", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* j$_L$F0.d $U6 */
{
ARC_INSN_J_L_U6_D_, "j_L_u6.d ", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* j$_L$F0.d [$RC] */
{
ARC_INSN_J_L_R_R_D___RC_, "j_L_r_r.d [$RC]", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$Qcondi$F0.d [$RC] */
{
ARC_INSN_J_CC_D___RC_, "j_cc.d [$RC]", "j", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* j$_S.d [$R_b] */
{
ARC_INSN_J_S_D, "j_s.d", "j", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* j$_S.d [$R31] */
{
ARC_INSN_J_S__S_D, "j_s$_S.d", "j", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* jl$_L$F0 $s12 */
{
ARC_INSN_JL_L_S12_, "jl_L_s12 ", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* jl$Qcondi$F0 $U6 */
{
ARC_INSN_JL_CCU6_, "jl_ccu6 ", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* jl$_L$F0 $U6 */
{
ARC_INSN_JL_L_U6_, "jl_L_u6 ", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* jl$_S [$R_b] */
{
ARC_INSN_JL_S, "jl_s", "jl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* jl$_L$F0 [$RC_noilink] */
{
ARC_INSN_JL_L_R_R___RC_NOILINK_, "jl_L_r_r [$RC_noilink]", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* jl$Qcondi$F0 [$RC_noilink] */
{
ARC_INSN_JL_CC___RC_NOILINK_, "jl_cc [$RC_noilink]", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* jl$_L$F0.d $s12 */
{
ARC_INSN_JL_L_S12_D_, "jl_L_s12.d ", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* jl$Qcondi$F0.d $U6 */
{
ARC_INSN_JL_CCU6_D_, "jl_ccu6.d ", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* jl$_L$F0.d $U6 */
{
ARC_INSN_JL_L_U6_D_, "jl_L_u6.d ", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* jl$_L$F0.d [$RC] */
{
ARC_INSN_JL_L_R_R_D___RC_, "jl_L_r_r.d [$RC]", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* jl$Qcondi$F0.d [$RC] */
{
ARC_INSN_JL_CC_D___RC_, "jl_cc.d [$RC]", "jl", 32,
{ 0|A(RELAXED)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* jl$_S.d [$R_b] */
{
ARC_INSN_JL_S_D, "jl_s.d", "jl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE)|A(COND_CTI)|A(DELAY_SLOT), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* lp$_L$F0 $s12x2 */
{
ARC_INSN_LP_L_S12_, "lp_L_s12 ", "lp", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* lp$Qcondi$F0 $U6x2 */
{
ARC_INSN_LPCC_CCU6, "lpcc_ccu6", "lp", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* flag$_L$F0 $s12 */
{
ARC_INSN_FLAG_L_S12_, "flag_L_s12 ", "flag", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* flag$Qcondi$F0 $U6 */
{
ARC_INSN_FLAG_CCU6_, "flag_ccu6 ", "flag", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* flag$_L$F0 $U6 */
{
ARC_INSN_FLAG_L_U6_, "flag_L_u6 ", "flag", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* flag$_L$F0 $RC */
{
ARC_INSN_FLAG_L_R_R__RC, "flag_L_r_r $RC", "flag", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* flag$Qcondi$F0 $RC */
{
ARC_INSN_FLAG_CC__RC, "flag_cc $RC", "flag", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* lr$_L$F0 $RB,[$RC] */
{
ARC_INSN_LR_L_R_R___RC_, "lr_L_r_r [$RC]", "lr", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* lr$_L$F0 $RB,[$s12] */
{
ARC_INSN_LR_L_S12_, "lr_L_s12 ", "lr", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* lr$_L$F0 $RB,[$U6] */
{
ARC_INSN_LR_L_U6_, "lr_L_u6 ", "lr", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sr$_L$F0 $RB,[$RC] */
{
ARC_INSN_SR_L_R_R___RC_, "sr_L_r_r [$RC]", "sr", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* sr$_L$F0 $RB,[$s12] */
{
ARC_INSN_SR_L_S12_, "sr_L_s12 ", "sr", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sr$_L$F0 $RB,[$U6] */
{
ARC_INSN_SR_L_U6_, "sr_L_u6 ", "sr", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asl$_L$F $RB,$RC */
{
ARC_INSN_ASL_L_R_R__RC, "asl_L_r_r $RC", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* asl$_L$F $RB,$U6 */
{
ARC_INSN_ASL_L_U6_, "asl_L_u6 ", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asl$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ASL_S_GO, "I16_GO_ASL_s_go", "asl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asr$_L$F $RB,$RC */
{
ARC_INSN_ASR_L_R_R__RC, "asr_L_r_r $RC", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* asr$_L$F $RB,$U6 */
{
ARC_INSN_ASR_L_U6_, "asr_L_u6 ", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asr$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ASR_S_GO, "I16_GO_ASR_s_go", "asr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* lsr$_L$F $RB,$RC */
{
ARC_INSN_LSR_L_R_R__RC, "lsr_L_r_r $RC", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* lsr$_L$F $RB,$U6 */
{
ARC_INSN_LSR_L_U6_, "lsr_L_u6 ", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* lsr$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_LSR_S_GO, "I16_GO_LSR_s_go", "lsr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ror$_L$F $RB,$RC */
{
ARC_INSN_ROR_L_R_R__RC, "ror_L_r_r $RC", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* ror$_L$F $RB,$U6 */
{
ARC_INSN_ROR_L_U6_, "ror_L_u6 ", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rrc$_L$F $RB,$RC */
{
ARC_INSN_RRC_L_R_R__RC, "rrc_L_r_r $RC", "rrc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* rrc$_L$F $RB,$U6 */
{
ARC_INSN_RRC_L_U6_, "rrc_L_u6 ", "rrc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sexb$_L$F $RB,$RC */
{
ARC_INSN_SEXB_L_R_R__RC, "sexb_L_r_r $RC", "sexb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* sexb$_L$F $RB,$U6 */
{
ARC_INSN_SEXB_L_U6_, "sexb_L_u6 ", "sexb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sexb$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_SEXB_S_GO, "I16_GO_SEXB_s_go", "sexb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* sexw$_L$F $RB,$RC */
{
ARC_INSN_SEXW_L_R_R__RC, "sexw_L_r_r $RC", "sexw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* sexw$_L$F $RB,$U6 */
{
ARC_INSN_SEXW_L_U6_, "sexw_L_u6 ", "sexw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* sexw$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_SEXW_S_GO, "I16_GO_SEXW_s_go", "sexw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* extb$_L$F $RB,$RC */
{
ARC_INSN_EXTB_L_R_R__RC, "extb_L_r_r $RC", "extb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* extb$_L$F $RB,$U6 */
{
ARC_INSN_EXTB_L_U6_, "extb_L_u6 ", "extb", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* extb$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_EXTB_S_GO, "I16_GO_EXTB_s_go", "extb", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* extw$_L$F $RB,$RC */
{
ARC_INSN_EXTW_L_R_R__RC, "extw_L_r_r $RC", "extw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* extw$_L$F $RB,$U6 */
{
ARC_INSN_EXTW_L_U6_, "extw_L_u6 ", "extw", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* extw$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_EXTW_S_GO, "I16_GO_EXTW_s_go", "extw", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* abs$_L$F $RB,$RC */
{
ARC_INSN_ABS_L_R_R__RC, "abs_L_r_r $RC", "abs", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* abs$_L$F $RB,$U6 */
{
ARC_INSN_ABS_L_U6_, "abs_L_u6 ", "abs", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* abs$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ABS_S_GO, "I16_GO_ABS_s_go", "abs", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* not$_L$F $RB,$RC */
{
ARC_INSN_NOT_L_R_R__RC, "not_L_r_r $RC", "not", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* not$_L$F $RB,$U6 */
{
ARC_INSN_NOT_L_U6_, "not_L_u6 ", "not", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* not$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_NOT_S_GO, "I16_GO_NOT_s_go", "not", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* rlc$_L$F $RB,$RC */
{
ARC_INSN_RLC_L_R_R__RC, "rlc_L_r_r $RC", "rlc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* rlc$_L$F $RB,$U6 */
{
ARC_INSN_RLC_L_U6_, "rlc_L_u6 ", "rlc", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ex$_L$EXDi $RB,$RC */
{
ARC_INSN_EX_L_R_R__RC, "ex_L_r_r $RC", "ex", 32,
{ 0, { { { (1<<MACH_ARC700), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ex$_L$EXDi $RB,$U6 */
{
ARC_INSN_EX_L_U6_, "ex_L_u6 ", "ex", 32,
{ 0, { { { (1<<MACH_ARC700), 0 } }, { { LIMM_B, 0 } } } }
},
/* neg$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_NEG_S_GO, "I16_GO_NEG_s_go", "neg", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* swi */
{
ARC_INSN_SWI, "swi", "swi", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* trap$_S $trapnum */
{
ARC_INSN_TRAP_S, "trap_s", "trap", 32,
{ 0|A(SHORT_P)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* brk */
{
ARC_INSN_BRK, "brk", "brk", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* brk_s */
{
ARC_INSN_BRK_S, "brk_s", "brk_s", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asl$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ASL_L_S12__RA_, "asl_L_s12 $RA,", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asl$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ASL_CCU6__RA_, "asl_ccu6 $RA,", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asl$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ASL_L_U6__RA_, "asl_L_u6 $RA,", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asl$_L$F $RA,$RB,$RC */
{
ARC_INSN_ASL_L_R_R__RA__RC, "asl_L_r_r $RA,$RC", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asl$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ASL_CC__RA__RC, "asl_cc $RA,$RC", "asl", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asl$_S $R_c,$R_b,$u3 */
{
ARC_INSN_ASL_S_CBU3, "asl_s_cbu3", "asl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asl$_S $R_b,$R_b,$u5 */
{
ARC_INSN_ASL_S_SSB, "asl_s_ssb", "asl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asl$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ASLM_S_GO, "I16_GO_ASLM_s_go", "asl", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* lsr$_L$F $RB,$RB,$s12 */
{
ARC_INSN_LSR_L_S12__RA_, "lsr_L_s12 $RA,", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* lsr$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_LSR_CCU6__RA_, "lsr_ccu6 $RA,", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* lsr$_L$F $RA,$RB,$U6 */
{
ARC_INSN_LSR_L_U6__RA_, "lsr_L_u6 $RA,", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* lsr$_L$F $RA,$RB,$RC */
{
ARC_INSN_LSR_L_R_R__RA__RC, "lsr_L_r_r $RA,$RC", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* lsr$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_LSR_CC__RA__RC, "lsr_cc $RA,$RC", "lsr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* lsr$_S $R_b,$R_b,$u5 */
{
ARC_INSN_LSR_S_SSB, "lsr_s_ssb", "lsr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* lsr$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_LSRM_S_GO, "I16_GO_LSRM_s_go", "lsr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asr$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ASR_L_S12__RA_, "asr_L_s12 $RA,", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asr$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ASR_CCU6__RA_, "asr_ccu6 $RA,", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asr$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ASR_L_U6__RA_, "asr_L_u6 $RA,", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asr$_L$F $RA,$RB,$RC */
{
ARC_INSN_ASR_L_R_R__RA__RC, "asr_L_r_r $RA,$RC", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asr$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ASR_CC__RA__RC, "asr_cc $RA,$RC", "asr", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asr$_S $R_c,$R_b,$u3 */
{
ARC_INSN_ASR_S_CBU3, "asr_s_cbu3", "asr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asr$_S $R_b,$R_b,$u5 */
{
ARC_INSN_ASR_S_SSB, "asr_s_ssb", "asr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* asr$_S $R_b,$R_b,$R_c */
{
ARC_INSN_I16_GO_ASRM_S_GO, "I16_GO_ASRM_s_go", "asr", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* ror$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ROR_L_S12__RA_, "ror_L_s12 $RA,", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ror$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ROR_CCU6__RA_, "ror_ccu6 $RA,", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ror$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ROR_L_U6__RA_, "ror_L_u6 $RA,", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* ror$_L$F $RA,$RB,$RC */
{
ARC_INSN_ROR_L_R_R__RA__RC, "ror_L_r_r $RA,$RC", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* ror$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ROR_CC__RA__RC, "ror_cc $RA,$RC", "ror", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mul64$_L$F1 $RB,$s12 */
{
ARC_INSN_MUL64_L_S12_, "mul64_L_s12 ", "mul64", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mul64$Qcondi$F1 $RB,$U6 */
{
ARC_INSN_MUL64_CCU6_, "mul64_ccu6 ", "mul64", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mul64$_L$F1 $RB,$U6 */
{
ARC_INSN_MUL64_L_U6_, "mul64_L_u6 ", "mul64", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mul64$_L$F1 $RB,$RC */
{
ARC_INSN_MUL64_L_R_R__RC, "mul64_L_r_r $RC", "mul64", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mul64$Qcondi$F1 $RB,$RC */
{
ARC_INSN_MUL64_CC__RC, "mul64_cc $RC", "mul64", 32,
{ 0|A(RELAXED), { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mul64$_S $R_b,$R_c */
{
ARC_INSN_MUL64_S_GO, "mul64_s_go", "mul64", 32,
{ 0|A(SHORT_P)|A(RELAXABLE), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* mulu64$_L$F1 $RB,$s12 */
{
ARC_INSN_MULU64_L_S12_, "mulu64_L_s12 ", "mulu64", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mulu64$Qcondi$F1 $RB,$U6 */
{
ARC_INSN_MULU64_CCU6_, "mulu64_ccu6 ", "mulu64", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mulu64$_L$F1 $RB,$U6 */
{
ARC_INSN_MULU64_L_U6_, "mulu64_L_u6 ", "mulu64", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mulu64$_L$F1 $RB,$RC */
{
ARC_INSN_MULU64_L_R_R__RC, "mulu64_L_r_r $RC", "mulu64", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mulu64$Qcondi$F1 $RB,$RC */
{
ARC_INSN_MULU64_CC__RC, "mulu64_cc $RC", "mulu64", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* adds$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADDS_L_S12__RA_, "adds_L_s12 $RA,", "adds", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* adds$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADDS_CCU6__RA_, "adds_ccu6 $RA,", "adds", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* adds$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADDS_L_U6__RA_, "adds_L_u6 $RA,", "adds", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* adds$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADDS_L_R_R__RA__RC, "adds_L_r_r $RA,$RC", "adds", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* adds$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADDS_CC__RA__RC, "adds_cc $RA,$RC", "adds", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* subs$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SUBS_L_S12__RA_, "subs_L_s12 $RA,", "subs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* subs$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SUBS_CCU6__RA_, "subs_ccu6 $RA,", "subs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* subs$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SUBS_L_U6__RA_, "subs_L_u6 $RA,", "subs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* subs$_L$F $RA,$RB,$RC */
{
ARC_INSN_SUBS_L_R_R__RA__RC, "subs_L_r_r $RA,$RC", "subs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* subs$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SUBS_CC__RA__RC, "subs_cc $RA,$RC", "subs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* divaw$_L$F0 $RB,$RB,$s12 */
{
ARC_INSN_DIVAW_L_S12__RA_, "divaw_L_s12 $RA,", "divaw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* divaw$Qcondi$F0 $RB,$RB,$U6 */
{
ARC_INSN_DIVAW_CCU6__RA_, "divaw_ccu6 $RA,", "divaw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* divaw$_L$F0 $RA,$RB,$U6 */
{
ARC_INSN_DIVAW_L_U6__RA_, "divaw_L_u6 $RA,", "divaw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* divaw$_L$F0 $RA,$RB,$RC */
{
ARC_INSN_DIVAW_L_R_R__RA__RC, "divaw_L_r_r $RA,$RC", "divaw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* divaw$Qcondi$F0 $RB,$RB,$RC */
{
ARC_INSN_DIVAW_CC__RA__RC, "divaw_cc $RA,$RC", "divaw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asls$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ASLS_L_S12__RA_, "asls_L_s12 $RA,", "asls", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asls$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ASLS_CCU6__RA_, "asls_ccu6 $RA,", "asls", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asls$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ASLS_L_U6__RA_, "asls_L_u6 $RA,", "asls", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asls$_L$F $RA,$RB,$RC */
{
ARC_INSN_ASLS_L_R_R__RA__RC, "asls_L_r_r $RA,$RC", "asls", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asls$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ASLS_CC__RA__RC, "asls_cc $RA,$RC", "asls", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asrs$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ASRS_L_S12__RA_, "asrs_L_s12 $RA,", "asrs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asrs$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ASRS_CCU6__RA_, "asrs_ccu6 $RA,", "asrs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asrs$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ASRS_L_U6__RA_, "asrs_L_u6 $RA,", "asrs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* asrs$_L$F $RA,$RB,$RC */
{
ARC_INSN_ASRS_L_R_R__RA__RC, "asrs_L_r_r $RA,$RC", "asrs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* asrs$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ASRS_CC__RA__RC, "asrs_cc $RA,$RC", "asrs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* addsdw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_ADDSDW_L_S12__RA_, "addsdw_L_s12 $RA,", "addsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* addsdw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_ADDSDW_CCU6__RA_, "addsdw_ccu6 $RA,", "addsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* addsdw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_ADDSDW_L_U6__RA_, "addsdw_L_u6 $RA,", "addsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* addsdw$_L$F $RA,$RB,$RC */
{
ARC_INSN_ADDSDW_L_R_R__RA__RC, "addsdw_L_r_r $RA,$RC", "addsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* addsdw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_ADDSDW_CC__RA__RC, "addsdw_cc $RA,$RC", "addsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* subsdw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_SUBSDW_L_S12__RA_, "subsdw_L_s12 $RA,", "subsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* subsdw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_SUBSDW_CCU6__RA_, "subsdw_ccu6 $RA,", "subsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* subsdw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_SUBSDW_L_U6__RA_, "subsdw_L_u6 $RA,", "subsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* subsdw$_L$F $RA,$RB,$RC */
{
ARC_INSN_SUBSDW_L_R_R__RA__RC, "subsdw_L_r_r $RA,$RC", "subsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* subsdw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_SUBSDW_CC__RA__RC, "subsdw_cc $RA,$RC", "subsdw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* swap$_L$F $RB,$RC */
{
ARC_INSN_SWAP_L_R_R__RC, "swap_L_r_r $RC", "swap", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* swap$_L$F $RB,$U6 */
{
ARC_INSN_SWAP_L_U6_, "swap_L_u6 ", "swap", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* norm$_L$F $RB,$RC */
{
ARC_INSN_NORM_L_R_R__RC, "norm_L_r_r $RC", "norm", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* norm$_L$F $RB,$U6 */
{
ARC_INSN_NORM_L_U6_, "norm_L_u6 ", "norm", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* rnd16$_L$F $RB,$RC */
{
ARC_INSN_RND16_L_R_R__RC, "rnd16_L_r_r $RC", "rnd16", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* rnd16$_L$F $RB,$U6 */
{
ARC_INSN_RND16_L_U6_, "rnd16_L_u6 ", "rnd16", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* abssw$_L$F $RB,$RC */
{
ARC_INSN_ABSSW_L_R_R__RC, "abssw_L_r_r $RC", "abssw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* abssw$_L$F $RB,$U6 */
{
ARC_INSN_ABSSW_L_U6_, "abssw_L_u6 ", "abssw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* abss$_L$F $RB,$RC */
{
ARC_INSN_ABSS_L_R_R__RC, "abss_L_r_r $RC", "abss", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* abss$_L$F $RB,$U6 */
{
ARC_INSN_ABSS_L_U6_, "abss_L_u6 ", "abss", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* negsw$_L$F $RB,$RC */
{
ARC_INSN_NEGSW_L_R_R__RC, "negsw_L_r_r $RC", "negsw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* negsw$_L$F $RB,$U6 */
{
ARC_INSN_NEGSW_L_U6_, "negsw_L_u6 ", "negsw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* negs$_L$F $RB,$RC */
{
ARC_INSN_NEGS_L_R_R__RC, "negs_L_r_r $RC", "negs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* negs$_L$F $RB,$U6 */
{
ARC_INSN_NEGS_L_U6_, "negs_L_u6 ", "negs", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* normw$_L$F $RB,$RC */
{
ARC_INSN_NORMW_L_R_R__RC, "normw_L_r_r $RC", "normw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_C, 0 } } } }
},
/* normw$_L$F $RB,$U6 */
{
ARC_INSN_NORMW_L_U6_, "normw_L_u6 ", "normw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* nop_s */
{
ARC_INSN_NOP_S, "nop_s", "nop_s", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* unimp_s */
{
ARC_INSN_UNIMP_S, "unimp_s", "unimp_s", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* pop$_S $R_b */
{
ARC_INSN_POP_S_B, "pop_s_b", "pop", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* pop$_S $R31 */
{
ARC_INSN_POP_S_BLINK, "pop_s_blink", "pop", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* push$_S $R_b */
{
ARC_INSN_PUSH_S_B, "push_s_b", "push", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* push$_S $R31 */
{
ARC_INSN_PUSH_S_BLINK, "push_s_blink", "push", 32,
{ 0|A(SHORT_P), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* mullw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MULLW_L_S12__RA_, "mullw_L_s12 $RA,", "mullw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mullw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MULLW_CCU6__RA_, "mullw_ccu6 $RA,", "mullw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mullw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MULLW_L_U6__RA_, "mullw_L_u6 $RA,", "mullw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mullw$_L$F $RA,$RB,$RC */
{
ARC_INSN_MULLW_L_R_R__RA__RC, "mullw_L_r_r $RA,$RC", "mullw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mullw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MULLW_CC__RA__RC, "mullw_cc $RA,$RC", "mullw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* maclw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MACLW_L_S12__RA_, "maclw_L_s12 $RA,", "maclw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* maclw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MACLW_CCU6__RA_, "maclw_ccu6 $RA,", "maclw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* maclw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MACLW_L_U6__RA_, "maclw_L_u6 $RA,", "maclw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* maclw$_L$F $RA,$RB,$RC */
{
ARC_INSN_MACLW_L_R_R__RA__RC, "maclw_L_r_r $RA,$RC", "maclw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* maclw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MACLW_CC__RA__RC, "maclw_cc $RA,$RC", "maclw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* machlw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MACHLW_L_S12__RA_, "machlw_L_s12 $RA,", "machlw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* machlw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MACHLW_CCU6__RA_, "machlw_ccu6 $RA,", "machlw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* machlw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MACHLW_L_U6__RA_, "machlw_L_u6 $RA,", "machlw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* machlw$_L$F $RA,$RB,$RC */
{
ARC_INSN_MACHLW_L_R_R__RA__RC, "machlw_L_r_r $RA,$RC", "machlw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* machlw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MACHLW_CC__RA__RC, "machlw_cc $RA,$RC", "machlw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mululw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MULULW_L_S12__RA_, "mululw_L_s12 $RA,", "mululw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mululw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MULULW_CCU6__RA_, "mululw_ccu6 $RA,", "mululw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mululw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MULULW_L_U6__RA_, "mululw_L_u6 $RA,", "mululw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* mululw$_L$F $RA,$RB,$RC */
{
ARC_INSN_MULULW_L_R_R__RA__RC, "mululw_L_r_r $RA,$RC", "mululw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* mululw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MULULW_CC__RA__RC, "mululw_cc $RA,$RC", "mululw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* machulw$_L$F $RB,$RB,$s12 */
{
ARC_INSN_MACHULW_L_S12__RA_, "machulw_L_s12 $RA,", "machulw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* machulw$Qcondi$F $RB,$RB,$U6 */
{
ARC_INSN_MACHULW_CCU6__RA_, "machulw_ccu6 $RA,", "machulw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* machulw$_L$F $RA,$RB,$U6 */
{
ARC_INSN_MACHULW_L_U6__RA_, "machulw_L_u6 $RA,", "machulw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_B, 0 } } } }
},
/* machulw$_L$F $RA,$RB,$RC */
{
ARC_INSN_MACHULW_L_R_R__RA__RC, "machulw_L_r_r $RA,$RC", "machulw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* machulw$Qcondi$F $RB,$RB,$RC */
{
ARC_INSN_MACHULW_CC__RA__RC, "machulw_cc $RA,$RC", "machulw", 32,
{ 0, { { { (1<<MACH_BASE), 0 } }, { { LIMM_BC, 0 } } } }
},
/* */
{
ARC_INSN_CURRENT_LOOP_END, "current_loop_end", "", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* */
{
ARC_INSN_CURRENT_LOOP_END_AFTER_BRANCH, "current_loop_end_after_branch", "", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
/* */
{
ARC_INSN_ARC600_CURRENT_LOOP_END_AFTER_BRANCH, "arc600_current_loop_end_after_branch", "", 32,
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { LIMM_NONE, 0 } } } }
},
};
#undef OP
#undef A
/* Initialize anything needed to be done once, before any cpu_open call. */
static void
init_tables (void)
{
}
static const CGEN_MACH * lookup_mach_via_bfd_name (const CGEN_MACH *, const char *);
static void build_hw_table (CGEN_CPU_TABLE *);
static void build_ifield_table (CGEN_CPU_TABLE *);
static void build_operand_table (CGEN_CPU_TABLE *);
static void build_insn_table (CGEN_CPU_TABLE *);
static void arc_cgen_rebuild_tables (CGEN_CPU_TABLE *);
/* Subroutine of arc_cgen_cpu_open to look up a mach via its bfd name. */
static const CGEN_MACH *
lookup_mach_via_bfd_name (const CGEN_MACH *table, const char *name)
{
while (table->name)
{
if (strcmp (name, table->bfd_name) == 0)
return table;
++table;
}
abort ();
}
/* Subroutine of arc_cgen_cpu_open to build the hardware table. */
static void
build_hw_table (CGEN_CPU_TABLE *cd)
{
int i;
int machs = cd->machs;
const CGEN_HW_ENTRY *init = & arc_cgen_hw_table[0];
/* MAX_HW is only an upper bound on the number of selected entries.
However each entry is indexed by it's enum so there can be holes in
the table. */
const CGEN_HW_ENTRY **selected =
(const CGEN_HW_ENTRY **) xmalloc (MAX_HW * sizeof (CGEN_HW_ENTRY *));
cd->hw_table.init_entries = init;
cd->hw_table.entry_size = sizeof (CGEN_HW_ENTRY);
memset (selected, 0, MAX_HW * sizeof (CGEN_HW_ENTRY *));
/* ??? For now we just use machs to determine which ones we want. */
for (i = 0; init[i].name != NULL; ++i)
if (CGEN_HW_ATTR_VALUE (&init[i], CGEN_HW_MACH)
& machs)
selected[init[i].type] = &init[i];
cd->hw_table.entries = selected;
cd->hw_table.num_entries = MAX_HW;
}
/* Subroutine of arc_cgen_cpu_open to build the hardware table. */
static void
build_ifield_table (CGEN_CPU_TABLE *cd)
{
cd->ifld_table = & arc_cgen_ifld_table[0];
}
/* Subroutine of arc_cgen_cpu_open to build the hardware table. */
static void
build_operand_table (CGEN_CPU_TABLE *cd)
{
int i;
int machs = cd->machs;
const CGEN_OPERAND *init = & arc_cgen_operand_table[0];
/* MAX_OPERANDS is only an upper bound on the number of selected entries.
However each entry is indexed by it's enum so there can be holes in
the table. */
const CGEN_OPERAND **selected = xmalloc (MAX_OPERANDS * sizeof (* selected));
cd->operand_table.init_entries = init;
cd->operand_table.entry_size = sizeof (CGEN_OPERAND);
memset (selected, 0, MAX_OPERANDS * sizeof (CGEN_OPERAND *));
/* ??? For now we just use mach to determine which ones we want. */
for (i = 0; init[i].name != NULL; ++i)
if (CGEN_OPERAND_ATTR_VALUE (&init[i], CGEN_OPERAND_MACH)
& machs)
selected[init[i].type] = &init[i];
cd->operand_table.entries = selected;
cd->operand_table.num_entries = MAX_OPERANDS;
}
/* Subroutine of arc_cgen_cpu_open to build the hardware table.
??? This could leave out insns not supported by the specified mach/isa,
but that would cause errors like "foo only supported by bar" to become
"unknown insn", so for now we include all insns and require the app to
do the checking later.
??? On the other hand, parsing of such insns may require their hardware or
operand elements to be in the table [which they mightn't be]. */
static void
build_insn_table (CGEN_CPU_TABLE *cd)
{
int i;
const CGEN_IBASE *ib = & arc_cgen_insn_table[0];
CGEN_INSN *insns = xmalloc (MAX_INSNS * sizeof (CGEN_INSN));
memset (insns, 0, MAX_INSNS * sizeof (CGEN_INSN));
for (i = 0; i < MAX_INSNS; ++i)
insns[i].base = &ib[i];
cd->insn_table.init_entries = insns;
cd->insn_table.entry_size = sizeof (CGEN_IBASE);
cd->insn_table.num_init_entries = MAX_INSNS;
}
/* Subroutine of arc_cgen_cpu_open to rebuild the tables. */
static void
arc_cgen_rebuild_tables (CGEN_CPU_TABLE *cd)
{
int i;
CGEN_BITSET *isas = cd->isas;
unsigned int machs = cd->machs;
cd->int_insn_p = CGEN_INT_INSN_P;
/* Data derived from the isa spec. */
#define UNSET (CGEN_SIZE_UNKNOWN + 1)
cd->default_insn_bitsize = UNSET;
cd->base_insn_bitsize = UNSET;
cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */
cd->max_insn_bitsize = 0;
for (i = 0; i < MAX_ISAS; ++i)
if (cgen_bitset_contains (isas, i))
{
const CGEN_ISA *isa = & arc_cgen_isa_table[i];
/* Default insn sizes of all selected isas must be
equal or we set the result to 0, meaning "unknown". */
if (cd->default_insn_bitsize == UNSET)
cd->default_insn_bitsize = isa->default_insn_bitsize;
else if (isa->default_insn_bitsize == cd->default_insn_bitsize)
; /* This is ok. */
else
cd->default_insn_bitsize = CGEN_SIZE_UNKNOWN;
/* Base insn sizes of all selected isas must be equal
or we set the result to 0, meaning "unknown". */
if (cd->base_insn_bitsize == UNSET)
cd->base_insn_bitsize = isa->base_insn_bitsize;
else if (isa->base_insn_bitsize == cd->base_insn_bitsize)
; /* This is ok. */
else
cd->base_insn_bitsize = CGEN_SIZE_UNKNOWN;
/* Set min,max insn sizes. */
if (isa->min_insn_bitsize < cd->min_insn_bitsize)
cd->min_insn_bitsize = isa->min_insn_bitsize;
if (isa->max_insn_bitsize > cd->max_insn_bitsize)
cd->max_insn_bitsize = isa->max_insn_bitsize;
}
/* Data derived from the mach spec. */
for (i = 0; i < MAX_MACHS; ++i)
if (((1 << i) & machs) != 0)
{
const CGEN_MACH *mach = & arc_cgen_mach_table[i];
if (mach->insn_chunk_bitsize != 0)
{
if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize)
{
fprintf (stderr, "arc_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\n",
cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
abort ();
}
cd->insn_chunk_bitsize = mach->insn_chunk_bitsize;
}
}
/* Determine which hw elements are used by MACH. */
build_hw_table (cd);
/* Build the ifield table. */
build_ifield_table (cd);
/* Determine which operands are used by MACH/ISA. */
build_operand_table (cd);
/* Build the instruction table. */
build_insn_table (cd);
}
/* Initialize a cpu table and return a descriptor.
It's much like opening a file, and must be the first function called.
The arguments are a set of (type/value) pairs, terminated with
CGEN_CPU_OPEN_END.
Currently supported values:
CGEN_CPU_OPEN_ISAS: bitmap of values in enum isa_attr
CGEN_CPU_OPEN_MACHS: bitmap of values in enum mach_attr
CGEN_CPU_OPEN_BFDMACH: specify 1 mach using bfd name
CGEN_CPU_OPEN_ENDIAN: specify endian choice
CGEN_CPU_OPEN_END: terminates arguments
??? Simultaneous multiple isas might not make sense, but it's not (yet)
precluded.
??? We only support ISO C stdargs here, not K&R.
Laziness, plus experiment to see if anything requires K&R - eventually
K&R will no longer be supported - e.g. GDB is currently trying this. */
CGEN_CPU_DESC
arc_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...)
{
CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE));
static int init_p;
CGEN_BITSET *isas = 0; /* 0 = "unspecified" */
unsigned int machs = 0; /* 0 = "unspecified" */
enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN;
va_list ap;
if (! init_p)
{
init_tables ();
init_p = 1;
}
memset (cd, 0, sizeof (*cd));
va_start (ap, arg_type);
while (arg_type != CGEN_CPU_OPEN_END)
{
switch (arg_type)
{
case CGEN_CPU_OPEN_ISAS :
isas = va_arg (ap, CGEN_BITSET *);
break;
case CGEN_CPU_OPEN_MACHS :
machs = va_arg (ap, unsigned int);
break;
case CGEN_CPU_OPEN_BFDMACH :
{
const char *name = va_arg (ap, const char *);
const CGEN_MACH *mach =
lookup_mach_via_bfd_name (arc_cgen_mach_table, name);
machs |= 1 << mach->num;
break;
}
case CGEN_CPU_OPEN_ENDIAN :
endian = va_arg (ap, enum cgen_endian);
break;
default :
fprintf (stderr, "arc_cgen_cpu_open: unsupported argument `%d'\n",
arg_type);
abort (); /* ??? return NULL? */
}
arg_type = va_arg (ap, enum cgen_cpu_open_arg);
}
va_end (ap);
/* Mach unspecified means "all". */
if (machs == 0)
machs = (1 << MAX_MACHS) - 1;
/* Base mach is always selected. */
machs |= 1;
if (endian == CGEN_ENDIAN_UNKNOWN)
{
/* ??? If target has only one, could have a default. */
fprintf (stderr, "arc_cgen_cpu_open: no endianness specified\n");
abort ();
}
cd->isas = cgen_bitset_copy (isas);
cd->machs = machs;
cd->endian = endian;
/* FIXME: for the sparc case we can determine insn-endianness statically.
The worry here is where both data and insn endian can be independently
chosen, in which case this function will need another argument.
Actually, will want to allow for more arguments in the future anyway. */
cd->insn_endian = endian;
/* Table (re)builder. */
cd->rebuild_tables = arc_cgen_rebuild_tables;
arc_cgen_rebuild_tables (cd);
/* Default to not allowing signed overflow. */
cd->signed_overflow_ok_p = 0;
return (CGEN_CPU_DESC) cd;
}
/* Cover fn to arc_cgen_cpu_open to handle the simple case of 1 isa, 1 mach.
MACH_NAME is the bfd name of the mach. */
CGEN_CPU_DESC
arc_cgen_cpu_open_1 (const char *mach_name, enum cgen_endian endian)
{
return arc_cgen_cpu_open (CGEN_CPU_OPEN_BFDMACH, mach_name,
CGEN_CPU_OPEN_ENDIAN, endian,
CGEN_CPU_OPEN_END);
}
/* Close a cpu table.
??? This can live in a machine independent file, but there's currently
no place to put this file (there's no libcgen). libopcodes is the wrong
place as some simulator ports use this but they don't use libopcodes. */
void
arc_cgen_cpu_close (CGEN_CPU_DESC cd)
{
unsigned int i;
const CGEN_INSN *insns;
if (cd->macro_insn_table.init_entries)
{
insns = cd->macro_insn_table.init_entries;
for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
if (CGEN_INSN_RX ((insns)))
regfree (CGEN_INSN_RX (insns));
}
if (cd->insn_table.init_entries)
{
insns = cd->insn_table.init_entries;
for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
if (CGEN_INSN_RX (insns))
regfree (CGEN_INSN_RX (insns));
}
if (cd->macro_insn_table.init_entries)
free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
if (cd->insn_table.init_entries)
free ((CGEN_INSN *) cd->insn_table.init_entries);
if (cd->hw_table.entries)
free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
if (cd->operand_table.entries)
free ((CGEN_HW_ENTRY *) cd->operand_table.entries);
free (cd);
}