3
THIS FILE IS MACHINE GENERATED WITH CGEN.
5
Copyright 1996-2007 Free Software Foundation, Inc.
7
This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9
This file is free software; you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation; either version 3, or (at your option)
14
It is distributed in the hope that it will be useful, but WITHOUT
15
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17
License for more details.
19
You should have received a copy of the GNU General Public License along
20
with this program; if not, write to the Free Software Foundation, Inc.,
21
51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
34
#include "libiberty.h"
39
static const CGEN_ATTR_ENTRY bool_attr[] =
46
static const CGEN_ATTR_ENTRY MACH_attr[] ATTRIBUTE_UNUSED =
48
{ "base", MACH_BASE },
55
static const CGEN_ATTR_ENTRY ISA_attr[] ATTRIBUTE_UNUSED =
58
{ "ext_core1", ISA_EXT_CORE1 },
59
{ "ext_core2", ISA_EXT_CORE2 },
60
{ "ext_cop2_16", ISA_EXT_COP2_16 },
61
{ "ext_cop2_32", ISA_EXT_COP2_32 },
62
{ "ext_cop2_48", ISA_EXT_COP2_48 },
63
{ "ext_cop2_64", ISA_EXT_COP2_64 },
68
static const CGEN_ATTR_ENTRY CDATA_attr[] ATTRIBUTE_UNUSED =
70
{ "LABEL", CDATA_LABEL },
71
{ "REGNUM", CDATA_REGNUM },
72
{ "FMAX_FLOAT", CDATA_FMAX_FLOAT },
73
{ "FMAX_INT", CDATA_FMAX_INT },
74
{ "POINTER", CDATA_POINTER },
75
{ "LONG", CDATA_LONG },
76
{ "ULONG", CDATA_ULONG },
77
{ "SHORT", CDATA_SHORT },
78
{ "USHORT", CDATA_USHORT },
79
{ "CHAR", CDATA_CHAR },
80
{ "UCHAR", CDATA_UCHAR },
81
{ "CP_DATA_BUS_INT", CDATA_CP_DATA_BUS_INT },
85
static const CGEN_ATTR_ENTRY ALIGN_attr [] ATTRIBUTE_UNUSED =
91
static const CGEN_ATTR_ENTRY LATENCY_attr [] ATTRIBUTE_UNUSED =
97
static const CGEN_ATTR_ENTRY CONFIG_attr[] ATTRIBUTE_UNUSED =
99
{ "NONE", CONFIG_NONE },
100
{ "simple", CONFIG_SIMPLE },
101
{ "fmax", CONFIG_FMAX },
105
const CGEN_ATTR_TABLE mep_cgen_ifield_attr_table[] =
107
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
108
{ "ISA", & ISA_attr[0], & ISA_attr[0] },
109
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
110
{ "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
111
{ "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
112
{ "RESERVED", &bool_attr[0], &bool_attr[0] },
113
{ "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
114
{ "SIGNED", &bool_attr[0], &bool_attr[0] },
118
const CGEN_ATTR_TABLE mep_cgen_hardware_attr_table[] =
120
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
121
{ "ISA", & ISA_attr[0], & ISA_attr[0] },
122
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
123
{ "CACHE-ADDR", &bool_attr[0], &bool_attr[0] },
124
{ "PC", &bool_attr[0], &bool_attr[0] },
125
{ "PROFILE", &bool_attr[0], &bool_attr[0] },
126
{ "IS_FLOAT", &bool_attr[0], &bool_attr[0] },
130
const CGEN_ATTR_TABLE mep_cgen_operand_attr_table[] =
132
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
133
{ "ISA", & ISA_attr[0], & ISA_attr[0] },
134
{ "CDATA", & CDATA_attr[0], & CDATA_attr[0] },
135
{ "ALIGN", & ALIGN_attr[0], & ALIGN_attr[0] },
136
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
137
{ "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
138
{ "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
139
{ "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
140
{ "SIGNED", &bool_attr[0], &bool_attr[0] },
141
{ "NEGATIVE", &bool_attr[0], &bool_attr[0] },
142
{ "RELAX", &bool_attr[0], &bool_attr[0] },
143
{ "SEM-ONLY", &bool_attr[0], &bool_attr[0] },
144
{ "RELOC_IMPLIES_OVERFLOW", &bool_attr[0], &bool_attr[0] },
148
const CGEN_ATTR_TABLE mep_cgen_insn_attr_table[] =
150
{ "MACH", & MACH_attr[0], & MACH_attr[0] },
151
{ "ISA", & ISA_attr[0], & ISA_attr[0] },
152
{ "LATENCY", & LATENCY_attr[0], & LATENCY_attr[0] },
153
{ "CONFIG", & CONFIG_attr[0], & CONFIG_attr[0] },
154
{ "ALIAS", &bool_attr[0], &bool_attr[0] },
155
{ "VIRTUAL", &bool_attr[0], &bool_attr[0] },
156
{ "UNCOND-CTI", &bool_attr[0], &bool_attr[0] },
157
{ "COND-CTI", &bool_attr[0], &bool_attr[0] },
158
{ "SKIP-CTI", &bool_attr[0], &bool_attr[0] },
159
{ "DELAY-SLOT", &bool_attr[0], &bool_attr[0] },
160
{ "RELAXABLE", &bool_attr[0], &bool_attr[0] },
161
{ "RELAXED", &bool_attr[0], &bool_attr[0] },
162
{ "NO-DIS", &bool_attr[0], &bool_attr[0] },
163
{ "PBB", &bool_attr[0], &bool_attr[0] },
164
{ "OPTIONAL_BIT_INSN", &bool_attr[0], &bool_attr[0] },
165
{ "OPTIONAL_MUL_INSN", &bool_attr[0], &bool_attr[0] },
166
{ "OPTIONAL_DIV_INSN", &bool_attr[0], &bool_attr[0] },
167
{ "OPTIONAL_DEBUG_INSN", &bool_attr[0], &bool_attr[0] },
168
{ "OPTIONAL_LDZ_INSN", &bool_attr[0], &bool_attr[0] },
169
{ "OPTIONAL_ABS_INSN", &bool_attr[0], &bool_attr[0] },
170
{ "OPTIONAL_AVE_INSN", &bool_attr[0], &bool_attr[0] },
171
{ "OPTIONAL_MINMAX_INSN", &bool_attr[0], &bool_attr[0] },
172
{ "OPTIONAL_CLIP_INSN", &bool_attr[0], &bool_attr[0] },
173
{ "OPTIONAL_SAT_INSN", &bool_attr[0], &bool_attr[0] },
174
{ "OPTIONAL_UCI_INSN", &bool_attr[0], &bool_attr[0] },
175
{ "OPTIONAL_DSP_INSN", &bool_attr[0], &bool_attr[0] },
176
{ "OPTIONAL_CP_INSN", &bool_attr[0], &bool_attr[0] },
177
{ "OPTIONAL_CP64_INSN", &bool_attr[0], &bool_attr[0] },
178
{ "OPTIONAL_VLIW64", &bool_attr[0], &bool_attr[0] },
179
{ "MAY_TRAP", &bool_attr[0], &bool_attr[0] },
180
{ "VLIW_ALONE", &bool_attr[0], &bool_attr[0] },
181
{ "VLIW_NO_CORE_NOP", &bool_attr[0], &bool_attr[0] },
182
{ "VLIW_NO_COP_NOP", &bool_attr[0], &bool_attr[0] },
183
{ "VLIW64_NO_MATCHING_NOP", &bool_attr[0], &bool_attr[0] },
184
{ "VLIW32_NO_MATCHING_NOP", &bool_attr[0], &bool_attr[0] },
185
{ "VOLATILE", &bool_attr[0], &bool_attr[0] },
189
/* Instruction set variants. */
191
static const CGEN_ISA mep_cgen_isa_table[] = {
192
{ "mep", 32, 32, 16, 32 },
193
{ "ext_core1", 32, 32, 16, 32 },
194
{ "ext_core2", 32, 32, 16, 32 },
195
{ "ext_cop2_16", 32, 32, 65535, 0 },
196
{ "ext_cop2_32", 32, 32, 65535, 0 },
197
{ "ext_cop2_48", 32, 32, 65535, 0 },
198
{ "ext_cop2_64", 32, 32, 65535, 0 },
202
/* Machine variants. */
204
static const CGEN_MACH mep_cgen_mach_table[] = {
205
{ "mep", "mep", MACH_MEP, 16 },
206
{ "h1", "h1", MACH_H1, 16 },
210
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_gpr_entries[] =
212
{ "$0", 0, {0, {{{0, 0}}}}, 0, 0 },
213
{ "$1", 1, {0, {{{0, 0}}}}, 0, 0 },
214
{ "$2", 2, {0, {{{0, 0}}}}, 0, 0 },
215
{ "$3", 3, {0, {{{0, 0}}}}, 0, 0 },
216
{ "$4", 4, {0, {{{0, 0}}}}, 0, 0 },
217
{ "$5", 5, {0, {{{0, 0}}}}, 0, 0 },
218
{ "$6", 6, {0, {{{0, 0}}}}, 0, 0 },
219
{ "$7", 7, {0, {{{0, 0}}}}, 0, 0 },
220
{ "$8", 8, {0, {{{0, 0}}}}, 0, 0 },
221
{ "$9", 9, {0, {{{0, 0}}}}, 0, 0 },
222
{ "$10", 10, {0, {{{0, 0}}}}, 0, 0 },
223
{ "$11", 11, {0, {{{0, 0}}}}, 0, 0 },
224
{ "$fp", 8, {0, {{{0, 0}}}}, 0, 0 },
225
{ "$tp", 13, {0, {{{0, 0}}}}, 0, 0 },
226
{ "$gp", 14, {0, {{{0, 0}}}}, 0, 0 },
227
{ "$sp", 15, {0, {{{0, 0}}}}, 0, 0 },
228
{ "$12", 12, {0, {{{0, 0}}}}, 0, 0 },
229
{ "$13", 13, {0, {{{0, 0}}}}, 0, 0 },
230
{ "$14", 14, {0, {{{0, 0}}}}, 0, 0 },
231
{ "$15", 15, {0, {{{0, 0}}}}, 0, 0 }
234
CGEN_KEYWORD mep_cgen_opval_h_gpr =
236
& mep_cgen_opval_h_gpr_entries[0],
241
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_csr_entries[] =
243
{ "$pc", 0, {0, {{{0, 0}}}}, 0, 0 },
244
{ "$lp", 1, {0, {{{0, 0}}}}, 0, 0 },
245
{ "$sar", 2, {0, {{{0, 0}}}}, 0, 0 },
246
{ "$rpb", 4, {0, {{{0, 0}}}}, 0, 0 },
247
{ "$rpe", 5, {0, {{{0, 0}}}}, 0, 0 },
248
{ "$rpc", 6, {0, {{{0, 0}}}}, 0, 0 },
249
{ "$hi", 7, {0, {{{0, 0}}}}, 0, 0 },
250
{ "$lo", 8, {0, {{{0, 0}}}}, 0, 0 },
251
{ "$mb0", 12, {0, {{{0, 0}}}}, 0, 0 },
252
{ "$me0", 13, {0, {{{0, 0}}}}, 0, 0 },
253
{ "$mb1", 14, {0, {{{0, 0}}}}, 0, 0 },
254
{ "$me1", 15, {0, {{{0, 0}}}}, 0, 0 },
255
{ "$psw", 16, {0, {{{0, 0}}}}, 0, 0 },
256
{ "$id", 17, {0, {{{0, 0}}}}, 0, 0 },
257
{ "$tmp", 18, {0, {{{0, 0}}}}, 0, 0 },
258
{ "$epc", 19, {0, {{{0, 0}}}}, 0, 0 },
259
{ "$exc", 20, {0, {{{0, 0}}}}, 0, 0 },
260
{ "$cfg", 21, {0, {{{0, 0}}}}, 0, 0 },
261
{ "$npc", 23, {0, {{{0, 0}}}}, 0, 0 },
262
{ "$dbg", 24, {0, {{{0, 0}}}}, 0, 0 },
263
{ "$depc", 25, {0, {{{0, 0}}}}, 0, 0 },
264
{ "$opt", 26, {0, {{{0, 0}}}}, 0, 0 },
265
{ "$rcfg", 27, {0, {{{0, 0}}}}, 0, 0 },
266
{ "$ccfg", 28, {0, {{{0, 0}}}}, 0, 0 }
269
CGEN_KEYWORD mep_cgen_opval_h_csr =
271
& mep_cgen_opval_h_csr_entries[0],
276
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_cr64_entries[] =
278
{ "$c0", 0, {0, {{{0, 0}}}}, 0, 0 },
279
{ "$c1", 1, {0, {{{0, 0}}}}, 0, 0 },
280
{ "$c2", 2, {0, {{{0, 0}}}}, 0, 0 },
281
{ "$c3", 3, {0, {{{0, 0}}}}, 0, 0 },
282
{ "$c4", 4, {0, {{{0, 0}}}}, 0, 0 },
283
{ "$c5", 5, {0, {{{0, 0}}}}, 0, 0 },
284
{ "$c6", 6, {0, {{{0, 0}}}}, 0, 0 },
285
{ "$c7", 7, {0, {{{0, 0}}}}, 0, 0 },
286
{ "$c8", 8, {0, {{{0, 0}}}}, 0, 0 },
287
{ "$c9", 9, {0, {{{0, 0}}}}, 0, 0 },
288
{ "$c10", 10, {0, {{{0, 0}}}}, 0, 0 },
289
{ "$c11", 11, {0, {{{0, 0}}}}, 0, 0 },
290
{ "$c12", 12, {0, {{{0, 0}}}}, 0, 0 },
291
{ "$c13", 13, {0, {{{0, 0}}}}, 0, 0 },
292
{ "$c14", 14, {0, {{{0, 0}}}}, 0, 0 },
293
{ "$c15", 15, {0, {{{0, 0}}}}, 0, 0 },
294
{ "$c16", 16, {0, {{{0, 0}}}}, 0, 0 },
295
{ "$c17", 17, {0, {{{0, 0}}}}, 0, 0 },
296
{ "$c18", 18, {0, {{{0, 0}}}}, 0, 0 },
297
{ "$c19", 19, {0, {{{0, 0}}}}, 0, 0 },
298
{ "$c20", 20, {0, {{{0, 0}}}}, 0, 0 },
299
{ "$c21", 21, {0, {{{0, 0}}}}, 0, 0 },
300
{ "$c22", 22, {0, {{{0, 0}}}}, 0, 0 },
301
{ "$c23", 23, {0, {{{0, 0}}}}, 0, 0 },
302
{ "$c24", 24, {0, {{{0, 0}}}}, 0, 0 },
303
{ "$c25", 25, {0, {{{0, 0}}}}, 0, 0 },
304
{ "$c26", 26, {0, {{{0, 0}}}}, 0, 0 },
305
{ "$c27", 27, {0, {{{0, 0}}}}, 0, 0 },
306
{ "$c28", 28, {0, {{{0, 0}}}}, 0, 0 },
307
{ "$c29", 29, {0, {{{0, 0}}}}, 0, 0 },
308
{ "$c30", 30, {0, {{{0, 0}}}}, 0, 0 },
309
{ "$c31", 31, {0, {{{0, 0}}}}, 0, 0 }
312
CGEN_KEYWORD mep_cgen_opval_h_cr64 =
314
& mep_cgen_opval_h_cr64_entries[0],
319
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_cr_entries[] =
321
{ "$c0", 0, {0, {{{0, 0}}}}, 0, 0 },
322
{ "$c1", 1, {0, {{{0, 0}}}}, 0, 0 },
323
{ "$c2", 2, {0, {{{0, 0}}}}, 0, 0 },
324
{ "$c3", 3, {0, {{{0, 0}}}}, 0, 0 },
325
{ "$c4", 4, {0, {{{0, 0}}}}, 0, 0 },
326
{ "$c5", 5, {0, {{{0, 0}}}}, 0, 0 },
327
{ "$c6", 6, {0, {{{0, 0}}}}, 0, 0 },
328
{ "$c7", 7, {0, {{{0, 0}}}}, 0, 0 },
329
{ "$c8", 8, {0, {{{0, 0}}}}, 0, 0 },
330
{ "$c9", 9, {0, {{{0, 0}}}}, 0, 0 },
331
{ "$c10", 10, {0, {{{0, 0}}}}, 0, 0 },
332
{ "$c11", 11, {0, {{{0, 0}}}}, 0, 0 },
333
{ "$c12", 12, {0, {{{0, 0}}}}, 0, 0 },
334
{ "$c13", 13, {0, {{{0, 0}}}}, 0, 0 },
335
{ "$c14", 14, {0, {{{0, 0}}}}, 0, 0 },
336
{ "$c15", 15, {0, {{{0, 0}}}}, 0, 0 },
337
{ "$c16", 16, {0, {{{0, 0}}}}, 0, 0 },
338
{ "$c17", 17, {0, {{{0, 0}}}}, 0, 0 },
339
{ "$c18", 18, {0, {{{0, 0}}}}, 0, 0 },
340
{ "$c19", 19, {0, {{{0, 0}}}}, 0, 0 },
341
{ "$c20", 20, {0, {{{0, 0}}}}, 0, 0 },
342
{ "$c21", 21, {0, {{{0, 0}}}}, 0, 0 },
343
{ "$c22", 22, {0, {{{0, 0}}}}, 0, 0 },
344
{ "$c23", 23, {0, {{{0, 0}}}}, 0, 0 },
345
{ "$c24", 24, {0, {{{0, 0}}}}, 0, 0 },
346
{ "$c25", 25, {0, {{{0, 0}}}}, 0, 0 },
347
{ "$c26", 26, {0, {{{0, 0}}}}, 0, 0 },
348
{ "$c27", 27, {0, {{{0, 0}}}}, 0, 0 },
349
{ "$c28", 28, {0, {{{0, 0}}}}, 0, 0 },
350
{ "$c29", 29, {0, {{{0, 0}}}}, 0, 0 },
351
{ "$c30", 30, {0, {{{0, 0}}}}, 0, 0 },
352
{ "$c31", 31, {0, {{{0, 0}}}}, 0, 0 }
355
CGEN_KEYWORD mep_cgen_opval_h_cr =
357
& mep_cgen_opval_h_cr_entries[0],
362
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_ccr_entries[] =
364
{ "$ccr0", 0, {0, {{{0, 0}}}}, 0, 0 },
365
{ "$ccr1", 1, {0, {{{0, 0}}}}, 0, 0 },
366
{ "$ccr2", 2, {0, {{{0, 0}}}}, 0, 0 },
367
{ "$ccr3", 3, {0, {{{0, 0}}}}, 0, 0 },
368
{ "$ccr4", 4, {0, {{{0, 0}}}}, 0, 0 },
369
{ "$ccr5", 5, {0, {{{0, 0}}}}, 0, 0 },
370
{ "$ccr6", 6, {0, {{{0, 0}}}}, 0, 0 },
371
{ "$ccr7", 7, {0, {{{0, 0}}}}, 0, 0 },
372
{ "$ccr8", 8, {0, {{{0, 0}}}}, 0, 0 },
373
{ "$ccr9", 9, {0, {{{0, 0}}}}, 0, 0 },
374
{ "$ccr10", 10, {0, {{{0, 0}}}}, 0, 0 },
375
{ "$ccr11", 11, {0, {{{0, 0}}}}, 0, 0 },
376
{ "$ccr12", 12, {0, {{{0, 0}}}}, 0, 0 },
377
{ "$ccr13", 13, {0, {{{0, 0}}}}, 0, 0 },
378
{ "$ccr14", 14, {0, {{{0, 0}}}}, 0, 0 },
379
{ "$ccr15", 15, {0, {{{0, 0}}}}, 0, 0 },
380
{ "$ccr16", 16, {0, {{{0, 0}}}}, 0, 0 },
381
{ "$ccr17", 17, {0, {{{0, 0}}}}, 0, 0 },
382
{ "$ccr18", 18, {0, {{{0, 0}}}}, 0, 0 },
383
{ "$ccr19", 19, {0, {{{0, 0}}}}, 0, 0 },
384
{ "$ccr20", 20, {0, {{{0, 0}}}}, 0, 0 },
385
{ "$ccr21", 21, {0, {{{0, 0}}}}, 0, 0 },
386
{ "$ccr22", 22, {0, {{{0, 0}}}}, 0, 0 },
387
{ "$ccr23", 23, {0, {{{0, 0}}}}, 0, 0 },
388
{ "$ccr24", 24, {0, {{{0, 0}}}}, 0, 0 },
389
{ "$ccr25", 25, {0, {{{0, 0}}}}, 0, 0 },
390
{ "$ccr26", 26, {0, {{{0, 0}}}}, 0, 0 },
391
{ "$ccr27", 27, {0, {{{0, 0}}}}, 0, 0 },
392
{ "$ccr28", 28, {0, {{{0, 0}}}}, 0, 0 },
393
{ "$ccr29", 29, {0, {{{0, 0}}}}, 0, 0 },
394
{ "$ccr30", 30, {0, {{{0, 0}}}}, 0, 0 },
395
{ "$ccr31", 31, {0, {{{0, 0}}}}, 0, 0 },
396
{ "$ccr32", 32, {0, {{{0, 0}}}}, 0, 0 },
397
{ "$ccr33", 33, {0, {{{0, 0}}}}, 0, 0 },
398
{ "$ccr34", 34, {0, {{{0, 0}}}}, 0, 0 },
399
{ "$ccr35", 35, {0, {{{0, 0}}}}, 0, 0 },
400
{ "$ccr36", 36, {0, {{{0, 0}}}}, 0, 0 },
401
{ "$ccr37", 37, {0, {{{0, 0}}}}, 0, 0 },
402
{ "$ccr38", 38, {0, {{{0, 0}}}}, 0, 0 },
403
{ "$ccr39", 39, {0, {{{0, 0}}}}, 0, 0 },
404
{ "$ccr40", 40, {0, {{{0, 0}}}}, 0, 0 },
405
{ "$ccr41", 41, {0, {{{0, 0}}}}, 0, 0 },
406
{ "$ccr42", 42, {0, {{{0, 0}}}}, 0, 0 },
407
{ "$ccr43", 43, {0, {{{0, 0}}}}, 0, 0 },
408
{ "$ccr44", 44, {0, {{{0, 0}}}}, 0, 0 },
409
{ "$ccr45", 45, {0, {{{0, 0}}}}, 0, 0 },
410
{ "$ccr46", 46, {0, {{{0, 0}}}}, 0, 0 },
411
{ "$ccr47", 47, {0, {{{0, 0}}}}, 0, 0 },
412
{ "$ccr48", 48, {0, {{{0, 0}}}}, 0, 0 },
413
{ "$ccr49", 49, {0, {{{0, 0}}}}, 0, 0 },
414
{ "$ccr50", 50, {0, {{{0, 0}}}}, 0, 0 },
415
{ "$ccr51", 51, {0, {{{0, 0}}}}, 0, 0 },
416
{ "$ccr52", 52, {0, {{{0, 0}}}}, 0, 0 },
417
{ "$ccr53", 53, {0, {{{0, 0}}}}, 0, 0 },
418
{ "$ccr54", 54, {0, {{{0, 0}}}}, 0, 0 },
419
{ "$ccr55", 55, {0, {{{0, 0}}}}, 0, 0 },
420
{ "$ccr56", 56, {0, {{{0, 0}}}}, 0, 0 },
421
{ "$ccr57", 57, {0, {{{0, 0}}}}, 0, 0 },
422
{ "$ccr58", 58, {0, {{{0, 0}}}}, 0, 0 },
423
{ "$ccr59", 59, {0, {{{0, 0}}}}, 0, 0 },
424
{ "$ccr60", 60, {0, {{{0, 0}}}}, 0, 0 },
425
{ "$ccr61", 61, {0, {{{0, 0}}}}, 0, 0 },
426
{ "$ccr62", 62, {0, {{{0, 0}}}}, 0, 0 },
427
{ "$ccr63", 63, {0, {{{0, 0}}}}, 0, 0 }
430
CGEN_KEYWORD mep_cgen_opval_h_ccr =
432
& mep_cgen_opval_h_ccr_entries[0],
437
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_cr_fmax_entries[] =
439
{ "$fr0", 0, {0, {{{0, 0}}}}, 0, 0 },
440
{ "$fr1", 1, {0, {{{0, 0}}}}, 0, 0 },
441
{ "$fr2", 2, {0, {{{0, 0}}}}, 0, 0 },
442
{ "$fr3", 3, {0, {{{0, 0}}}}, 0, 0 },
443
{ "$fr4", 4, {0, {{{0, 0}}}}, 0, 0 },
444
{ "$fr5", 5, {0, {{{0, 0}}}}, 0, 0 },
445
{ "$fr6", 6, {0, {{{0, 0}}}}, 0, 0 },
446
{ "$fr7", 7, {0, {{{0, 0}}}}, 0, 0 },
447
{ "$fr8", 8, {0, {{{0, 0}}}}, 0, 0 },
448
{ "$fr9", 9, {0, {{{0, 0}}}}, 0, 0 },
449
{ "$fr10", 10, {0, {{{0, 0}}}}, 0, 0 },
450
{ "$fr11", 11, {0, {{{0, 0}}}}, 0, 0 },
451
{ "$fr12", 12, {0, {{{0, 0}}}}, 0, 0 },
452
{ "$fr13", 13, {0, {{{0, 0}}}}, 0, 0 },
453
{ "$fr14", 14, {0, {{{0, 0}}}}, 0, 0 },
454
{ "$fr15", 15, {0, {{{0, 0}}}}, 0, 0 },
455
{ "$fr16", 16, {0, {{{0, 0}}}}, 0, 0 },
456
{ "$fr17", 17, {0, {{{0, 0}}}}, 0, 0 },
457
{ "$fr18", 18, {0, {{{0, 0}}}}, 0, 0 },
458
{ "$fr19", 19, {0, {{{0, 0}}}}, 0, 0 },
459
{ "$fr20", 20, {0, {{{0, 0}}}}, 0, 0 },
460
{ "$fr21", 21, {0, {{{0, 0}}}}, 0, 0 },
461
{ "$fr22", 22, {0, {{{0, 0}}}}, 0, 0 },
462
{ "$fr23", 23, {0, {{{0, 0}}}}, 0, 0 },
463
{ "$fr24", 24, {0, {{{0, 0}}}}, 0, 0 },
464
{ "$fr25", 25, {0, {{{0, 0}}}}, 0, 0 },
465
{ "$fr26", 26, {0, {{{0, 0}}}}, 0, 0 },
466
{ "$fr27", 27, {0, {{{0, 0}}}}, 0, 0 },
467
{ "$fr28", 28, {0, {{{0, 0}}}}, 0, 0 },
468
{ "$fr29", 29, {0, {{{0, 0}}}}, 0, 0 },
469
{ "$fr30", 30, {0, {{{0, 0}}}}, 0, 0 },
470
{ "$fr31", 31, {0, {{{0, 0}}}}, 0, 0 },
471
{ "$c0", 0, {0, {{{0, 0}}}}, 0, 0 },
472
{ "$c1", 1, {0, {{{0, 0}}}}, 0, 0 },
473
{ "$c2", 2, {0, {{{0, 0}}}}, 0, 0 },
474
{ "$c3", 3, {0, {{{0, 0}}}}, 0, 0 },
475
{ "$c4", 4, {0, {{{0, 0}}}}, 0, 0 },
476
{ "$c5", 5, {0, {{{0, 0}}}}, 0, 0 },
477
{ "$c6", 6, {0, {{{0, 0}}}}, 0, 0 },
478
{ "$c7", 7, {0, {{{0, 0}}}}, 0, 0 },
479
{ "$c8", 8, {0, {{{0, 0}}}}, 0, 0 },
480
{ "$c9", 9, {0, {{{0, 0}}}}, 0, 0 },
481
{ "$c10", 10, {0, {{{0, 0}}}}, 0, 0 },
482
{ "$c11", 11, {0, {{{0, 0}}}}, 0, 0 },
483
{ "$c12", 12, {0, {{{0, 0}}}}, 0, 0 },
484
{ "$c13", 13, {0, {{{0, 0}}}}, 0, 0 },
485
{ "$c14", 14, {0, {{{0, 0}}}}, 0, 0 },
486
{ "$c15", 15, {0, {{{0, 0}}}}, 0, 0 },
487
{ "$c16", 16, {0, {{{0, 0}}}}, 0, 0 },
488
{ "$c17", 17, {0, {{{0, 0}}}}, 0, 0 },
489
{ "$c18", 18, {0, {{{0, 0}}}}, 0, 0 },
490
{ "$c19", 19, {0, {{{0, 0}}}}, 0, 0 },
491
{ "$c20", 20, {0, {{{0, 0}}}}, 0, 0 },
492
{ "$c21", 21, {0, {{{0, 0}}}}, 0, 0 },
493
{ "$c22", 22, {0, {{{0, 0}}}}, 0, 0 },
494
{ "$c23", 23, {0, {{{0, 0}}}}, 0, 0 },
495
{ "$c24", 24, {0, {{{0, 0}}}}, 0, 0 },
496
{ "$c25", 25, {0, {{{0, 0}}}}, 0, 0 },
497
{ "$c26", 26, {0, {{{0, 0}}}}, 0, 0 },
498
{ "$c27", 27, {0, {{{0, 0}}}}, 0, 0 },
499
{ "$c28", 28, {0, {{{0, 0}}}}, 0, 0 },
500
{ "$c29", 29, {0, {{{0, 0}}}}, 0, 0 },
501
{ "$c30", 30, {0, {{{0, 0}}}}, 0, 0 },
502
{ "$c31", 31, {0, {{{0, 0}}}}, 0, 0 }
505
CGEN_KEYWORD mep_cgen_opval_h_cr_fmax =
507
& mep_cgen_opval_h_cr_fmax_entries[0],
512
static CGEN_KEYWORD_ENTRY mep_cgen_opval_h_ccr_fmax_entries[] =
514
{ "$cirr", 0, {0, {{{0, 0}}}}, 0, 0 },
515
{ "$fcr0", 0, {0, {{{0, 0}}}}, 0, 0 },
516
{ "$ccr0", 0, {0, {{{0, 0}}}}, 0, 0 },
517
{ "$cbcr", 1, {0, {{{0, 0}}}}, 0, 0 },
518
{ "$fcr1", 1, {0, {{{0, 0}}}}, 0, 0 },
519
{ "$ccr1", 1, {0, {{{0, 0}}}}, 0, 0 },
520
{ "$cerr", 15, {0, {{{0, 0}}}}, 0, 0 },
521
{ "$fcr15", 15, {0, {{{0, 0}}}}, 0, 0 },
522
{ "$ccr15", 15, {0, {{{0, 0}}}}, 0, 0 }
525
CGEN_KEYWORD mep_cgen_opval_h_ccr_fmax =
527
& mep_cgen_opval_h_ccr_fmax_entries[0],
533
/* The hardware table. */
535
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
536
#define A(a) (1 << CGEN_HW_##a)
538
#define A(a) (1 << CGEN_HW_/**/a)
541
const CGEN_HW_ENTRY mep_cgen_hw_table[] =
543
{ "h-memory", HW_H_MEMORY, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
544
{ "h-sint", HW_H_SINT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
545
{ "h-uint", HW_H_UINT, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
546
{ "h-addr", HW_H_ADDR, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
547
{ "h-iaddr", HW_H_IADDR, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
548
{ "h-pc", HW_H_PC, CGEN_ASM_NONE, 0, { 0|A(PROFILE)|A(PC), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
549
{ "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" } } } } },
550
{ "h-csr", HW_H_CSR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_csr, { 0|A(PROFILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
551
{ "h-cr64", HW_H_CR64, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_cr64, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
552
{ "h-cr", HW_H_CR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_cr, { 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
553
{ "h-ccr", HW_H_CCR, CGEN_ASM_KEYWORD, (PTR) & mep_cgen_opval_h_ccr, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
554
{ "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" } } } } },
555
{ "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" } } } } },
556
{ "h-fmax-compare-i-p", HW_H_FMAX_COMPARE_I_P, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
557
{ 0, 0, CGEN_ASM_NONE, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }
563
/* The instruction field table. */
565
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
566
#define A(a) (1 << CGEN_IFLD_##a)
568
#define A(a) (1 << CGEN_IFLD_/**/a)
571
const CGEN_IFLD mep_cgen_ifld_table[] =
573
{ MEP_F_NIL, "f-nil", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } },
574
{ MEP_F_ANYOF, "f-anyof", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } },
575
{ MEP_F_MAJOR, "f-major", 0, 32, 0, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
576
{ MEP_F_RN, "f-rn", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
577
{ MEP_F_RN3, "f-rn3", 0, 32, 5, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
578
{ MEP_F_RM, "f-rm", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
579
{ MEP_F_RL, "f-rl", 0, 32, 12, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
580
{ MEP_F_SUB2, "f-sub2", 0, 32, 14, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
581
{ MEP_F_SUB3, "f-sub3", 0, 32, 13, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
582
{ MEP_F_SUB4, "f-sub4", 0, 32, 12, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
583
{ MEP_F_EXT, "f-ext", 0, 32, 16, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
584
{ MEP_F_CRN, "f-crn", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
585
{ MEP_F_CSRN_HI, "f-csrn-hi", 0, 32, 15, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
586
{ MEP_F_CSRN_LO, "f-csrn-lo", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
587
{ MEP_F_CSRN, "f-csrn", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
588
{ MEP_F_CRNX_HI, "f-crnx-hi", 0, 32, 28, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
589
{ MEP_F_CRNX_LO, "f-crnx-lo", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
590
{ MEP_F_CRNX, "f-crnx", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
591
{ MEP_F_0, "f-0", 0, 32, 0, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
592
{ MEP_F_1, "f-1", 0, 32, 1, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
593
{ MEP_F_2, "f-2", 0, 32, 2, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
594
{ MEP_F_3, "f-3", 0, 32, 3, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
595
{ MEP_F_4, "f-4", 0, 32, 4, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
596
{ MEP_F_5, "f-5", 0, 32, 5, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
597
{ MEP_F_6, "f-6", 0, 32, 6, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
598
{ MEP_F_7, "f-7", 0, 32, 7, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
599
{ MEP_F_8, "f-8", 0, 32, 8, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
600
{ MEP_F_9, "f-9", 0, 32, 9, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
601
{ MEP_F_10, "f-10", 0, 32, 10, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
602
{ MEP_F_11, "f-11", 0, 32, 11, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
603
{ MEP_F_12, "f-12", 0, 32, 12, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
604
{ MEP_F_13, "f-13", 0, 32, 13, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
605
{ MEP_F_14, "f-14", 0, 32, 14, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
606
{ MEP_F_15, "f-15", 0, 32, 15, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
607
{ MEP_F_16, "f-16", 0, 32, 16, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
608
{ MEP_F_17, "f-17", 0, 32, 17, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
609
{ MEP_F_18, "f-18", 0, 32, 18, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
610
{ MEP_F_19, "f-19", 0, 32, 19, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
611
{ MEP_F_20, "f-20", 0, 32, 20, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
612
{ MEP_F_21, "f-21", 0, 32, 21, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
613
{ MEP_F_22, "f-22", 0, 32, 22, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
614
{ MEP_F_23, "f-23", 0, 32, 23, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
615
{ MEP_F_24, "f-24", 0, 32, 24, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
616
{ MEP_F_25, "f-25", 0, 32, 25, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
617
{ MEP_F_26, "f-26", 0, 32, 26, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
618
{ MEP_F_27, "f-27", 0, 32, 27, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
619
{ MEP_F_28, "f-28", 0, 32, 28, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
620
{ MEP_F_29, "f-29", 0, 32, 29, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
621
{ MEP_F_30, "f-30", 0, 32, 30, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
622
{ MEP_F_31, "f-31", 0, 32, 31, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } } } } },
623
{ MEP_F_8S8A2, "f-8s8a2", 0, 32, 8, 7, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
624
{ MEP_F_12S4A2, "f-12s4a2", 0, 32, 4, 11, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
625
{ MEP_F_17S16A2, "f-17s16a2", 0, 32, 16, 16, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
626
{ MEP_F_24S5A2N_HI, "f-24s5a2n-hi", 0, 32, 16, 16, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
627
{ MEP_F_24S5A2N_LO, "f-24s5a2n-lo", 0, 32, 5, 7, { 0|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
628
{ MEP_F_24S5A2N, "f-24s5a2n", 0, 0, 0, 0,{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
629
{ MEP_F_24U5A2N_HI, "f-24u5a2n-hi", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
630
{ MEP_F_24U5A2N_LO, "f-24u5a2n-lo", 0, 32, 5, 7, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
631
{ MEP_F_24U5A2N, "f-24u5a2n", 0, 0, 0, 0,{ 0|A(ABS_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
632
{ MEP_F_2U6, "f-2u6", 0, 32, 6, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
633
{ MEP_F_7U9, "f-7u9", 0, 32, 9, 7, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
634
{ MEP_F_7U9A2, "f-7u9a2", 0, 32, 9, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
635
{ MEP_F_7U9A4, "f-7u9a4", 0, 32, 9, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
636
{ MEP_F_16S16, "f-16s16", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
637
{ MEP_F_2U10, "f-2u10", 0, 32, 10, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
638
{ MEP_F_3U5, "f-3u5", 0, 32, 5, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
639
{ MEP_F_4U8, "f-4u8", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
640
{ MEP_F_5U8, "f-5u8", 0, 32, 8, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
641
{ MEP_F_5U24, "f-5u24", 0, 32, 24, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
642
{ MEP_F_6S8, "f-6s8", 0, 32, 8, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
643
{ MEP_F_8S8, "f-8s8", 0, 32, 8, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
644
{ MEP_F_16U16, "f-16u16", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
645
{ MEP_F_12U16, "f-12u16", 0, 32, 16, 12, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
646
{ MEP_F_3U29, "f-3u29", 0, 32, 29, 3, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
647
{ MEP_F_8S24, "f-8s24", 0, 32, 24, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
648
{ MEP_F_8S24A2, "f-8s24a2", 0, 32, 24, 7, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
649
{ MEP_F_8S24A4, "f-8s24a4", 0, 32, 24, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
650
{ MEP_F_8S24A8, "f-8s24a8", 0, 32, 24, 5, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
651
{ MEP_F_24U8A4N_HI, "f-24u8a4n-hi", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
652
{ MEP_F_24U8A4N_LO, "f-24u8a4n-lo", 0, 32, 8, 6, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
653
{ MEP_F_24U8A4N, "f-24u8a4n", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
654
{ MEP_F_24U8N_HI, "f-24u8n-hi", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
655
{ MEP_F_24U8N_LO, "f-24u8n-lo", 0, 32, 8, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
656
{ MEP_F_24U8N, "f-24u8n", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
657
{ MEP_F_24U4N_HI, "f-24u4n-hi", 0, 32, 4, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
658
{ MEP_F_24U4N_LO, "f-24u4n-lo", 0, 32, 16, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
659
{ MEP_F_24U4N, "f-24u4n", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
660
{ MEP_F_CALLNUM, "f-callnum", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
661
{ MEP_F_CCRN_HI, "f-ccrn-hi", 0, 32, 28, 2, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
662
{ MEP_F_CCRN_LO, "f-ccrn-lo", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
663
{ MEP_F_CCRN, "f-ccrn", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } } } } },
664
{ MEP_F_FMAX_0_4, "f-fmax-0-4", 0, 32, 0, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
665
{ MEP_F_FMAX_4_4, "f-fmax-4-4", 0, 32, 4, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
666
{ MEP_F_FMAX_8_4, "f-fmax-8-4", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
667
{ MEP_F_FMAX_12_4, "f-fmax-12-4", 0, 32, 12, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
668
{ MEP_F_FMAX_16_4, "f-fmax-16-4", 0, 32, 16, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
669
{ MEP_F_FMAX_20_4, "f-fmax-20-4", 0, 32, 20, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
670
{ MEP_F_FMAX_24_4, "f-fmax-24-4", 0, 32, 24, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
671
{ MEP_F_FMAX_28_1, "f-fmax-28-1", 0, 32, 28, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
672
{ MEP_F_FMAX_29_1, "f-fmax-29-1", 0, 32, 29, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
673
{ MEP_F_FMAX_30_1, "f-fmax-30-1", 0, 32, 30, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
674
{ MEP_F_FMAX_31_1, "f-fmax-31-1", 0, 32, 31, 1, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
675
{ MEP_F_FMAX_FRD, "f-fmax-frd", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
676
{ MEP_F_FMAX_FRN, "f-fmax-frn", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
677
{ MEP_F_FMAX_FRM, "f-fmax-frm", 0, 0, 0, 0,{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
678
{ MEP_F_FMAX_RM, "f-fmax-rm", 0, 32, 8, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } } } } },
679
{ 0, 0, 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }
686
/* multi ifield declarations */
688
const CGEN_MAYBE_MULTI_IFLD MEP_F_CSRN_MULTI_IFIELD [];
689
const CGEN_MAYBE_MULTI_IFLD MEP_F_CRNX_MULTI_IFIELD [];
690
const CGEN_MAYBE_MULTI_IFLD MEP_F_24S5A2N_MULTI_IFIELD [];
691
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U5A2N_MULTI_IFIELD [];
692
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U8A4N_MULTI_IFIELD [];
693
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U8N_MULTI_IFIELD [];
694
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U4N_MULTI_IFIELD [];
695
const CGEN_MAYBE_MULTI_IFLD MEP_F_CALLNUM_MULTI_IFIELD [];
696
const CGEN_MAYBE_MULTI_IFLD MEP_F_CCRN_MULTI_IFIELD [];
697
const CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRD_MULTI_IFIELD [];
698
const CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRN_MULTI_IFIELD [];
699
const CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRM_MULTI_IFIELD [];
702
/* multi ifield definitions */
704
const CGEN_MAYBE_MULTI_IFLD MEP_F_CSRN_MULTI_IFIELD [] =
706
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CSRN_HI] } },
707
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CSRN_LO] } },
708
{ 0, { (const PTR) 0 } }
710
const CGEN_MAYBE_MULTI_IFLD MEP_F_CRNX_MULTI_IFIELD [] =
712
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRNX_HI] } },
713
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRNX_LO] } },
714
{ 0, { (const PTR) 0 } }
716
const CGEN_MAYBE_MULTI_IFLD MEP_F_24S5A2N_MULTI_IFIELD [] =
718
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24S5A2N_HI] } },
719
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24S5A2N_LO] } },
720
{ 0, { (const PTR) 0 } }
722
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U5A2N_MULTI_IFIELD [] =
724
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U5A2N_HI] } },
725
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U5A2N_LO] } },
726
{ 0, { (const PTR) 0 } }
728
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U8A4N_MULTI_IFIELD [] =
730
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8A4N_HI] } },
731
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8A4N_LO] } },
732
{ 0, { (const PTR) 0 } }
734
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U8N_MULTI_IFIELD [] =
736
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8N_HI] } },
737
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U8N_LO] } },
738
{ 0, { (const PTR) 0 } }
740
const CGEN_MAYBE_MULTI_IFLD MEP_F_24U4N_MULTI_IFIELD [] =
742
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U4N_HI] } },
743
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_24U4N_LO] } },
744
{ 0, { (const PTR) 0 } }
746
const CGEN_MAYBE_MULTI_IFLD MEP_F_CALLNUM_MULTI_IFIELD [] =
748
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_5] } },
749
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_6] } },
750
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7] } },
751
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_11] } },
752
{ 0, { (const PTR) 0 } }
754
const CGEN_MAYBE_MULTI_IFLD MEP_F_CCRN_MULTI_IFIELD [] =
756
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CCRN_HI] } },
757
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CCRN_LO] } },
758
{ 0, { (const PTR) 0 } }
760
const CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRD_MULTI_IFIELD [] =
762
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_28_1] } },
763
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_4_4] } },
764
{ 0, { (const PTR) 0 } }
766
const CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRN_MULTI_IFIELD [] =
768
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_29_1] } },
769
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_20_4] } },
770
{ 0, { (const PTR) 0 } }
772
const CGEN_MAYBE_MULTI_IFLD MEP_F_FMAX_FRM_MULTI_IFIELD [] =
774
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_30_1] } },
775
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_24_4] } },
776
{ 0, { (const PTR) 0 } }
779
/* The operand table. */
781
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
782
#define A(a) (1 << CGEN_OPERAND_##a)
784
#define A(a) (1 << CGEN_OPERAND_/**/a)
786
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
787
#define OPERAND(op) MEP_OPERAND_##op
789
#define OPERAND(op) MEP_OPERAND_/**/op
792
const CGEN_OPERAND mep_cgen_operand_table[] =
794
/* pc: program counter */
795
{ "pc", MEP_OPERAND_PC, HW_H_PC, 0, 0,
796
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_NIL] } },
797
{ 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
799
{ "r0", MEP_OPERAND_R0, HW_H_GPR, 0, 0,
800
{ 0, { (const PTR) 0 } },
801
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
802
/* rn: register Rn */
803
{ "rn", MEP_OPERAND_RN, HW_H_GPR, 4, 4,
804
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
805
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
806
/* rm: register Rm */
807
{ "rm", MEP_OPERAND_RM, HW_H_GPR, 8, 4,
808
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RM] } },
809
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
810
/* rl: register Rl */
811
{ "rl", MEP_OPERAND_RL, HW_H_GPR, 12, 4,
812
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RL] } },
813
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
814
/* rn3: register 0-7 */
815
{ "rn3", MEP_OPERAND_RN3, HW_H_GPR, 5, 3,
816
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
817
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
818
/* rma: register Rm holding pointer */
819
{ "rma", MEP_OPERAND_RMA, HW_H_GPR, 8, 4,
820
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RM] } },
821
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_POINTER, 0 } }, { { 1, 0 } } } } },
822
/* rnc: register Rn holding char */
823
{ "rnc", MEP_OPERAND_RNC, HW_H_GPR, 4, 4,
824
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
825
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CHAR, 0 } }, { { 1, 0 } } } } },
826
/* rnuc: register Rn holding unsigned char */
827
{ "rnuc", MEP_OPERAND_RNUC, HW_H_GPR, 4, 4,
828
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
829
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_UCHAR, 0 } }, { { 1, 0 } } } } },
830
/* rns: register Rn holding short */
831
{ "rns", MEP_OPERAND_RNS, HW_H_GPR, 4, 4,
832
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
833
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_SHORT, 0 } }, { { 1, 0 } } } } },
834
/* rnus: register Rn holding unsigned short */
835
{ "rnus", MEP_OPERAND_RNUS, HW_H_GPR, 4, 4,
836
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
837
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_USHORT, 0 } }, { { 1, 0 } } } } },
838
/* rnl: register Rn holding long */
839
{ "rnl", MEP_OPERAND_RNL, HW_H_GPR, 4, 4,
840
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
841
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
842
/* rnul: register Rn holding unsigned long */
843
{ "rnul", MEP_OPERAND_RNUL, HW_H_GPR, 4, 4,
844
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
845
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_ULONG, 0 } }, { { 1, 0 } } } } },
846
/* rn3c: register 0-7 holding unsigned char */
847
{ "rn3c", MEP_OPERAND_RN3C, HW_H_GPR, 5, 3,
848
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
849
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CHAR, 0 } }, { { 1, 0 } } } } },
850
/* rn3uc: register 0-7 holding byte */
851
{ "rn3uc", MEP_OPERAND_RN3UC, HW_H_GPR, 5, 3,
852
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
853
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_UCHAR, 0 } }, { { 1, 0 } } } } },
854
/* rn3s: register 0-7 holding unsigned short */
855
{ "rn3s", MEP_OPERAND_RN3S, HW_H_GPR, 5, 3,
856
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
857
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_SHORT, 0 } }, { { 1, 0 } } } } },
858
/* rn3us: register 0-7 holding short */
859
{ "rn3us", MEP_OPERAND_RN3US, HW_H_GPR, 5, 3,
860
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
861
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_USHORT, 0 } }, { { 1, 0 } } } } },
862
/* rn3l: register 0-7 holding unsigned long */
863
{ "rn3l", MEP_OPERAND_RN3L, HW_H_GPR, 5, 3,
864
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
865
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
866
/* rn3ul: register 0-7 holding long */
867
{ "rn3ul", MEP_OPERAND_RN3UL, HW_H_GPR, 5, 3,
868
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN3] } },
869
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_ULONG, 0 } }, { { 1, 0 } } } } },
870
/* lp: link pointer */
871
{ "lp", MEP_OPERAND_LP, HW_H_CSR, 0, 0,
872
{ 0, { (const PTR) 0 } },
873
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
874
/* sar: shift amount register */
875
{ "sar", MEP_OPERAND_SAR, HW_H_CSR, 0, 0,
876
{ 0, { (const PTR) 0 } },
877
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
878
/* hi: high result */
879
{ "hi", MEP_OPERAND_HI, HW_H_CSR, 0, 0,
880
{ 0, { (const PTR) 0 } },
881
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
883
{ "lo", MEP_OPERAND_LO, HW_H_CSR, 0, 0,
884
{ 0, { (const PTR) 0 } },
885
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
886
/* mb0: modulo begin register 0 */
887
{ "mb0", MEP_OPERAND_MB0, HW_H_CSR, 0, 0,
888
{ 0, { (const PTR) 0 } },
889
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
890
/* me0: modulo end register 0 */
891
{ "me0", MEP_OPERAND_ME0, HW_H_CSR, 0, 0,
892
{ 0, { (const PTR) 0 } },
893
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
894
/* mb1: modulo begin register 1 */
895
{ "mb1", MEP_OPERAND_MB1, HW_H_CSR, 0, 0,
896
{ 0, { (const PTR) 0 } },
897
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
898
/* me1: modulo end register 1 */
899
{ "me1", MEP_OPERAND_ME1, HW_H_CSR, 0, 0,
900
{ 0, { (const PTR) 0 } },
901
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
902
/* psw: program status word */
903
{ "psw", MEP_OPERAND_PSW, HW_H_CSR, 0, 0,
904
{ 0, { (const PTR) 0 } },
905
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
906
/* epc: exception prog counter */
907
{ "epc", MEP_OPERAND_EPC, HW_H_CSR, 0, 0,
908
{ 0, { (const PTR) 0 } },
909
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
910
/* exc: exception cause */
911
{ "exc", MEP_OPERAND_EXC, HW_H_CSR, 0, 0,
912
{ 0, { (const PTR) 0 } },
913
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
914
/* npc: nmi program counter */
915
{ "npc", MEP_OPERAND_NPC, HW_H_CSR, 0, 0,
916
{ 0, { (const PTR) 0 } },
917
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
918
/* dbg: debug register */
919
{ "dbg", MEP_OPERAND_DBG, HW_H_CSR, 0, 0,
920
{ 0, { (const PTR) 0 } },
921
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
922
/* depc: debug exception pc */
923
{ "depc", MEP_OPERAND_DEPC, HW_H_CSR, 0, 0,
924
{ 0, { (const PTR) 0 } },
925
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
926
/* opt: option register */
927
{ "opt", MEP_OPERAND_OPT, HW_H_CSR, 0, 0,
928
{ 0, { (const PTR) 0 } },
929
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
931
{ "r1", MEP_OPERAND_R1, HW_H_GPR, 0, 0,
932
{ 0, { (const PTR) 0 } },
933
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
934
/* tp: tiny data area pointer */
935
{ "tp", MEP_OPERAND_TP, HW_H_GPR, 0, 0,
936
{ 0, { (const PTR) 0 } },
937
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
938
/* sp: stack pointer */
939
{ "sp", MEP_OPERAND_SP, HW_H_GPR, 0, 0,
940
{ 0, { (const PTR) 0 } },
941
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
943
{ "tpr", MEP_OPERAND_TPR, HW_H_GPR, 0, 0,
944
{ 0, { (const PTR) 0 } },
945
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
947
{ "spr", MEP_OPERAND_SPR, HW_H_GPR, 0, 0,
948
{ 0, { (const PTR) 0 } },
949
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
950
/* csrn: control/special register */
951
{ "csrn", MEP_OPERAND_CSRN, HW_H_CSR, 8, 5,
952
{ 2, { (const PTR) &MEP_F_CSRN_MULTI_IFIELD[0] } },
953
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_REGNUM, 0 } }, { { 1, 0 } } } } },
954
/* csrn-idx: control/special reg idx */
955
{ "csrn-idx", MEP_OPERAND_CSRN_IDX, HW_H_UINT, 8, 5,
956
{ 2, { (const PTR) &MEP_F_CSRN_MULTI_IFIELD[0] } },
957
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
958
/* crn64: copro Rn (64-bit) */
959
{ "crn64", MEP_OPERAND_CRN64, HW_H_CR64, 4, 4,
960
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRN] } },
961
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } } },
962
/* crn: copro Rn (32-bit) */
963
{ "crn", MEP_OPERAND_CRN, HW_H_CR, 4, 4,
964
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_CRN] } },
965
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } } },
966
/* crnx64: copro Rn (0-31, 64-bit) */
967
{ "crnx64", MEP_OPERAND_CRNX64, HW_H_CR64, 4, 5,
968
{ 2, { (const PTR) &MEP_F_CRNX_MULTI_IFIELD[0] } },
969
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } } },
970
/* crnx: copro Rn (0-31, 32-bit) */
971
{ "crnx", MEP_OPERAND_CRNX, HW_H_CR, 4, 5,
972
{ 2, { (const PTR) &MEP_F_CRNX_MULTI_IFIELD[0] } },
973
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_CP_DATA_BUS_INT, 0 } }, { { 1, 0 } } } } },
974
/* ccrn: copro control reg CCRn */
975
{ "ccrn", MEP_OPERAND_CCRN, HW_H_CCR, 4, 6,
976
{ 2, { (const PTR) &MEP_F_CCRN_MULTI_IFIELD[0] } },
977
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_REGNUM, 0 } }, { { 1, 0 } } } } },
978
/* cccc: copro flags */
979
{ "cccc", MEP_OPERAND_CCCC, HW_H_UINT, 8, 4,
980
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RM] } },
981
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
982
/* pcrel8a2: comment */
983
{ "pcrel8a2", MEP_OPERAND_PCREL8A2, HW_H_SINT, 8, 7,
984
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S8A2] } },
985
{ 0|A(RELAX)|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } } },
986
/* pcrel12a2: comment */
987
{ "pcrel12a2", MEP_OPERAND_PCREL12A2, HW_H_SINT, 4, 11,
988
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_12S4A2] } },
989
{ 0|A(RELAX)|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } } },
990
/* pcrel17a2: comment */
991
{ "pcrel17a2", MEP_OPERAND_PCREL17A2, HW_H_SINT, 16, 16,
992
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_17S16A2] } },
993
{ 0|A(RELAX)|A(PCREL_ADDR), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } } },
994
/* pcrel24a2: comment */
995
{ "pcrel24a2", MEP_OPERAND_PCREL24A2, HW_H_SINT, 5, 23,
996
{ 2, { (const PTR) &MEP_F_24S5A2N_MULTI_IFIELD[0] } },
997
{ 0|A(PCREL_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } } },
998
/* pcabs24a2: comment */
999
{ "pcabs24a2", MEP_OPERAND_PCABS24A2, HW_H_UINT, 5, 23,
1000
{ 2, { (const PTR) &MEP_F_24U5A2N_MULTI_IFIELD[0] } },
1001
{ 0|A(ABS_ADDR)|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LABEL, 0 } }, { { 1, 0 } } } } },
1002
/* sdisp16: comment */
1003
{ "sdisp16", MEP_OPERAND_SDISP16, HW_H_SINT, 16, 16,
1004
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16S16] } },
1005
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1006
/* simm16: comment */
1007
{ "simm16", MEP_OPERAND_SIMM16, HW_H_SINT, 16, 16,
1008
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16S16] } },
1009
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1010
/* uimm16: comment */
1011
{ "uimm16", MEP_OPERAND_UIMM16, HW_H_UINT, 16, 16,
1012
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16U16] } },
1013
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1014
/* code16: uci/dsp code (16 bits) */
1015
{ "code16", MEP_OPERAND_CODE16, HW_H_UINT, 16, 16,
1016
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_16U16] } },
1017
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1018
/* udisp2: SSARB addend (2 bits) */
1019
{ "udisp2", MEP_OPERAND_UDISP2, HW_H_SINT, 6, 2,
1020
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_2U6] } },
1021
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1022
/* uimm2: interrupt (2 bits) */
1023
{ "uimm2", MEP_OPERAND_UIMM2, HW_H_UINT, 10, 2,
1024
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_2U10] } },
1025
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1026
/* simm6: add const (6 bits) */
1027
{ "simm6", MEP_OPERAND_SIMM6, HW_H_SINT, 8, 6,
1028
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_6S8] } },
1029
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1030
/* simm8: mov const (8 bits) */
1031
{ "simm8", MEP_OPERAND_SIMM8, HW_H_SINT, 8, 8,
1032
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S8] } },
1033
{ 0|A(RELOC_IMPLIES_OVERFLOW), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1034
/* addr24a4: comment */
1035
{ "addr24a4", MEP_OPERAND_ADDR24A4, HW_H_UINT, 8, 22,
1036
{ 2, { (const PTR) &MEP_F_24U8A4N_MULTI_IFIELD[0] } },
1037
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } } },
1038
/* code24: coprocessor code */
1039
{ "code24", MEP_OPERAND_CODE24, HW_H_UINT, 4, 24,
1040
{ 2, { (const PTR) &MEP_F_24U4N_MULTI_IFIELD[0] } },
1041
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1042
/* callnum: system call number */
1043
{ "callnum", MEP_OPERAND_CALLNUM, HW_H_UINT, 5, 4,
1044
{ 4, { (const PTR) &MEP_F_CALLNUM_MULTI_IFIELD[0] } },
1045
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1046
/* uimm3: bit immediate (3 bits) */
1047
{ "uimm3", MEP_OPERAND_UIMM3, HW_H_UINT, 5, 3,
1048
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_3U5] } },
1049
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1050
/* uimm4: bCC const (4 bits) */
1051
{ "uimm4", MEP_OPERAND_UIMM4, HW_H_UINT, 8, 4,
1052
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_4U8] } },
1053
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1054
/* uimm5: bit/shift val (5 bits) */
1055
{ "uimm5", MEP_OPERAND_UIMM5, HW_H_UINT, 8, 5,
1056
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_5U8] } },
1057
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1058
/* udisp7: comment */
1059
{ "udisp7", MEP_OPERAND_UDISP7, HW_H_UINT, 9, 7,
1060
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9] } },
1061
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1062
/* udisp7a2: comment */
1063
{ "udisp7a2", MEP_OPERAND_UDISP7A2, HW_H_UINT, 9, 6,
1064
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9A2] } },
1065
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 2, 0 } } } } },
1066
/* udisp7a4: comment */
1067
{ "udisp7a4", MEP_OPERAND_UDISP7A4, HW_H_UINT, 9, 5,
1068
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9A4] } },
1069
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } } },
1070
/* uimm7a4: comment */
1071
{ "uimm7a4", MEP_OPERAND_UIMM7A4, HW_H_UINT, 9, 5,
1072
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_7U9A4] } },
1073
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } } },
1074
/* uimm24: immediate (24 bits) */
1075
{ "uimm24", MEP_OPERAND_UIMM24, HW_H_UINT, 8, 24,
1076
{ 2, { (const PTR) &MEP_F_24U8N_MULTI_IFIELD[0] } },
1077
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1078
/* cimm4: cache immed'te (4 bits) */
1079
{ "cimm4", MEP_OPERAND_CIMM4, HW_H_UINT, 4, 4,
1080
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_RN] } },
1081
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1082
/* cimm5: clip immediate (5 bits) */
1083
{ "cimm5", MEP_OPERAND_CIMM5, HW_H_UINT, 24, 5,
1084
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_5U24] } },
1085
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1086
/* cdisp8: copro addend (8 bits) */
1087
{ "cdisp8", MEP_OPERAND_CDISP8, HW_H_SINT, 24, 8,
1088
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24] } },
1089
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1090
/* cdisp8a2: comment */
1091
{ "cdisp8a2", MEP_OPERAND_CDISP8A2, HW_H_SINT, 24, 7,
1092
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24A2] } },
1093
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 2, 0 } } } } },
1094
/* cdisp8a4: comment */
1095
{ "cdisp8a4", MEP_OPERAND_CDISP8A4, HW_H_SINT, 24, 6,
1096
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24A4] } },
1097
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 4, 0 } } } } },
1098
/* cdisp8a8: comment */
1099
{ "cdisp8a8", MEP_OPERAND_CDISP8A8, HW_H_SINT, 24, 5,
1100
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_8S24A8] } },
1101
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 8, 0 } } } } },
1102
/* zero: Zero operand */
1103
{ "zero", MEP_OPERAND_ZERO, HW_H_SINT, 0, 0,
1104
{ 0, { (const PTR) 0 } },
1105
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1106
/* cp_flag: branch condition register */
1107
{ "cp_flag", MEP_OPERAND_CP_FLAG, HW_H_CCR, 0, 0,
1108
{ 0, { (const PTR) 0 } },
1109
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xfe" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1111
{ "fmax-FRd", MEP_OPERAND_FMAX_FRD, HW_H_CR, 4, 5,
1112
{ 2, { (const PTR) &MEP_F_FMAX_FRD_MULTI_IFIELD[0] } },
1113
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_FLOAT, 0 } }, { { 1, 0 } } } } },
1115
{ "fmax-FRn", MEP_OPERAND_FMAX_FRN, HW_H_CR, 20, 5,
1116
{ 2, { (const PTR) &MEP_F_FMAX_FRN_MULTI_IFIELD[0] } },
1117
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_FLOAT, 0 } }, { { 1, 0 } } } } },
1119
{ "fmax-FRm", MEP_OPERAND_FMAX_FRM, HW_H_CR, 24, 5,
1120
{ 2, { (const PTR) &MEP_F_FMAX_FRM_MULTI_IFIELD[0] } },
1121
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_FLOAT, 0 } }, { { 1, 0 } } } } },
1122
/* fmax-FRd-int: FRd as an integer */
1123
{ "fmax-FRd-int", MEP_OPERAND_FMAX_FRD_INT, HW_H_CR, 4, 5,
1124
{ 2, { (const PTR) &MEP_F_FMAX_FRD_MULTI_IFIELD[0] } },
1125
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_INT, 0 } }, { { 1, 0 } } } } },
1126
/* fmax-FRn-int: FRn as an integer */
1127
{ "fmax-FRn-int", MEP_OPERAND_FMAX_FRN_INT, HW_H_CR, 20, 5,
1128
{ 2, { (const PTR) &MEP_F_FMAX_FRN_MULTI_IFIELD[0] } },
1129
{ 0|A(VIRTUAL), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_FMAX_INT, 0 } }, { { 1, 0 } } } } },
1130
/* fmax-CCRn: CCRn */
1131
{ "fmax-CCRn", MEP_OPERAND_FMAX_CCRN, HW_H_CCR, 4, 4,
1132
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_4_4] } },
1133
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_REGNUM, 0 } }, { { 1, 0 } } } } },
1134
/* fmax-CIRR: CIRR */
1135
{ "fmax-CIRR", MEP_OPERAND_FMAX_CIRR, HW_H_CCR, 0, 0,
1136
{ 0, { (const PTR) 0 } },
1137
{ 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1138
/* fmax-CBCR: CBCR */
1139
{ "fmax-CBCR", MEP_OPERAND_FMAX_CBCR, HW_H_CCR, 0, 0,
1140
{ 0, { (const PTR) 0 } },
1141
{ 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1142
/* fmax-CERR: CERR */
1143
{ "fmax-CERR", MEP_OPERAND_FMAX_CERR, HW_H_CCR, 0, 0,
1144
{ 0, { (const PTR) 0 } },
1145
{ 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1147
{ "fmax-Rm", MEP_OPERAND_FMAX_RM, HW_H_GPR, 8, 4,
1148
{ 0, { (const PTR) &mep_cgen_ifld_table[MEP_F_FMAX_RM] } },
1149
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1150
/* fmax-Compare-i-p: flag */
1151
{ "fmax-Compare-i-p", MEP_OPERAND_FMAX_COMPARE_I_P, HW_H_FMAX_COMPARE_I_P, 0, 0,
1152
{ 0, { (const PTR) 0 } },
1153
{ 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } },
1156
{ 0, { (const PTR) 0 } },
1157
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } }, { { CDATA_LONG, 0 } }, { { 1, 0 } } } } }
1163
/* The instruction table. */
1165
#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
1166
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
1167
#define A(a) (1 << CGEN_INSN_##a)
1169
#define A(a) (1 << CGEN_INSN_/**/a)
1172
static const CGEN_IBASE mep_cgen_insn_table[MAX_INSNS] =
1174
/* Special null first entry.
1175
A `num' value of zero is thus invalid.
1176
Also, the special `invalid' insn resides here. */
1177
{ 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } } },
1178
/* sb $rnc,($rma) */
1180
MEP_INSN_SB, "sb", "sb", 16,
1181
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1183
/* sh $rns,($rma) */
1185
MEP_INSN_SH, "sh", "sh", 16,
1186
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1188
/* sw $rnl,($rma) */
1190
MEP_INSN_SW, "sw", "sw", 16,
1191
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1193
/* lb $rnc,($rma) */
1195
MEP_INSN_LB, "lb", "lb", 16,
1196
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1198
/* lh $rns,($rma) */
1200
MEP_INSN_LH, "lh", "lh", 16,
1201
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1203
/* lw $rnl,($rma) */
1205
MEP_INSN_LW, "lw", "lw", 16,
1206
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1208
/* lbu $rnuc,($rma) */
1210
MEP_INSN_LBU, "lbu", "lbu", 16,
1211
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1213
/* lhu $rnus,($rma) */
1215
MEP_INSN_LHU, "lhu", "lhu", 16,
1216
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1218
/* sw $rnl,$udisp7a4($spr) */
1220
MEP_INSN_SW_SP, "sw-sp", "sw", 16,
1221
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1223
/* lw $rnl,$udisp7a4($spr) */
1225
MEP_INSN_LW_SP, "lw-sp", "lw", 16,
1226
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1228
/* sb $rn3c,$udisp7($tpr) */
1230
MEP_INSN_SB_TP, "sb-tp", "sb", 16,
1231
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1233
/* sh $rn3s,$udisp7a2($tpr) */
1235
MEP_INSN_SH_TP, "sh-tp", "sh", 16,
1236
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1238
/* sw $rn3l,$udisp7a4($tpr) */
1240
MEP_INSN_SW_TP, "sw-tp", "sw", 16,
1241
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1243
/* lb $rn3c,$udisp7($tpr) */
1245
MEP_INSN_LB_TP, "lb-tp", "lb", 16,
1246
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1248
/* lh $rn3s,$udisp7a2($tpr) */
1250
MEP_INSN_LH_TP, "lh-tp", "lh", 16,
1251
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1253
/* lw $rn3l,$udisp7a4($tpr) */
1255
MEP_INSN_LW_TP, "lw-tp", "lw", 16,
1256
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1258
/* lbu $rn3uc,$udisp7($tpr) */
1260
MEP_INSN_LBU_TP, "lbu-tp", "lbu", 16,
1261
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1263
/* lhu $rn3us,$udisp7a2($tpr) */
1265
MEP_INSN_LHU_TP, "lhu-tp", "lhu", 16,
1266
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1268
/* sb $rnc,$sdisp16($rma) */
1270
MEP_INSN_SB16, "sb16", "sb", 32,
1271
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1273
/* sh $rns,$sdisp16($rma) */
1275
MEP_INSN_SH16, "sh16", "sh", 32,
1276
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1278
/* sw $rnl,$sdisp16($rma) */
1280
MEP_INSN_SW16, "sw16", "sw", 32,
1281
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1283
/* lb $rnc,$sdisp16($rma) */
1285
MEP_INSN_LB16, "lb16", "lb", 32,
1286
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1288
/* lh $rns,$sdisp16($rma) */
1290
MEP_INSN_LH16, "lh16", "lh", 32,
1291
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1293
/* lw $rnl,$sdisp16($rma) */
1295
MEP_INSN_LW16, "lw16", "lw", 32,
1296
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1298
/* lbu $rnuc,$sdisp16($rma) */
1300
MEP_INSN_LBU16, "lbu16", "lbu", 32,
1301
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1303
/* lhu $rnus,$sdisp16($rma) */
1305
MEP_INSN_LHU16, "lhu16", "lhu", 32,
1306
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1308
/* sw $rnl,($addr24a4) */
1310
MEP_INSN_SW24, "sw24", "sw", 32,
1311
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1313
/* lw $rnl,($addr24a4) */
1315
MEP_INSN_LW24, "lw24", "lw", 32,
1316
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1320
MEP_INSN_EXTB, "extb", "extb", 16,
1321
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1325
MEP_INSN_EXTH, "exth", "exth", 16,
1326
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1330
MEP_INSN_EXTUB, "extub", "extub", 16,
1331
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1335
MEP_INSN_EXTUH, "extuh", "extuh", 16,
1336
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1338
/* ssarb $udisp2($rm) */
1340
MEP_INSN_SSARB, "ssarb", "ssarb", 16,
1341
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1345
MEP_INSN_MOV, "mov", "mov", 16,
1346
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1348
/* mov $rn,$simm8 */
1350
MEP_INSN_MOVI8, "movi8", "mov", 16,
1351
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1353
/* mov $rn,$simm16 */
1355
MEP_INSN_MOVI16, "movi16", "mov", 32,
1356
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1358
/* movu $rn3,$uimm24 */
1360
MEP_INSN_MOVU24, "movu24", "movu", 32,
1361
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1363
/* movu $rn,$uimm16 */
1365
MEP_INSN_MOVU16, "movu16", "movu", 32,
1366
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1368
/* movh $rn,$uimm16 */
1370
MEP_INSN_MOVH, "movh", "movh", 32,
1371
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1373
/* add3 $rl,$rn,$rm */
1375
MEP_INSN_ADD3, "add3", "add3", 16,
1376
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1378
/* add $rn,$simm6 */
1380
MEP_INSN_ADD, "add", "add", 16,
1381
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1383
/* add3 $rn,$spr,$uimm7a4 */
1385
MEP_INSN_ADD3I, "add3i", "add3", 16,
1386
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1388
/* advck3 \$0,$rn,$rm */
1390
MEP_INSN_ADVCK3, "advck3", "advck3", 16,
1391
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1395
MEP_INSN_SUB, "sub", "sub", 16,
1396
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1398
/* sbvck3 \$0,$rn,$rm */
1400
MEP_INSN_SBVCK3, "sbvck3", "sbvck3", 16,
1401
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1405
MEP_INSN_NEG, "neg", "neg", 16,
1406
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1408
/* slt3 \$0,$rn,$rm */
1410
MEP_INSN_SLT3, "slt3", "slt3", 16,
1411
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1413
/* sltu3 \$0,$rn,$rm */
1415
MEP_INSN_SLTU3, "sltu3", "sltu3", 16,
1416
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1418
/* slt3 \$0,$rn,$uimm5 */
1420
MEP_INSN_SLT3I, "slt3i", "slt3", 16,
1421
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1423
/* sltu3 \$0,$rn,$uimm5 */
1425
MEP_INSN_SLTU3I, "sltu3i", "sltu3", 16,
1426
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1428
/* sl1ad3 \$0,$rn,$rm */
1430
MEP_INSN_SL1AD3, "sl1ad3", "sl1ad3", 16,
1431
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1433
/* sl2ad3 \$0,$rn,$rm */
1435
MEP_INSN_SL2AD3, "sl2ad3", "sl2ad3", 16,
1436
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1438
/* add3 $rn,$rm,$simm16 */
1440
MEP_INSN_ADD3X, "add3x", "add3", 32,
1441
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1443
/* slt3 $rn,$rm,$simm16 */
1445
MEP_INSN_SLT3X, "slt3x", "slt3", 32,
1446
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1448
/* sltu3 $rn,$rm,$uimm16 */
1450
MEP_INSN_SLTU3X, "sltu3x", "sltu3", 32,
1451
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1455
MEP_INSN_OR, "or", "or", 16,
1456
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1460
MEP_INSN_AND, "and", "and", 16,
1461
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1465
MEP_INSN_XOR, "xor", "xor", 16,
1466
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1470
MEP_INSN_NOR, "nor", "nor", 16,
1471
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1473
/* or3 $rn,$rm,$uimm16 */
1475
MEP_INSN_OR3, "or3", "or3", 32,
1476
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1478
/* and3 $rn,$rm,$uimm16 */
1480
MEP_INSN_AND3, "and3", "and3", 32,
1481
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1483
/* xor3 $rn,$rm,$uimm16 */
1485
MEP_INSN_XOR3, "xor3", "xor3", 32,
1486
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1490
MEP_INSN_SRA, "sra", "sra", 16,
1491
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1495
MEP_INSN_SRL, "srl", "srl", 16,
1496
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1500
MEP_INSN_SLL, "sll", "sll", 16,
1501
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1503
/* sra $rn,$uimm5 */
1505
MEP_INSN_SRAI, "srai", "sra", 16,
1506
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1508
/* srl $rn,$uimm5 */
1510
MEP_INSN_SRLI, "srli", "srl", 16,
1511
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1513
/* sll $rn,$uimm5 */
1515
MEP_INSN_SLLI, "slli", "sll", 16,
1516
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1518
/* sll3 \$0,$rn,$uimm5 */
1520
MEP_INSN_SLL3, "sll3", "sll3", 16,
1521
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1525
MEP_INSN_FSFT, "fsft", "fsft", 16,
1526
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1528
/* bra $pcrel12a2 */
1530
MEP_INSN_BRA, "bra", "bra", 16,
1531
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1533
/* beqz $rn,$pcrel8a2 */
1535
MEP_INSN_BEQZ, "beqz", "beqz", 16,
1536
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1538
/* bnez $rn,$pcrel8a2 */
1540
MEP_INSN_BNEZ, "bnez", "bnez", 16,
1541
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1543
/* beqi $rn,$uimm4,$pcrel17a2 */
1545
MEP_INSN_BEQI, "beqi", "beqi", 32,
1546
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1548
/* bnei $rn,$uimm4,$pcrel17a2 */
1550
MEP_INSN_BNEI, "bnei", "bnei", 32,
1551
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1553
/* blti $rn,$uimm4,$pcrel17a2 */
1555
MEP_INSN_BLTI, "blti", "blti", 32,
1556
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1558
/* bgei $rn,$uimm4,$pcrel17a2 */
1560
MEP_INSN_BGEI, "bgei", "bgei", 32,
1561
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1563
/* beq $rn,$rm,$pcrel17a2 */
1565
MEP_INSN_BEQ, "beq", "beq", 32,
1566
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1568
/* bne $rn,$rm,$pcrel17a2 */
1570
MEP_INSN_BNE, "bne", "bne", 32,
1571
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1573
/* bsr $pcrel12a2 */
1575
MEP_INSN_BSR12, "bsr12", "bsr", 16,
1576
{ 0|A(RELAXABLE)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1578
/* bsr $pcrel24a2 */
1580
MEP_INSN_BSR24, "bsr24", "bsr", 32,
1581
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1585
MEP_INSN_JMP, "jmp", "jmp", 16,
1586
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1588
/* jmp $pcabs24a2 */
1590
MEP_INSN_JMP24, "jmp24", "jmp", 32,
1591
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1595
MEP_INSN_JSR, "jsr", "jsr", 16,
1596
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1600
MEP_INSN_RET, "ret", "ret", 16,
1601
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1603
/* repeat $rn,$pcrel17a2 */
1605
MEP_INSN_REPEAT, "repeat", "repeat", 32,
1606
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1608
/* erepeat $pcrel17a2 */
1610
MEP_INSN_EREPEAT, "erepeat", "erepeat", 32,
1611
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1615
MEP_INSN_STC_LP, "stc_lp", "stc", 16,
1616
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1620
MEP_INSN_STC_HI, "stc_hi", "stc", 16,
1621
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1625
MEP_INSN_STC_LO, "stc_lo", "stc", 16,
1626
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1630
MEP_INSN_STC, "stc", "stc", 16,
1631
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1635
MEP_INSN_LDC_LP, "ldc_lp", "ldc", 16,
1636
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1640
MEP_INSN_LDC_HI, "ldc_hi", "ldc", 16,
1641
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1645
MEP_INSN_LDC_LO, "ldc_lo", "ldc", 16,
1646
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1650
MEP_INSN_LDC, "ldc", "ldc", 16,
1651
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 2, 0 } }, { { CONFIG_NONE, 0 } } } }
1655
MEP_INSN_DI, "di", "di", 16,
1656
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1660
MEP_INSN_EI, "ei", "ei", 16,
1661
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1665
MEP_INSN_RETI, "reti", "reti", 16,
1666
{ 0|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1670
MEP_INSN_HALT, "halt", "halt", 16,
1671
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1675
MEP_INSN_SLEEP, "sleep", "sleep", 16,
1676
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1680
MEP_INSN_SWI, "swi", "swi", 16,
1681
{ 0|A(VOLATILE)|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1685
MEP_INSN_BREAK, "break", "break", 16,
1686
{ 0|A(VOLATILE)|A(MAY_TRAP)|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1690
MEP_INSN_SYNCM, "syncm", "syncm", 16,
1691
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1693
/* stcb $rn,$uimm16 */
1695
MEP_INSN_STCB, "stcb", "stcb", 32,
1696
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1698
/* ldcb $rn,$uimm16 */
1700
MEP_INSN_LDCB, "ldcb", "ldcb", 32,
1701
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1703
/* bsetm ($rma),$uimm3 */
1705
MEP_INSN_BSETM, "bsetm", "bsetm", 16,
1706
{ 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1708
/* bclrm ($rma),$uimm3 */
1710
MEP_INSN_BCLRM, "bclrm", "bclrm", 16,
1711
{ 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1713
/* bnotm ($rma),$uimm3 */
1715
MEP_INSN_BNOTM, "bnotm", "bnotm", 16,
1716
{ 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1718
/* btstm \$0,($rma),$uimm3 */
1720
MEP_INSN_BTSTM, "btstm", "btstm", 16,
1721
{ 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1723
/* tas $rn,($rma) */
1725
MEP_INSN_TAS, "tas", "tas", 16,
1726
{ 0|A(OPTIONAL_BIT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1728
/* cache $cimm4,($rma) */
1730
MEP_INSN_CACHE, "cache", "cache", 16,
1731
{ 0|A(VOLATILE), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1735
MEP_INSN_MUL, "mul", "mul", 16,
1736
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1740
MEP_INSN_MULU, "mulu", "mulu", 16,
1741
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1745
MEP_INSN_MULR, "mulr", "mulr", 16,
1746
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1750
MEP_INSN_MULRU, "mulru", "mulru", 16,
1751
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1755
MEP_INSN_MADD, "madd", "madd", 32,
1756
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1760
MEP_INSN_MADDU, "maddu", "maddu", 32,
1761
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1765
MEP_INSN_MADDR, "maddr", "maddr", 32,
1766
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1768
/* maddru $rn,$rm */
1770
MEP_INSN_MADDRU, "maddru", "maddru", 32,
1771
{ 0|A(OPTIONAL_MUL_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 3, 0 } }, { { CONFIG_NONE, 0 } } } }
1775
MEP_INSN_DIV, "div", "div", 16,
1776
{ 0|A(MAY_TRAP)|A(OPTIONAL_DIV_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 34, 0 } }, { { CONFIG_NONE, 0 } } } }
1780
MEP_INSN_DIVU, "divu", "divu", 16,
1781
{ 0|A(MAY_TRAP)|A(OPTIONAL_DIV_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 34, 0 } }, { { CONFIG_NONE, 0 } } } }
1785
MEP_INSN_DRET, "dret", "dret", 16,
1786
{ 0|A(OPTIONAL_DEBUG_INSN)|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1790
MEP_INSN_DBREAK, "dbreak", "dbreak", 16,
1791
{ 0|A(VOLATILE)|A(MAY_TRAP)|A(OPTIONAL_DEBUG_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1795
MEP_INSN_LDZ, "ldz", "ldz", 32,
1796
{ 0|A(OPTIONAL_LDZ_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1800
MEP_INSN_ABS, "abs", "abs", 32,
1801
{ 0|A(OPTIONAL_ABS_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1805
MEP_INSN_AVE, "ave", "ave", 32,
1806
{ 0|A(OPTIONAL_AVE_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1810
MEP_INSN_MIN, "min", "min", 32,
1811
{ 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1815
MEP_INSN_MAX, "max", "max", 32,
1816
{ 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1820
MEP_INSN_MINU, "minu", "minu", 32,
1821
{ 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1825
MEP_INSN_MAXU, "maxu", "maxu", 32,
1826
{ 0|A(OPTIONAL_MINMAX_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1828
/* clip $rn,$cimm5 */
1830
MEP_INSN_CLIP, "clip", "clip", 32,
1831
{ 0|A(OPTIONAL_CLIP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1833
/* clipu $rn,$cimm5 */
1835
MEP_INSN_CLIPU, "clipu", "clipu", 32,
1836
{ 0|A(OPTIONAL_CLIP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1840
MEP_INSN_SADD, "sadd", "sadd", 32,
1841
{ 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1845
MEP_INSN_SSUB, "ssub", "ssub", 32,
1846
{ 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1850
MEP_INSN_SADDU, "saddu", "saddu", 32,
1851
{ 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1855
MEP_INSN_SSUBU, "ssubu", "ssubu", 32,
1856
{ 0|A(OPTIONAL_SAT_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1858
/* swcp $crn,($rma) */
1860
MEP_INSN_SWCP, "swcp", "swcp", 16,
1861
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1863
/* lwcp $crn,($rma) */
1865
MEP_INSN_LWCP, "lwcp", "lwcp", 16,
1866
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1868
/* smcp $crn64,($rma) */
1870
MEP_INSN_SMCP, "smcp", "smcp", 16,
1871
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1873
/* lmcp $crn64,($rma) */
1875
MEP_INSN_LMCP, "lmcp", "lmcp", 16,
1876
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1878
/* swcpi $crn,($rma+) */
1880
MEP_INSN_SWCPI, "swcpi", "swcpi", 16,
1881
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1883
/* lwcpi $crn,($rma+) */
1885
MEP_INSN_LWCPI, "lwcpi", "lwcpi", 16,
1886
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1888
/* smcpi $crn64,($rma+) */
1890
MEP_INSN_SMCPI, "smcpi", "smcpi", 16,
1891
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1893
/* lmcpi $crn64,($rma+) */
1895
MEP_INSN_LMCPI, "lmcpi", "lmcpi", 16,
1896
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1898
/* swcp $crn,$sdisp16($rma) */
1900
MEP_INSN_SWCP16, "swcp16", "swcp", 32,
1901
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1903
/* lwcp $crn,$sdisp16($rma) */
1905
MEP_INSN_LWCP16, "lwcp16", "lwcp", 32,
1906
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1908
/* smcp $crn64,$sdisp16($rma) */
1910
MEP_INSN_SMCP16, "smcp16", "smcp", 32,
1911
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1913
/* lmcp $crn64,$sdisp16($rma) */
1915
MEP_INSN_LMCP16, "lmcp16", "lmcp", 32,
1916
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1918
/* sbcpa $crn,($rma+),$cdisp8 */
1920
MEP_INSN_SBCPA, "sbcpa", "sbcpa", 32,
1921
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1923
/* lbcpa $crn,($rma+),$cdisp8 */
1925
MEP_INSN_LBCPA, "lbcpa", "lbcpa", 32,
1926
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1928
/* shcpa $crn,($rma+),$cdisp8a2 */
1930
MEP_INSN_SHCPA, "shcpa", "shcpa", 32,
1931
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1933
/* lhcpa $crn,($rma+),$cdisp8a2 */
1935
MEP_INSN_LHCPA, "lhcpa", "lhcpa", 32,
1936
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1938
/* swcpa $crn,($rma+),$cdisp8a4 */
1940
MEP_INSN_SWCPA, "swcpa", "swcpa", 32,
1941
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1943
/* lwcpa $crn,($rma+),$cdisp8a4 */
1945
MEP_INSN_LWCPA, "lwcpa", "lwcpa", 32,
1946
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1948
/* smcpa $crn64,($rma+),$cdisp8a8 */
1950
MEP_INSN_SMCPA, "smcpa", "smcpa", 32,
1951
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1953
/* lmcpa $crn64,($rma+),$cdisp8a8 */
1955
MEP_INSN_LMCPA, "lmcpa", "lmcpa", 32,
1956
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1958
/* sbcpm0 $crn,($rma+),$cdisp8 */
1960
MEP_INSN_SBCPM0, "sbcpm0", "sbcpm0", 32,
1961
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1963
/* lbcpm0 $crn,($rma+),$cdisp8 */
1965
MEP_INSN_LBCPM0, "lbcpm0", "lbcpm0", 32,
1966
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1968
/* shcpm0 $crn,($rma+),$cdisp8a2 */
1970
MEP_INSN_SHCPM0, "shcpm0", "shcpm0", 32,
1971
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1973
/* lhcpm0 $crn,($rma+),$cdisp8a2 */
1975
MEP_INSN_LHCPM0, "lhcpm0", "lhcpm0", 32,
1976
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1978
/* swcpm0 $crn,($rma+),$cdisp8a4 */
1980
MEP_INSN_SWCPM0, "swcpm0", "swcpm0", 32,
1981
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1983
/* lwcpm0 $crn,($rma+),$cdisp8a4 */
1985
MEP_INSN_LWCPM0, "lwcpm0", "lwcpm0", 32,
1986
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1988
/* smcpm0 $crn64,($rma+),$cdisp8a8 */
1990
MEP_INSN_SMCPM0, "smcpm0", "smcpm0", 32,
1991
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1993
/* lmcpm0 $crn64,($rma+),$cdisp8a8 */
1995
MEP_INSN_LMCPM0, "lmcpm0", "lmcpm0", 32,
1996
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
1998
/* sbcpm1 $crn,($rma+),$cdisp8 */
2000
MEP_INSN_SBCPM1, "sbcpm1", "sbcpm1", 32,
2001
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2003
/* lbcpm1 $crn,($rma+),$cdisp8 */
2005
MEP_INSN_LBCPM1, "lbcpm1", "lbcpm1", 32,
2006
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2008
/* shcpm1 $crn,($rma+),$cdisp8a2 */
2010
MEP_INSN_SHCPM1, "shcpm1", "shcpm1", 32,
2011
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2013
/* lhcpm1 $crn,($rma+),$cdisp8a2 */
2015
MEP_INSN_LHCPM1, "lhcpm1", "lhcpm1", 32,
2016
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2018
/* swcpm1 $crn,($rma+),$cdisp8a4 */
2020
MEP_INSN_SWCPM1, "swcpm1", "swcpm1", 32,
2021
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2023
/* lwcpm1 $crn,($rma+),$cdisp8a4 */
2025
MEP_INSN_LWCPM1, "lwcpm1", "lwcpm1", 32,
2026
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2028
/* smcpm1 $crn64,($rma+),$cdisp8a8 */
2030
MEP_INSN_SMCPM1, "smcpm1", "smcpm1", 32,
2031
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2033
/* lmcpm1 $crn64,($rma+),$cdisp8a8 */
2035
MEP_INSN_LMCPM1, "lmcpm1", "lmcpm1", 32,
2036
{ 0|A(OPTIONAL_CP64_INSN)|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2038
/* bcpeq $cccc,$pcrel17a2 */
2040
MEP_INSN_BCPEQ, "bcpeq", "bcpeq", 32,
2041
{ 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2043
/* bcpne $cccc,$pcrel17a2 */
2045
MEP_INSN_BCPNE, "bcpne", "bcpne", 32,
2046
{ 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2048
/* bcpat $cccc,$pcrel17a2 */
2050
MEP_INSN_BCPAT, "bcpat", "bcpat", 32,
2051
{ 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2053
/* bcpaf $cccc,$pcrel17a2 */
2055
MEP_INSN_BCPAF, "bcpaf", "bcpaf", 32,
2056
{ 0|A(RELAXABLE)|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2060
MEP_INSN_SYNCCP, "synccp", "synccp", 16,
2061
{ 0|A(OPTIONAL_CP_INSN), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2065
MEP_INSN_JSRV, "jsrv", "jsrv", 16,
2066
{ 0|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2068
/* bsrv $pcrel24a2 */
2070
MEP_INSN_BSRV, "bsrv", "bsrv", 32,
2071
{ 0|A(OPTIONAL_CP_INSN)|A(COND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2075
MEP_INSN_SIM_SYSCALL, "sim-syscall", "--unused--", 16,
2076
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2080
MEP_INSN_RI_0, "ri-0", "--reserved--", 16,
2081
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2085
MEP_INSN_RI_1, "ri-1", "--reserved--", 16,
2086
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2090
MEP_INSN_RI_2, "ri-2", "--reserved--", 16,
2091
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2095
MEP_INSN_RI_3, "ri-3", "--reserved--", 16,
2096
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2100
MEP_INSN_RI_4, "ri-4", "--reserved--", 16,
2101
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2105
MEP_INSN_RI_5, "ri-5", "--reserved--", 16,
2106
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2110
MEP_INSN_RI_6, "ri-6", "--reserved--", 16,
2111
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2115
MEP_INSN_RI_7, "ri-7", "--reserved--", 16,
2116
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2120
MEP_INSN_RI_8, "ri-8", "--reserved--", 16,
2121
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2125
MEP_INSN_RI_9, "ri-9", "--reserved--", 16,
2126
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2130
MEP_INSN_RI_10, "ri-10", "--reserved--", 16,
2131
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2135
MEP_INSN_RI_11, "ri-11", "--reserved--", 16,
2136
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2140
MEP_INSN_RI_12, "ri-12", "--reserved--", 16,
2141
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2145
MEP_INSN_RI_13, "ri-13", "--reserved--", 16,
2146
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2150
MEP_INSN_RI_14, "ri-14", "--reserved--", 16,
2151
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2155
MEP_INSN_RI_15, "ri-15", "--reserved--", 16,
2156
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2160
MEP_INSN_RI_17, "ri-17", "--reserved--", 16,
2161
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2165
MEP_INSN_RI_20, "ri-20", "--reserved--", 16,
2166
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2170
MEP_INSN_RI_21, "ri-21", "--reserved--", 16,
2171
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2175
MEP_INSN_RI_22, "ri-22", "--reserved--", 16,
2176
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2180
MEP_INSN_RI_23, "ri-23", "--reserved--", 16,
2181
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2185
MEP_INSN_RI_24, "ri-24", "--reserved--", 16,
2186
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2190
MEP_INSN_RI_25, "ri-25", "--reserved--", 16,
2191
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2195
MEP_INSN_RI_26, "ri-26", "--reserved--", 16,
2196
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2200
MEP_INSN_RI_16, "ri-16", "--reserved--", 16,
2201
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2205
MEP_INSN_RI_18, "ri-18", "--reserved--", 16,
2206
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2210
MEP_INSN_RI_19, "ri-19", "--reserved--", 16,
2211
{ 0|A(UNCOND_CTI), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xe0" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2213
/* fadds ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2215
MEP_INSN_FADDS, "fadds", "fadds", 32,
2216
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2218
/* fsubs ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2220
MEP_INSN_FSUBS, "fsubs", "fsubs", 32,
2221
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2223
/* fmuls ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2225
MEP_INSN_FMULS, "fmuls", "fmuls", 32,
2226
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2228
/* fdivs ${fmax-FRd},${fmax-FRn},${fmax-FRm} */
2230
MEP_INSN_FDIVS, "fdivs", "fdivs", 32,
2231
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2233
/* fsqrts ${fmax-FRd},${fmax-FRn} */
2235
MEP_INSN_FSQRTS, "fsqrts", "fsqrts", 32,
2236
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2238
/* fabss ${fmax-FRd},${fmax-FRn} */
2240
MEP_INSN_FABSS, "fabss", "fabss", 32,
2241
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2243
/* fnegs ${fmax-FRd},${fmax-FRn} */
2245
MEP_INSN_FNEGS, "fnegs", "fnegs", 32,
2246
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2248
/* fmovs ${fmax-FRd},${fmax-FRn} */
2250
MEP_INSN_FMOVS, "fmovs", "fmovs", 32,
2251
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2253
/* froundws ${fmax-FRd-int},${fmax-FRn} */
2255
MEP_INSN_FROUNDWS, "froundws", "froundws", 32,
2256
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2258
/* ftruncws ${fmax-FRd-int},${fmax-FRn} */
2260
MEP_INSN_FTRUNCWS, "ftruncws", "ftruncws", 32,
2261
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2263
/* fceilws ${fmax-FRd-int},${fmax-FRn} */
2265
MEP_INSN_FCEILWS, "fceilws", "fceilws", 32,
2266
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2268
/* ffloorws ${fmax-FRd-int},${fmax-FRn} */
2270
MEP_INSN_FFLOORWS, "ffloorws", "ffloorws", 32,
2271
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2273
/* fcvtws ${fmax-FRd-int},${fmax-FRn} */
2275
MEP_INSN_FCVTWS, "fcvtws", "fcvtws", 32,
2276
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2278
/* fcvtsw ${fmax-FRd},${fmax-FRn-int} */
2280
MEP_INSN_FCVTSW, "fcvtsw", "fcvtsw", 32,
2281
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2283
/* fcmpfs ${fmax-FRn},${fmax-FRm} */
2285
MEP_INSN_FCMPFS, "fcmpfs", "fcmpfs", 32,
2286
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2288
/* fcmpus ${fmax-FRn},${fmax-FRm} */
2290
MEP_INSN_FCMPUS, "fcmpus", "fcmpus", 32,
2291
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2293
/* fcmpes ${fmax-FRn},${fmax-FRm} */
2295
MEP_INSN_FCMPES, "fcmpes", "fcmpes", 32,
2296
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2298
/* fcmpues ${fmax-FRn},${fmax-FRm} */
2300
MEP_INSN_FCMPUES, "fcmpues", "fcmpues", 32,
2301
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2303
/* fcmpls ${fmax-FRn},${fmax-FRm} */
2305
MEP_INSN_FCMPLS, "fcmpls", "fcmpls", 32,
2306
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2308
/* fcmpuls ${fmax-FRn},${fmax-FRm} */
2310
MEP_INSN_FCMPULS, "fcmpuls", "fcmpuls", 32,
2311
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2313
/* fcmples ${fmax-FRn},${fmax-FRm} */
2315
MEP_INSN_FCMPLES, "fcmples", "fcmples", 32,
2316
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2318
/* fcmpules ${fmax-FRn},${fmax-FRm} */
2320
MEP_INSN_FCMPULES, "fcmpules", "fcmpules", 32,
2321
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2323
/* fcmpfis ${fmax-FRn},${fmax-FRm} */
2325
MEP_INSN_FCMPFIS, "fcmpfis", "fcmpfis", 32,
2326
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2328
/* fcmpuis ${fmax-FRn},${fmax-FRm} */
2330
MEP_INSN_FCMPUIS, "fcmpuis", "fcmpuis", 32,
2331
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2333
/* fcmpeis ${fmax-FRn},${fmax-FRm} */
2335
MEP_INSN_FCMPEIS, "fcmpeis", "fcmpeis", 32,
2336
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2338
/* fcmpueis ${fmax-FRn},${fmax-FRm} */
2340
MEP_INSN_FCMPUEIS, "fcmpueis", "fcmpueis", 32,
2341
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2343
/* fcmplis ${fmax-FRn},${fmax-FRm} */
2345
MEP_INSN_FCMPLIS, "fcmplis", "fcmplis", 32,
2346
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2348
/* fcmpulis ${fmax-FRn},${fmax-FRm} */
2350
MEP_INSN_FCMPULIS, "fcmpulis", "fcmpulis", 32,
2351
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2353
/* fcmpleis ${fmax-FRn},${fmax-FRm} */
2355
MEP_INSN_FCMPLEIS, "fcmpleis", "fcmpleis", 32,
2356
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2358
/* fcmpuleis ${fmax-FRn},${fmax-FRm} */
2360
MEP_INSN_FCMPULEIS, "fcmpuleis", "fcmpuleis", 32,
2361
{ 0|A(MAY_TRAP), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2363
/* cmov ${fmax-FRd-int},${fmax-Rm} */
2365
MEP_INSN_CMOV_FRN_RM, "cmov-frn-rm", "cmov", 32,
2366
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2368
/* cmov ${fmax-Rm},${fmax-FRd-int} */
2370
MEP_INSN_CMOV_RM_FRN, "cmov-rm-frn", "cmov", 32,
2371
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2373
/* cmovc ${fmax-CCRn},${fmax-Rm} */
2375
MEP_INSN_CMOVC_CCRN_RM, "cmovc-ccrn-rm", "cmovc", 32,
2376
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2378
/* cmovc ${fmax-Rm},${fmax-CCRn} */
2380
MEP_INSN_CMOVC_RM_CCRN, "cmovc-rm-ccrn", "cmovc", 32,
2381
{ 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x20" } }, { { 0, 0 } }, { { CONFIG_NONE, 0 } } } }
2388
/* Initialize anything needed to be done once, before any cpu_open call. */
2395
static const CGEN_MACH * lookup_mach_via_bfd_name (const CGEN_MACH *, const char *);
2396
static void build_hw_table (CGEN_CPU_TABLE *);
2397
static void build_ifield_table (CGEN_CPU_TABLE *);
2398
static void build_operand_table (CGEN_CPU_TABLE *);
2399
static void build_insn_table (CGEN_CPU_TABLE *);
2400
static void mep_cgen_rebuild_tables (CGEN_CPU_TABLE *);
2402
/* Subroutine of mep_cgen_cpu_open to look up a mach via its bfd name. */
2404
static const CGEN_MACH *
2405
lookup_mach_via_bfd_name (const CGEN_MACH *table, const char *name)
2409
if (strcmp (name, table->bfd_name) == 0)
2416
/* Subroutine of mep_cgen_cpu_open to build the hardware table. */
2419
build_hw_table (CGEN_CPU_TABLE *cd)
2422
int machs = cd->machs;
2423
const CGEN_HW_ENTRY *init = & mep_cgen_hw_table[0];
2424
/* MAX_HW is only an upper bound on the number of selected entries.
2425
However each entry is indexed by it's enum so there can be holes in
2427
const CGEN_HW_ENTRY **selected =
2428
(const CGEN_HW_ENTRY **) xmalloc (MAX_HW * sizeof (CGEN_HW_ENTRY *));
2430
cd->hw_table.init_entries = init;
2431
cd->hw_table.entry_size = sizeof (CGEN_HW_ENTRY);
2432
memset (selected, 0, MAX_HW * sizeof (CGEN_HW_ENTRY *));
2433
/* ??? For now we just use machs to determine which ones we want. */
2434
for (i = 0; init[i].name != NULL; ++i)
2435
if (CGEN_HW_ATTR_VALUE (&init[i], CGEN_HW_MACH)
2437
selected[init[i].type] = &init[i];
2438
cd->hw_table.entries = selected;
2439
cd->hw_table.num_entries = MAX_HW;
2442
/* Subroutine of mep_cgen_cpu_open to build the hardware table. */
2445
build_ifield_table (CGEN_CPU_TABLE *cd)
2447
cd->ifld_table = & mep_cgen_ifld_table[0];
2450
/* Subroutine of mep_cgen_cpu_open to build the hardware table. */
2453
build_operand_table (CGEN_CPU_TABLE *cd)
2456
int machs = cd->machs;
2457
const CGEN_OPERAND *init = & mep_cgen_operand_table[0];
2458
/* MAX_OPERANDS is only an upper bound on the number of selected entries.
2459
However each entry is indexed by it's enum so there can be holes in
2461
const CGEN_OPERAND **selected = xmalloc (MAX_OPERANDS * sizeof (* selected));
2463
cd->operand_table.init_entries = init;
2464
cd->operand_table.entry_size = sizeof (CGEN_OPERAND);
2465
memset (selected, 0, MAX_OPERANDS * sizeof (CGEN_OPERAND *));
2466
/* ??? For now we just use mach to determine which ones we want. */
2467
for (i = 0; init[i].name != NULL; ++i)
2468
if (CGEN_OPERAND_ATTR_VALUE (&init[i], CGEN_OPERAND_MACH)
2470
selected[init[i].type] = &init[i];
2471
cd->operand_table.entries = selected;
2472
cd->operand_table.num_entries = MAX_OPERANDS;
2475
/* Subroutine of mep_cgen_cpu_open to build the hardware table.
2476
??? This could leave out insns not supported by the specified mach/isa,
2477
but that would cause errors like "foo only supported by bar" to become
2478
"unknown insn", so for now we include all insns and require the app to
2479
do the checking later.
2480
??? On the other hand, parsing of such insns may require their hardware or
2481
operand elements to be in the table [which they mightn't be]. */
2484
build_insn_table (CGEN_CPU_TABLE *cd)
2487
const CGEN_IBASE *ib = & mep_cgen_insn_table[0];
2488
CGEN_INSN *insns = xmalloc (MAX_INSNS * sizeof (CGEN_INSN));
2490
memset (insns, 0, MAX_INSNS * sizeof (CGEN_INSN));
2491
for (i = 0; i < MAX_INSNS; ++i)
2492
insns[i].base = &ib[i];
2493
cd->insn_table.init_entries = insns;
2494
cd->insn_table.entry_size = sizeof (CGEN_IBASE);
2495
cd->insn_table.num_init_entries = MAX_INSNS;
2498
/* Subroutine of mep_cgen_cpu_open to rebuild the tables. */
2501
mep_cgen_rebuild_tables (CGEN_CPU_TABLE *cd)
2504
CGEN_BITSET *isas = cd->isas;
2505
unsigned int machs = cd->machs;
2507
cd->int_insn_p = CGEN_INT_INSN_P;
2509
/* Data derived from the isa spec. */
2510
#define UNSET (CGEN_SIZE_UNKNOWN + 1)
2511
cd->default_insn_bitsize = UNSET;
2512
cd->base_insn_bitsize = UNSET;
2513
cd->min_insn_bitsize = 65535; /* Some ridiculously big number. */
2514
cd->max_insn_bitsize = 0;
2515
for (i = 0; i < MAX_ISAS; ++i)
2516
if (cgen_bitset_contains (isas, i))
2518
const CGEN_ISA *isa = & mep_cgen_isa_table[i];
2520
/* Default insn sizes of all selected isas must be
2521
equal or we set the result to 0, meaning "unknown". */
2522
if (cd->default_insn_bitsize == UNSET)
2523
cd->default_insn_bitsize = isa->default_insn_bitsize;
2524
else if (isa->default_insn_bitsize == cd->default_insn_bitsize)
2527
cd->default_insn_bitsize = CGEN_SIZE_UNKNOWN;
2529
/* Base insn sizes of all selected isas must be equal
2530
or we set the result to 0, meaning "unknown". */
2531
if (cd->base_insn_bitsize == UNSET)
2532
cd->base_insn_bitsize = isa->base_insn_bitsize;
2533
else if (isa->base_insn_bitsize == cd->base_insn_bitsize)
2536
cd->base_insn_bitsize = CGEN_SIZE_UNKNOWN;
2538
/* Set min,max insn sizes. */
2539
if (isa->min_insn_bitsize < cd->min_insn_bitsize)
2540
cd->min_insn_bitsize = isa->min_insn_bitsize;
2541
if (isa->max_insn_bitsize > cd->max_insn_bitsize)
2542
cd->max_insn_bitsize = isa->max_insn_bitsize;
2545
/* Data derived from the mach spec. */
2546
for (i = 0; i < MAX_MACHS; ++i)
2547
if (((1 << i) & machs) != 0)
2549
const CGEN_MACH *mach = & mep_cgen_mach_table[i];
2551
if (mach->insn_chunk_bitsize != 0)
2553
if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize)
2555
fprintf (stderr, "mep_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\n",
2556
cd->insn_chunk_bitsize, mach->insn_chunk_bitsize);
2560
cd->insn_chunk_bitsize = mach->insn_chunk_bitsize;
2564
/* Determine which hw elements are used by MACH. */
2565
build_hw_table (cd);
2567
/* Build the ifield table. */
2568
build_ifield_table (cd);
2570
/* Determine which operands are used by MACH/ISA. */
2571
build_operand_table (cd);
2573
/* Build the instruction table. */
2574
build_insn_table (cd);
2577
/* Initialize a cpu table and return a descriptor.
2578
It's much like opening a file, and must be the first function called.
2579
The arguments are a set of (type/value) pairs, terminated with
2582
Currently supported values:
2583
CGEN_CPU_OPEN_ISAS: bitmap of values in enum isa_attr
2584
CGEN_CPU_OPEN_MACHS: bitmap of values in enum mach_attr
2585
CGEN_CPU_OPEN_BFDMACH: specify 1 mach using bfd name
2586
CGEN_CPU_OPEN_ENDIAN: specify endian choice
2587
CGEN_CPU_OPEN_END: terminates arguments
2589
??? Simultaneous multiple isas might not make sense, but it's not (yet)
2592
??? We only support ISO C stdargs here, not K&R.
2593
Laziness, plus experiment to see if anything requires K&R - eventually
2594
K&R will no longer be supported - e.g. GDB is currently trying this. */
2597
mep_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...)
2599
CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE));
2601
CGEN_BITSET *isas = 0; /* 0 = "unspecified" */
2602
unsigned int machs = 0; /* 0 = "unspecified" */
2603
enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN;
2612
memset (cd, 0, sizeof (*cd));
2614
va_start (ap, arg_type);
2615
while (arg_type != CGEN_CPU_OPEN_END)
2619
case CGEN_CPU_OPEN_ISAS :
2620
isas = va_arg (ap, CGEN_BITSET *);
2622
case CGEN_CPU_OPEN_MACHS :
2623
machs = va_arg (ap, unsigned int);
2625
case CGEN_CPU_OPEN_BFDMACH :
2627
const char *name = va_arg (ap, const char *);
2628
const CGEN_MACH *mach =
2629
lookup_mach_via_bfd_name (mep_cgen_mach_table, name);
2631
machs |= 1 << mach->num;
2634
case CGEN_CPU_OPEN_ENDIAN :
2635
endian = va_arg (ap, enum cgen_endian);
2638
fprintf (stderr, "mep_cgen_cpu_open: unsupported argument `%d'\n",
2640
abort (); /* ??? return NULL? */
2642
arg_type = va_arg (ap, enum cgen_cpu_open_arg);
2646
/* Mach unspecified means "all". */
2648
machs = (1 << MAX_MACHS) - 1;
2649
/* Base mach is always selected. */
2651
if (endian == CGEN_ENDIAN_UNKNOWN)
2653
/* ??? If target has only one, could have a default. */
2654
fprintf (stderr, "mep_cgen_cpu_open: no endianness specified\n");
2658
cd->isas = cgen_bitset_copy (isas);
2660
cd->endian = endian;
2661
/* FIXME: for the sparc case we can determine insn-endianness statically.
2662
The worry here is where both data and insn endian can be independently
2663
chosen, in which case this function will need another argument.
2664
Actually, will want to allow for more arguments in the future anyway. */
2665
cd->insn_endian = endian;
2667
/* Table (re)builder. */
2668
cd->rebuild_tables = mep_cgen_rebuild_tables;
2669
mep_cgen_rebuild_tables (cd);
2671
/* Default to not allowing signed overflow. */
2672
cd->signed_overflow_ok_p = 0;
2674
return (CGEN_CPU_DESC) cd;
2677
/* Cover fn to mep_cgen_cpu_open to handle the simple case of 1 isa, 1 mach.
2678
MACH_NAME is the bfd name of the mach. */
2681
mep_cgen_cpu_open_1 (const char *mach_name, enum cgen_endian endian)
2683
return mep_cgen_cpu_open (CGEN_CPU_OPEN_BFDMACH, mach_name,
2684
CGEN_CPU_OPEN_ENDIAN, endian,
2688
/* Close a cpu table.
2689
??? This can live in a machine independent file, but there's currently
2690
no place to put this file (there's no libcgen). libopcodes is the wrong
2691
place as some simulator ports use this but they don't use libopcodes. */
2694
mep_cgen_cpu_close (CGEN_CPU_DESC cd)
2697
const CGEN_INSN *insns;
2699
if (cd->macro_insn_table.init_entries)
2701
insns = cd->macro_insn_table.init_entries;
2702
for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns)
2703
if (CGEN_INSN_RX ((insns)))
2704
regfree (CGEN_INSN_RX (insns));
2707
if (cd->insn_table.init_entries)
2709
insns = cd->insn_table.init_entries;
2710
for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns)
2711
if (CGEN_INSN_RX (insns))
2712
regfree (CGEN_INSN_RX (insns));
2715
if (cd->macro_insn_table.init_entries)
2716
free ((CGEN_INSN *) cd->macro_insn_table.init_entries);
2718
if (cd->insn_table.init_entries)
2719
free ((CGEN_INSN *) cd->insn_table.init_entries);
2721
if (cd->hw_table.entries)
2722
free ((CGEN_HW_ENTRY *) cd->hw_table.entries);
2724
if (cd->operand_table.entries)
2725
free ((CGEN_HW_ENTRY *) cd->operand_table.entries);