1214571Sdim/* CPU data for mep.
2214571Sdim
3214571SdimTHIS FILE IS MACHINE GENERATED WITH CGEN.
4214571Sdim
5214571SdimCopyright 1996-2005 Free Software Foundation, Inc.
6214571Sdim
7214571SdimThis file is part of the GNU Binutils and/or GDB, the GNU debugger.
8214571Sdim
9214571SdimThis program is free software; you can redistribute it and/or modify
10214571Sdimit under the terms of the GNU General Public License as published by
11214571Sdimthe Free Software Foundation; either version 2, or (at your option)
12214571Sdimany later version.
13214571Sdim
14214571SdimThis program is distributed in the hope that it will be useful,
15214571Sdimbut WITHOUT ANY WARRANTY; without even the implied warranty of
16214571SdimMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17214571SdimGNU General Public License for more details.
18214571Sdim
19214571SdimYou should have received a copy of the GNU General Public License along
20214571Sdimwith this program; if not, write to the Free Software Foundation, Inc.,
21214571Sdim51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22214571Sdim
23214571Sdim*/
24214571Sdim
25214571Sdim#include "sysdep.h"
26214571Sdim#include <stdio.h>
27214571Sdim#include <stdarg.h>
28214571Sdim#include "ansidecl.h"
29214571Sdim#include "bfd.h"
30214571Sdim#include "symcat.h"
31214571Sdim#include "mep-desc.h"
32214571Sdim#include "mep-opc.h"
33214571Sdim#include "opintl.h"
34214571Sdim#include "libiberty.h"
35214571Sdim#include "xregex.h"
36214571Sdim
37214571Sdim/* Attributes.  */
38214571Sdim
39214571Sdimstatic const CGEN_ATTR_ENTRY bool_attr[] =
40214571Sdim{
41214571Sdim  { "#f", 0 },
42214571Sdim  { "#t", 1 },
43214571Sdim  { 0, 0 }
44214571Sdim};
45214571Sdim
46214571Sdimstatic const CGEN_ATTR_ENTRY MACH_attr[] ATTRIBUTE_UNUSED =
47214571Sdim{
48214571Sdim  { "base", MACH_BASE },
49214571Sdim  { "mep", MACH_MEP },
50214571Sdim  { "h1", MACH_H1 },
51214571Sdim  { "max", MACH_MAX },
52214571Sdim  { 0, 0 }
53214571Sdim};
54214571Sdim
55214571Sdimstatic const CGEN_ATTR_ENTRY ISA_attr[] ATTRIBUTE_UNUSED =
56214571Sdim{
57214571Sdim  { "mep", ISA_MEP },
58214571Sdim  { "ext_core1", ISA_EXT_CORE1 },
59214571Sdim  { "ext_core2", ISA_EXT_CORE2 },
60214571Sdim  { "ext_cop2_16", ISA_EXT_COP2_16 },
61214571Sdim  { "ext_cop2_32", ISA_EXT_COP2_32 },
62214571Sdim  { "ext_cop2_48", ISA_EXT_COP2_48 },
63214571Sdim  { "ext_cop2_64", ISA_EXT_COP2_64 },
64214571Sdim  { "max", ISA_MAX },
65214571Sdim  { 0, 0 }
66214571Sdim};
67214571Sdim
68214571Sdimstatic const CGEN_ATTR_ENTRY CDATA_attr[] ATTRIBUTE_UNUSED =
69214571Sdim{
70214571Sdim  { "LABEL", CDATA_LABEL },
71214571Sdim  { "REGNUM", CDATA_REGNUM },
72214571Sdim  { "FMAX_FLOAT", CDATA_FMAX_FLOAT },
73214571Sdim  { "FMAX_INT", CDATA_FMAX_INT },
74214571Sdim  { "POINTER", CDATA_POINTER },
75214571Sdim  { "LONG", CDATA_LONG },
76214571Sdim  { "ULONG", CDATA_ULONG },
77214571Sdim  { "SHORT", CDATA_SHORT },
78214571Sdim  { "USHORT", CDATA_USHORT },
79214571Sdim  { "CHAR", CDATA_CHAR },
80214571Sdim  { "UCHAR", CDATA_UCHAR },
81214571Sdim  { "CP_DATA_BUS_INT", CDATA_CP_DATA_BUS_INT },
82214571Sdim  { 0, 0 }
83214571Sdim};
84214571Sdim
85214571Sdimstatic const CGEN_ATTR_ENTRY ALIGN_attr [] ATTRIBUTE_UNUSED =
86214571Sdim{
87214571Sdim  {"integer", 1},
88214571Sdim  { 0, 0 }
89214571Sdim};
90214571Sdim
91214571Sdimstatic const CGEN_ATTR_ENTRY LATENCY_attr [] ATTRIBUTE_UNUSED =
92214571Sdim{
93214571Sdim  {"integer", 0},
94214571Sdim  { 0, 0 }
95214571Sdim};
96214571Sdim
97214571Sdimstatic const CGEN_ATTR_ENTRY CONFIG_attr[] ATTRIBUTE_UNUSED =
98214571Sdim{
99214571Sdim  { "NONE", CONFIG_NONE },
100214571Sdim  { "simple", CONFIG_SIMPLE },
101214571Sdim  { "fmax", CONFIG_FMAX },
102214571Sdim  { 0, 0 }
103214571Sdim};
104214571Sdim
105214571Sdimconst CGEN_ATTR_TABLE mep_cgen_ifield_attr_table[] =
106214571Sdim{
107214571Sdim  { "MACH", & MACH_attr[0], & MACH_attr[0] },
108214571Sdim  { "ISA", & ISA_attr[0], & ISA_attr[0] },
109214571Sdim  { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
110214571Sdim  { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
111214571Sdim  { "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
112214571Sdim  { "RESERVED", &bool_attr[0], &bool_attr[0] },
113214571Sdim  { "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
114214571Sdim  { "SIGNED", &bool_attr[0], &bool_attr[0] },
115214571Sdim  { 0, 0, 0 }
116214571Sdim};
117214571Sdim
118214571Sdimconst CGEN_ATTR_TABLE mep_cgen_hardware_attr_table[] =
119214571Sdim{
120214571Sdim  { "MACH", & MACH_attr[0], & MACH_attr[0] },
121214571Sdim  { "ISA", & ISA_attr[0], & ISA_attr[0] },
122214571Sdim  { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
123214571Sdim  { "CACHE-ADDR", &bool_attr[0], &bool_attr[0] },
124214571Sdim  { "PC", &bool_attr[0], &bool_attr[0] },
125214571Sdim  { "PROFILE", &bool_attr[0], &bool_attr[0] },
126214571Sdim  { "IS_FLOAT", &bool_attr[0], &bool_attr[0] },
127214571Sdim  { 0, 0, 0 }
128214571Sdim};
129214571Sdim
130214571Sdimconst CGEN_ATTR_TABLE mep_cgen_operand_attr_table[] =
131214571Sdim{
132214571Sdim  { "MACH", & MACH_attr[0], & MACH_attr[0] },
133214571Sdim  { "ISA", & ISA_attr[0], & ISA_attr[0] },
134214571Sdim  { "CDATA", & CDATA_attr[0], & CDATA_attr[0] },
135214571Sdim  { "ALIGN", & ALIGN_attr[0], & ALIGN_attr[0] },
136214571Sdim  { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
137214571Sdim  { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
138214571Sdim  { "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
139214571Sdim  { "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
140214571Sdim  { "SIGNED", &bool_attr[0], &bool_attr[0] },
141214571Sdim  { "NEGATIVE", &bool_attr[0], &bool_attr[0] },
142214571Sdim  { "RELAX", &bool_attr[0], &bool_attr[0] },
143214571Sdim  { "SEM-ONLY", &bool_attr[0], &bool_attr[0] },
144214571Sdim  { "RELOC_IMPLIES_OVERFLOW", &bool_attr[0], &bool_attr[0] },
145214571Sdim  { 0, 0, 0 }
146214571Sdim};
147214571Sdim
148214571Sdimconst CGEN_ATTR_TABLE mep_cgen_insn_attr_table[] =
149214571Sdim{
150214571Sdim  { "MACH", & MACH_attr[0], & MACH_attr[0] },
151214571Sdim  { "ISA", & ISA_attr[0], & ISA_attr[0] },
152214571Sdim  { "LATENCY", & LATENCY_attr[0], & LATENCY_attr[0] },
153214571Sdim  { "CONFIG", & CONFIG_attr[0], & CONFIG_attr[0] },
154214571Sdim  { "ALIAS", &bool_attr[0], &bool_attr[0] },
155214571Sdim  { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
156214571Sdim  { "UNCOND-CTI", &bool_attr[0], &bool_attr[0] },
157214571Sdim  { "COND-CTI", &bool_attr[0], &bool_attr[0] },
158214571Sdim  { "SKIP-CTI", &bool_attr[0], &bool_attr[0] },
159214571Sdim  { "DELAY-SLOT", &bool_attr[0], &bool_attr[0] },
160214571Sdim  { "RELAXABLE", &bool_attr[0], &bool_attr[0] },
161214571Sdim  { "RELAXED", &bool_attr[0], &bool_attr[0] },
162214571Sdim  { "NO-DIS", &bool_attr[0], &bool_attr[0] },
163214571Sdim  { "PBB", &bool_attr[0], &bool_attr[0] },
164214571Sdim  { "OPTIONAL_BIT_INSN", &bool_attr[0], &bool_attr[0] },
165214571Sdim  { "OPTIONAL_MUL_INSN", &bool_attr[0], &bool_attr[0] },
166214571Sdim  { "OPTIONAL_DIV_INSN", &bool_attr[0], &bool_attr[0] },
167214571Sdim  { "OPTIONAL_DEBUG_INSN", &bool_attr[0], &bool_attr[0] },
168214571Sdim  { "OPTIONAL_LDZ_INSN", &bool_attr[0], &bool_attr[0] },
169214571Sdim  { "OPTIONAL_ABS_INSN", &bool_attr[0], &bool_attr[0] },
170214571Sdim  { "OPTIONAL_AVE_INSN", &bool_attr[0], &bool_attr[0] },
171214571Sdim  { "OPTIONAL_MINMAX_INSN", &bool_attr[0], &bool_attr[0] },
172214571Sdim  { "OPTIONAL_CLIP_INSN", &bool_attr[0], &bool_attr[0] },
173214571Sdim  { "OPTIONAL_SAT_INSN", &bool_attr[0], &bool_attr[0] },
174214571Sdim  { "OPTIONAL_UCI_INSN", &bool_attr[0], &bool_attr[0] },
175214571Sdim  { "OPTIONAL_DSP_INSN", &bool_attr[0], &bool_attr[0] },
176214571Sdim  { "OPTIONAL_CP_INSN", &bool_attr[0], &bool_attr[0] },
177214571Sdim  { "OPTIONAL_CP64_INSN", &bool_attr[0], &bool_attr[0] },
178214571Sdim  { "OPTIONAL_VLIW64", &bool_attr[0], &bool_attr[0] },
179214571Sdim  { "MAY_TRAP", &bool_attr[0], &bool_attr[0] },
180214571Sdim  { "VLIW_ALONE", &bool_attr[0], &bool_attr[0] },
181214571Sdim  { "VLIW_NO_CORE_NOP", &bool_attr[0], &bool_attr[0] },
182214571Sdim  { "VLIW_NO_COP_NOP", &bool_attr[0], &bool_attr[0] },
183214571Sdim  { "VLIW64_NO_MATCHING_NOP", &bool_attr[0], &bool_attr[0] },
184214571Sdim  { "VLIW32_NO_MATCHING_NOP", &bool_attr[0], &bool_attr[0] },
185214571Sdim  { "VOLATILE", &bool_attr[0], &bool_attr[0] },
186214571Sdim  { 0, 0, 0 }
187214571Sdim};
188214571Sdim
189214571Sdim/* Instruction set variants.  */
190214571Sdim
191214571Sdimstatic const CGEN_ISA mep_cgen_isa_table[] = {
192214571Sdim  { "mep", 32, 32, 16, 32 },
193214571Sdim  { "ext_core1", 32, 32, 16, 32 },
194214571Sdim  { "ext_core2", 32, 32, 16, 32 },
195214571Sdim  { "ext_cop2_16", 32, 32, 65535, 0 },
196214571Sdim  { "ext_cop2_32", 32, 32, 65535, 0 },
197214571Sdim  { "ext_cop2_48", 32, 32, 65535, 0 },
198214571Sdim  { "ext_cop2_64", 32, 32, 65535, 0 },
199214571Sdim  { 0, 0, 0, 0, 0 }
200214571Sdim};
201214571Sdim
202214571Sdim/* Machine variants.  */
203214571Sdim
204214571Sdimstatic const CGEN_MACH mep_cgen_mach_table[] = {
205214571Sdim  { "mep", "mep", MACH_MEP, 16 },
206214571Sdim  { "h1", "h1", MACH_H1, 16 },
207214571Sdim  { 0, 0, 0, 0 }
208214571Sdim};
209214571Sdim
210214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_gpr_entries[] =
211214571Sdim{
212214571Sdim  { "$0", 0, {0, {{{0, 0}}}}, 0, 0 },
213214571Sdim  { "$1", 1, {0, {{{0, 0}}}}, 0, 0 },
214214571Sdim  { "$2", 2, {0, {{{0, 0}}}}, 0, 0 },
215214571Sdim  { "$3", 3, {0, {{{0, 0}}}}, 0, 0 },
216214571Sdim  { "$4", 4, {0, {{{0, 0}}}}, 0, 0 },
217214571Sdim  { "$5", 5, {0, {{{0, 0}}}}, 0, 0 },
218214571Sdim  { "$6", 6, {0, {{{0, 0}}}}, 0, 0 },
219214571Sdim  { "$7", 7, {0, {{{0, 0}}}}, 0, 0 },
220214571Sdim  { "$8", 8, {0, {{{0, 0}}}}, 0, 0 },
221214571Sdim  { "$9", 9, {0, {{{0, 0}}}}, 0, 0 },
222214571Sdim  { "$10", 10, {0, {{{0, 0}}}}, 0, 0 },
223214571Sdim  { "$11", 11, {0, {{{0, 0}}}}, 0, 0 },
224214571Sdim  { "$fp", 8, {0, {{{0, 0}}}}, 0, 0 },
225214571Sdim  { "$tp", 13, {0, {{{0, 0}}}}, 0, 0 },
226214571Sdim  { "$gp", 14, {0, {{{0, 0}}}}, 0, 0 },
227214571Sdim  { "$sp", 15, {0, {{{0, 0}}}}, 0, 0 },
228214571Sdim  { "$12", 12, {0, {{{0, 0}}}}, 0, 0 },
229214571Sdim  { "$13", 13, {0, {{{0, 0}}}}, 0, 0 },
230214571Sdim  { "$14", 14, {0, {{{0, 0}}}}, 0, 0 },
231214571Sdim  { "$15", 15, {0, {{{0, 0}}}}, 0, 0 }
232214571Sdim};
233214571Sdim
234214571SdimCGEN_KEYWORD mep_cgen_opval_h_gpr =
235214571Sdim{
236214571Sdim  & mep_cgen_opval_h_gpr_entries[0],
237214571Sdim  20,
238214571Sdim  0, 0, 0, 0, ""
239214571Sdim};
240214571Sdim
241214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_csr_entries[] =
242214571Sdim{
243214571Sdim  { "$pc", 0, {0, {{{0, 0}}}}, 0, 0 },
244214571Sdim  { "$lp", 1, {0, {{{0, 0}}}}, 0, 0 },
245214571Sdim  { "$sar", 2, {0, {{{0, 0}}}}, 0, 0 },
246214571Sdim  { "$rpb", 4, {0, {{{0, 0}}}}, 0, 0 },
247214571Sdim  { "$rpe", 5, {0, {{{0, 0}}}}, 0, 0 },
248214571Sdim  { "$rpc", 6, {0, {{{0, 0}}}}, 0, 0 },
249214571Sdim  { "$hi", 7, {0, {{{0, 0}}}}, 0, 0 },
250214571Sdim  { "$lo", 8, {0, {{{0, 0}}}}, 0, 0 },
251214571Sdim  { "$mb0", 12, {0, {{{0, 0}}}}, 0, 0 },
252214571Sdim  { "$me0", 13, {0, {{{0, 0}}}}, 0, 0 },
253214571Sdim  { "$mb1", 14, {0, {{{0, 0}}}}, 0, 0 },
254214571Sdim  { "$me1", 15, {0, {{{0, 0}}}}, 0, 0 },
255214571Sdim  { "$psw", 16, {0, {{{0, 0}}}}, 0, 0 },
256214571Sdim  { "$id", 17, {0, {{{0, 0}}}}, 0, 0 },
257214571Sdim  { "$tmp", 18, {0, {{{0, 0}}}}, 0, 0 },
258214571Sdim  { "$epc", 19, {0, {{{0, 0}}}}, 0, 0 },
259214571Sdim  { "$exc", 20, {0, {{{0, 0}}}}, 0, 0 },
260214571Sdim  { "$cfg", 21, {0, {{{0, 0}}}}, 0, 0 },
261214571Sdim  { "$npc", 23, {0, {{{0, 0}}}}, 0, 0 },
262214571Sdim  { "$dbg", 24, {0, {{{0, 0}}}}, 0, 0 },
263214571Sdim  { "$depc", 25, {0, {{{0, 0}}}}, 0, 0 },
264214571Sdim  { "$opt", 26, {0, {{{0, 0}}}}, 0, 0 },
265214571Sdim  { "$rcfg", 27, {0, {{{0, 0}}}}, 0, 0 },
266214571Sdim  { "$ccfg", 28, {0, {{{0, 0}}}}, 0, 0 }
267214571Sdim};
268214571Sdim
269214571SdimCGEN_KEYWORD mep_cgen_opval_h_csr =
270214571Sdim{
271214571Sdim  & mep_cgen_opval_h_csr_entries[0],
272214571Sdim  24,
273214571Sdim  0, 0, 0, 0, ""
274214571Sdim};
275214571Sdim
276214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_cr64_entries[] =
277214571Sdim{
278214571Sdim  { "$c0", 0, {0, {{{0, 0}}}}, 0, 0 },
279214571Sdim  { "$c1", 1, {0, {{{0, 0}}}}, 0, 0 },
280214571Sdim  { "$c2", 2, {0, {{{0, 0}}}}, 0, 0 },
281214571Sdim  { "$c3", 3, {0, {{{0, 0}}}}, 0, 0 },
282214571Sdim  { "$c4", 4, {0, {{{0, 0}}}}, 0, 0 },
283214571Sdim  { "$c5", 5, {0, {{{0, 0}}}}, 0, 0 },
284214571Sdim  { "$c6", 6, {0, {{{0, 0}}}}, 0, 0 },
285214571Sdim  { "$c7", 7, {0, {{{0, 0}}}}, 0, 0 },
286214571Sdim  { "$c8", 8, {0, {{{0, 0}}}}, 0, 0 },
287214571Sdim  { "$c9", 9, {0, {{{0, 0}}}}, 0, 0 },
288214571Sdim  { "$c10", 10, {0, {{{0, 0}}}}, 0, 0 },
289214571Sdim  { "$c11", 11, {0, {{{0, 0}}}}, 0, 0 },
290214571Sdim  { "$c12", 12, {0, {{{0, 0}}}}, 0, 0 },
291214571Sdim  { "$c13", 13, {0, {{{0, 0}}}}, 0, 0 },
292214571Sdim  { "$c14", 14, {0, {{{0, 0}}}}, 0, 0 },
293214571Sdim  { "$c15", 15, {0, {{{0, 0}}}}, 0, 0 },
294214571Sdim  { "$c16", 16, {0, {{{0, 0}}}}, 0, 0 },
295214571Sdim  { "$c17", 17, {0, {{{0, 0}}}}, 0, 0 },
296214571Sdim  { "$c18", 18, {0, {{{0, 0}}}}, 0, 0 },
297214571Sdim  { "$c19", 19, {0, {{{0, 0}}}}, 0, 0 },
298214571Sdim  { "$c20", 20, {0, {{{0, 0}}}}, 0, 0 },
299214571Sdim  { "$c21", 21, {0, {{{0, 0}}}}, 0, 0 },
300214571Sdim  { "$c22", 22, {0, {{{0, 0}}}}, 0, 0 },
301214571Sdim  { "$c23", 23, {0, {{{0, 0}}}}, 0, 0 },
302214571Sdim  { "$c24", 24, {0, {{{0, 0}}}}, 0, 0 },
303214571Sdim  { "$c25", 25, {0, {{{0, 0}}}}, 0, 0 },
304214571Sdim  { "$c26", 26, {0, {{{0, 0}}}}, 0, 0 },
305214571Sdim  { "$c27", 27, {0, {{{0, 0}}}}, 0, 0 },
306214571Sdim  { "$c28", 28, {0, {{{0, 0}}}}, 0, 0 },
307214571Sdim  { "$c29", 29, {0, {{{0, 0}}}}, 0, 0 },
308214571Sdim  { "$c30", 30, {0, {{{0, 0}}}}, 0, 0 },
309214571Sdim  { "$c31", 31, {0, {{{0, 0}}}}, 0, 0 }
310214571Sdim};
311214571Sdim
312214571SdimCGEN_KEYWORD mep_cgen_opval_h_cr64 =
313214571Sdim{
314214571Sdim  & mep_cgen_opval_h_cr64_entries[0],
315214571Sdim  32,
316214571Sdim  0, 0, 0, 0, ""
317214571Sdim};
318214571Sdim
319214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_cr_entries[] =
320214571Sdim{
321214571Sdim  { "$c0", 0, {0, {{{0, 0}}}}, 0, 0 },
322214571Sdim  { "$c1", 1, {0, {{{0, 0}}}}, 0, 0 },
323214571Sdim  { "$c2", 2, {0, {{{0, 0}}}}, 0, 0 },
324214571Sdim  { "$c3", 3, {0, {{{0, 0}}}}, 0, 0 },
325214571Sdim  { "$c4", 4, {0, {{{0, 0}}}}, 0, 0 },
326214571Sdim  { "$c5", 5, {0, {{{0, 0}}}}, 0, 0 },
327214571Sdim  { "$c6", 6, {0, {{{0, 0}}}}, 0, 0 },
328214571Sdim  { "$c7", 7, {0, {{{0, 0}}}}, 0, 0 },
329214571Sdim  { "$c8", 8, {0, {{{0, 0}}}}, 0, 0 },
330214571Sdim  { "$c9", 9, {0, {{{0, 0}}}}, 0, 0 },
331214571Sdim  { "$c10", 10, {0, {{{0, 0}}}}, 0, 0 },
332214571Sdim  { "$c11", 11, {0, {{{0, 0}}}}, 0, 0 },
333214571Sdim  { "$c12", 12, {0, {{{0, 0}}}}, 0, 0 },
334214571Sdim  { "$c13", 13, {0, {{{0, 0}}}}, 0, 0 },
335214571Sdim  { "$c14", 14, {0, {{{0, 0}}}}, 0, 0 },
336214571Sdim  { "$c15", 15, {0, {{{0, 0}}}}, 0, 0 },
337214571Sdim  { "$c16", 16, {0, {{{0, 0}}}}, 0, 0 },
338214571Sdim  { "$c17", 17, {0, {{{0, 0}}}}, 0, 0 },
339214571Sdim  { "$c18", 18, {0, {{{0, 0}}}}, 0, 0 },
340214571Sdim  { "$c19", 19, {0, {{{0, 0}}}}, 0, 0 },
341214571Sdim  { "$c20", 20, {0, {{{0, 0}}}}, 0, 0 },
342214571Sdim  { "$c21", 21, {0, {{{0, 0}}}}, 0, 0 },
343214571Sdim  { "$c22", 22, {0, {{{0, 0}}}}, 0, 0 },
344214571Sdim  { "$c23", 23, {0, {{{0, 0}}}}, 0, 0 },
345214571Sdim  { "$c24", 24, {0, {{{0, 0}}}}, 0, 0 },
346214571Sdim  { "$c25", 25, {0, {{{0, 0}}}}, 0, 0 },
347214571Sdim  { "$c26", 26, {0, {{{0, 0}}}}, 0, 0 },
348214571Sdim  { "$c27", 27, {0, {{{0, 0}}}}, 0, 0 },
349214571Sdim  { "$c28", 28, {0, {{{0, 0}}}}, 0, 0 },
350214571Sdim  { "$c29", 29, {0, {{{0, 0}}}}, 0, 0 },
351214571Sdim  { "$c30", 30, {0, {{{0, 0}}}}, 0, 0 },
352214571Sdim  { "$c31", 31, {0, {{{0, 0}}}}, 0, 0 }
353214571Sdim};
354214571Sdim
355214571SdimCGEN_KEYWORD mep_cgen_opval_h_cr =
356214571Sdim{
357214571Sdim  & mep_cgen_opval_h_cr_entries[0],
358214571Sdim  32,
359214571Sdim  0, 0, 0, 0, ""
360214571Sdim};
361214571Sdim
362214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_ccr_entries[] =
363214571Sdim{
364214571Sdim  { "$ccr0", 0, {0, {{{0, 0}}}}, 0, 0 },
365214571Sdim  { "$ccr1", 1, {0, {{{0, 0}}}}, 0, 0 },
366214571Sdim  { "$ccr2", 2, {0, {{{0, 0}}}}, 0, 0 },
367214571Sdim  { "$ccr3", 3, {0, {{{0, 0}}}}, 0, 0 },
368214571Sdim  { "$ccr4", 4, {0, {{{0, 0}}}}, 0, 0 },
369214571Sdim  { "$ccr5", 5, {0, {{{0, 0}}}}, 0, 0 },
370214571Sdim  { "$ccr6", 6, {0, {{{0, 0}}}}, 0, 0 },
371214571Sdim  { "$ccr7", 7, {0, {{{0, 0}}}}, 0, 0 },
372214571Sdim  { "$ccr8", 8, {0, {{{0, 0}}}}, 0, 0 },
373214571Sdim  { "$ccr9", 9, {0, {{{0, 0}}}}, 0, 0 },
374214571Sdim  { "$ccr10", 10, {0, {{{0, 0}}}}, 0, 0 },
375214571Sdim  { "$ccr11", 11, {0, {{{0, 0}}}}, 0, 0 },
376214571Sdim  { "$ccr12", 12, {0, {{{0, 0}}}}, 0, 0 },
377214571Sdim  { "$ccr13", 13, {0, {{{0, 0}}}}, 0, 0 },
378214571Sdim  { "$ccr14", 14, {0, {{{0, 0}}}}, 0, 0 },
379214571Sdim  { "$ccr15", 15, {0, {{{0, 0}}}}, 0, 0 },
380214571Sdim  { "$ccr16", 16, {0, {{{0, 0}}}}, 0, 0 },
381214571Sdim  { "$ccr17", 17, {0, {{{0, 0}}}}, 0, 0 },
382214571Sdim  { "$ccr18", 18, {0, {{{0, 0}}}}, 0, 0 },
383214571Sdim  { "$ccr19", 19, {0, {{{0, 0}}}}, 0, 0 },
384214571Sdim  { "$ccr20", 20, {0, {{{0, 0}}}}, 0, 0 },
385214571Sdim  { "$ccr21", 21, {0, {{{0, 0}}}}, 0, 0 },
386214571Sdim  { "$ccr22", 22, {0, {{{0, 0}}}}, 0, 0 },
387214571Sdim  { "$ccr23", 23, {0, {{{0, 0}}}}, 0, 0 },
388214571Sdim  { "$ccr24", 24, {0, {{{0, 0}}}}, 0, 0 },
389214571Sdim  { "$ccr25", 25, {0, {{{0, 0}}}}, 0, 0 },
390214571Sdim  { "$ccr26", 26, {0, {{{0, 0}}}}, 0, 0 },
391214571Sdim  { "$ccr27", 27, {0, {{{0, 0}}}}, 0, 0 },
392214571Sdim  { "$ccr28", 28, {0, {{{0, 0}}}}, 0, 0 },
393214571Sdim  { "$ccr29", 29, {0, {{{0, 0}}}}, 0, 0 },
394214571Sdim  { "$ccr30", 30, {0, {{{0, 0}}}}, 0, 0 },
395214571Sdim  { "$ccr31", 31, {0, {{{0, 0}}}}, 0, 0 },
396214571Sdim  { "$ccr32", 32, {0, {{{0, 0}}}}, 0, 0 },
397214571Sdim  { "$ccr33", 33, {0, {{{0, 0}}}}, 0, 0 },
398214571Sdim  { "$ccr34", 34, {0, {{{0, 0}}}}, 0, 0 },
399214571Sdim  { "$ccr35", 35, {0, {{{0, 0}}}}, 0, 0 },
400214571Sdim  { "$ccr36", 36, {0, {{{0, 0}}}}, 0, 0 },
401214571Sdim  { "$ccr37", 37, {0, {{{0, 0}}}}, 0, 0 },
402214571Sdim  { "$ccr38", 38, {0, {{{0, 0}}}}, 0, 0 },
403214571Sdim  { "$ccr39", 39, {0, {{{0, 0}}}}, 0, 0 },
404214571Sdim  { "$ccr40", 40, {0, {{{0, 0}}}}, 0, 0 },
405214571Sdim  { "$ccr41", 41, {0, {{{0, 0}}}}, 0, 0 },
406214571Sdim  { "$ccr42", 42, {0, {{{0, 0}}}}, 0, 0 },
407214571Sdim  { "$ccr43", 43, {0, {{{0, 0}}}}, 0, 0 },
408214571Sdim  { "$ccr44", 44, {0, {{{0, 0}}}}, 0, 0 },
409214571Sdim  { "$ccr45", 45, {0, {{{0, 0}}}}, 0, 0 },
410214571Sdim  { "$ccr46", 46, {0, {{{0, 0}}}}, 0, 0 },
411214571Sdim  { "$ccr47", 47, {0, {{{0, 0}}}}, 0, 0 },
412214571Sdim  { "$ccr48", 48, {0, {{{0, 0}}}}, 0, 0 },
413214571Sdim  { "$ccr49", 49, {0, {{{0, 0}}}}, 0, 0 },
414214571Sdim  { "$ccr50", 50, {0, {{{0, 0}}}}, 0, 0 },
415214571Sdim  { "$ccr51", 51, {0, {{{0, 0}}}}, 0, 0 },
416214571Sdim  { "$ccr52", 52, {0, {{{0, 0}}}}, 0, 0 },
417214571Sdim  { "$ccr53", 53, {0, {{{0, 0}}}}, 0, 0 },
418214571Sdim  { "$ccr54", 54, {0, {{{0, 0}}}}, 0, 0 },
419214571Sdim  { "$ccr55", 55, {0, {{{0, 0}}}}, 0, 0 },
420214571Sdim  { "$ccr56", 56, {0, {{{0, 0}}}}, 0, 0 },
421214571Sdim  { "$ccr57", 57, {0, {{{0, 0}}}}, 0, 0 },
422214571Sdim  { "$ccr58", 58, {0, {{{0, 0}}}}, 0, 0 },
423214571Sdim  { "$ccr59", 59, {0, {{{0, 0}}}}, 0, 0 },
424214571Sdim  { "$ccr60", 60, {0, {{{0, 0}}}}, 0, 0 },
425214571Sdim  { "$ccr61", 61, {0, {{{0, 0}}}}, 0, 0 },
426214571Sdim  { "$ccr62", 62, {0, {{{0, 0}}}}, 0, 0 },
427214571Sdim  { "$ccr63", 63, {0, {{{0, 0}}}}, 0, 0 }
428214571Sdim};
429214571Sdim
430214571SdimCGEN_KEYWORD mep_cgen_opval_h_ccr =
431214571Sdim{
432214571Sdim  & mep_cgen_opval_h_ccr_entries[0],
433214571Sdim  64,
434214571Sdim  0, 0, 0, 0, ""
435214571Sdim};
436214571Sdim
437214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_cr_fmax_entries[] =
438214571Sdim{
439214571Sdim  { "$fr0", 0, {0, {{{0, 0}}}}, 0, 0 },
440214571Sdim  { "$fr1", 1, {0, {{{0, 0}}}}, 0, 0 },
441214571Sdim  { "$fr2", 2, {0, {{{0, 0}}}}, 0, 0 },
442214571Sdim  { "$fr3", 3, {0, {{{0, 0}}}}, 0, 0 },
443214571Sdim  { "$fr4", 4, {0, {{{0, 0}}}}, 0, 0 },
444214571Sdim  { "$fr5", 5, {0, {{{0, 0}}}}, 0, 0 },
445214571Sdim  { "$fr6", 6, {0, {{{0, 0}}}}, 0, 0 },
446214571Sdim  { "$fr7", 7, {0, {{{0, 0}}}}, 0, 0 },
447214571Sdim  { "$fr8", 8, {0, {{{0, 0}}}}, 0, 0 },
448214571Sdim  { "$fr9", 9, {0, {{{0, 0}}}}, 0, 0 },
449214571Sdim  { "$fr10", 10, {0, {{{0, 0}}}}, 0, 0 },
450214571Sdim  { "$fr11", 11, {0, {{{0, 0}}}}, 0, 0 },
451214571Sdim  { "$fr12", 12, {0, {{{0, 0}}}}, 0, 0 },
452214571Sdim  { "$fr13", 13, {0, {{{0, 0}}}}, 0, 0 },
453214571Sdim  { "$fr14", 14, {0, {{{0, 0}}}}, 0, 0 },
454214571Sdim  { "$fr15", 15, {0, {{{0, 0}}}}, 0, 0 },
455214571Sdim  { "$fr16", 16, {0, {{{0, 0}}}}, 0, 0 },
456214571Sdim  { "$fr17", 17, {0, {{{0, 0}}}}, 0, 0 },
457214571Sdim  { "$fr18", 18, {0, {{{0, 0}}}}, 0, 0 },
458214571Sdim  { "$fr19", 19, {0, {{{0, 0}}}}, 0, 0 },
459214571Sdim  { "$fr20", 20, {0, {{{0, 0}}}}, 0, 0 },
460214571Sdim  { "$fr21", 21, {0, {{{0, 0}}}}, 0, 0 },
461214571Sdim  { "$fr22", 22, {0, {{{0, 0}}}}, 0, 0 },
462214571Sdim  { "$fr23", 23, {0, {{{0, 0}}}}, 0, 0 },
463214571Sdim  { "$fr24", 24, {0, {{{0, 0}}}}, 0, 0 },
464214571Sdim  { "$fr25", 25, {0, {{{0, 0}}}}, 0, 0 },
465214571Sdim  { "$fr26", 26, {0, {{{0, 0}}}}, 0, 0 },
466214571Sdim  { "$fr27", 27, {0, {{{0, 0}}}}, 0, 0 },
467214571Sdim  { "$fr28", 28, {0, {{{0, 0}}}}, 0, 0 },
468214571Sdim  { "$fr29", 29, {0, {{{0, 0}}}}, 0, 0 },
469214571Sdim  { "$fr30", 30, {0, {{{0, 0}}}}, 0, 0 },
470214571Sdim  { "$fr31", 31, {0, {{{0, 0}}}}, 0, 0 },
471214571Sdim  { "$c0", 0, {0, {{{0, 0}}}}, 0, 0 },
472214571Sdim  { "$c1", 1, {0, {{{0, 0}}}}, 0, 0 },
473214571Sdim  { "$c2", 2, {0, {{{0, 0}}}}, 0, 0 },
474214571Sdim  { "$c3", 3, {0, {{{0, 0}}}}, 0, 0 },
475214571Sdim  { "$c4", 4, {0, {{{0, 0}}}}, 0, 0 },
476214571Sdim  { "$c5", 5, {0, {{{0, 0}}}}, 0, 0 },
477214571Sdim  { "$c6", 6, {0, {{{0, 0}}}}, 0, 0 },
478214571Sdim  { "$c7", 7, {0, {{{0, 0}}}}, 0, 0 },
479214571Sdim  { "$c8", 8, {0, {{{0, 0}}}}, 0, 0 },
480214571Sdim  { "$c9", 9, {0, {{{0, 0}}}}, 0, 0 },
481214571Sdim  { "$c10", 10, {0, {{{0, 0}}}}, 0, 0 },
482214571Sdim  { "$c11", 11, {0, {{{0, 0}}}}, 0, 0 },
483214571Sdim  { "$c12", 12, {0, {{{0, 0}}}}, 0, 0 },
484214571Sdim  { "$c13", 13, {0, {{{0, 0}}}}, 0, 0 },
485214571Sdim  { "$c14", 14, {0, {{{0, 0}}}}, 0, 0 },
486214571Sdim  { "$c15", 15, {0, {{{0, 0}}}}, 0, 0 },
487214571Sdim  { "$c16", 16, {0, {{{0, 0}}}}, 0, 0 },
488214571Sdim  { "$c17", 17, {0, {{{0, 0}}}}, 0, 0 },
489214571Sdim  { "$c18", 18, {0, {{{0, 0}}}}, 0, 0 },
490214571Sdim  { "$c19", 19, {0, {{{0, 0}}}}, 0, 0 },
491214571Sdim  { "$c20", 20, {0, {{{0, 0}}}}, 0, 0 },
492214571Sdim  { "$c21", 21, {0, {{{0, 0}}}}, 0, 0 },
493214571Sdim  { "$c22", 22, {0, {{{0, 0}}}}, 0, 0 },
494214571Sdim  { "$c23", 23, {0, {{{0, 0}}}}, 0, 0 },
495214571Sdim  { "$c24", 24, {0, {{{0, 0}}}}, 0, 0 },
496214571Sdim  { "$c25", 25, {0, {{{0, 0}}}}, 0, 0 },
497214571Sdim  { "$c26", 26, {0, {{{0, 0}}}}, 0, 0 },
498214571Sdim  { "$c27", 27, {0, {{{0, 0}}}}, 0, 0 },
499214571Sdim  { "$c28", 28, {0, {{{0, 0}}}}, 0, 0 },
500214571Sdim  { "$c29", 29, {0, {{{0, 0}}}}, 0, 0 },
501214571Sdim  { "$c30", 30, {0, {{{0, 0}}}}, 0, 0 },
502214571Sdim  { "$c31", 31, {0, {{{0, 0}}}}, 0, 0 }
503214571Sdim};
504214571Sdim
505214571SdimCGEN_KEYWORD mep_cgen_opval_h_cr_fmax =
506214571Sdim{
507214571Sdim  & mep_cgen_opval_h_cr_fmax_entries[0],
508214571Sdim  64,
509214571Sdim  0, 0, 0, 0, ""
510214571Sdim};
511214571Sdim
512214571Sdimstatic CGEN_KEYWORD_ENTRY mep_cgen_opval_h_ccr_fmax_entries[] =
513214571Sdim{
514214571Sdim  { "$cirr", 0, {0, {{{0, 0}}}}, 0, 0 },
515214571Sdim  { "$fcr0", 0, {0, {{{0, 0}}}}, 0, 0 },
516214571Sdim  { "$ccr0", 0, {0, {{{0, 0}}}}, 0, 0 },
517214571Sdim  { "$cbcr", 1, {0, {{{0, 0}}}}, 0, 0 },
518214571Sdim  { "$fcr1", 1, {0, {{{0, 0}}}}, 0, 0 },
519214571Sdim  { "$ccr1", 1, {0, {{{0, 0}}}}, 0, 0 },
520214571Sdim  { "$cerr", 15, {0, {{{0, 0}}}}, 0, 0 },
521214571Sdim  { "$fcr15", 15, {0, {{{0, 0}}}}, 0, 0 },
522214571Sdim  { "$ccr15", 15, {0, {{{0, 0}}}}, 0, 0 }
523214571Sdim};
524214571Sdim
525214571SdimCGEN_KEYWORD mep_cgen_opval_h_ccr_fmax =
526214571Sdim{
527214571Sdim  & mep_cgen_opval_h_ccr_fmax_entries[0],
528214571Sdim  9,
529214571Sdim  0, 0, 0, 0, ""
530214571Sdim};
531214571Sdim
532214571Sdim
533214571Sdim/* The hardware table.  */
534214571Sdim
535214571Sdim#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
536214571Sdim#define A(a) (1 << CGEN_HW_##a)
537214571Sdim#else
538214571Sdim#define A(a) (1 << CGEN_HW_/**/a)
539214571Sdim#endif
540214571Sdim
541214571Sdimconst CGEN_HW_ENTRY mep_cgen_hw_table[] =
542214571Sdim{
543214571Sdim  { "h-memory", HW_H_MEMORY, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
544214571Sdim  { "h-sint", HW_H_SINT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
545214571Sdim  { "h-uint", HW_H_UINT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
546214571Sdim  { "h-addr", HW_H_ADDR, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
547214571Sdim  { "h-iaddr", HW_H_IADDR, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
548214571Sdim  { "h-pc", HW_H_PC, CGEN_ASM_NONE, 0, { 0|A(PROFILE)|A(PC), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
549214571Sdim  { "h-gpr", HW_H_GPR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_gpr, { 0|A(PROFILE)|A(CACHE_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
550214571Sdim  { "h-csr", HW_H_CSR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_csr, { 0|A(PROFILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
551214571Sdim  { "h-cr64", HW_H_CR64, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_cr64, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
552214571Sdim  { "h-cr", HW_H_CR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_cr, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
553214571Sdim  { "h-ccr", HW_H_CCR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_ccr, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
554214571Sdim  { "h-cr-fmax", HW_H_CR_FMAX, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_cr_fmax, { 0|A(IS_FLOAT)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
555214571Sdim  { "h-ccr-fmax", HW_H_CCR_FMAX, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_ccr_fmax, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
556214571Sdim  { "h-fmax-compare-i-p", HW_H_FMAX_COMPARE_I_P, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
557214571Sdim  { 0, 0, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }
558214571Sdim};
559214571Sdim
560214571Sdim#undef A
561214571Sdim
562214571Sdim
563214571Sdim/* The instruction field table.  */
564214571Sdim
565214571Sdim#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
566214571Sdim#define A(a) (1 << CGEN_IFLD_##a)
567214571Sdim#else
568214571Sdim#define A(a) (1 << CGEN_IFLD_/**/a)
569214571Sdim#endif
570214571Sdim
571214571Sdimconst CGEN_IFLD mep_cgen_ifld_table[] =
572214571Sdim{
573214571Sdim  { MEP_F_NIL, "f-nil", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } }  },
574214571Sdim  { MEP_F_ANYOF, "f-anyof", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } }  },
575214571Sdim  { MEP_F_MAJOR, "f-major", 0, 32, 0, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
576214571Sdim  { MEP_F_RN, "f-rn", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
577214571Sdim  { MEP_F_RN3, "f-rn3", 0, 32, 5, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
578214571Sdim  { MEP_F_RM, "f-rm", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
579214571Sdim  { MEP_F_RL, "f-rl", 0, 32, 12, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
580214571Sdim  { MEP_F_SUB2, "f-sub2", 0, 32, 14, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
581214571Sdim  { MEP_F_SUB3, "f-sub3", 0, 32, 13, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
582214571Sdim  { MEP_F_SUB4, "f-sub4", 0, 32, 12, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
583214571Sdim  { MEP_F_EXT, "f-ext", 0, 32, 16, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
584214571Sdim  { MEP_F_CRN, "f-crn", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
585214571Sdim  { MEP_F_CSRN_HI, "f-csrn-hi", 0, 32, 15, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
586214571Sdim  { MEP_F_CSRN_LO, "f-csrn-lo", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
587214571Sdim  { MEP_F_CSRN, "f-csrn", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
588214571Sdim  { MEP_F_CRNX_HI, "f-crnx-hi", 0, 32, 28, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
589214571Sdim  { MEP_F_CRNX_LO, "f-crnx-lo", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
590214571Sdim  { MEP_F_CRNX, "f-crnx", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
591214571Sdim  { MEP_F_0, "f-0", 0, 32, 0, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
592214571Sdim  { MEP_F_1, "f-1", 0, 32, 1, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
593214571Sdim  { MEP_F_2, "f-2", 0, 32, 2, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
594214571Sdim  { MEP_F_3, "f-3", 0, 32, 3, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
595214571Sdim  { MEP_F_4, "f-4", 0, 32, 4, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
596214571Sdim  { MEP_F_5, "f-5", 0, 32, 5, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
597214571Sdim  { MEP_F_6, "f-6", 0, 32, 6, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
598214571Sdim  { MEP_F_7, "f-7", 0, 32, 7, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
599214571Sdim  { MEP_F_8, "f-8", 0, 32, 8, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
600214571Sdim  { MEP_F_9, "f-9", 0, 32, 9, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
601214571Sdim  { MEP_F_10, "f-10", 0, 32, 10, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
602214571Sdim  { MEP_F_11, "f-11", 0, 32, 11, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
603214571Sdim  { MEP_F_12, "f-12", 0, 32, 12, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
604214571Sdim  { MEP_F_13, "f-13", 0, 32, 13, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
605214571Sdim  { MEP_F_14, "f-14", 0, 32, 14, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
606214571Sdim  { MEP_F_15, "f-15", 0, 32, 15, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
607214571Sdim  { MEP_F_16, "f-16", 0, 32, 16, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
608214571Sdim  { MEP_F_17, "f-17", 0, 32, 17, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
609214571Sdim  { MEP_F_18, "f-18", 0, 32, 18, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
610214571Sdim  { MEP_F_19, "f-19", 0, 32, 19, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
611214571Sdim  { MEP_F_20, "f-20", 0, 32, 20, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
612214571Sdim  { MEP_F_21, "f-21", 0, 32, 21, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
613214571Sdim  { MEP_F_22, "f-22", 0, 32, 22, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
614214571Sdim  { MEP_F_23, "f-23", 0, 32, 23, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
615214571Sdim  { MEP_F_24, "f-24", 0, 32, 24, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
616214571Sdim  { MEP_F_25, "f-25", 0, 32, 25, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
617214571Sdim  { MEP_F_26, "f-26", 0, 32, 26, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
618214571Sdim  { MEP_F_27, "f-27", 0, 32, 27, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
619214571Sdim  { MEP_F_28, "f-28", 0, 32, 28, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
620214571Sdim  { MEP_F_29, "f-29", 0, 32, 29, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
621214571Sdim  { MEP_F_30, "f-30", 0, 32, 30, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
622214571Sdim  { MEP_F_31, "f-31", 0, 32, 31, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } }  },
623214571Sdim  { MEP_F_8S8A2, "f-8s8a2", 0, 32, 8, 7, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
624214571Sdim  { MEP_F_12S4A2, "f-12s4a2", 0, 32, 4, 11, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
625214571Sdim  { MEP_F_17S16A2, "f-17s16a2", 0, 32, 16, 16, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
626214571Sdim  { MEP_F_24S5A2N_HI, "f-24s5a2n-hi", 0, 32, 16, 16, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
627214571Sdim  { MEP_F_24S5A2N_LO, "f-24s5a2n-lo", 0, 32, 5, 7, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
628214571Sdim  { MEP_F_24S5A2N, "f-24s5a2n", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
629214571Sdim  { MEP_F_24U5A2N_HI, "f-24u5a2n-hi", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
630214571Sdim  { MEP_F_24U5A2N_LO, "f-24u5a2n-lo", 0, 32, 5, 7, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
631214571Sdim  { MEP_F_24U5A2N, "f-24u5a2n", 0, 0, 0, 0,{ 0|A(ABS_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
632214571Sdim  { MEP_F_2U6, "f-2u6", 0, 32, 6, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
633214571Sdim  { MEP_F_7U9, "f-7u9", 0, 32, 9, 7, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
634214571Sdim  { MEP_F_7U9A2, "f-7u9a2", 0, 32, 9, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
635214571Sdim  { MEP_F_7U9A4, "f-7u9a4", 0, 32, 9, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
636214571Sdim  { MEP_F_16S16, "f-16s16", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
637214571Sdim  { MEP_F_2U10, "f-2u10", 0, 32, 10, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
638214571Sdim  { MEP_F_3U5, "f-3u5", 0, 32, 5, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
639214571Sdim  { MEP_F_4U8, "f-4u8", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
640214571Sdim  { MEP_F_5U8, "f-5u8", 0, 32, 8, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
641214571Sdim  { MEP_F_5U24, "f-5u24", 0, 32, 24, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
642214571Sdim  { MEP_F_6S8, "f-6s8", 0, 32, 8, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
643214571Sdim  { MEP_F_8S8, "f-8s8", 0, 32, 8, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
644214571Sdim  { MEP_F_16U16, "f-16u16", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
645214571Sdim  { MEP_F_12U16, "f-12u16", 0, 32, 16, 12, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
646214571Sdim  { MEP_F_3U29, "f-3u29", 0, 32, 29, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
647214571Sdim  { MEP_F_8S24, "f-8s24", 0, 32, 24, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
648214571Sdim  { MEP_F_8S24A2, "f-8s24a2", 0, 32, 24, 7, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
649214571Sdim  { MEP_F_8S24A4, "f-8s24a4", 0, 32, 24, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
650214571Sdim  { MEP_F_8S24A8, "f-8s24a8", 0, 32, 24, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
651214571Sdim  { MEP_F_24U8A4N_HI, "f-24u8a4n-hi", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
652214571Sdim  { MEP_F_24U8A4N_LO, "f-24u8a4n-lo", 0, 32, 8, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
653214571Sdim  { MEP_F_24U8A4N, "f-24u8a4n", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
654214571Sdim  { MEP_F_24U8N_HI, "f-24u8n-hi", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
655214571Sdim  { MEP_F_24U8N_LO, "f-24u8n-lo", 0, 32, 8, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
656214571Sdim  { MEP_F_24U8N, "f-24u8n", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
657214571Sdim  { MEP_F_24U4N_HI, "f-24u4n-hi", 0, 32, 4, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
658214571Sdim  { MEP_F_24U4N_LO, "f-24u4n-lo", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
659214571Sdim  { MEP_F_24U4N, "f-24u4n", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
660214571Sdim  { MEP_F_CALLNUM, "f-callnum", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
661214571Sdim  { MEP_F_CCRN_HI, "f-ccrn-hi", 0, 32, 28, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
662214571Sdim  { MEP_F_CCRN_LO, "f-ccrn-lo", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
663214571Sdim  { MEP_F_CCRN, "f-ccrn", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } }  },
664214571Sdim  { MEP_F_FMAX_0_4, "f-fmax-0-4", 0, 32, 0, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
665214571Sdim  { MEP_F_FMAX_4_4, "f-fmax-4-4", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
666214571Sdim  { MEP_F_FMAX_8_4, "f-fmax-8-4", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
667214571Sdim  { MEP_F_FMAX_12_4, "f-fmax-12-4", 0, 32, 12, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
668214571Sdim  { MEP_F_FMAX_16_4, "f-fmax-16-4", 0, 32, 16, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
669214571Sdim  { MEP_F_FMAX_20_4, "f-fmax-20-4", 0, 32, 20, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
670214571Sdim  { MEP_F_FMAX_24_4, "f-fmax-24-4", 0, 32, 24, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
671214571Sdim  { MEP_F_FMAX_28_1, "f-fmax-28-1", 0, 32, 28, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
672214571Sdim  { MEP_F_FMAX_29_1, "f-fmax-29-1", 0, 32, 29, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
673214571Sdim  { MEP_F_FMAX_30_1, "f-fmax-30-1", 0, 32, 30, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
674214571Sdim  { MEP_F_FMAX_31_1, "f-fmax-31-1", 0, 32, 31, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
675214571Sdim  { MEP_F_FMAX_FRD, "f-fmax-frd", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
676214571Sdim  { MEP_F_FMAX_FRN, "f-fmax-frn", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
677214571Sdim  { MEP_F_FMAX_FRM, "f-fmax-frm", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
678214571Sdim  { MEP_F_FMAX_RM, "f-fmax-rm", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } }  },
679214571Sdim  { 0, 0, 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }
680214571Sdim};
681214571Sdim
682214571Sdim#undef A
683214571Sdim
684214571Sdim
685214571Sdim
686214571Sdim/* multi ifield declarations */
687214571Sdim
688214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CSRN_MULTI_IFIELD [];
689214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CRNX_MULTI_IFIELD [];
690214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24S5A2N_MULTI_IFIELD [];
691214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U5A2N_MULTI_IFIELD [];
692214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U8A4N_MULTI_IFIELD [];
693214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U8N_MULTI_IFIELD [];
694214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U4N_MULTI_IFIELD [];
695214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CALLNUM_MULTI_IFIELD [];
696214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CCRN_MULTI_IFIELD [];
697214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRD_MULTI_IFIELD [];
698214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRN_MULTI_IFIELD [];
699214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRM_MULTI_IFIELD [];
700214571Sdim
701214571Sdim
702214571Sdim/* multi ifield definitions */
703214571Sdim
704214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CSRN_MULTI_IFIELD [] =
705214571Sdim{
706214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CSRN_HI] } },
707214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CSRN_LO] } },
708214571Sdim    { 0, { (const PTR) 0 } }
709214571Sdim};
710214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CRNX_MULTI_IFIELD [] =
711214571Sdim{
712214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRNX_HI] } },
713214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRNX_LO] } },
714214571Sdim    { 0, { (const PTR) 0 } }
715214571Sdim};
716214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24S5A2N_MULTI_IFIELD [] =
717214571Sdim{
718214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24S5A2N_HI] } },
719214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24S5A2N_LO] } },
720214571Sdim    { 0, { (const PTR) 0 } }
721214571Sdim};
722214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U5A2N_MULTI_IFIELD [] =
723214571Sdim{
724214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U5A2N_HI] } },
725214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U5A2N_LO] } },
726214571Sdim    { 0, { (const PTR) 0 } }
727214571Sdim};
728214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U8A4N_MULTI_IFIELD [] =
729214571Sdim{
730214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8A4N_HI] } },
731214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8A4N_LO] } },
732214571Sdim    { 0, { (const PTR) 0 } }
733214571Sdim};
734214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U8N_MULTI_IFIELD [] =
735214571Sdim{
736214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8N_HI] } },
737214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8N_LO] } },
738214571Sdim    { 0, { (const PTR) 0 } }
739214571Sdim};
740214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_24U4N_MULTI_IFIELD [] =
741214571Sdim{
742214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U4N_HI] } },
743214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U4N_LO] } },
744214571Sdim    { 0, { (const PTR) 0 } }
745214571Sdim};
746214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CALLNUM_MULTI_IFIELD [] =
747214571Sdim{
748214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_5] } },
749214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_6] } },
750214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7] } },
751214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_11] } },
752214571Sdim    { 0, { (const PTR) 0 } }
753214571Sdim};
754214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_CCRN_MULTI_IFIELD [] =
755214571Sdim{
756214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CCRN_HI] } },
757214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CCRN_LO] } },
758214571Sdim    { 0, { (const PTR) 0 } }
759214571Sdim};
760214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRD_MULTI_IFIELD [] =
761214571Sdim{
762214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_28_1] } },
763214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_4_4] } },
764214571Sdim    { 0, { (const PTR) 0 } }
765214571Sdim};
766214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRN_MULTI_IFIELD [] =
767214571Sdim{
768214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_29_1] } },
769214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_20_4] } },
770214571Sdim    { 0, { (const PTR) 0 } }
771214571Sdim};
772214571Sdimconst CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRM_MULTI_IFIELD [] =
773214571Sdim{
774214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_30_1] } },
775214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_24_4] } },
776214571Sdim    { 0, { (const PTR) 0 } }
777214571Sdim};
778214571Sdim
779214571Sdim/* The operand table.  */
780214571Sdim
781214571Sdim#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
782214571Sdim#define A(a) (1 << CGEN_OPERAND_##a)
783214571Sdim#else
784214571Sdim#define A(a) (1 << CGEN_OPERAND_/**/a)
785214571Sdim#endif
786214571Sdim#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
787214571Sdim#define OPERAND(op) MEP_OPERAND_##op
788214571Sdim#else
789214571Sdim#define OPERAND(op) MEP_OPERAND_/**/op
790214571Sdim#endif
791214571Sdim
792214571Sdimconst CGEN_OPERAND mep_cgen_operand_table[] =
793214571Sdim{
794214571Sdim/* pc: program counter */
795214571Sdim  { "pc", MEP_OPERAND_PC, HW_H_PC, 0, 0,
796214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_NIL] } },
797214571Sdim    { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
798214571Sdim/* r0: register 0 */
799214571Sdim  { "r0", MEP_OPERAND_R0, HW_H_GPR, 0, 0,
800214571Sdim    { 0, { (const PTR) 0 } },
801214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
802214571Sdim/* rn: register Rn */
803214571Sdim  { "rn", MEP_OPERAND_RN, HW_H_GPR, 4, 4,
804214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
805214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
806214571Sdim/* rm: register Rm */
807214571Sdim  { "rm", MEP_OPERAND_RM, HW_H_GPR, 8, 4,
808214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RM] } },
809214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
810214571Sdim/* rl: register Rl */
811214571Sdim  { "rl", MEP_OPERAND_RL, HW_H_GPR, 12, 4,
812214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RL] } },
813214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
814214571Sdim/* rn3: register 0-7 */
815214571Sdim  { "rn3", MEP_OPERAND_RN3, HW_H_GPR, 5, 3,
816214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
817214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
818214571Sdim/* rma: register Rm holding pointer */
819214571Sdim  { "rma", MEP_OPERAND_RMA, HW_H_GPR, 8, 4,
820214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RM] } },
821214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_POINTER, 0 } }, { { 1, 0 } } } }  },
822214571Sdim/* rnc: register Rn holding char */
823214571Sdim  { "rnc", MEP_OPERAND_RNC, HW_H_GPR, 4, 4,
824214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
825214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CHAR, 0 } }, { { 1, 0 } } } }  },
826214571Sdim/* rnuc: register Rn holding unsigned char */
827214571Sdim  { "rnuc", MEP_OPERAND_RNUC, HW_H_GPR, 4, 4,
828214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
829214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_UCHAR, 0 } }, { { 1, 0 } } } }  },
830214571Sdim/* rns: register Rn holding short */
831214571Sdim  { "rns", MEP_OPERAND_RNS, HW_H_GPR, 4, 4,
832214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
833214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_SHORT, 0 } }, { { 1, 0 } } } }  },
834214571Sdim/* rnus: register Rn holding unsigned short */
835214571Sdim  { "rnus", MEP_OPERAND_RNUS, HW_H_GPR, 4, 4,
836214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
837214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_USHORT, 0 } }, { { 1, 0 } } } }  },
838214571Sdim/* rnl: register Rn holding long */
839214571Sdim  { "rnl", MEP_OPERAND_RNL, HW_H_GPR, 4, 4,
840214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
841214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
842214571Sdim/* rnul: register Rn holding unsigned  long */
843214571Sdim  { "rnul", MEP_OPERAND_RNUL, HW_H_GPR, 4, 4,
844214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
845214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_ULONG, 0 } }, { { 1, 0 } } } }  },
846214571Sdim/* rn3c: register 0-7 holding unsigned char */
847214571Sdim  { "rn3c", MEP_OPERAND_RN3C, HW_H_GPR, 5, 3,
848214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
849214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CHAR, 0 } }, { { 1, 0 } } } }  },
850214571Sdim/* rn3uc: register 0-7 holding byte */
851214571Sdim  { "rn3uc", MEP_OPERAND_RN3UC, HW_H_GPR, 5, 3,
852214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
853214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_UCHAR, 0 } }, { { 1, 0 } } } }  },
854214571Sdim/* rn3s: register 0-7 holding unsigned short */
855214571Sdim  { "rn3s", MEP_OPERAND_RN3S, HW_H_GPR, 5, 3,
856214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
857214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_SHORT, 0 } }, { { 1, 0 } } } }  },
858214571Sdim/* rn3us: register 0-7 holding short */
859214571Sdim  { "rn3us", MEP_OPERAND_RN3US, HW_H_GPR, 5, 3,
860214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
861214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_USHORT, 0 } }, { { 1, 0 } } } }  },
862214571Sdim/* rn3l: register 0-7 holding unsigned long */
863214571Sdim  { "rn3l", MEP_OPERAND_RN3L, HW_H_GPR, 5, 3,
864214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
865214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
866214571Sdim/* rn3ul: register 0-7 holding long */
867214571Sdim  { "rn3ul", MEP_OPERAND_RN3UL, HW_H_GPR, 5, 3,
868214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
869214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_ULONG, 0 } }, { { 1, 0 } } } }  },
870214571Sdim/* lp: link pointer */
871214571Sdim  { "lp", MEP_OPERAND_LP, HW_H_CSR, 0, 0,
872214571Sdim    { 0, { (const PTR) 0 } },
873214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
874214571Sdim/* sar: shift amount register */
875214571Sdim  { "sar", MEP_OPERAND_SAR, HW_H_CSR, 0, 0,
876214571Sdim    { 0, { (const PTR) 0 } },
877214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
878214571Sdim/* hi: high result */
879214571Sdim  { "hi", MEP_OPERAND_HI, HW_H_CSR, 0, 0,
880214571Sdim    { 0, { (const PTR) 0 } },
881214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
882214571Sdim/* lo: low result */
883214571Sdim  { "lo", MEP_OPERAND_LO, HW_H_CSR, 0, 0,
884214571Sdim    { 0, { (const PTR) 0 } },
885214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
886214571Sdim/* mb0: modulo begin register 0 */
887214571Sdim  { "mb0", MEP_OPERAND_MB0, HW_H_CSR, 0, 0,
888214571Sdim    { 0, { (const PTR) 0 } },
889214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
890214571Sdim/* me0: modulo end register 0 */
891214571Sdim  { "me0", MEP_OPERAND_ME0, HW_H_CSR, 0, 0,
892214571Sdim    { 0, { (const PTR) 0 } },
893214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
894214571Sdim/* mb1: modulo begin register 1 */
895214571Sdim  { "mb1", MEP_OPERAND_MB1, HW_H_CSR, 0, 0,
896214571Sdim    { 0, { (const PTR) 0 } },
897214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
898214571Sdim/* me1: modulo end register 1 */
899214571Sdim  { "me1", MEP_OPERAND_ME1, HW_H_CSR, 0, 0,
900214571Sdim    { 0, { (const PTR) 0 } },
901214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
902214571Sdim/* psw: program status word */
903214571Sdim  { "psw", MEP_OPERAND_PSW, HW_H_CSR, 0, 0,
904214571Sdim    { 0, { (const PTR) 0 } },
905214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
906214571Sdim/* epc: exception prog counter */
907214571Sdim  { "epc", MEP_OPERAND_EPC, HW_H_CSR, 0, 0,
908214571Sdim    { 0, { (const PTR) 0 } },
909214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
910214571Sdim/* exc: exception cause */
911214571Sdim  { "exc", MEP_OPERAND_EXC, HW_H_CSR, 0, 0,
912214571Sdim    { 0, { (const PTR) 0 } },
913214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
914214571Sdim/* npc: nmi program counter */
915214571Sdim  { "npc", MEP_OPERAND_NPC, HW_H_CSR, 0, 0,
916214571Sdim    { 0, { (const PTR) 0 } },
917214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
918214571Sdim/* dbg: debug register */
919214571Sdim  { "dbg", MEP_OPERAND_DBG, HW_H_CSR, 0, 0,
920214571Sdim    { 0, { (const PTR) 0 } },
921214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
922214571Sdim/* depc: debug exception pc */
923214571Sdim  { "depc", MEP_OPERAND_DEPC, HW_H_CSR, 0, 0,
924214571Sdim    { 0, { (const PTR) 0 } },
925214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
926214571Sdim/* opt: option register */
927214571Sdim  { "opt", MEP_OPERAND_OPT, HW_H_CSR, 0, 0,
928214571Sdim    { 0, { (const PTR) 0 } },
929214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
930214571Sdim/* r1: register 1 */
931214571Sdim  { "r1", MEP_OPERAND_R1, HW_H_GPR, 0, 0,
932214571Sdim    { 0, { (const PTR) 0 } },
933214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
934214571Sdim/* tp: tiny data area pointer */
935214571Sdim  { "tp", MEP_OPERAND_TP, HW_H_GPR, 0, 0,
936214571Sdim    { 0, { (const PTR) 0 } },
937214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
938214571Sdim/* sp: stack pointer */
939214571Sdim  { "sp", MEP_OPERAND_SP, HW_H_GPR, 0, 0,
940214571Sdim    { 0, { (const PTR) 0 } },
941214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
942214571Sdim/* tpr: comment */
943214571Sdim  { "tpr", MEP_OPERAND_TPR, HW_H_GPR, 0, 0,
944214571Sdim    { 0, { (const PTR) 0 } },
945214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
946214571Sdim/* spr: comment */
947214571Sdim  { "spr", MEP_OPERAND_SPR, HW_H_GPR, 0, 0,
948214571Sdim    { 0, { (const PTR) 0 } },
949214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
950214571Sdim/* csrn: control/special register */
951214571Sdim  { "csrn", MEP_OPERAND_CSRN, HW_H_CSR, 8, 5,
952214571Sdim    { 2, { (const PTR) &MEP_F_CSRN_MULTI_IFIELD[0] } },
953214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_REGNUM, 0 } }, { { 1, 0 } } } }  },
954214571Sdim/* csrn-idx: control/special reg idx */
955214571Sdim  { "csrn-idx", MEP_OPERAND_CSRN_IDX, HW_H_UINT, 8, 5,
956214571Sdim    { 2, { (const PTR) &MEP_F_CSRN_MULTI_IFIELD[0] } },
957214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
958214571Sdim/* crn64: copro Rn (64-bit) */
959214571Sdim  { "crn64", MEP_OPERAND_CRN64, HW_H_CR64, 4, 4,
960214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRN] } },
961214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } }  },
962214571Sdim/* crn: copro Rn (32-bit) */
963214571Sdim  { "crn", MEP_OPERAND_CRN, HW_H_CR, 4, 4,
964214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRN] } },
965214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } }  },
966214571Sdim/* crnx64: copro Rn (0-31, 64-bit) */
967214571Sdim  { "crnx64", MEP_OPERAND_CRNX64, HW_H_CR64, 4, 5,
968214571Sdim    { 2, { (const PTR) &MEP_F_CRNX_MULTI_IFIELD[0] } },
969214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } }  },
970214571Sdim/* crnx: copro Rn (0-31, 32-bit) */
971214571Sdim  { "crnx", MEP_OPERAND_CRNX, HW_H_CR, 4, 5,
972214571Sdim    { 2, { (const PTR) &MEP_F_CRNX_MULTI_IFIELD[0] } },
973214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } }  },
974214571Sdim/* ccrn: copro control reg CCRn */
975214571Sdim  { "ccrn", MEP_OPERAND_CCRN, HW_H_CCR, 4, 6,
976214571Sdim    { 2, { (const PTR) &MEP_F_CCRN_MULTI_IFIELD[0] } },
977214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_REGNUM, 0 } }, { { 1, 0 } } } }  },
978214571Sdim/* cccc: copro flags */
979214571Sdim  { "cccc", MEP_OPERAND_CCCC, HW_H_UINT, 8, 4,
980214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RM] } },
981214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
982214571Sdim/* pcrel8a2: comment */
983214571Sdim  { "pcrel8a2", MEP_OPERAND_PCREL8A2, HW_H_SINT, 8, 7,
984214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S8A2] } },
985214571Sdim    { 0|A(RELAX)|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } }  },
986214571Sdim/* pcrel12a2: comment */
987214571Sdim  { "pcrel12a2", MEP_OPERAND_PCREL12A2, HW_H_SINT, 4, 11,
988214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_12S4A2] } },
989214571Sdim    { 0|A(RELAX)|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } }  },
990214571Sdim/* pcrel17a2: comment */
991214571Sdim  { "pcrel17a2", MEP_OPERAND_PCREL17A2, HW_H_SINT, 16, 16,
992214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_17S16A2] } },
993214571Sdim    { 0|A(RELAX)|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } }  },
994214571Sdim/* pcrel24a2: comment */
995214571Sdim  { "pcrel24a2", MEP_OPERAND_PCREL24A2, HW_H_SINT, 5, 23,
996214571Sdim    { 2, { (const PTR) &MEP_F_24S5A2N_MULTI_IFIELD[0] } },
997214571Sdim    { 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } }  },
998214571Sdim/* pcabs24a2: comment */
999214571Sdim  { "pcabs24a2", MEP_OPERAND_PCABS24A2, HW_H_UINT, 5, 23,
1000214571Sdim    { 2, { (const PTR) &MEP_F_24U5A2N_MULTI_IFIELD[0] } },
1001214571Sdim    { 0|A(ABS_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } }  },
1002214571Sdim/* sdisp16: comment */
1003214571Sdim  { "sdisp16", MEP_OPERAND_SDISP16, HW_H_SINT, 16, 16,
1004214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16S16] } },
1005214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1006214571Sdim/* simm16: comment */
1007214571Sdim  { "simm16", MEP_OPERAND_SIMM16, HW_H_SINT, 16, 16,
1008214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16S16] } },
1009214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1010214571Sdim/* uimm16: comment */
1011214571Sdim  { "uimm16", MEP_OPERAND_UIMM16, HW_H_UINT, 16, 16,
1012214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16U16] } },
1013214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1014214571Sdim/* code16: uci/dsp code (16 bits) */
1015214571Sdim  { "code16", MEP_OPERAND_CODE16, HW_H_UINT, 16, 16,
1016214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16U16] } },
1017214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1018214571Sdim/* udisp2: SSARB addend (2 bits) */
1019214571Sdim  { "udisp2", MEP_OPERAND_UDISP2, HW_H_SINT, 6, 2,
1020214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_2U6] } },
1021214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1022214571Sdim/* uimm2: interrupt (2 bits) */
1023214571Sdim  { "uimm2", MEP_OPERAND_UIMM2, HW_H_UINT, 10, 2,
1024214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_2U10] } },
1025214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1026214571Sdim/* simm6: add const (6 bits) */
1027214571Sdim  { "simm6", MEP_OPERAND_SIMM6, HW_H_SINT, 8, 6,
1028214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_6S8] } },
1029214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1030214571Sdim/* simm8: mov const (8 bits) */
1031214571Sdim  { "simm8", MEP_OPERAND_SIMM8, HW_H_SINT, 8, 8,
1032214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S8] } },
1033214571Sdim    { 0|A(RELOC_IMPLIES_OVERFLOW), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1034214571Sdim/* addr24a4: comment */
1035214571Sdim  { "addr24a4", MEP_OPERAND_ADDR24A4, HW_H_UINT, 8, 22,
1036214571Sdim    { 2, { (const PTR) &MEP_F_24U8A4N_MULTI_IFIELD[0] } },
1037214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } }  },
1038214571Sdim/* code24: coprocessor code */
1039214571Sdim  { "code24", MEP_OPERAND_CODE24, HW_H_UINT, 4, 24,
1040214571Sdim    { 2, { (const PTR) &MEP_F_24U4N_MULTI_IFIELD[0] } },
1041214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1042214571Sdim/* callnum: system call number */
1043214571Sdim  { "callnum", MEP_OPERAND_CALLNUM, HW_H_UINT, 5, 4,
1044214571Sdim    { 4, { (const PTR) &MEP_F_CALLNUM_MULTI_IFIELD[0] } },
1045214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1046214571Sdim/* uimm3: bit immediate (3 bits) */
1047214571Sdim  { "uimm3", MEP_OPERAND_UIMM3, HW_H_UINT, 5, 3,
1048214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_3U5] } },
1049214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1050214571Sdim/* uimm4: bCC const (4 bits) */
1051214571Sdim  { "uimm4", MEP_OPERAND_UIMM4, HW_H_UINT, 8, 4,
1052214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_4U8] } },
1053214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1054214571Sdim/* uimm5: bit/shift val (5 bits) */
1055214571Sdim  { "uimm5", MEP_OPERAND_UIMM5, HW_H_UINT, 8, 5,
1056214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_5U8] } },
1057214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1058214571Sdim/* udisp7: comment */
1059214571Sdim  { "udisp7", MEP_OPERAND_UDISP7, HW_H_UINT, 9, 7,
1060214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9] } },
1061214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1062214571Sdim/* udisp7a2: comment */
1063214571Sdim  { "udisp7a2", MEP_OPERAND_UDISP7A2, HW_H_UINT, 9, 6,
1064214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9A2] } },
1065214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 2, 0 } } } }  },
1066214571Sdim/* udisp7a4: comment */
1067214571Sdim  { "udisp7a4", MEP_OPERAND_UDISP7A4, HW_H_UINT, 9, 5,
1068214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9A4] } },
1069214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } }  },
1070214571Sdim/* uimm7a4: comment */
1071214571Sdim  { "uimm7a4", MEP_OPERAND_UIMM7A4, HW_H_UINT, 9, 5,
1072214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9A4] } },
1073214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } }  },
1074214571Sdim/* uimm24: immediate (24 bits) */
1075214571Sdim  { "uimm24", MEP_OPERAND_UIMM24, HW_H_UINT, 8, 24,
1076214571Sdim    { 2, { (const PTR) &MEP_F_24U8N_MULTI_IFIELD[0] } },
1077214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1078214571Sdim/* cimm4: cache immed'te (4 bits) */
1079214571Sdim  { "cimm4", MEP_OPERAND_CIMM4, HW_H_UINT, 4, 4,
1080214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
1081214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1082214571Sdim/* cimm5: clip immediate (5 bits) */
1083214571Sdim  { "cimm5", MEP_OPERAND_CIMM5, HW_H_UINT, 24, 5,
1084214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_5U24] } },
1085214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1086214571Sdim/* cdisp8: copro addend (8 bits) */
1087214571Sdim  { "cdisp8", MEP_OPERAND_CDISP8, HW_H_SINT, 24, 8,
1088214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24] } },
1089214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1090214571Sdim/* cdisp8a2: comment */
1091214571Sdim  { "cdisp8a2", MEP_OPERAND_CDISP8A2, HW_H_SINT, 24, 7,
1092214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24A2] } },
1093214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 2, 0 } } } }  },
1094214571Sdim/* cdisp8a4: comment */
1095214571Sdim  { "cdisp8a4", MEP_OPERAND_CDISP8A4, HW_H_SINT, 24, 6,
1096214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24A4] } },
1097214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } }  },
1098214571Sdim/* cdisp8a8: comment */
1099214571Sdim  { "cdisp8a8", MEP_OPERAND_CDISP8A8, HW_H_SINT, 24, 5,
1100214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24A8] } },
1101214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 8, 0 } } } }  },
1102214571Sdim/* zero: Zero operand */
1103214571Sdim  { "zero", MEP_OPERAND_ZERO, HW_H_SINT, 0, 0,
1104214571Sdim    { 0, { (const PTR) 0 } },
1105214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1106214571Sdim/* cp_flag: branch condition register */
1107214571Sdim  { "cp_flag", MEP_OPERAND_CP_FLAG, HW_H_CCR, 0, 0,
1108214571Sdim    { 0, { (const PTR) 0 } },
1109214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1110214571Sdim/* fmax-FRd: FRd */
1111214571Sdim  { "fmax-FRd", MEP_OPERAND_FMAX_FRD, HW_H_CR, 4, 5,
1112214571Sdim    { 2, { (const PTR) &MEP_F_FMAX_FRD_MULTI_IFIELD[0] } },
1113214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_FLOAT, 0 } }, { { 1, 0 } } } }  },
1114214571Sdim/* fmax-FRn: FRn */
1115214571Sdim  { "fmax-FRn", MEP_OPERAND_FMAX_FRN, HW_H_CR, 20, 5,
1116214571Sdim    { 2, { (const PTR) &MEP_F_FMAX_FRN_MULTI_IFIELD[0] } },
1117214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_FLOAT, 0 } }, { { 1, 0 } } } }  },
1118214571Sdim/* fmax-FRm: FRm */
1119214571Sdim  { "fmax-FRm", MEP_OPERAND_FMAX_FRM, HW_H_CR, 24, 5,
1120214571Sdim    { 2, { (const PTR) &MEP_F_FMAX_FRM_MULTI_IFIELD[0] } },
1121214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_FLOAT, 0 } }, { { 1, 0 } } } }  },
1122214571Sdim/* fmax-FRd-int: FRd as an integer */
1123214571Sdim  { "fmax-FRd-int", MEP_OPERAND_FMAX_FRD_INT, HW_H_CR, 4, 5,
1124214571Sdim    { 2, { (const PTR) &MEP_F_FMAX_FRD_MULTI_IFIELD[0] } },
1125214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_INT, 0 } }, { { 1, 0 } } } }  },
1126214571Sdim/* fmax-FRn-int: FRn as an integer */
1127214571Sdim  { "fmax-FRn-int", MEP_OPERAND_FMAX_FRN_INT, HW_H_CR, 20, 5,
1128214571Sdim    { 2, { (const PTR) &MEP_F_FMAX_FRN_MULTI_IFIELD[0] } },
1129214571Sdim    { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_INT, 0 } }, { { 1, 0 } } } }  },
1130214571Sdim/* fmax-CCRn: CCRn */
1131214571Sdim  { "fmax-CCRn", MEP_OPERAND_FMAX_CCRN, HW_H_CCR, 4, 4,
1132214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_4_4] } },
1133214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_REGNUM, 0 } }, { { 1, 0 } } } }  },
1134214571Sdim/* fmax-CIRR: CIRR */
1135214571Sdim  { "fmax-CIRR", MEP_OPERAND_FMAX_CIRR, HW_H_CCR, 0, 0,
1136214571Sdim    { 0, { (const PTR) 0 } },
1137214571Sdim    { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1138214571Sdim/* fmax-CBCR: CBCR */
1139214571Sdim  { "fmax-CBCR", MEP_OPERAND_FMAX_CBCR, HW_H_CCR, 0, 0,
1140214571Sdim    { 0, { (const PTR) 0 } },
1141214571Sdim    { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1142214571Sdim/* fmax-CERR: CERR */
1143214571Sdim  { "fmax-CERR", MEP_OPERAND_FMAX_CERR, HW_H_CCR, 0, 0,
1144214571Sdim    { 0, { (const PTR) 0 } },
1145214571Sdim    { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1146214571Sdim/* fmax-Rm: Rm */
1147214571Sdim  { "fmax-Rm", MEP_OPERAND_FMAX_RM, HW_H_GPR, 8, 4,
1148214571Sdim    { 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_RM] } },
1149214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1150214571Sdim/* fmax-Compare-i-p: flag */
1151214571Sdim  { "fmax-Compare-i-p", MEP_OPERAND_FMAX_COMPARE_I_P, HW_H_FMAX_COMPARE_I_P, 0, 0,
1152214571Sdim    { 0, { (const PTR) 0 } },
1153214571Sdim    { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } }  },
1154214571Sdim/* sentinel */
1155214571Sdim  { 0, 0, 0, 0, 0,
1156214571Sdim    { 0, { (const PTR) 0 } },
1157214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } }
1158214571Sdim};
1159214571Sdim
1160214571Sdim#undef A
1161214571Sdim
1162214571Sdim
1163214571Sdim/* The instruction table.  */
1164214571Sdim
1165214571Sdim#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
1166214571Sdim#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
1167214571Sdim#define A(a) (1 << CGEN_INSN_##a)
1168214571Sdim#else
1169214571Sdim#define A(a) (1 << CGEN_INSN_/**/a)
1170214571Sdim#endif
1171214571Sdim
1172214571Sdimstatic const CGEN_IBASE mep_cgen_insn_table[MAX_INSNS] =
1173214571Sdim{
1174214571Sdim  /* Special null first entry.
1175214571Sdim     A `num' value of zero is thus invalid.
1176214571Sdim     Also, the special `invalid' insn resides here.  */
1177214571Sdim  { 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } } },
1178214571Sdim/* sb $rnc,($rma) */
1179214571Sdim  {
1180214571Sdim    MEP_INSN_SB, "sb", "sb", 16,
1181214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1182214571Sdim  },
1183214571Sdim/* sh $rns,($rma) */
1184214571Sdim  {
1185214571Sdim    MEP_INSN_SH, "sh", "sh", 16,
1186214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1187214571Sdim  },
1188214571Sdim/* sw $rnl,($rma) */
1189214571Sdim  {
1190214571Sdim    MEP_INSN_SW, "sw", "sw", 16,
1191214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1192214571Sdim  },
1193214571Sdim/* lb $rnc,($rma) */
1194214571Sdim  {
1195214571Sdim    MEP_INSN_LB, "lb", "lb", 16,
1196214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1197214571Sdim  },
1198214571Sdim/* lh $rns,($rma) */
1199214571Sdim  {
1200214571Sdim    MEP_INSN_LH, "lh", "lh", 16,
1201214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1202214571Sdim  },
1203214571Sdim/* lw $rnl,($rma) */
1204214571Sdim  {
1205214571Sdim    MEP_INSN_LW, "lw", "lw", 16,
1206214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1207214571Sdim  },
1208214571Sdim/* lbu $rnuc,($rma) */
1209214571Sdim  {
1210214571Sdim    MEP_INSN_LBU, "lbu", "lbu", 16,
1211214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1212214571Sdim  },
1213214571Sdim/* lhu $rnus,($rma) */
1214214571Sdim  {
1215214571Sdim    MEP_INSN_LHU, "lhu", "lhu", 16,
1216214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1217214571Sdim  },
1218214571Sdim/* sw $rnl,$udisp7a4($spr) */
1219214571Sdim  {
1220214571Sdim    MEP_INSN_SW_SP, "sw-sp", "sw", 16,
1221214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1222214571Sdim  },
1223214571Sdim/* lw $rnl,$udisp7a4($spr) */
1224214571Sdim  {
1225214571Sdim    MEP_INSN_LW_SP, "lw-sp", "lw", 16,
1226214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1227214571Sdim  },
1228214571Sdim/* sb $rn3c,$udisp7($tpr) */
1229214571Sdim  {
1230214571Sdim    MEP_INSN_SB_TP, "sb-tp", "sb", 16,
1231214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1232214571Sdim  },
1233214571Sdim/* sh $rn3s,$udisp7a2($tpr) */
1234214571Sdim  {
1235214571Sdim    MEP_INSN_SH_TP, "sh-tp", "sh", 16,
1236214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1237214571Sdim  },
1238214571Sdim/* sw $rn3l,$udisp7a4($tpr) */
1239214571Sdim  {
1240214571Sdim    MEP_INSN_SW_TP, "sw-tp", "sw", 16,
1241214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1242214571Sdim  },
1243214571Sdim/* lb $rn3c,$udisp7($tpr) */
1244214571Sdim  {
1245214571Sdim    MEP_INSN_LB_TP, "lb-tp", "lb", 16,
1246214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1247214571Sdim  },
1248214571Sdim/* lh $rn3s,$udisp7a2($tpr) */
1249214571Sdim  {
1250214571Sdim    MEP_INSN_LH_TP, "lh-tp", "lh", 16,
1251214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1252214571Sdim  },
1253214571Sdim/* lw $rn3l,$udisp7a4($tpr) */
1254214571Sdim  {
1255214571Sdim    MEP_INSN_LW_TP, "lw-tp", "lw", 16,
1256214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1257214571Sdim  },
1258214571Sdim/* lbu $rn3uc,$udisp7($tpr) */
1259214571Sdim  {
1260214571Sdim    MEP_INSN_LBU_TP, "lbu-tp", "lbu", 16,
1261214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1262214571Sdim  },
1263214571Sdim/* lhu $rn3us,$udisp7a2($tpr) */
1264214571Sdim  {
1265214571Sdim    MEP_INSN_LHU_TP, "lhu-tp", "lhu", 16,
1266214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1267214571Sdim  },
1268214571Sdim/* sb $rnc,$sdisp16($rma) */
1269214571Sdim  {
1270214571Sdim    MEP_INSN_SB16, "sb16", "sb", 32,
1271214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1272214571Sdim  },
1273214571Sdim/* sh $rns,$sdisp16($rma) */
1274214571Sdim  {
1275214571Sdim    MEP_INSN_SH16, "sh16", "sh", 32,
1276214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1277214571Sdim  },
1278214571Sdim/* sw $rnl,$sdisp16($rma) */
1279214571Sdim  {
1280214571Sdim    MEP_INSN_SW16, "sw16", "sw", 32,
1281214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1282214571Sdim  },
1283214571Sdim/* lb $rnc,$sdisp16($rma) */
1284214571Sdim  {
1285214571Sdim    MEP_INSN_LB16, "lb16", "lb", 32,
1286214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1287214571Sdim  },
1288214571Sdim/* lh $rns,$sdisp16($rma) */
1289214571Sdim  {
1290214571Sdim    MEP_INSN_LH16, "lh16", "lh", 32,
1291214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1292214571Sdim  },
1293214571Sdim/* lw $rnl,$sdisp16($rma) */
1294214571Sdim  {
1295214571Sdim    MEP_INSN_LW16, "lw16", "lw", 32,
1296214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1297214571Sdim  },
1298214571Sdim/* lbu $rnuc,$sdisp16($rma) */
1299214571Sdim  {
1300214571Sdim    MEP_INSN_LBU16, "lbu16", "lbu", 32,
1301214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1302214571Sdim  },
1303214571Sdim/* lhu $rnus,$sdisp16($rma) */
1304214571Sdim  {
1305214571Sdim    MEP_INSN_LHU16, "lhu16", "lhu", 32,
1306214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1307214571Sdim  },
1308214571Sdim/* sw $rnl,($addr24a4) */
1309214571Sdim  {
1310214571Sdim    MEP_INSN_SW24, "sw24", "sw", 32,
1311214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1312214571Sdim  },
1313214571Sdim/* lw $rnl,($addr24a4) */
1314214571Sdim  {
1315214571Sdim    MEP_INSN_LW24, "lw24", "lw", 32,
1316214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1317214571Sdim  },
1318214571Sdim/* extb $rn */
1319214571Sdim  {
1320214571Sdim    MEP_INSN_EXTB, "extb", "extb", 16,
1321214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1322214571Sdim  },
1323214571Sdim/* exth $rn */
1324214571Sdim  {
1325214571Sdim    MEP_INSN_EXTH, "exth", "exth", 16,
1326214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1327214571Sdim  },
1328214571Sdim/* extub $rn */
1329214571Sdim  {
1330214571Sdim    MEP_INSN_EXTUB, "extub", "extub", 16,
1331214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1332214571Sdim  },
1333214571Sdim/* extuh $rn */
1334214571Sdim  {
1335214571Sdim    MEP_INSN_EXTUH, "extuh", "extuh", 16,
1336214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1337214571Sdim  },
1338214571Sdim/* ssarb $udisp2($rm) */
1339214571Sdim  {
1340214571Sdim    MEP_INSN_SSARB, "ssarb", "ssarb", 16,
1341214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1342214571Sdim  },
1343214571Sdim/* mov $rn,$rm */
1344214571Sdim  {
1345214571Sdim    MEP_INSN_MOV, "mov", "mov", 16,
1346214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1347214571Sdim  },
1348214571Sdim/* mov $rn,$simm8 */
1349214571Sdim  {
1350214571Sdim    MEP_INSN_MOVI8, "movi8", "mov", 16,
1351214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1352214571Sdim  },
1353214571Sdim/* mov $rn,$simm16 */
1354214571Sdim  {
1355214571Sdim    MEP_INSN_MOVI16, "movi16", "mov", 32,
1356214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1357214571Sdim  },
1358214571Sdim/* movu $rn3,$uimm24 */
1359214571Sdim  {
1360214571Sdim    MEP_INSN_MOVU24, "movu24", "movu", 32,
1361214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1362214571Sdim  },
1363214571Sdim/* movu $rn,$uimm16 */
1364214571Sdim  {
1365214571Sdim    MEP_INSN_MOVU16, "movu16", "movu", 32,
1366214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1367214571Sdim  },
1368214571Sdim/* movh $rn,$uimm16 */
1369214571Sdim  {
1370214571Sdim    MEP_INSN_MOVH, "movh", "movh", 32,
1371214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1372214571Sdim  },
1373214571Sdim/* add3 $rl,$rn,$rm */
1374214571Sdim  {
1375214571Sdim    MEP_INSN_ADD3, "add3", "add3", 16,
1376214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1377214571Sdim  },
1378214571Sdim/* add $rn,$simm6 */
1379214571Sdim  {
1380214571Sdim    MEP_INSN_ADD, "add", "add", 16,
1381214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1382214571Sdim  },
1383214571Sdim/* add3 $rn,$spr,$uimm7a4 */
1384214571Sdim  {
1385214571Sdim    MEP_INSN_ADD3I, "add3i", "add3", 16,
1386214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1387214571Sdim  },
1388214571Sdim/* advck3 \$0,$rn,$rm */
1389214571Sdim  {
1390214571Sdim    MEP_INSN_ADVCK3, "advck3", "advck3", 16,
1391214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1392214571Sdim  },
1393214571Sdim/* sub $rn,$rm */
1394214571Sdim  {
1395214571Sdim    MEP_INSN_SUB, "sub", "sub", 16,
1396214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1397214571Sdim  },
1398214571Sdim/* sbvck3 \$0,$rn,$rm */
1399214571Sdim  {
1400214571Sdim    MEP_INSN_SBVCK3, "sbvck3", "sbvck3", 16,
1401214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1402214571Sdim  },
1403214571Sdim/* neg $rn,$rm */
1404214571Sdim  {
1405214571Sdim    MEP_INSN_NEG, "neg", "neg", 16,
1406214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1407214571Sdim  },
1408214571Sdim/* slt3 \$0,$rn,$rm */
1409214571Sdim  {
1410214571Sdim    MEP_INSN_SLT3, "slt3", "slt3", 16,
1411214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1412214571Sdim  },
1413214571Sdim/* sltu3 \$0,$rn,$rm */
1414214571Sdim  {
1415214571Sdim    MEP_INSN_SLTU3, "sltu3", "sltu3", 16,
1416214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1417214571Sdim  },
1418214571Sdim/* slt3 \$0,$rn,$uimm5 */
1419214571Sdim  {
1420214571Sdim    MEP_INSN_SLT3I, "slt3i", "slt3", 16,
1421214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1422214571Sdim  },
1423214571Sdim/* sltu3 \$0,$rn,$uimm5 */
1424214571Sdim  {
1425214571Sdim    MEP_INSN_SLTU3I, "sltu3i", "sltu3", 16,
1426214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1427214571Sdim  },
1428214571Sdim/* sl1ad3 \$0,$rn,$rm */
1429214571Sdim  {
1430214571Sdim    MEP_INSN_SL1AD3, "sl1ad3", "sl1ad3", 16,
1431214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1432214571Sdim  },
1433214571Sdim/* sl2ad3 \$0,$rn,$rm */
1434214571Sdim  {
1435214571Sdim    MEP_INSN_SL2AD3, "sl2ad3", "sl2ad3", 16,
1436214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1437214571Sdim  },
1438214571Sdim/* add3 $rn,$rm,$simm16 */
1439214571Sdim  {
1440214571Sdim    MEP_INSN_ADD3X, "add3x", "add3", 32,
1441214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1442214571Sdim  },
1443214571Sdim/* slt3 $rn,$rm,$simm16 */
1444214571Sdim  {
1445214571Sdim    MEP_INSN_SLT3X, "slt3x", "slt3", 32,
1446214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1447214571Sdim  },
1448214571Sdim/* sltu3 $rn,$rm,$uimm16 */
1449214571Sdim  {
1450214571Sdim    MEP_INSN_SLTU3X, "sltu3x", "sltu3", 32,
1451214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1452214571Sdim  },
1453214571Sdim/* or $rn,$rm */
1454214571Sdim  {
1455214571Sdim    MEP_INSN_OR, "or", "or", 16,
1456214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1457214571Sdim  },
1458214571Sdim/* and $rn,$rm */
1459214571Sdim  {
1460214571Sdim    MEP_INSN_AND, "and", "and", 16,
1461214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1462214571Sdim  },
1463214571Sdim/* xor $rn,$rm */
1464214571Sdim  {
1465214571Sdim    MEP_INSN_XOR, "xor", "xor", 16,
1466214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1467214571Sdim  },
1468214571Sdim/* nor $rn,$rm */
1469214571Sdim  {
1470214571Sdim    MEP_INSN_NOR, "nor", "nor", 16,
1471214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1472214571Sdim  },
1473214571Sdim/* or3 $rn,$rm,$uimm16 */
1474214571Sdim  {
1475214571Sdim    MEP_INSN_OR3, "or3", "or3", 32,
1476214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1477214571Sdim  },
1478214571Sdim/* and3 $rn,$rm,$uimm16 */
1479214571Sdim  {
1480214571Sdim    MEP_INSN_AND3, "and3", "and3", 32,
1481214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1482214571Sdim  },
1483214571Sdim/* xor3 $rn,$rm,$uimm16 */
1484214571Sdim  {
1485214571Sdim    MEP_INSN_XOR3, "xor3", "xor3", 32,
1486214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1487214571Sdim  },
1488214571Sdim/* sra $rn,$rm */
1489214571Sdim  {
1490214571Sdim    MEP_INSN_SRA, "sra", "sra", 16,
1491214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1492214571Sdim  },
1493214571Sdim/* srl $rn,$rm */
1494214571Sdim  {
1495214571Sdim    MEP_INSN_SRL, "srl", "srl", 16,
1496214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1497214571Sdim  },
1498214571Sdim/* sll $rn,$rm */
1499214571Sdim  {
1500214571Sdim    MEP_INSN_SLL, "sll", "sll", 16,
1501214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1502214571Sdim  },
1503214571Sdim/* sra $rn,$uimm5 */
1504214571Sdim  {
1505214571Sdim    MEP_INSN_SRAI, "srai", "sra", 16,
1506214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1507214571Sdim  },
1508214571Sdim/* srl $rn,$uimm5 */
1509214571Sdim  {
1510214571Sdim    MEP_INSN_SRLI, "srli", "srl", 16,
1511214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1512214571Sdim  },
1513214571Sdim/* sll $rn,$uimm5 */
1514214571Sdim  {
1515214571Sdim    MEP_INSN_SLLI, "slli", "sll", 16,
1516214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1517214571Sdim  },
1518214571Sdim/* sll3 \$0,$rn,$uimm5 */
1519214571Sdim  {
1520214571Sdim    MEP_INSN_SLL3, "sll3", "sll3", 16,
1521214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1522214571Sdim  },
1523214571Sdim/* fsft $rn,$rm */
1524214571Sdim  {
1525214571Sdim    MEP_INSN_FSFT, "fsft", "fsft", 16,
1526214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1527214571Sdim  },
1528214571Sdim/* bra $pcrel12a2 */
1529214571Sdim  {
1530214571Sdim    MEP_INSN_BRA, "bra", "bra", 16,
1531214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1532214571Sdim  },
1533214571Sdim/* beqz $rn,$pcrel8a2 */
1534214571Sdim  {
1535214571Sdim    MEP_INSN_BEQZ, "beqz", "beqz", 16,
1536214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1537214571Sdim  },
1538214571Sdim/* bnez $rn,$pcrel8a2 */
1539214571Sdim  {
1540214571Sdim    MEP_INSN_BNEZ, "bnez", "bnez", 16,
1541214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1542214571Sdim  },
1543214571Sdim/* beqi $rn,$uimm4,$pcrel17a2 */
1544214571Sdim  {
1545214571Sdim    MEP_INSN_BEQI, "beqi", "beqi", 32,
1546214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1547214571Sdim  },
1548214571Sdim/* bnei $rn,$uimm4,$pcrel17a2 */
1549214571Sdim  {
1550214571Sdim    MEP_INSN_BNEI, "bnei", "bnei", 32,
1551214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1552214571Sdim  },
1553214571Sdim/* blti $rn,$uimm4,$pcrel17a2 */
1554214571Sdim  {
1555214571Sdim    MEP_INSN_BLTI, "blti", "blti", 32,
1556214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1557214571Sdim  },
1558214571Sdim/* bgei $rn,$uimm4,$pcrel17a2 */
1559214571Sdim  {
1560214571Sdim    MEP_INSN_BGEI, "bgei", "bgei", 32,
1561214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1562214571Sdim  },
1563214571Sdim/* beq $rn,$rm,$pcrel17a2 */
1564214571Sdim  {
1565214571Sdim    MEP_INSN_BEQ, "beq", "beq", 32,
1566214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1567214571Sdim  },
1568214571Sdim/* bne $rn,$rm,$pcrel17a2 */
1569214571Sdim  {
1570214571Sdim    MEP_INSN_BNE, "bne", "bne", 32,
1571214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1572214571Sdim  },
1573214571Sdim/* bsr $pcrel12a2 */
1574214571Sdim  {
1575214571Sdim    MEP_INSN_BSR12, "bsr12", "bsr", 16,
1576214571Sdim    { 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1577214571Sdim  },
1578214571Sdim/* bsr $pcrel24a2 */
1579214571Sdim  {
1580214571Sdim    MEP_INSN_BSR24, "bsr24", "bsr", 32,
1581214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1582214571Sdim  },
1583214571Sdim/* jmp $rm */
1584214571Sdim  {
1585214571Sdim    MEP_INSN_JMP, "jmp", "jmp", 16,
1586214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1587214571Sdim  },
1588214571Sdim/* jmp $pcabs24a2 */
1589214571Sdim  {
1590214571Sdim    MEP_INSN_JMP24, "jmp24", "jmp", 32,
1591214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1592214571Sdim  },
1593214571Sdim/* jsr $rm */
1594214571Sdim  {
1595214571Sdim    MEP_INSN_JSR, "jsr", "jsr", 16,
1596214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1597214571Sdim  },
1598214571Sdim/* ret */
1599214571Sdim  {
1600214571Sdim    MEP_INSN_RET, "ret", "ret", 16,
1601214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1602214571Sdim  },
1603214571Sdim/* repeat $rn,$pcrel17a2 */
1604214571Sdim  {
1605214571Sdim    MEP_INSN_REPEAT, "repeat", "repeat", 32,
1606214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1607214571Sdim  },
1608214571Sdim/* erepeat $pcrel17a2 */
1609214571Sdim  {
1610214571Sdim    MEP_INSN_EREPEAT, "erepeat", "erepeat", 32,
1611214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1612214571Sdim  },
1613214571Sdim/* stc $rn,\$lp */
1614214571Sdim  {
1615214571Sdim    MEP_INSN_STC_LP, "stc_lp", "stc", 16,
1616214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1617214571Sdim  },
1618214571Sdim/* stc $rn,\$hi */
1619214571Sdim  {
1620214571Sdim    MEP_INSN_STC_HI, "stc_hi", "stc", 16,
1621214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1622214571Sdim  },
1623214571Sdim/* stc $rn,\$lo */
1624214571Sdim  {
1625214571Sdim    MEP_INSN_STC_LO, "stc_lo", "stc", 16,
1626214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1627214571Sdim  },
1628214571Sdim/* stc $rn,$csrn */
1629214571Sdim  {
1630214571Sdim    MEP_INSN_STC, "stc", "stc", 16,
1631214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1632214571Sdim  },
1633214571Sdim/* ldc $rn,\$lp */
1634214571Sdim  {
1635214571Sdim    MEP_INSN_LDC_LP, "ldc_lp", "ldc", 16,
1636214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1637214571Sdim  },
1638214571Sdim/* ldc $rn,\$hi */
1639214571Sdim  {
1640214571Sdim    MEP_INSN_LDC_HI, "ldc_hi", "ldc", 16,
1641214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1642214571Sdim  },
1643214571Sdim/* ldc $rn,\$lo */
1644214571Sdim  {
1645214571Sdim    MEP_INSN_LDC_LO, "ldc_lo", "ldc", 16,
1646214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1647214571Sdim  },
1648214571Sdim/* ldc $rn,$csrn */
1649214571Sdim  {
1650214571Sdim    MEP_INSN_LDC, "ldc", "ldc", 16,
1651214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1652214571Sdim  },
1653214571Sdim/* di */
1654214571Sdim  {
1655214571Sdim    MEP_INSN_DI, "di", "di", 16,
1656214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1657214571Sdim  },
1658214571Sdim/* ei */
1659214571Sdim  {
1660214571Sdim    MEP_INSN_EI, "ei", "ei", 16,
1661214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1662214571Sdim  },
1663214571Sdim/* reti */
1664214571Sdim  {
1665214571Sdim    MEP_INSN_RETI, "reti", "reti", 16,
1666214571Sdim    { 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1667214571Sdim  },
1668214571Sdim/* halt */
1669214571Sdim  {
1670214571Sdim    MEP_INSN_HALT, "halt", "halt", 16,
1671214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1672214571Sdim  },
1673214571Sdim/* sleep */
1674214571Sdim  {
1675214571Sdim    MEP_INSN_SLEEP, "sleep", "sleep", 16,
1676214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1677214571Sdim  },
1678214571Sdim/* swi $uimm2 */
1679214571Sdim  {
1680214571Sdim    MEP_INSN_SWI, "swi", "swi", 16,
1681214571Sdim    { 0|A(VOLATILE)|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1682214571Sdim  },
1683214571Sdim/* break */
1684214571Sdim  {
1685214571Sdim    MEP_INSN_BREAK, "break", "break", 16,
1686214571Sdim    { 0|A(VOLATILE)|A(MAY_TRAP)|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1687214571Sdim  },
1688214571Sdim/* syncm */
1689214571Sdim  {
1690214571Sdim    MEP_INSN_SYNCM, "syncm", "syncm", 16,
1691214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1692214571Sdim  },
1693214571Sdim/* stcb $rn,$uimm16 */
1694214571Sdim  {
1695214571Sdim    MEP_INSN_STCB, "stcb", "stcb", 32,
1696214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1697214571Sdim  },
1698214571Sdim/* ldcb $rn,$uimm16 */
1699214571Sdim  {
1700214571Sdim    MEP_INSN_LDCB, "ldcb", "ldcb", 32,
1701214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1702214571Sdim  },
1703214571Sdim/* bsetm ($rma),$uimm3 */
1704214571Sdim  {
1705214571Sdim    MEP_INSN_BSETM, "bsetm", "bsetm", 16,
1706214571Sdim    { 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1707214571Sdim  },
1708214571Sdim/* bclrm ($rma),$uimm3 */
1709214571Sdim  {
1710214571Sdim    MEP_INSN_BCLRM, "bclrm", "bclrm", 16,
1711214571Sdim    { 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1712214571Sdim  },
1713214571Sdim/* bnotm ($rma),$uimm3 */
1714214571Sdim  {
1715214571Sdim    MEP_INSN_BNOTM, "bnotm", "bnotm", 16,
1716214571Sdim    { 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1717214571Sdim  },
1718214571Sdim/* btstm \$0,($rma),$uimm3 */
1719214571Sdim  {
1720214571Sdim    MEP_INSN_BTSTM, "btstm", "btstm", 16,
1721214571Sdim    { 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1722214571Sdim  },
1723214571Sdim/* tas $rn,($rma) */
1724214571Sdim  {
1725214571Sdim    MEP_INSN_TAS, "tas", "tas", 16,
1726214571Sdim    { 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1727214571Sdim  },
1728214571Sdim/* cache $cimm4,($rma) */
1729214571Sdim  {
1730214571Sdim    MEP_INSN_CACHE, "cache", "cache", 16,
1731214571Sdim    { 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1732214571Sdim  },
1733214571Sdim/* mul $rn,$rm */
1734214571Sdim  {
1735214571Sdim    MEP_INSN_MUL, "mul", "mul", 16,
1736214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1737214571Sdim  },
1738214571Sdim/* mulu $rn,$rm */
1739214571Sdim  {
1740214571Sdim    MEP_INSN_MULU, "mulu", "mulu", 16,
1741214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1742214571Sdim  },
1743214571Sdim/* mulr $rn,$rm */
1744214571Sdim  {
1745214571Sdim    MEP_INSN_MULR, "mulr", "mulr", 16,
1746214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1747214571Sdim  },
1748214571Sdim/* mulru $rn,$rm */
1749214571Sdim  {
1750214571Sdim    MEP_INSN_MULRU, "mulru", "mulru", 16,
1751214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1752214571Sdim  },
1753214571Sdim/* madd $rn,$rm */
1754214571Sdim  {
1755214571Sdim    MEP_INSN_MADD, "madd", "madd", 32,
1756214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1757214571Sdim  },
1758214571Sdim/* maddu $rn,$rm */
1759214571Sdim  {
1760214571Sdim    MEP_INSN_MADDU, "maddu", "maddu", 32,
1761214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1762214571Sdim  },
1763214571Sdim/* maddr $rn,$rm */
1764214571Sdim  {
1765214571Sdim    MEP_INSN_MADDR, "maddr", "maddr", 32,
1766214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1767214571Sdim  },
1768214571Sdim/* maddru $rn,$rm */
1769214571Sdim  {
1770214571Sdim    MEP_INSN_MADDRU, "maddru", "maddru", 32,
1771214571Sdim    { 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1772214571Sdim  },
1773214571Sdim/* div $rn,$rm */
1774214571Sdim  {
1775214571Sdim    MEP_INSN_DIV, "div", "div", 16,
1776214571Sdim    { 0|A(MAY_TRAP)|A(OPTIONAL_DIV_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 34, 0 } }, { { CONFIG_NONE, 0 } } } }
1777214571Sdim  },
1778214571Sdim/* divu $rn,$rm */
1779214571Sdim  {
1780214571Sdim    MEP_INSN_DIVU, "divu", "divu", 16,
1781214571Sdim    { 0|A(MAY_TRAP)|A(OPTIONAL_DIV_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 34, 0 } }, { { CONFIG_NONE, 0 } } } }
1782214571Sdim  },
1783214571Sdim/* dret */
1784214571Sdim  {
1785214571Sdim    MEP_INSN_DRET, "dret", "dret", 16,
1786214571Sdim    { 0|A(OPTIONAL_DEBUG_INSN)|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1787214571Sdim  },
1788214571Sdim/* dbreak */
1789214571Sdim  {
1790214571Sdim    MEP_INSN_DBREAK, "dbreak", "dbreak", 16,
1791214571Sdim    { 0|A(VOLATILE)|A(MAY_TRAP)|A(OPTIONAL_DEBUG_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1792214571Sdim  },
1793214571Sdim/* ldz $rn,$rm */
1794214571Sdim  {
1795214571Sdim    MEP_INSN_LDZ, "ldz", "ldz", 32,
1796214571Sdim    { 0|A(OPTIONAL_LDZ_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1797214571Sdim  },
1798214571Sdim/* abs $rn,$rm */
1799214571Sdim  {
1800214571Sdim    MEP_INSN_ABS, "abs", "abs", 32,
1801214571Sdim    { 0|A(OPTIONAL_ABS_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1802214571Sdim  },
1803214571Sdim/* ave $rn,$rm */
1804214571Sdim  {
1805214571Sdim    MEP_INSN_AVE, "ave", "ave", 32,
1806214571Sdim    { 0|A(OPTIONAL_AVE_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1807214571Sdim  },
1808214571Sdim/* min $rn,$rm */
1809214571Sdim  {
1810214571Sdim    MEP_INSN_MIN, "min", "min", 32,
1811214571Sdim    { 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1812214571Sdim  },
1813214571Sdim/* max $rn,$rm */
1814214571Sdim  {
1815214571Sdim    MEP_INSN_MAX, "max", "max", 32,
1816214571Sdim    { 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1817214571Sdim  },
1818214571Sdim/* minu $rn,$rm */
1819214571Sdim  {
1820214571Sdim    MEP_INSN_MINU, "minu", "minu", 32,
1821214571Sdim    { 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1822214571Sdim  },
1823214571Sdim/* maxu $rn,$rm */
1824214571Sdim  {
1825214571Sdim    MEP_INSN_MAXU, "maxu", "maxu", 32,
1826214571Sdim    { 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1827214571Sdim  },
1828214571Sdim/* clip $rn,$cimm5 */
1829214571Sdim  {
1830214571Sdim    MEP_INSN_CLIP, "clip", "clip", 32,
1831214571Sdim    { 0|A(OPTIONAL_CLIP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1832214571Sdim  },
1833214571Sdim/* clipu $rn,$cimm5 */
1834214571Sdim  {
1835214571Sdim    MEP_INSN_CLIPU, "clipu", "clipu", 32,
1836214571Sdim    { 0|A(OPTIONAL_CLIP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1837214571Sdim  },
1838214571Sdim/* sadd $rn,$rm */
1839214571Sdim  {
1840214571Sdim    MEP_INSN_SADD, "sadd", "sadd", 32,
1841214571Sdim    { 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1842214571Sdim  },
1843214571Sdim/* ssub $rn,$rm */
1844214571Sdim  {
1845214571Sdim    MEP_INSN_SSUB, "ssub", "ssub", 32,
1846214571Sdim    { 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1847214571Sdim  },
1848214571Sdim/* saddu $rn,$rm */
1849214571Sdim  {
1850214571Sdim    MEP_INSN_SADDU, "saddu", "saddu", 32,
1851214571Sdim    { 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1852214571Sdim  },
1853214571Sdim/* ssubu $rn,$rm */
1854214571Sdim  {
1855214571Sdim    MEP_INSN_SSUBU, "ssubu", "ssubu", 32,
1856214571Sdim    { 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1857214571Sdim  },
1858214571Sdim/* swcp $crn,($rma) */
1859214571Sdim  {
1860214571Sdim    MEP_INSN_SWCP, "swcp", "swcp", 16,
1861214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1862214571Sdim  },
1863214571Sdim/* lwcp $crn,($rma) */
1864214571Sdim  {
1865214571Sdim    MEP_INSN_LWCP, "lwcp", "lwcp", 16,
1866214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1867214571Sdim  },
1868214571Sdim/* smcp $crn64,($rma) */
1869214571Sdim  {
1870214571Sdim    MEP_INSN_SMCP, "smcp", "smcp", 16,
1871214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1872214571Sdim  },
1873214571Sdim/* lmcp $crn64,($rma) */
1874214571Sdim  {
1875214571Sdim    MEP_INSN_LMCP, "lmcp", "lmcp", 16,
1876214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1877214571Sdim  },
1878214571Sdim/* swcpi $crn,($rma+) */
1879214571Sdim  {
1880214571Sdim    MEP_INSN_SWCPI, "swcpi", "swcpi", 16,
1881214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1882214571Sdim  },
1883214571Sdim/* lwcpi $crn,($rma+) */
1884214571Sdim  {
1885214571Sdim    MEP_INSN_LWCPI, "lwcpi", "lwcpi", 16,
1886214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1887214571Sdim  },
1888214571Sdim/* smcpi $crn64,($rma+) */
1889214571Sdim  {
1890214571Sdim    MEP_INSN_SMCPI, "smcpi", "smcpi", 16,
1891214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1892214571Sdim  },
1893214571Sdim/* lmcpi $crn64,($rma+) */
1894214571Sdim  {
1895214571Sdim    MEP_INSN_LMCPI, "lmcpi", "lmcpi", 16,
1896214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1897214571Sdim  },
1898214571Sdim/* swcp $crn,$sdisp16($rma) */
1899214571Sdim  {
1900214571Sdim    MEP_INSN_SWCP16, "swcp16", "swcp", 32,
1901214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1902214571Sdim  },
1903214571Sdim/* lwcp $crn,$sdisp16($rma) */
1904214571Sdim  {
1905214571Sdim    MEP_INSN_LWCP16, "lwcp16", "lwcp", 32,
1906214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1907214571Sdim  },
1908214571Sdim/* smcp $crn64,$sdisp16($rma) */
1909214571Sdim  {
1910214571Sdim    MEP_INSN_SMCP16, "smcp16", "smcp", 32,
1911214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1912214571Sdim  },
1913214571Sdim/* lmcp $crn64,$sdisp16($rma) */
1914214571Sdim  {
1915214571Sdim    MEP_INSN_LMCP16, "lmcp16", "lmcp", 32,
1916214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1917214571Sdim  },
1918214571Sdim/* sbcpa $crn,($rma+),$cdisp8 */
1919214571Sdim  {
1920214571Sdim    MEP_INSN_SBCPA, "sbcpa", "sbcpa", 32,
1921214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1922214571Sdim  },
1923214571Sdim/* lbcpa $crn,($rma+),$cdisp8 */
1924214571Sdim  {
1925214571Sdim    MEP_INSN_LBCPA, "lbcpa", "lbcpa", 32,
1926214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1927214571Sdim  },
1928214571Sdim/* shcpa $crn,($rma+),$cdisp8a2 */
1929214571Sdim  {
1930214571Sdim    MEP_INSN_SHCPA, "shcpa", "shcpa", 32,
1931214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1932214571Sdim  },
1933214571Sdim/* lhcpa $crn,($rma+),$cdisp8a2 */
1934214571Sdim  {
1935214571Sdim    MEP_INSN_LHCPA, "lhcpa", "lhcpa", 32,
1936214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1937214571Sdim  },
1938214571Sdim/* swcpa $crn,($rma+),$cdisp8a4 */
1939214571Sdim  {
1940214571Sdim    MEP_INSN_SWCPA, "swcpa", "swcpa", 32,
1941214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1942214571Sdim  },
1943214571Sdim/* lwcpa $crn,($rma+),$cdisp8a4 */
1944214571Sdim  {
1945214571Sdim    MEP_INSN_LWCPA, "lwcpa", "lwcpa", 32,
1946214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1947214571Sdim  },
1948214571Sdim/* smcpa $crn64,($rma+),$cdisp8a8 */
1949214571Sdim  {
1950214571Sdim    MEP_INSN_SMCPA, "smcpa", "smcpa", 32,
1951214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1952214571Sdim  },
1953214571Sdim/* lmcpa $crn64,($rma+),$cdisp8a8 */
1954214571Sdim  {
1955214571Sdim    MEP_INSN_LMCPA, "lmcpa", "lmcpa", 32,
1956214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1957214571Sdim  },
1958214571Sdim/* sbcpm0 $crn,($rma+),$cdisp8 */
1959214571Sdim  {
1960214571Sdim    MEP_INSN_SBCPM0, "sbcpm0", "sbcpm0", 32,
1961214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1962214571Sdim  },
1963214571Sdim/* lbcpm0 $crn,($rma+),$cdisp8 */
1964214571Sdim  {
1965214571Sdim    MEP_INSN_LBCPM0, "lbcpm0", "lbcpm0", 32,
1966214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1967214571Sdim  },
1968214571Sdim/* shcpm0 $crn,($rma+),$cdisp8a2 */
1969214571Sdim  {
1970214571Sdim    MEP_INSN_SHCPM0, "shcpm0", "shcpm0", 32,
1971214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1972214571Sdim  },
1973214571Sdim/* lhcpm0 $crn,($rma+),$cdisp8a2 */
1974214571Sdim  {
1975214571Sdim    MEP_INSN_LHCPM0, "lhcpm0", "lhcpm0", 32,
1976214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1977214571Sdim  },
1978214571Sdim/* swcpm0 $crn,($rma+),$cdisp8a4 */
1979214571Sdim  {
1980214571Sdim    MEP_INSN_SWCPM0, "swcpm0", "swcpm0", 32,
1981214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1982214571Sdim  },
1983214571Sdim/* lwcpm0 $crn,($rma+),$cdisp8a4 */
1984214571Sdim  {
1985214571Sdim    MEP_INSN_LWCPM0, "lwcpm0", "lwcpm0", 32,
1986214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1987214571Sdim  },
1988214571Sdim/* smcpm0 $crn64,($rma+),$cdisp8a8 */
1989214571Sdim  {
1990214571Sdim    MEP_INSN_SMCPM0, "smcpm0", "smcpm0", 32,
1991214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1992214571Sdim  },
1993214571Sdim/* lmcpm0 $crn64,($rma+),$cdisp8a8 */
1994214571Sdim  {
1995214571Sdim    MEP_INSN_LMCPM0, "lmcpm0", "lmcpm0", 32,
1996214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1997214571Sdim  },
1998214571Sdim/* sbcpm1 $crn,($rma+),$cdisp8 */
1999214571Sdim  {
2000214571Sdim    MEP_INSN_SBCPM1, "sbcpm1", "sbcpm1", 32,
2001214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2002214571Sdim  },
2003214571Sdim/* lbcpm1 $crn,($rma+),$cdisp8 */
2004214571Sdim  {
2005214571Sdim    MEP_INSN_LBCPM1, "lbcpm1", "lbcpm1", 32,
2006214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2007214571Sdim  },
2008214571Sdim/* shcpm1 $crn,($rma+),$cdisp8a2 */
2009214571Sdim  {
2010214571Sdim    MEP_INSN_SHCPM1, "shcpm1", "shcpm1", 32,
2011214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2012214571Sdim  },
2013214571Sdim/* lhcpm1 $crn,($rma+),$cdisp8a2 */
2014214571Sdim  {
2015214571Sdim    MEP_INSN_LHCPM1, "lhcpm1", "lhcpm1", 32,
2016214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2017214571Sdim  },
2018214571Sdim/* swcpm1 $crn,($rma+),$cdisp8a4 */
2019214571Sdim  {
2020214571Sdim    MEP_INSN_SWCPM1, "swcpm1", "swcpm1", 32,
2021214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2022214571Sdim  },
2023214571Sdim/* lwcpm1 $crn,($rma+),$cdisp8a4 */
2024214571Sdim  {
2025214571Sdim    MEP_INSN_LWCPM1, "lwcpm1", "lwcpm1", 32,
2026214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2027214571Sdim  },
2028214571Sdim/* smcpm1 $crn64,($rma+),$cdisp8a8 */
2029214571Sdim  {
2030214571Sdim    MEP_INSN_SMCPM1, "smcpm1", "smcpm1", 32,
2031214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2032214571Sdim  },
2033214571Sdim/* lmcpm1 $crn64,($rma+),$cdisp8a8 */
2034214571Sdim  {
2035214571Sdim    MEP_INSN_LMCPM1, "lmcpm1", "lmcpm1", 32,
2036214571Sdim    { 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2037214571Sdim  },
2038214571Sdim/* bcpeq $cccc,$pcrel17a2 */
2039214571Sdim  {
2040214571Sdim    MEP_INSN_BCPEQ, "bcpeq", "bcpeq", 32,
2041214571Sdim    { 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2042214571Sdim  },
2043214571Sdim/* bcpne $cccc,$pcrel17a2 */
2044214571Sdim  {
2045214571Sdim    MEP_INSN_BCPNE, "bcpne", "bcpne", 32,
2046214571Sdim    { 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2047214571Sdim  },
2048214571Sdim/* bcpat $cccc,$pcrel17a2 */
2049214571Sdim  {
2050214571Sdim    MEP_INSN_BCPAT, "bcpat", "bcpat", 32,
2051214571Sdim    { 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2052214571Sdim  },
2053214571Sdim/* bcpaf $cccc,$pcrel17a2 */
2054214571Sdim  {
2055214571Sdim    MEP_INSN_BCPAF, "bcpaf", "bcpaf", 32,
2056214571Sdim    { 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2057214571Sdim  },
2058214571Sdim/* synccp */
2059214571Sdim  {
2060214571Sdim    MEP_INSN_SYNCCP, "synccp", "synccp", 16,
2061214571Sdim    { 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2062214571Sdim  },
2063214571Sdim/* jsrv $rm */
2064214571Sdim  {
2065214571Sdim    MEP_INSN_JSRV, "jsrv", "jsrv", 16,
2066214571Sdim    { 0|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2067214571Sdim  },
2068214571Sdim/* bsrv $pcrel24a2 */
2069214571Sdim  {
2070214571Sdim    MEP_INSN_BSRV, "bsrv", "bsrv", 32,
2071214571Sdim    { 0|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2072214571Sdim  },
2073214571Sdim/* --unused-- */
2074214571Sdim  {
2075214571Sdim    MEP_INSN_SIM_SYSCALL, "sim-syscall", "--unused--", 16,
2076214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2077214571Sdim  },
2078214571Sdim/* --reserved-- */
2079214571Sdim  {
2080214571Sdim    MEP_INSN_RI_0, "ri-0", "--reserved--", 16,
2081214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2082214571Sdim  },
2083214571Sdim/* --reserved-- */
2084214571Sdim  {
2085214571Sdim    MEP_INSN_RI_1, "ri-1", "--reserved--", 16,
2086214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2087214571Sdim  },
2088214571Sdim/* --reserved-- */
2089214571Sdim  {
2090214571Sdim    MEP_INSN_RI_2, "ri-2", "--reserved--", 16,
2091214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2092214571Sdim  },
2093214571Sdim/* --reserved-- */
2094214571Sdim  {
2095214571Sdim    MEP_INSN_RI_3, "ri-3", "--reserved--", 16,
2096214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2097214571Sdim  },
2098214571Sdim/* --reserved-- */
2099214571Sdim  {
2100214571Sdim    MEP_INSN_RI_4, "ri-4", "--reserved--", 16,
2101214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2102214571Sdim  },
2103214571Sdim/* --reserved-- */
2104214571Sdim  {
2105214571Sdim    MEP_INSN_RI_5, "ri-5", "--reserved--", 16,
2106214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2107214571Sdim  },
2108214571Sdim/* --reserved-- */
2109214571Sdim  {
2110214571Sdim    MEP_INSN_RI_6, "ri-6", "--reserved--", 16,
2111214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2112214571Sdim  },
2113214571Sdim/* --reserved-- */
2114214571Sdim  {
2115214571Sdim    MEP_INSN_RI_7, "ri-7", "--reserved--", 16,
2116214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2117214571Sdim  },
2118214571Sdim/* --reserved-- */
2119214571Sdim  {
2120214571Sdim    MEP_INSN_RI_8, "ri-8", "--reserved--", 16,
2121214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2122214571Sdim  },
2123214571Sdim/* --reserved-- */
2124214571Sdim  {
2125214571Sdim    MEP_INSN_RI_9, "ri-9", "--reserved--", 16,
2126214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2127214571Sdim  },
2128214571Sdim/* --reserved-- */
2129214571Sdim  {
2130214571Sdim    MEP_INSN_RI_10, "ri-10", "--reserved--", 16,
2131214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2132214571Sdim  },
2133214571Sdim/* --reserved-- */
2134214571Sdim  {
2135214571Sdim    MEP_INSN_RI_11, "ri-11", "--reserved--", 16,
2136214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2137214571Sdim  },
2138214571Sdim/* --reserved-- */
2139214571Sdim  {
2140214571Sdim    MEP_INSN_RI_12, "ri-12", "--reserved--", 16,
2141214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2142214571Sdim  },
2143214571Sdim/* --reserved-- */
2144214571Sdim  {
2145214571Sdim    MEP_INSN_RI_13, "ri-13", "--reserved--", 16,
2146214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2147214571Sdim  },
2148214571Sdim/* --reserved-- */
2149214571Sdim  {
2150214571Sdim    MEP_INSN_RI_14, "ri-14", "--reserved--", 16,
2151214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2152214571Sdim  },
2153214571Sdim/* --reserved-- */
2154214571Sdim  {
2155214571Sdim    MEP_INSN_RI_15, "ri-15", "--reserved--", 16,
2156214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2157214571Sdim  },
2158214571Sdim/* --reserved-- */
2159214571Sdim  {
2160214571Sdim    MEP_INSN_RI_17, "ri-17", "--reserved--", 16,
2161214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2162214571Sdim  },
2163214571Sdim/* --reserved-- */
2164214571Sdim  {
2165214571Sdim    MEP_INSN_RI_20, "ri-20", "--reserved--", 16,
2166214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2167214571Sdim  },
2168214571Sdim/* --reserved-- */
2169214571Sdim  {
2170214571Sdim    MEP_INSN_RI_21, "ri-21", "--reserved--", 16,
2171214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2172214571Sdim  },
2173214571Sdim/* --reserved-- */
2174214571Sdim  {
2175214571Sdim    MEP_INSN_RI_22, "ri-22", "--reserved--", 16,
2176214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2177214571Sdim  },
2178214571Sdim/* --reserved-- */
2179214571Sdim  {
2180214571Sdim    MEP_INSN_RI_23, "ri-23", "--reserved--", 16,
2181214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2182214571Sdim  },
2183214571Sdim/* --reserved-- */
2184214571Sdim  {
2185214571Sdim    MEP_INSN_RI_24, "ri-24", "--reserved--", 16,
2186214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2187214571Sdim  },
2188214571Sdim/* --reserved-- */
2189214571Sdim  {
2190214571Sdim    MEP_INSN_RI_25, "ri-25", "--reserved--", 16,
2191214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2192214571Sdim  },
2193214571Sdim/* --reserved-- */
2194214571Sdim  {
2195214571Sdim    MEP_INSN_RI_26, "ri-26", "--reserved--", 16,
2196214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2197214571Sdim  },
2198214571Sdim/* --reserved-- */
2199214571Sdim  {
2200214571Sdim    MEP_INSN_RI_16, "ri-16", "--reserved--", 16,
2201214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2202214571Sdim  },
2203214571Sdim/* --reserved-- */
2204214571Sdim  {
2205214571Sdim    MEP_INSN_RI_18, "ri-18", "--reserved--", 16,
2206214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2207214571Sdim  },
2208214571Sdim/* --reserved-- */
2209214571Sdim  {
2210214571Sdim    MEP_INSN_RI_19, "ri-19", "--reserved--", 16,
2211214571Sdim    { 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2212214571Sdim  },
2213214571Sdim/* fadds ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2214214571Sdim  {
2215214571Sdim    MEP_INSN_FADDS, "fadds", "fadds", 32,
2216214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2217214571Sdim  },
2218214571Sdim/* fsubs ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2219214571Sdim  {
2220214571Sdim    MEP_INSN_FSUBS, "fsubs", "fsubs", 32,
2221214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2222214571Sdim  },
2223214571Sdim/* fmuls ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2224214571Sdim  {
2225214571Sdim    MEP_INSN_FMULS, "fmuls", "fmuls", 32,
2226214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2227214571Sdim  },
2228214571Sdim/* fdivs ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2229214571Sdim  {
2230214571Sdim    MEP_INSN_FDIVS, "fdivs", "fdivs", 32,
2231214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2232214571Sdim  },
2233214571Sdim/* fsqrts ${fmax-FRd},${fmax-FRn} */
2234214571Sdim  {
2235214571Sdim    MEP_INSN_FSQRTS, "fsqrts", "fsqrts", 32,
2236214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2237214571Sdim  },
2238214571Sdim/* fabss ${fmax-FRd},${fmax-FRn} */
2239214571Sdim  {
2240214571Sdim    MEP_INSN_FABSS, "fabss", "fabss", 32,
2241214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2242214571Sdim  },
2243214571Sdim/* fnegs ${fmax-FRd},${fmax-FRn} */
2244214571Sdim  {
2245214571Sdim    MEP_INSN_FNEGS, "fnegs", "fnegs", 32,
2246214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2247214571Sdim  },
2248214571Sdim/* fmovs ${fmax-FRd},${fmax-FRn} */
2249214571Sdim  {
2250214571Sdim    MEP_INSN_FMOVS, "fmovs", "fmovs", 32,
2251214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2252214571Sdim  },
2253214571Sdim/* froundws ${fmax-FRd-int},${fmax-FRn} */
2254214571Sdim  {
2255214571Sdim    MEP_INSN_FROUNDWS, "froundws", "froundws", 32,
2256214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2257214571Sdim  },
2258214571Sdim/* ftruncws ${fmax-FRd-int},${fmax-FRn} */
2259214571Sdim  {
2260214571Sdim    MEP_INSN_FTRUNCWS, "ftruncws", "ftruncws", 32,
2261214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2262214571Sdim  },
2263214571Sdim/* fceilws ${fmax-FRd-int},${fmax-FRn} */
2264214571Sdim  {
2265214571Sdim    MEP_INSN_FCEILWS, "fceilws", "fceilws", 32,
2266214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2267214571Sdim  },
2268214571Sdim/* ffloorws ${fmax-FRd-int},${fmax-FRn} */
2269214571Sdim  {
2270214571Sdim    MEP_INSN_FFLOORWS, "ffloorws", "ffloorws", 32,
2271214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2272214571Sdim  },
2273214571Sdim/* fcvtws ${fmax-FRd-int},${fmax-FRn} */
2274214571Sdim  {
2275214571Sdim    MEP_INSN_FCVTWS, "fcvtws", "fcvtws", 32,
2276214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2277214571Sdim  },
2278214571Sdim/* fcvtsw ${fmax-FRd},${fmax-FRn-int} */
2279214571Sdim  {
2280214571Sdim    MEP_INSN_FCVTSW, "fcvtsw", "fcvtsw", 32,
2281214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2282214571Sdim  },
2283214571Sdim/* fcmpfs ${fmax-FRn},${fmax-FRm} */
2284214571Sdim  {
2285214571Sdim    MEP_INSN_FCMPFS, "fcmpfs", "fcmpfs", 32,
2286214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2287214571Sdim  },
2288214571Sdim/* fcmpus ${fmax-FRn},${fmax-FRm} */
2289214571Sdim  {
2290214571Sdim    MEP_INSN_FCMPUS, "fcmpus", "fcmpus", 32,
2291214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2292214571Sdim  },
2293214571Sdim/* fcmpes ${fmax-FRn},${fmax-FRm} */
2294214571Sdim  {
2295214571Sdim    MEP_INSN_FCMPES, "fcmpes", "fcmpes", 32,
2296214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2297214571Sdim  },
2298214571Sdim/* fcmpues ${fmax-FRn},${fmax-FRm} */
2299214571Sdim  {
2300214571Sdim    MEP_INSN_FCMPUES, "fcmpues", "fcmpues", 32,
2301214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2302214571Sdim  },
2303214571Sdim/* fcmpls ${fmax-FRn},${fmax-FRm} */
2304214571Sdim  {
2305214571Sdim    MEP_INSN_FCMPLS, "fcmpls", "fcmpls", 32,
2306214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2307214571Sdim  },
2308214571Sdim/* fcmpuls ${fmax-FRn},${fmax-FRm} */
2309214571Sdim  {
2310214571Sdim    MEP_INSN_FCMPULS, "fcmpuls", "fcmpuls", 32,
2311214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2312214571Sdim  },
2313214571Sdim/* fcmples ${fmax-FRn},${fmax-FRm} */
2314214571Sdim  {
2315214571Sdim    MEP_INSN_FCMPLES, "fcmples", "fcmples", 32,
2316214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2317214571Sdim  },
2318214571Sdim/* fcmpules ${fmax-FRn},${fmax-FRm} */
2319214571Sdim  {
2320214571Sdim    MEP_INSN_FCMPULES, "fcmpules", "fcmpules", 32,
2321214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2322214571Sdim  },
2323214571Sdim/* fcmpfis ${fmax-FRn},${fmax-FRm} */
2324214571Sdim  {
2325214571Sdim    MEP_INSN_FCMPFIS, "fcmpfis", "fcmpfis", 32,
2326214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2327214571Sdim  },
2328214571Sdim/* fcmpuis ${fmax-FRn},${fmax-FRm} */
2329214571Sdim  {
2330214571Sdim    MEP_INSN_FCMPUIS, "fcmpuis", "fcmpuis", 32,
2331214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2332214571Sdim  },
2333214571Sdim/* fcmpeis ${fmax-FRn},${fmax-FRm} */
2334214571Sdim  {
2335214571Sdim    MEP_INSN_FCMPEIS, "fcmpeis", "fcmpeis", 32,
2336214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2337214571Sdim  },
2338214571Sdim/* fcmpueis ${fmax-FRn},${fmax-FRm} */
2339214571Sdim  {
2340214571Sdim    MEP_INSN_FCMPUEIS, "fcmpueis", "fcmpueis", 32,
2341214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2342214571Sdim  },
2343214571Sdim/* fcmplis ${fmax-FRn},${fmax-FRm} */
2344214571Sdim  {
2345214571Sdim    MEP_INSN_FCMPLIS, "fcmplis", "fcmplis", 32,
2346214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2347214571Sdim  },
2348214571Sdim/* fcmpulis ${fmax-FRn},${fmax-FRm} */
2349214571Sdim  {
2350214571Sdim    MEP_INSN_FCMPULIS, "fcmpulis", "fcmpulis", 32,
2351214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2352214571Sdim  },
2353214571Sdim/* fcmpleis ${fmax-FRn},${fmax-FRm} */
2354214571Sdim  {
2355214571Sdim    MEP_INSN_FCMPLEIS, "fcmpleis", "fcmpleis", 32,
2356214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2357214571Sdim  },
2358214571Sdim/* fcmpuleis ${fmax-FRn},${fmax-FRm} */
2359214571Sdim  {
2360214571Sdim    MEP_INSN_FCMPULEIS, "fcmpuleis", "fcmpuleis", 32,
2361214571Sdim    { 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2362214571Sdim  },
2363214571Sdim/* cmov ${fmax-FRd-int},${fmax-Rm} */
2364214571Sdim  {
2365214571Sdim    MEP_INSN_CMOV_FRN_RM, "cmov-frn-rm", "cmov", 32,
2366214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2367214571Sdim  },
2368214571Sdim/* cmov ${fmax-Rm},${fmax-FRd-int} */
2369214571Sdim  {
2370214571Sdim    MEP_INSN_CMOV_RM_FRN, "cmov-rm-frn", "cmov", 32,
2371214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2372214571Sdim  },
2373214571Sdim/* cmovc ${fmax-CCRn},${fmax-Rm} */
2374214571Sdim  {
2375214571Sdim    MEP_INSN_CMOVC_CCRN_RM, "cmovc-ccrn-rm", "cmovc", 32,
2376214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2377214571Sdim  },
2378214571Sdim/* cmovc ${fmax-Rm},${fmax-CCRn} */
2379214571Sdim  {
2380214571Sdim    MEP_INSN_CMOVC_RM_CCRN, "cmovc-rm-ccrn", "cmovc", 32,
2381214571Sdim    { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2382214571Sdim  },
2383214571Sdim};
2384214571Sdim
2385214571Sdim#undef OP
2386214571Sdim#undef A
2387214571Sdim
2388214571Sdim/* Initialize anything needed to be done once, before any cpu_open call.  */
2389214571Sdim
2390214571Sdimstatic void
2391214571Sdiminit_tables (void)
2392214571Sdim{
2393214571Sdim}
2394214571Sdim
2395214571Sdimstatic const CGEN_MACH * lookup_mach_via_bfd_name (const CGEN_MACH *, const char *);
2396214571Sdimstatic void build_hw_table      (CGEN_CPU_TABLE *);
2397214571Sdimstatic void build_ifield_table  (CGEN_CPU_TABLE *);
2398214571Sdimstatic void build_operand_table (CGEN_CPU_TABLE *);
2399214571Sdimstatic void build_insn_table    (CGEN_CPU_TABLE *);
2400214571Sdimstatic void mep_cgen_rebuild_tables (CGEN_CPU_TABLE *);
2401214571Sdim
2402214571Sdim/* Subroutine of mep_cgen_cpu_open to look up a mach via its bfd name.  */
2403214571Sdim
2404214571Sdimstatic const CGEN_MACH *
2405214571Sdimlookup_mach_via_bfd_name (const CGEN_MACH *table, const char *name)
2406214571Sdim{
2407214571Sdim  while (table->name)
2408214571Sdim    {
2409214571Sdim      if (strcmp (name, table->bfd_name) == 0)
2410214571Sdim	return table;
2411214571Sdim      ++table;
2412214571Sdim    }
2413214571Sdim  abort ();
2414214571Sdim}
2415214571Sdim
2416214571Sdim/* Subroutine of mep_cgen_cpu_open to build the hardware table.  */
2417214571Sdim
2418214571Sdimstatic void
2419214571Sdimbuild_hw_table (CGEN_CPU_TABLE *cd)
2420214571Sdim{
2421214571Sdim  int i;
2422214571Sdim  int machs = cd->machs;
2423214571Sdim  const CGEN_HW_ENTRY *init = & mep_cgen_hw_table[0];
2424214571Sdim  /* MAX_HW is only an upper bound on the number of selected entries.
2425214571Sdim     However each entry is indexed by it's enum so there can be holes in
2426214571Sdim     the table.  */
2427214571Sdim  const CGEN_HW_ENTRY **selected =
2428214571Sdim    (const CGEN_HW_ENTRY **) xmalloc (MAX_HW * sizeof (CGEN_HW_ENTRY *));
2429214571Sdim
2430214571Sdim  cd->hw_table.init_entries = init;
2431214571Sdim  cd->hw_table.entry_size = sizeof (CGEN_HW_ENTRY);
2432214571Sdim  memset (selected, 0, MAX_HW * sizeof (CGEN_HW_ENTRY *));
2433214571Sdim  /* ??? For now we just use machs to determine which ones we want.  */
2434214571Sdim  for (i = 0; init[i].name != NULL; ++i)
2435214571Sdim    if (CGEN_HW_ATTR_VALUE (&init[i], CGEN_HW_MACH)
2436214571Sdim	& machs)
2437214571Sdim      selected[init[i].type] = &init[i];
2438214571Sdim  cd->hw_table.entries = selected;
2439214571Sdim  cd->hw_table.num_entries = MAX_HW;
2440214571Sdim}
2441214571Sdim
2442214571Sdim/* Subroutine of mep_cgen_cpu_open to build the hardware table.  */
2443214571Sdim
2444214571Sdimstatic void
2445214571Sdimbuild_ifield_table (CGEN_CPU_TABLE *cd)
2446214571Sdim{
2447214571Sdim  cd->ifld_table = & mep_cgen_ifld_table[0];
2448214571Sdim}
2449214571Sdim
2450214571Sdim/* Subroutine of mep_cgen_cpu_open to build the hardware table.  */
2451214571Sdim
2452214571Sdimstatic void
2453214571Sdimbuild_operand_table (CGEN_CPU_TABLE *cd)
2454214571Sdim{
2455214571Sdim  int i;
2456214571Sdim  int machs = cd->machs;
2457214571Sdim  const CGEN_OPERAND *init = & mep_cgen_operand_table[0];
2458214571Sdim  /* MAX_OPERANDS is only an upper bound on the number of selected entries.
2459214571Sdim     However each entry is indexed by it's enum so there can be holes in
2460214571Sdim     the table.  */
2461214571Sdim  const CGEN_OPERAND **selected = xmalloc (MAX_OPERANDS * sizeof (* selected));
2462214571Sdim
2463214571Sdim  cd->operand_table.init_entries = init;
2464214571Sdim  cd->operand_table.entry_size = sizeof (CGEN_OPERAND);
2465214571Sdim  memset (selected, 0, MAX_OPERANDS * sizeof (CGEN_OPERAND *));
2466214571Sdim  /* ??? For now we just use mach to determine which ones we want.  */
2467214571Sdim  for (i = 0; init[i].name != NULL; ++i)
2468214571Sdim    if (CGEN_OPERAND_ATTR_VALUE (&init[i], CGEN_OPERAND_MACH)
2469214571Sdim	& machs)
2470214571Sdim      selected[init[i].type] = &init[i];
2471214571Sdim  cd->operand_table.entries = selected;
2472214571Sdim  cd->operand_table.num_entries = MAX_OPERANDS;
2473214571Sdim}
2474214571Sdim
2475214571Sdim/* Subroutine of mep_cgen_cpu_open to build the hardware table.
2476214571Sdim   ??? This could leave out insns not supported by the specified mach/isa,
2477214571Sdim   but that would cause errors like "foo only supported by bar" to become
2478214571Sdim   "unknown insn", so for now we include all insns and require the app to
2479214571Sdim   do the checking later.
2480214571Sdim   ??? On the other hand, parsing of such insns may require their hardware or
2481214571Sdim   operand elements to be in the table [which they mightn't be].  */
2482214571Sdim
2483214571Sdimstatic void
2484214571Sdimbuild_insn_table (CGEN_CPU_TABLE *cd)
2485214571Sdim{
2486214571Sdim  int i;
2487214571Sdim  const CGEN_IBASE *ib = & mep_cgen_insn_table[0];
2488214571Sdim  CGEN_INSN *insns = xmalloc (MAX_INSNS * sizeof (CGEN_INSN));
2489214571Sdim
2490214571Sdim  memset (insns, 0, MAX_INSNS * sizeof (CGEN_INSN));
2491214571Sdim  for (i = 0; i < MAX_INSNS; ++i)
2492214571Sdim    insns[i].base = &ib[i];
2493214571Sdim  cd->insn_table.init_entries = insns;
2494214571Sdim  cd->insn_table.entry_size = sizeof (CGEN_IBASE);
2495214571Sdim  cd->insn_table.num_init_entries = MAX_INSNS;
2496214571Sdim}
2497214571Sdim
2498214571Sdim/* Subroutine of mep_cgen_cpu_open to rebuild the tables.  */
2499214571Sdim
2500214571Sdimstatic void
2501214571Sdimmep_cgen_rebuild_tables (CGEN_CPU_TABLE *cd)
2502214571Sdim{
2503214571Sdim  int i;
2504214571Sdim  CGEN_BITSET *isas = cd->isas;
2505214571Sdim  unsigned int machs = cd->machs;
2506214571Sdim
2507214571Sdim  cd->int_insn_p = CGEN_INT_INSN_P;
2508214571Sdim
2509214571Sdim  /* Data derived from the isa spec.  */
2510214571Sdim#define UNSET (CGEN_SIZE_UNKNOWN + 1)
2511214571Sdim  cd->default_insn_bitsize = UNSET;
2512214571Sdim  cd->base_insn_bitsize = UNSET;
2513214571Sdim  cd->min_insn_bitsize = 65535; /* Some ridiculously big number.  */
2514214571Sdim  cd->max_insn_bitsize = 0;
2515214571Sdim  for (i = 0; i < MAX_ISAS; ++i)
2516214571Sdim    if (cgen_bitset_contains (isas, i))
2517214571Sdim      {
2518214571Sdim	const CGEN_ISA *isa = & mep_cgen_isa_table[i];
2519214571Sdim
2520214571Sdim	/* Default insn sizes of all selected isas must be
2521214571Sdim	   equal or we set the result to 0, meaning "unknown".  */
2522214571Sdim	if (cd->default_insn_bitsize == UNSET)
2523214571Sdim	  cd->default_insn_bitsize = isa->default_insn_bitsize;
2524214571Sdim	else if (isa->default_insn_bitsize == cd->default_insn_bitsize)
2525214571Sdim	  ; /* This is ok.  */
2526214571Sdim	else
2527214571Sdim	  cd->default_insn_bitsize = CGEN_SIZE_UNKNOWN;
2528214571Sdim
2529214571Sdim	/* Base insn sizes of all selected isas must be equal
2530214571Sdim	   or we set the result to 0, meaning "unknown".  */
2531214571Sdim	if (cd->base_insn_bitsize == UNSET)
2532214571Sdim	  cd->base_insn_bitsize = isa->base_insn_bitsize;
2533214571Sdim	else if (isa->base_insn_bitsize == cd->base_insn_bitsize)
2534214571Sdim	  ; /* This is ok.  */
2535214571Sdim	else
2536214571Sdim	  cd->base_insn_bitsize = CGEN_SIZE_UNKNOWN;
2537214571Sdim
2538214571Sdim	/* Set min,max insn sizes.  */
2539214571Sdim	if (isa->min_insn_bitsize < cd->min_insn_bitsize)
2540214571Sdim	  cd->min_insn_bitsize = isa->min_insn_bitsize;
2541214571Sdim	if (isa->max_insn_bitsize > cd->max_insn_bitsize)
2542214571Sdim	  cd->max_insn_bitsize = isa->max_insn_bitsize;
2543214571Sdim      }
2544214571Sdim
2545214571Sdim  /* Data derived from the mach spec.  */
2546214571Sdim  for (i = 0; i < MAX_MACHS; ++i)
2547214571Sdim    if (((1 << i) & machs) != 0)
2548214571Sdim      {
2549214571Sdim	const CGEN_MACH *mach = & mep_cgen_mach_table[i];
2550214571Sdim
2551214571Sdim	if (mach->insn_chunk_bitsize != 0)
2552214571Sdim	{
2553214571Sdim	  if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize)
2554214571Sdim	    {
2555214571Sdim	      fprintf (stderr, "mep_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\n",
2556214571Sdim		       cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
2557214571Sdim	      abort ();
2558214571Sdim	    }
2559214571Sdim
2560214571Sdim 	  cd->insn_chunk_bitsize = mach->insn_chunk_bitsize;
2561214571Sdim	}
2562214571Sdim      }
2563214571Sdim
2564214571Sdim  /* Determine which hw elements are used by MACH.  */
2565214571Sdim  build_hw_table (cd);
2566214571Sdim
2567214571Sdim  /* Build the ifield table.  */
2568214571Sdim  build_ifield_table (cd);
2569214571Sdim
2570214571Sdim  /* Determine which operands are used by MACH/ISA.  */
2571214571Sdim  build_operand_table (cd);
2572214571Sdim
2573214571Sdim  /* Build the instruction table.  */
2574214571Sdim  build_insn_table (cd);
2575214571Sdim}
2576214571Sdim
2577214571Sdim/* Initialize a cpu table and return a descriptor.
2578214571Sdim   It's much like opening a file, and must be the first function called.
2579214571Sdim   The arguments are a set of (type/value) pairs, terminated with
2580214571Sdim   CGEN_CPU_OPEN_END.
2581214571Sdim
2582214571Sdim   Currently supported values:
2583214571Sdim   CGEN_CPU_OPEN_ISAS:    bitmap of values in enum isa_attr
2584214571Sdim   CGEN_CPU_OPEN_MACHS:   bitmap of values in enum mach_attr
2585214571Sdim   CGEN_CPU_OPEN_BFDMACH: specify 1 mach using bfd name
2586214571Sdim   CGEN_CPU_OPEN_ENDIAN:  specify endian choice
2587214571Sdim   CGEN_CPU_OPEN_END:     terminates arguments
2588214571Sdim
2589214571Sdim   ??? Simultaneous multiple isas might not make sense, but it's not (yet)
2590214571Sdim   precluded.
2591214571Sdim
2592214571Sdim   ??? We only support ISO C stdargs here, not K&R.
2593214571Sdim   Laziness, plus experiment to see if anything requires K&R - eventually
2594214571Sdim   K&R will no longer be supported - e.g. GDB is currently trying this.  */
2595214571Sdim
2596214571SdimCGEN_CPU_DESC
2597214571Sdimmep_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...)
2598214571Sdim{
2599214571Sdim  CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE));
2600214571Sdim  static int init_p;
2601214571Sdim  CGEN_BITSET *isas = 0;  /* 0 = "unspecified" */
2602214571Sdim  unsigned int machs = 0; /* 0 = "unspecified" */
2603214571Sdim  enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN;
2604214571Sdim  va_list ap;
2605214571Sdim
2606214571Sdim  if (! init_p)
2607214571Sdim    {
2608214571Sdim      init_tables ();
2609214571Sdim      init_p = 1;
2610214571Sdim    }
2611214571Sdim
2612214571Sdim  memset (cd, 0, sizeof (*cd));
2613214571Sdim
2614214571Sdim  va_start (ap, arg_type);
2615214571Sdim  while (arg_type != CGEN_CPU_OPEN_END)
2616214571Sdim    {
2617214571Sdim      switch (arg_type)
2618214571Sdim	{
2619214571Sdim	case CGEN_CPU_OPEN_ISAS :
2620214571Sdim	  isas = va_arg (ap, CGEN_BITSET *);
2621214571Sdim	  break;
2622214571Sdim	case CGEN_CPU_OPEN_MACHS :
2623214571Sdim	  machs = va_arg (ap, unsigned int);
2624214571Sdim	  break;
2625214571Sdim	case CGEN_CPU_OPEN_BFDMACH :
2626214571Sdim	  {
2627214571Sdim	    const char *name = va_arg (ap, const char *);
2628214571Sdim	    const CGEN_MACH *mach =
2629214571Sdim	      lookup_mach_via_bfd_name (mep_cgen_mach_table, name);
2630214571Sdim
2631214571Sdim	    machs |= 1 << mach->num;
2632214571Sdim	    break;
2633214571Sdim	  }
2634214571Sdim	case CGEN_CPU_OPEN_ENDIAN :
2635214571Sdim	  endian = va_arg (ap, enum cgen_endian);
2636214571Sdim	  break;
2637214571Sdim	default :
2638214571Sdim	  fprintf (stderr, "mep_cgen_cpu_open: unsupported argument `%d'\n",
2639214571Sdim		   arg_type);
2640214571Sdim	  abort (); /* ??? return NULL? */
2641214571Sdim	}
2642214571Sdim      arg_type = va_arg (ap, enum cgen_cpu_open_arg);
2643214571Sdim    }
2644214571Sdim  va_end (ap);
2645214571Sdim
2646214571Sdim  /* Mach unspecified means "all".  */
2647214571Sdim  if (machs == 0)
2648214571Sdim    machs = (1 << MAX_MACHS) - 1;
2649214571Sdim  /* Base mach is always selected.  */
2650214571Sdim  machs |= 1;
2651214571Sdim  if (endian == CGEN_ENDIAN_UNKNOWN)
2652214571Sdim    {
2653214571Sdim      /* ??? If target has only one, could have a default.  */
2654214571Sdim      fprintf (stderr, "mep_cgen_cpu_open: no endianness specified\n");
2655214571Sdim      abort ();
2656214571Sdim    }
2657214571Sdim
2658214571Sdim  cd->isas = cgen_bitset_copy (isas);
2659214571Sdim  cd->machs = machs;
2660214571Sdim  cd->endian = endian;
2661214571Sdim  /* FIXME: for the sparc case we can determine insn-endianness statically.
2662214571Sdim     The worry here is where both data and insn endian can be independently
2663214571Sdim     chosen, in which case this function will need another argument.
2664214571Sdim     Actually, will want to allow for more arguments in the future anyway.  */
2665214571Sdim  cd->insn_endian = endian;
2666214571Sdim
2667214571Sdim  /* Table (re)builder.  */
2668214571Sdim  cd->rebuild_tables = mep_cgen_rebuild_tables;
2669214571Sdim  mep_cgen_rebuild_tables (cd);
2670214571Sdim
2671214571Sdim  /* Default to not allowing signed overflow.  */
2672214571Sdim  cd->signed_overflow_ok_p = 0;
2673214571Sdim
2674214571Sdim  return (CGEN_CPU_DESC) cd;
2675214571Sdim}
2676214571Sdim
2677214571Sdim/* Cover fn to mep_cgen_cpu_open to handle the simple case of 1 isa, 1 mach.
2678214571Sdim   MACH_NAME is the bfd name of the mach.  */
2679214571Sdim
2680214571SdimCGEN_CPU_DESC
2681214571Sdimmep_cgen_cpu_open_1 (const char *mach_name, enum cgen_endian endian)
2682214571Sdim{
2683214571Sdim  return mep_cgen_cpu_open (CGEN_CPU_OPEN_BFDMACH, mach_name,
2684214571Sdim			       CGEN_CPU_OPEN_ENDIAN, endian,
2685214571Sdim			       CGEN_CPU_OPEN_END);
2686214571Sdim}
2687214571Sdim
2688214571Sdim/* Close a cpu table.
2689214571Sdim   ??? This can live in a machine independent file, but there's currently
2690214571Sdim   no place to put this file (there's no libcgen).  libopcodes is the wrong
2691214571Sdim   place as some simulator ports use this but they don't use libopcodes.  */
2692214571Sdim
2693214571Sdimvoid
2694214571Sdimmep_cgen_cpu_close (CGEN_CPU_DESC cd)
2695214571Sdim{
2696214571Sdim  unsigned int i;
2697214571Sdim  const CGEN_INSN *insns;
2698214571Sdim
2699214571Sdim  if (cd->macro_insn_table.init_entries)
2700214571Sdim    {
2701214571Sdim      insns = cd->macro_insn_table.init_entries;
2702214571Sdim      for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
2703214571Sdim	if (CGEN_INSN_RX ((insns)))
2704214571Sdim	  regfree (CGEN_INSN_RX (insns));
2705214571Sdim    }
2706214571Sdim
2707214571Sdim  if (cd->insn_table.init_entries)
2708214571Sdim    {
2709214571Sdim      insns = cd->insn_table.init_entries;
2710214571Sdim      for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
2711214571Sdim	if (CGEN_INSN_RX (insns))
2712214571Sdim	  regfree (CGEN_INSN_RX (insns));
2713214571Sdim    }
2714214571Sdim
2715214571Sdim  if (cd->macro_insn_table.init_entries)
2716214571Sdim    free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
2717214571Sdim
2718214571Sdim  if (cd->insn_table.init_entries)
2719214571Sdim    free ((CGEN_INSN *) cd->insn_table.init_entries);
2720214571Sdim
2721214571Sdim  if (cd->hw_table.entries)
2722214571Sdim    free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
2723214571Sdim
2724214571Sdim  if (cd->operand_table.entries)
2725214571Sdim    free ((CGEN_HW_ENTRY *) cd->operand_table.entries);
2726214571Sdim
2727214571Sdim  free (cd);
2728214571Sdim}
2729214571Sdim
2730