1193323Sed/* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
2193323Sed/* Instruction opcode table for epiphany.
3193323Sed
4193323SedTHIS FILE IS MACHINE GENERATED WITH CGEN.
5193323Sed
6193323SedCopyright (C) 1996-2022 Free Software Foundation, Inc.
7193323Sed
8193323SedThis file is part of the GNU Binutils and/or GDB, the GNU debugger.
9193323Sed
10193323Sed   This file is free software; you can redistribute it and/or modify
11193323Sed   it under the terms of the GNU General Public License as published by
12193323Sed   the Free Software Foundation; either version 3, or (at your option)
13193323Sed   any later version.
14193323Sed
15193323Sed   It is distributed in the hope that it will be useful, but WITHOUT
16193323Sed   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17193323Sed   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
18193323Sed   License for more details.
19193323Sed
20193323Sed   You should have received a copy of the GNU General Public License along
21193323Sed   with this program; if not, write to the Free Software Foundation, Inc.,
22198090Srdivacky   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
23198090Srdivacky
24198090Srdivacky*/
25198090Srdivacky
26198090Srdivacky#include "sysdep.h"
27198090Srdivacky#include "ansidecl.h"
28193323Sed#include "bfd.h"
29193323Sed#include "symcat.h"
30193323Sed#include "epiphany-desc.h"
31193323Sed#include "epiphany-opc.h"
32193323Sed#include "libiberty.h"
33193323Sed
34193323Sed/* -- opc.c */
35193323Sed
36193323Sed
37195340Sed
38193323Sed/* -- asm.c */
39193323Sed/* The hash functions are recorded here to help keep assembler code out of
40193323Sed   the disassembler and vice versa.  */
41193323Sed
42193323Sedstatic int asm_hash_insn_p        (const CGEN_INSN *);
43193323Sedstatic unsigned int asm_hash_insn (const char *);
44198090Srdivackystatic int dis_hash_insn_p        (const CGEN_INSN *);
45193323Sedstatic unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
46198396Srdivacky
47198396Srdivacky/* Instruction formats.  */
48198396Srdivacky
49198396Srdivacky#define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
50198396Srdivackystatic const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
51198396Srdivacky  0, 0, 0x0, { { 0 } }
52198396Srdivacky};
53198396Srdivacky
54198396Srdivackystatic const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
55198396Srdivacky  16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
56198396Srdivacky};
57198396Srdivacky
58198396Srdivackystatic const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
59198396Srdivacky  32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
60198396Srdivacky};
61198396Srdivacky
62198396Srdivackystatic const CGEN_IFMT ifmt_jr16 ATTRIBUTE_UNUSED = {
63198396Srdivacky  16, 16, 0xe3ff, { { F (F_DC_15_3) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
64198396Srdivacky};
65200581Srdivacky
66198396Srdivackystatic const CGEN_IFMT ifmt_rts ATTRIBUTE_UNUSED = {
67198396Srdivacky  32, 32, 0xffffffff, { { F (F_DC_31_3) }, { F (F_RN_X) }, { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_DC_15_3) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
68200581Srdivacky};
69200581Srdivacky
70198396Srdivackystatic const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
71198396Srdivacky  32, 32, 0xe3ffe3ff, { { F (F_DC_31_3) }, { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_DC_15_3) }, { F (F_RN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
72198396Srdivacky};
73198396Srdivacky
74static const CGEN_IFMT ifmt_ldrbx16_s ATTRIBUTE_UNUSED = {
75  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
76};
77
78static const CGEN_IFMT ifmt_ldrbx_l ATTRIBUTE_UNUSED = {
79  32, 32, 0x6f007f, { { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_ADDSUBX) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
80};
81
82static const CGEN_IFMT ifmt_ldrbp_l ATTRIBUTE_UNUSED = {
83  32, 32, 0x6f007f, { { F (F_DC_22_2) }, { F (F_ADDSUBX) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
84};
85
86static const CGEN_IFMT ifmt_ldrbd16_s ATTRIBUTE_UNUSED = {
87  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
88};
89
90static const CGEN_IFMT ifmt_ldrbd_l ATTRIBUTE_UNUSED = {
91  32, 32, 0x200007f, { { F (F_PM) }, { F (F_SUBD) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_DISP11) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
92};
93
94static const CGEN_IFMT ifmt_cmov16EQ ATTRIBUTE_UNUSED = {
95  16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
96};
97
98static const CGEN_IFMT ifmt_cmovEQ ATTRIBUTE_UNUSED = {
99  32, 32, 0x3ff03ff, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
100};
101
102static const CGEN_IFMT ifmt_movts16 ATTRIBUTE_UNUSED = {
103  16, 16, 0x3ff, { { F (F_RD) }, { F (F_SN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
104};
105
106static const CGEN_IFMT ifmt_movts6 ATTRIBUTE_UNUSED = {
107  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
108};
109
110static const CGEN_IFMT ifmt_movtsdma ATTRIBUTE_UNUSED = {
111  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
112};
113
114static const CGEN_IFMT ifmt_movtsmem ATTRIBUTE_UNUSED = {
115  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
116};
117
118static const CGEN_IFMT ifmt_movtsmesh ATTRIBUTE_UNUSED = {
119  32, 32, 0x3ff03ff, { { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_SN6) }, { F (F_DC_9_1) }, { F (F_OPC_8_1) }, { F (F_DC_7_4) }, { F (F_OPC) }, { 0 } }
120};
121
122static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
123  16, 16, 0xffff, { { F (F_DC_15_7) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
124};
125
126static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
127  32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
128};
129
130static const CGEN_IFMT ifmt_gien ATTRIBUTE_UNUSED = {
131  16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_GIEN_GIDIS_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
132};
133
134static const CGEN_IFMT ifmt_swi_num ATTRIBUTE_UNUSED = {
135  16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
136};
137
138static const CGEN_IFMT ifmt_swi ATTRIBUTE_UNUSED = {
139  16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
140};
141
142static const CGEN_IFMT ifmt_trap16 ATTRIBUTE_UNUSED = {
143  16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
144};
145
146static const CGEN_IFMT ifmt_add16 ATTRIBUTE_UNUSED = {
147  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
148};
149
150static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
151  32, 32, 0x7f007f, { { F (F_DC_22_3) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
152};
153
154static const CGEN_IFMT ifmt_addi16 ATTRIBUTE_UNUSED = {
155  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
156};
157
158static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
159  32, 32, 0x300007f, { { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
160};
161
162static const CGEN_IFMT ifmt_lsri16 ATTRIBUTE_UNUSED = {
163  16, 16, 0x1f, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
164};
165
166static const CGEN_IFMT ifmt_lsri32 ATTRIBUTE_UNUSED = {
167  32, 32, 0x3ff001f, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
168};
169
170static const CGEN_IFMT ifmt_bitr16 ATTRIBUTE_UNUSED = {
171  16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
172};
173
174static const CGEN_IFMT ifmt_bitr ATTRIBUTE_UNUSED = {
175  32, 32, 0x3ff03ff, { { F (F_DC_25_6) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
176};
177
178static const CGEN_IFMT ifmt_fext ATTRIBUTE_UNUSED = {
179  32, 32, 0x7f007f, { { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
180};
181
182static const CGEN_IFMT ifmt_mov8 ATTRIBUTE_UNUSED = {
183  16, 16, 0x1f, { { F (F_RD) }, { F (F_IMM8) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
184};
185
186static const CGEN_IFMT ifmt_mov16 ATTRIBUTE_UNUSED = {
187  32, 32, 0x100f001f, { { F (F_DC_28_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_IMM16) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
188};
189
190static const CGEN_IFMT ifmt_f_absf16 ATTRIBUTE_UNUSED = {
191  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
192};
193
194static const CGEN_IFMT ifmt_f_absf32 ATTRIBUTE_UNUSED = {
195  32, 32, 0x7f007f, { { F (F_DC_22_3) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
196};
197
198static const CGEN_IFMT ifmt_f_loatf16 ATTRIBUTE_UNUSED = {
199  16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
200};
201
202static const CGEN_IFMT ifmt_f_recipf32 ATTRIBUTE_UNUSED = {
203  32, 32, 0x7f007f, { { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_OPC_19_4) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
204};
205
206#undef F
207
208#define A(a) (1 << CGEN_INSN_##a)
209#define OPERAND(op) EPIPHANY_OPERAND_##op
210#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
211#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
212
213/* The instruction table.  */
214
215static const CGEN_OPCODE epiphany_cgen_insn_opcode_table[MAX_INSNS] =
216{
217  /* Special null first entry.
218     A `num' value of zero is thus invalid.
219     Also, the special `invalid' insn resides here.  */
220  { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
221/* beq.s $simm8 */
222  {
223    { 0, 0, 0, 0 },
224    { { MNEM, ' ', OP (SIMM8), 0 } },
225    & ifmt_beq16, { 0x0 }
226  },
227/* beq.l $simm24 */
228  {
229    { 0, 0, 0, 0 },
230    { { MNEM, ' ', OP (SIMM24), 0 } },
231    & ifmt_beq, { 0x8 }
232  },
233/* bne.s $simm8 */
234  {
235    { 0, 0, 0, 0 },
236    { { MNEM, ' ', OP (SIMM8), 0 } },
237    & ifmt_beq16, { 0x10 }
238  },
239/* bne.l $simm24 */
240  {
241    { 0, 0, 0, 0 },
242    { { MNEM, ' ', OP (SIMM24), 0 } },
243    & ifmt_beq, { 0x18 }
244  },
245/* bgtu.s $simm8 */
246  {
247    { 0, 0, 0, 0 },
248    { { MNEM, ' ', OP (SIMM8), 0 } },
249    & ifmt_beq16, { 0x20 }
250  },
251/* bgtu.l $simm24 */
252  {
253    { 0, 0, 0, 0 },
254    { { MNEM, ' ', OP (SIMM24), 0 } },
255    & ifmt_beq, { 0x28 }
256  },
257/* bgteu.s $simm8 */
258  {
259    { 0, 0, 0, 0 },
260    { { MNEM, ' ', OP (SIMM8), 0 } },
261    & ifmt_beq16, { 0x30 }
262  },
263/* bgteu.l $simm24 */
264  {
265    { 0, 0, 0, 0 },
266    { { MNEM, ' ', OP (SIMM24), 0 } },
267    & ifmt_beq, { 0x38 }
268  },
269/* blteu.s $simm8 */
270  {
271    { 0, 0, 0, 0 },
272    { { MNEM, ' ', OP (SIMM8), 0 } },
273    & ifmt_beq16, { 0x40 }
274  },
275/* blteu.l $simm24 */
276  {
277    { 0, 0, 0, 0 },
278    { { MNEM, ' ', OP (SIMM24), 0 } },
279    & ifmt_beq, { 0x48 }
280  },
281/* bltu.s $simm8 */
282  {
283    { 0, 0, 0, 0 },
284    { { MNEM, ' ', OP (SIMM8), 0 } },
285    & ifmt_beq16, { 0x50 }
286  },
287/* bltu.l $simm24 */
288  {
289    { 0, 0, 0, 0 },
290    { { MNEM, ' ', OP (SIMM24), 0 } },
291    & ifmt_beq, { 0x58 }
292  },
293/* bgt.s $simm8 */
294  {
295    { 0, 0, 0, 0 },
296    { { MNEM, ' ', OP (SIMM8), 0 } },
297    & ifmt_beq16, { 0x60 }
298  },
299/* bgt.l $simm24 */
300  {
301    { 0, 0, 0, 0 },
302    { { MNEM, ' ', OP (SIMM24), 0 } },
303    & ifmt_beq, { 0x68 }
304  },
305/* bgte.s $simm8 */
306  {
307    { 0, 0, 0, 0 },
308    { { MNEM, ' ', OP (SIMM8), 0 } },
309    & ifmt_beq16, { 0x70 }
310  },
311/* bgte.l $simm24 */
312  {
313    { 0, 0, 0, 0 },
314    { { MNEM, ' ', OP (SIMM24), 0 } },
315    & ifmt_beq, { 0x78 }
316  },
317/* blt.s $simm8 */
318  {
319    { 0, 0, 0, 0 },
320    { { MNEM, ' ', OP (SIMM8), 0 } },
321    & ifmt_beq16, { 0x80 }
322  },
323/* blt.l $simm24 */
324  {
325    { 0, 0, 0, 0 },
326    { { MNEM, ' ', OP (SIMM24), 0 } },
327    & ifmt_beq, { 0x88 }
328  },
329/* blte.s $simm8 */
330  {
331    { 0, 0, 0, 0 },
332    { { MNEM, ' ', OP (SIMM8), 0 } },
333    & ifmt_beq16, { 0x90 }
334  },
335/* blte.l $simm24 */
336  {
337    { 0, 0, 0, 0 },
338    { { MNEM, ' ', OP (SIMM24), 0 } },
339    & ifmt_beq, { 0x98 }
340  },
341/* bbeq.s $simm8 */
342  {
343    { 0, 0, 0, 0 },
344    { { MNEM, ' ', OP (SIMM8), 0 } },
345    & ifmt_beq16, { 0xa0 }
346  },
347/* bbeq.l $simm24 */
348  {
349    { 0, 0, 0, 0 },
350    { { MNEM, ' ', OP (SIMM24), 0 } },
351    & ifmt_beq, { 0xa8 }
352  },
353/* bbne.s $simm8 */
354  {
355    { 0, 0, 0, 0 },
356    { { MNEM, ' ', OP (SIMM8), 0 } },
357    & ifmt_beq16, { 0xb0 }
358  },
359/* bbne.l $simm24 */
360  {
361    { 0, 0, 0, 0 },
362    { { MNEM, ' ', OP (SIMM24), 0 } },
363    & ifmt_beq, { 0xb8 }
364  },
365/* bblt.s $simm8 */
366  {
367    { 0, 0, 0, 0 },
368    { { MNEM, ' ', OP (SIMM8), 0 } },
369    & ifmt_beq16, { 0xc0 }
370  },
371/* bblt.l $simm24 */
372  {
373    { 0, 0, 0, 0 },
374    { { MNEM, ' ', OP (SIMM24), 0 } },
375    & ifmt_beq, { 0xc8 }
376  },
377/* bblte.s $simm8 */
378  {
379    { 0, 0, 0, 0 },
380    { { MNEM, ' ', OP (SIMM8), 0 } },
381    & ifmt_beq16, { 0xd0 }
382  },
383/* bblte.l $simm24 */
384  {
385    { 0, 0, 0, 0 },
386    { { MNEM, ' ', OP (SIMM24), 0 } },
387    & ifmt_beq, { 0xd8 }
388  },
389/* b.s $simm8 */
390  {
391    { 0, 0, 0, 0 },
392    { { MNEM, ' ', OP (SIMM8), 0 } },
393    & ifmt_beq16, { 0xe0 }
394  },
395/* b.l $simm24 */
396  {
397    { 0, 0, 0, 0 },
398    { { MNEM, ' ', OP (SIMM24), 0 } },
399    & ifmt_beq, { 0xe8 }
400  },
401/* bl.s $simm8 */
402  {
403    { 0, 0, 0, 0 },
404    { { MNEM, ' ', OP (SIMM8), 0 } },
405    & ifmt_beq16, { 0xf0 }
406  },
407/* bl.l $simm24 */
408  {
409    { 0, 0, 0, 0 },
410    { { MNEM, ' ', OP (SIMM24), 0 } },
411    & ifmt_beq, { 0xf8 }
412  },
413/* jr $rn */
414  {
415    { 0, 0, 0, 0 },
416    { { MNEM, ' ', OP (RN), 0 } },
417    & ifmt_jr16, { 0x142 }
418  },
419/* rts */
420  {
421    { 0, 0, 0, 0 },
422    { { MNEM, 0 } },
423    & ifmt_rts, { 0x402194f }
424  },
425/* jr $rn6 */
426  {
427    { 0, 0, 0, 0 },
428    { { MNEM, ' ', OP (RN6), 0 } },
429    & ifmt_jr, { 0x2014f }
430  },
431/* jalr $rn */
432  {
433    { 0, 0, 0, 0 },
434    { { MNEM, ' ', OP (RN), 0 } },
435    & ifmt_jr16, { 0x152 }
436  },
437/* jalr $rn6 */
438  {
439    { 0, 0, 0, 0 },
440    { { MNEM, ' ', OP (RN6), 0 } },
441    & ifmt_jr, { 0x2015f }
442  },
443/* ldrb $rd,[$rn,$rm] */
444  {
445    { 0, 0, 0, 0 },
446    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
447    & ifmt_ldrbx16_s, { 0x1 }
448  },
449/* ldrb $rd,[$rn],$rm */
450  {
451    { 0, 0, 0, 0 },
452    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
453    & ifmt_ldrbx16_s, { 0x5 }
454  },
455/* ldrb $rd6,[$rn6,$direction$rm6] */
456  {
457    { 0, 0, 0, 0 },
458    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
459    & ifmt_ldrbx_l, { 0x9 }
460  },
461/* ldrb $rd6,[$rn6],$direction$rm6 */
462  {
463    { 0, 0, 0, 0 },
464    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
465    & ifmt_ldrbp_l, { 0xd }
466  },
467/* ldrb $rd,[$rn,$disp3] */
468  {
469    { 0, 0, 0, 0 },
470    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
471    & ifmt_ldrbd16_s, { 0x4 }
472  },
473/* ldrb $rd6,[$rn6,$dpmi$disp11] */
474  {
475    { 0, 0, 0, 0 },
476    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
477    & ifmt_ldrbd_l, { 0xc }
478  },
479/* ldrb $rd6,[$rn6],$dpmi$disp11 */
480  {
481    { 0, 0, 0, 0 },
482    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
483    & ifmt_ldrbd_l, { 0x200000c }
484  },
485/* ldrh $rd,[$rn,$rm] */
486  {
487    { 0, 0, 0, 0 },
488    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
489    & ifmt_ldrbx16_s, { 0x21 }
490  },
491/* ldrh $rd,[$rn],$rm */
492  {
493    { 0, 0, 0, 0 },
494    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
495    & ifmt_ldrbx16_s, { 0x25 }
496  },
497/* ldrh $rd6,[$rn6,$direction$rm6] */
498  {
499    { 0, 0, 0, 0 },
500    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
501    & ifmt_ldrbx_l, { 0x29 }
502  },
503/* ldrh $rd6,[$rn6],$direction$rm6 */
504  {
505    { 0, 0, 0, 0 },
506    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
507    & ifmt_ldrbp_l, { 0x2d }
508  },
509/* ldrh $rd,[$rn,$disp3] */
510  {
511    { 0, 0, 0, 0 },
512    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
513    & ifmt_ldrbd16_s, { 0x24 }
514  },
515/* ldrh $rd6,[$rn6,$dpmi$disp11] */
516  {
517    { 0, 0, 0, 0 },
518    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
519    & ifmt_ldrbd_l, { 0x2c }
520  },
521/* ldrh $rd6,[$rn6],$dpmi$disp11 */
522  {
523    { 0, 0, 0, 0 },
524    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
525    & ifmt_ldrbd_l, { 0x200002c }
526  },
527/* ldr $rd,[$rn,$rm] */
528  {
529    { 0, 0, 0, 0 },
530    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
531    & ifmt_ldrbx16_s, { 0x41 }
532  },
533/* ldr $rd,[$rn],$rm */
534  {
535    { 0, 0, 0, 0 },
536    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
537    & ifmt_ldrbx16_s, { 0x45 }
538  },
539/* ldr $rd6,[$rn6,$direction$rm6] */
540  {
541    { 0, 0, 0, 0 },
542    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
543    & ifmt_ldrbx_l, { 0x49 }
544  },
545/* ldr $rd6,[$rn6],$direction$rm6 */
546  {
547    { 0, 0, 0, 0 },
548    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
549    & ifmt_ldrbp_l, { 0x4d }
550  },
551/* ldr $rd,[$rn,$disp3] */
552  {
553    { 0, 0, 0, 0 },
554    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
555    & ifmt_ldrbd16_s, { 0x44 }
556  },
557/* ldr $rd6,[$rn6,$dpmi$disp11] */
558  {
559    { 0, 0, 0, 0 },
560    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
561    & ifmt_ldrbd_l, { 0x4c }
562  },
563/* ldr $rd6,[$rn6],$dpmi$disp11 */
564  {
565    { 0, 0, 0, 0 },
566    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
567    & ifmt_ldrbd_l, { 0x200004c }
568  },
569/* ldrd $rd,[$rn,$rm] */
570  {
571    { 0, 0, 0, 0 },
572    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
573    & ifmt_ldrbx16_s, { 0x61 }
574  },
575/* ldrd $rd,[$rn],$rm */
576  {
577    { 0, 0, 0, 0 },
578    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
579    & ifmt_ldrbx16_s, { 0x65 }
580  },
581/* ldrd $rd6,[$rn6,$direction$rm6] */
582  {
583    { 0, 0, 0, 0 },
584    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
585    & ifmt_ldrbx_l, { 0x69 }
586  },
587/* ldrd $rd6,[$rn6],$direction$rm6 */
588  {
589    { 0, 0, 0, 0 },
590    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
591    & ifmt_ldrbp_l, { 0x6d }
592  },
593/* ldrd $rd,[$rn,$disp3] */
594  {
595    { 0, 0, 0, 0 },
596    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
597    & ifmt_ldrbd16_s, { 0x64 }
598  },
599/* ldrd $rd6,[$rn6,$dpmi$disp11] */
600  {
601    { 0, 0, 0, 0 },
602    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
603    & ifmt_ldrbd_l, { 0x6c }
604  },
605/* ldrd $rd6,[$rn6],$dpmi$disp11 */
606  {
607    { 0, 0, 0, 0 },
608    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
609    & ifmt_ldrbd_l, { 0x200006c }
610  },
611/* testsetb $rd6,[$rn6,$direction$rm6] */
612  {
613    { 0, 0, 0, 0 },
614    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
615    & ifmt_ldrbx_l, { 0x200009 }
616  },
617/* testseth $rd6,[$rn6,$direction$rm6] */
618  {
619    { 0, 0, 0, 0 },
620    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
621    & ifmt_ldrbx_l, { 0x200029 }
622  },
623/* testset $rd6,[$rn6,$direction$rm6] */
624  {
625    { 0, 0, 0, 0 },
626    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
627    & ifmt_ldrbx_l, { 0x200049 }
628  },
629/* strb $rd,[$rn,$rm] */
630  {
631    { 0, 0, 0, 0 },
632    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
633    & ifmt_ldrbx16_s, { 0x11 }
634  },
635/* strb $rd6,[$rn6,$direction$rm6] */
636  {
637    { 0, 0, 0, 0 },
638    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
639    & ifmt_ldrbx_l, { 0x19 }
640  },
641/* strb $rd,[$rn],$rm */
642  {
643    { 0, 0, 0, 0 },
644    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
645    & ifmt_ldrbx16_s, { 0x15 }
646  },
647/* strb $rd6,[$rn6],$direction$rm6 */
648  {
649    { 0, 0, 0, 0 },
650    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
651    & ifmt_ldrbp_l, { 0x1d }
652  },
653/* strb $rd,[$rn,$disp3] */
654  {
655    { 0, 0, 0, 0 },
656    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
657    & ifmt_ldrbd16_s, { 0x14 }
658  },
659/* strb $rd6,[$rn6,$dpmi$disp11] */
660  {
661    { 0, 0, 0, 0 },
662    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
663    & ifmt_ldrbd_l, { 0x1c }
664  },
665/* strb $rd6,[$rn6],$dpmi$disp11 */
666  {
667    { 0, 0, 0, 0 },
668    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
669    & ifmt_ldrbd_l, { 0x200001c }
670  },
671/* strh $rd,[$rn,$rm] */
672  {
673    { 0, 0, 0, 0 },
674    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
675    & ifmt_ldrbx16_s, { 0x31 }
676  },
677/* strh $rd6,[$rn6,$direction$rm6] */
678  {
679    { 0, 0, 0, 0 },
680    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
681    & ifmt_ldrbx_l, { 0x39 }
682  },
683/* strh $rd,[$rn],$rm */
684  {
685    { 0, 0, 0, 0 },
686    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
687    & ifmt_ldrbx16_s, { 0x35 }
688  },
689/* strh $rd6,[$rn6],$direction$rm6 */
690  {
691    { 0, 0, 0, 0 },
692    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
693    & ifmt_ldrbp_l, { 0x3d }
694  },
695/* strh $rd,[$rn,$disp3] */
696  {
697    { 0, 0, 0, 0 },
698    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
699    & ifmt_ldrbd16_s, { 0x34 }
700  },
701/* strh $rd6,[$rn6,$dpmi$disp11] */
702  {
703    { 0, 0, 0, 0 },
704    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
705    & ifmt_ldrbd_l, { 0x3c }
706  },
707/* strh $rd6,[$rn6],$dpmi$disp11 */
708  {
709    { 0, 0, 0, 0 },
710    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
711    & ifmt_ldrbd_l, { 0x200003c }
712  },
713/* str $rd,[$rn,$rm] */
714  {
715    { 0, 0, 0, 0 },
716    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
717    & ifmt_ldrbx16_s, { 0x51 }
718  },
719/* str $rd6,[$rn6,$direction$rm6] */
720  {
721    { 0, 0, 0, 0 },
722    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
723    & ifmt_ldrbx_l, { 0x59 }
724  },
725/* str $rd,[$rn],$rm */
726  {
727    { 0, 0, 0, 0 },
728    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
729    & ifmt_ldrbx16_s, { 0x55 }
730  },
731/* str $rd6,[$rn6],$direction$rm6 */
732  {
733    { 0, 0, 0, 0 },
734    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
735    & ifmt_ldrbp_l, { 0x5d }
736  },
737/* str $rd,[$rn,$disp3] */
738  {
739    { 0, 0, 0, 0 },
740    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
741    & ifmt_ldrbd16_s, { 0x54 }
742  },
743/* str $rd6,[$rn6,$dpmi$disp11] */
744  {
745    { 0, 0, 0, 0 },
746    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
747    & ifmt_ldrbd_l, { 0x5c }
748  },
749/* str $rd6,[$rn6],$dpmi$disp11 */
750  {
751    { 0, 0, 0, 0 },
752    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
753    & ifmt_ldrbd_l, { 0x200005c }
754  },
755/* strd $rd,[$rn,$rm] */
756  {
757    { 0, 0, 0, 0 },
758    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
759    & ifmt_ldrbx16_s, { 0x71 }
760  },
761/* strd $rd6,[$rn6,$direction$rm6] */
762  {
763    { 0, 0, 0, 0 },
764    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
765    & ifmt_ldrbx_l, { 0x79 }
766  },
767/* strd $rd,[$rn],$rm */
768  {
769    { 0, 0, 0, 0 },
770    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
771    & ifmt_ldrbx16_s, { 0x75 }
772  },
773/* strd $rd6,[$rn6],$direction$rm6 */
774  {
775    { 0, 0, 0, 0 },
776    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
777    & ifmt_ldrbp_l, { 0x7d }
778  },
779/* strd $rd,[$rn,$disp3] */
780  {
781    { 0, 0, 0, 0 },
782    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
783    & ifmt_ldrbd16_s, { 0x74 }
784  },
785/* strd $rd6,[$rn6,$dpmi$disp11] */
786  {
787    { 0, 0, 0, 0 },
788    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
789    & ifmt_ldrbd_l, { 0x7c }
790  },
791/* strd $rd6,[$rn6],$dpmi$disp11 */
792  {
793    { 0, 0, 0, 0 },
794    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
795    & ifmt_ldrbd_l, { 0x200007c }
796  },
797/* moveq $rd,$rn */
798  {
799    { 0, 0, 0, 0 },
800    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
801    & ifmt_cmov16EQ, { 0x2 }
802  },
803/* moveq $rd6,$rn6 */
804  {
805    { 0, 0, 0, 0 },
806    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
807    & ifmt_cmovEQ, { 0x2000f }
808  },
809/* movne $rd,$rn */
810  {
811    { 0, 0, 0, 0 },
812    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
813    & ifmt_cmov16EQ, { 0x12 }
814  },
815/* movne $rd6,$rn6 */
816  {
817    { 0, 0, 0, 0 },
818    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
819    & ifmt_cmovEQ, { 0x2001f }
820  },
821/* movgtu $rd,$rn */
822  {
823    { 0, 0, 0, 0 },
824    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
825    & ifmt_cmov16EQ, { 0x22 }
826  },
827/* movgtu $rd6,$rn6 */
828  {
829    { 0, 0, 0, 0 },
830    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
831    & ifmt_cmovEQ, { 0x2002f }
832  },
833/* movgteu $rd,$rn */
834  {
835    { 0, 0, 0, 0 },
836    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
837    & ifmt_cmov16EQ, { 0x32 }
838  },
839/* movgteu $rd6,$rn6 */
840  {
841    { 0, 0, 0, 0 },
842    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
843    & ifmt_cmovEQ, { 0x2003f }
844  },
845/* movlteu $rd,$rn */
846  {
847    { 0, 0, 0, 0 },
848    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
849    & ifmt_cmov16EQ, { 0x42 }
850  },
851/* movlteu $rd6,$rn6 */
852  {
853    { 0, 0, 0, 0 },
854    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
855    & ifmt_cmovEQ, { 0x2004f }
856  },
857/* movltu $rd,$rn */
858  {
859    { 0, 0, 0, 0 },
860    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
861    & ifmt_cmov16EQ, { 0x52 }
862  },
863/* movltu $rd6,$rn6 */
864  {
865    { 0, 0, 0, 0 },
866    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
867    & ifmt_cmovEQ, { 0x2005f }
868  },
869/* movgt $rd,$rn */
870  {
871    { 0, 0, 0, 0 },
872    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
873    & ifmt_cmov16EQ, { 0x62 }
874  },
875/* movgt $rd6,$rn6 */
876  {
877    { 0, 0, 0, 0 },
878    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
879    & ifmt_cmovEQ, { 0x2006f }
880  },
881/* movgte $rd,$rn */
882  {
883    { 0, 0, 0, 0 },
884    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
885    & ifmt_cmov16EQ, { 0x72 }
886  },
887/* movgte $rd6,$rn6 */
888  {
889    { 0, 0, 0, 0 },
890    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
891    & ifmt_cmovEQ, { 0x2007f }
892  },
893/* movlt $rd,$rn */
894  {
895    { 0, 0, 0, 0 },
896    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
897    & ifmt_cmov16EQ, { 0x82 }
898  },
899/* movlt $rd6,$rn6 */
900  {
901    { 0, 0, 0, 0 },
902    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
903    & ifmt_cmovEQ, { 0x2008f }
904  },
905/* movlte $rd,$rn */
906  {
907    { 0, 0, 0, 0 },
908    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
909    & ifmt_cmov16EQ, { 0x92 }
910  },
911/* movlte $rd6,$rn6 */
912  {
913    { 0, 0, 0, 0 },
914    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
915    & ifmt_cmovEQ, { 0x2009f }
916  },
917/* mov $rd,$rn */
918  {
919    { 0, 0, 0, 0 },
920    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
921    & ifmt_cmov16EQ, { 0xe2 }
922  },
923/* mov $rd6,$rn6 */
924  {
925    { 0, 0, 0, 0 },
926    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
927    & ifmt_cmovEQ, { 0x200ef }
928  },
929/* movbeq $rd,$rn */
930  {
931    { 0, 0, 0, 0 },
932    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
933    & ifmt_cmov16EQ, { 0xa2 }
934  },
935/* movbeq $rd6,$rn6 */
936  {
937    { 0, 0, 0, 0 },
938    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
939    & ifmt_cmovEQ, { 0x200af }
940  },
941/* movbne $rd,$rn */
942  {
943    { 0, 0, 0, 0 },
944    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
945    & ifmt_cmov16EQ, { 0xb2 }
946  },
947/* movbne $rd6,$rn6 */
948  {
949    { 0, 0, 0, 0 },
950    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
951    & ifmt_cmovEQ, { 0x200bf }
952  },
953/* movblt $rd,$rn */
954  {
955    { 0, 0, 0, 0 },
956    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
957    & ifmt_cmov16EQ, { 0xc2 }
958  },
959/* movblt $rd6,$rn6 */
960  {
961    { 0, 0, 0, 0 },
962    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
963    & ifmt_cmovEQ, { 0x200cf }
964  },
965/* movblte $rd,$rn */
966  {
967    { 0, 0, 0, 0 },
968    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
969    & ifmt_cmov16EQ, { 0xd2 }
970  },
971/* movblte $rd6,$rn6 */
972  {
973    { 0, 0, 0, 0 },
974    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
975    & ifmt_cmovEQ, { 0x200df }
976  },
977/* movts $sn,$rd */
978  {
979    { 0, 0, 0, 0 },
980    { { MNEM, ' ', OP (SN), ',', OP (RD), 0 } },
981    & ifmt_movts16, { 0x102 }
982  },
983/* movts $sn6,$rd6 */
984  {
985    { 0, 0, 0, 0 },
986    { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
987    & ifmt_movts6, { 0x2010f }
988  },
989/* movts $sndma,$rd6 */
990  {
991    { 0, 0, 0, 0 },
992    { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
993    & ifmt_movtsdma, { 0x12010f }
994  },
995/* movts $snmem,$rd6 */
996  {
997    { 0, 0, 0, 0 },
998    { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
999    & ifmt_movtsmem, { 0x22010f }
1000  },
1001/* movts $snmesh,$rd6 */
1002  {
1003    { 0, 0, 0, 0 },
1004    { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
1005    & ifmt_movtsmesh, { 0x32010f }
1006  },
1007/* movfs $rd,$sn */
1008  {
1009    { 0, 0, 0, 0 },
1010    { { MNEM, ' ', OP (RD), ',', OP (SN), 0 } },
1011    & ifmt_movts16, { 0x112 }
1012  },
1013/* movfs $rd6,$sn6 */
1014  {
1015    { 0, 0, 0, 0 },
1016    { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
1017    & ifmt_movts6, { 0x2011f }
1018  },
1019/* movfs $rd6,$sndma */
1020  {
1021    { 0, 0, 0, 0 },
1022    { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
1023    & ifmt_movtsdma, { 0x12011f }
1024  },
1025/* movfs $rd6,$snmem */
1026  {
1027    { 0, 0, 0, 0 },
1028    { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
1029    & ifmt_movtsmem, { 0x22011f }
1030  },
1031/* movfs $rd6,$snmesh */
1032  {
1033    { 0, 0, 0, 0 },
1034    { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
1035    & ifmt_movtsmesh, { 0x32011f }
1036  },
1037/* nop */
1038  {
1039    { 0, 0, 0, 0 },
1040    { { MNEM, 0 } },
1041    & ifmt_nop, { 0x1a2 }
1042  },
1043/* snop */
1044  {
1045    { 0, 0, 0, 0 },
1046    { { MNEM, 0 } },
1047    & ifmt_nop, { 0x3a2 }
1048  },
1049/* unimpl */
1050  {
1051    { 0, 0, 0, 0 },
1052    { { MNEM, 0 } },
1053    & ifmt_unimpl, { 0xf000f }
1054  },
1055/* idle */
1056  {
1057    { 0, 0, 0, 0 },
1058    { { MNEM, 0 } },
1059    & ifmt_nop, { 0x1b2 }
1060  },
1061/* bkpt */
1062  {
1063    { 0, 0, 0, 0 },
1064    { { MNEM, 0 } },
1065    & ifmt_nop, { 0x1c2 }
1066  },
1067/* mbkpt */
1068  {
1069    { 0, 0, 0, 0 },
1070    { { MNEM, 0 } },
1071    & ifmt_nop, { 0x3c2 }
1072  },
1073/* rti */
1074  {
1075    { 0, 0, 0, 0 },
1076    { { MNEM, 0 } },
1077    & ifmt_nop, { 0x1d2 }
1078  },
1079/* wand */
1080  {
1081    { 0, 0, 0, 0 },
1082    { { MNEM, 0 } },
1083    & ifmt_nop, { 0x182 }
1084  },
1085/* sync */
1086  {
1087    { 0, 0, 0, 0 },
1088    { { MNEM, 0 } },
1089    & ifmt_nop, { 0x1f2 }
1090  },
1091/* gie */
1092  {
1093    { 0, 0, 0, 0 },
1094    { { MNEM, 0 } },
1095    & ifmt_gien, { 0x192 }
1096  },
1097/* gid */
1098  {
1099    { 0, 0, 0, 0 },
1100    { { MNEM, 0 } },
1101    & ifmt_gien, { 0x392 }
1102  },
1103/* swi $swi_num */
1104  {
1105    { 0, 0, 0, 0 },
1106    { { MNEM, ' ', OP (SWI_NUM), 0 } },
1107    & ifmt_swi_num, { 0x1e2 }
1108  },
1109/* swi */
1110  {
1111    { 0, 0, 0, 0 },
1112    { { MNEM, 0 } },
1113    & ifmt_swi, { 0x1e2 }
1114  },
1115/* trap $trapnum6 */
1116  {
1117    { 0, 0, 0, 0 },
1118    { { MNEM, ' ', OP (TRAPNUM6), 0 } },
1119    & ifmt_trap16, { 0x3e2 }
1120  },
1121/* add $rd,$rn,$rm */
1122  {
1123    { 0, 0, 0, 0 },
1124    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1125    & ifmt_add16, { 0x1a }
1126  },
1127/* add $rd6,$rn6,$rm6 */
1128  {
1129    { 0, 0, 0, 0 },
1130    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1131    & ifmt_add, { 0xa001f }
1132  },
1133/* sub $rd,$rn,$rm */
1134  {
1135    { 0, 0, 0, 0 },
1136    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1137    & ifmt_add16, { 0x3a }
1138  },
1139/* sub $rd6,$rn6,$rm6 */
1140  {
1141    { 0, 0, 0, 0 },
1142    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1143    & ifmt_add, { 0xa003f }
1144  },
1145/* and $rd,$rn,$rm */
1146  {
1147    { 0, 0, 0, 0 },
1148    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1149    & ifmt_add16, { 0x5a }
1150  },
1151/* and $rd6,$rn6,$rm6 */
1152  {
1153    { 0, 0, 0, 0 },
1154    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1155    & ifmt_add, { 0xa005f }
1156  },
1157/* orr $rd,$rn,$rm */
1158  {
1159    { 0, 0, 0, 0 },
1160    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1161    & ifmt_add16, { 0x7a }
1162  },
1163/* orr $rd6,$rn6,$rm6 */
1164  {
1165    { 0, 0, 0, 0 },
1166    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1167    & ifmt_add, { 0xa007f }
1168  },
1169/* eor $rd,$rn,$rm */
1170  {
1171    { 0, 0, 0, 0 },
1172    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1173    & ifmt_add16, { 0xa }
1174  },
1175/* eor $rd6,$rn6,$rm6 */
1176  {
1177    { 0, 0, 0, 0 },
1178    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1179    & ifmt_add, { 0xa000f }
1180  },
1181/* add.s $rd,$rn,$simm3 */
1182  {
1183    { 0, 0, 0, 0 },
1184    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
1185    & ifmt_addi16, { 0x13 }
1186  },
1187/* add.l $rd6,$rn6,$simm11 */
1188  {
1189    { 0, 0, 0, 0 },
1190    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
1191    & ifmt_addi, { 0x1b }
1192  },
1193/* sub.s $rd,$rn,$simm3 */
1194  {
1195    { 0, 0, 0, 0 },
1196    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
1197    & ifmt_addi16, { 0x33 }
1198  },
1199/* sub.l $rd6,$rn6,$simm11 */
1200  {
1201    { 0, 0, 0, 0 },
1202    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
1203    & ifmt_addi, { 0x3b }
1204  },
1205/* asr $rd,$rn,$rm */
1206  {
1207    { 0, 0, 0, 0 },
1208    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1209    & ifmt_add16, { 0x6a }
1210  },
1211/* asr $rd6,$rn6,$rm6 */
1212  {
1213    { 0, 0, 0, 0 },
1214    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1215    & ifmt_add, { 0xa006f }
1216  },
1217/* lsr $rd,$rn,$rm */
1218  {
1219    { 0, 0, 0, 0 },
1220    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1221    & ifmt_add16, { 0x4a }
1222  },
1223/* lsr $rd6,$rn6,$rm6 */
1224  {
1225    { 0, 0, 0, 0 },
1226    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1227    & ifmt_add, { 0xa004f }
1228  },
1229/* lsl $rd,$rn,$rm */
1230  {
1231    { 0, 0, 0, 0 },
1232    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1233    & ifmt_add16, { 0x2a }
1234  },
1235/* lsl $rd6,$rn6,$rm6 */
1236  {
1237    { 0, 0, 0, 0 },
1238    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1239    & ifmt_add, { 0xa002f }
1240  },
1241/* lsr $rd,$rn,$shift */
1242  {
1243    { 0, 0, 0, 0 },
1244    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1245    & ifmt_lsri16, { 0x6 }
1246  },
1247/* lsr $rd6,$rn6,$shift */
1248  {
1249    { 0, 0, 0, 0 },
1250    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1251    & ifmt_lsri32, { 0x6000f }
1252  },
1253/* lsl $rd,$rn,$shift */
1254  {
1255    { 0, 0, 0, 0 },
1256    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1257    & ifmt_lsri16, { 0x16 }
1258  },
1259/* lsl $rd6,$rn6,$shift */
1260  {
1261    { 0, 0, 0, 0 },
1262    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1263    & ifmt_lsri32, { 0x6001f }
1264  },
1265/* asr $rd,$rn,$shift */
1266  {
1267    { 0, 0, 0, 0 },
1268    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1269    & ifmt_lsri16, { 0xe }
1270  },
1271/* asr $rd6,$rn6,$shift */
1272  {
1273    { 0, 0, 0, 0 },
1274    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1275    & ifmt_lsri32, { 0xe000f }
1276  },
1277/* bitr $rd,$rn */
1278  {
1279    { 0, 0, 0, 0 },
1280    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1281    & ifmt_bitr16, { 0x1e }
1282  },
1283/* bitr $rd6,$rn6 */
1284  {
1285    { 0, 0, 0, 0 },
1286    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1287    & ifmt_bitr, { 0xe001f }
1288  },
1289/* fext $rd6,$rn6,$rm6 */
1290  {
1291    { 0, 0, 0, 0 },
1292    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1293    & ifmt_fext, { 0x1a000f }
1294  },
1295/* fdep $rd6,$rn6,$rm6 */
1296  {
1297    { 0, 0, 0, 0 },
1298    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1299    & ifmt_fext, { 0x1a001f }
1300  },
1301/* lfsr $rd6,$rn6,$rm6 */
1302  {
1303    { 0, 0, 0, 0 },
1304    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1305    & ifmt_fext, { 0x1a002f }
1306  },
1307/* mov.b $rd,$imm8 */
1308  {
1309    { 0, 0, 0, 0 },
1310    { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
1311    & ifmt_mov8, { 0x3 }
1312  },
1313/* mov.l $rd6,$imm16 */
1314  {
1315    { 0, 0, 0, 0 },
1316    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
1317    & ifmt_mov16, { 0x2000b }
1318  },
1319/* movt $rd6,$imm16 */
1320  {
1321    { 0, 0, 0, 0 },
1322    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
1323    & ifmt_mov16, { 0x1002000b }
1324  },
1325/* fadd $rd,$rn,$rm */
1326  {
1327    { 0, 0, 0, 0 },
1328    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1329    & ifmt_add16, { 0x7 }
1330  },
1331/* fadd $rd6,$rn6,$rm6 */
1332  {
1333    { 0, 0, 0, 0 },
1334    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1335    & ifmt_add, { 0x7000f }
1336  },
1337/* fsub $rd,$rn,$rm */
1338  {
1339    { 0, 0, 0, 0 },
1340    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1341    & ifmt_add16, { 0x17 }
1342  },
1343/* fsub $rd6,$rn6,$rm6 */
1344  {
1345    { 0, 0, 0, 0 },
1346    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1347    & ifmt_add, { 0x7001f }
1348  },
1349/* fmul $rd,$rn,$rm */
1350  {
1351    { 0, 0, 0, 0 },
1352    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1353    & ifmt_add16, { 0x27 }
1354  },
1355/* fmul $rd6,$rn6,$rm6 */
1356  {
1357    { 0, 0, 0, 0 },
1358    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1359    & ifmt_add, { 0x7002f }
1360  },
1361/* fmadd $rd,$rn,$rm */
1362  {
1363    { 0, 0, 0, 0 },
1364    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1365    & ifmt_add16, { 0x37 }
1366  },
1367/* fmadd $rd6,$rn6,$rm6 */
1368  {
1369    { 0, 0, 0, 0 },
1370    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1371    & ifmt_add, { 0x7003f }
1372  },
1373/* fmsub $rd,$rn,$rm */
1374  {
1375    { 0, 0, 0, 0 },
1376    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1377    & ifmt_add16, { 0x47 }
1378  },
1379/* fmsub $rd6,$rn6,$rm6 */
1380  {
1381    { 0, 0, 0, 0 },
1382    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1383    & ifmt_add, { 0x7004f }
1384  },
1385/* fabs rd,rn */
1386  {
1387    { 0, 0, 0, 0 },
1388    { { MNEM, ' ', 'r', 'd', ',', 'r', 'n', 0 } },
1389    & ifmt_f_absf16, { 0x77 }
1390  },
1391/* fabs $rd6,$rn6 */
1392  {
1393    { 0, 0, 0, 0 },
1394    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1395    & ifmt_f_absf32, { 0x7007f }
1396  },
1397/* float $rd,$rn */
1398  {
1399    { 0, 0, 0, 0 },
1400    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1401    & ifmt_f_loatf16, { 0x57 }
1402  },
1403/* float $rd6,$rn6 */
1404  {
1405    { 0, 0, 0, 0 },
1406    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1407    & ifmt_f_absf32, { 0x7005f }
1408  },
1409/* fix $rd,$rn */
1410  {
1411    { 0, 0, 0, 0 },
1412    { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1413    & ifmt_f_absf16, { 0x67 }
1414  },
1415/* fix $rd6,$rn6 */
1416  {
1417    { 0, 0, 0, 0 },
1418    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1419    & ifmt_f_absf32, { 0x7006f }
1420  },
1421/* frecip $frd6,$frn6 */
1422  {
1423    { 0, 0, 0, 0 },
1424    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
1425    & ifmt_f_recipf32, { 0x17000f }
1426  },
1427/* fsqrt $frd6,$frn6 */
1428  {
1429    { 0, 0, 0, 0 },
1430    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
1431    & ifmt_f_recipf32, { 0x17001f }
1432  },
1433};
1434
1435#undef A
1436#undef OPERAND
1437#undef MNEM
1438#undef OP
1439
1440/* Formats for ALIAS macro-insns.  */
1441
1442#define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
1443static const CGEN_IFMT ifmt_beq16r ATTRIBUTE_UNUSED = {
1444  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1445};
1446
1447static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
1448  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1449};
1450
1451static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
1452  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1453};
1454
1455static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
1456  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1457};
1458
1459static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
1460  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1461};
1462
1463static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
1464  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1465};
1466
1467static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
1468  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1469};
1470
1471static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
1472  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1473};
1474
1475static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
1476  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1477};
1478
1479static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
1480  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1481};
1482
1483static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
1484  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1485};
1486
1487static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
1488  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1489};
1490
1491static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
1492  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1493};
1494
1495static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
1496  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1497};
1498
1499static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
1500  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1501};
1502
1503static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
1504  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1505};
1506
1507static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
1508  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1509};
1510
1511static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
1512  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1513};
1514
1515static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
1516  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1517};
1518
1519static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
1520  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1521};
1522
1523static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
1524  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1525};
1526
1527static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
1528  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1529};
1530
1531static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
1532  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1533};
1534
1535static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
1536  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1537};
1538
1539static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
1540  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1541};
1542
1543static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
1544  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1545};
1546
1547static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
1548  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1549};
1550
1551static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
1552  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1553};
1554
1555static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
1556  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1557};
1558
1559static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
1560  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1561};
1562
1563static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
1564  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1565};
1566
1567static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
1568  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1569};
1570
1571static const CGEN_IFMT ifmt_ldrbx ATTRIBUTE_UNUSED = {
1572  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1573};
1574
1575static const CGEN_IFMT ifmt_ldrbp ATTRIBUTE_UNUSED = {
1576  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1577};
1578
1579static const CGEN_IFMT ifmt_ldrbd ATTRIBUTE_UNUSED = {
1580  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1581};
1582
1583static const CGEN_IFMT ifmt_ldrbdpm ATTRIBUTE_UNUSED = {
1584  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1585};
1586
1587static const CGEN_IFMT ifmt_ldrbds0 ATTRIBUTE_UNUSED = {
1588  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1589};
1590
1591static const CGEN_IFMT ifmt_ldrbdl0 ATTRIBUTE_UNUSED = {
1592  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1593};
1594
1595static const CGEN_IFMT ifmt_ldrbdl0_l ATTRIBUTE_UNUSED = {
1596  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1597};
1598
1599static const CGEN_IFMT ifmt_ldrhx ATTRIBUTE_UNUSED = {
1600  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1601};
1602
1603static const CGEN_IFMT ifmt_ldrhp ATTRIBUTE_UNUSED = {
1604  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1605};
1606
1607static const CGEN_IFMT ifmt_ldrhd ATTRIBUTE_UNUSED = {
1608  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1609};
1610
1611static const CGEN_IFMT ifmt_ldrhdpm ATTRIBUTE_UNUSED = {
1612  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1613};
1614
1615static const CGEN_IFMT ifmt_ldrhds0 ATTRIBUTE_UNUSED = {
1616  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1617};
1618
1619static const CGEN_IFMT ifmt_ldrhdl0 ATTRIBUTE_UNUSED = {
1620  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1621};
1622
1623static const CGEN_IFMT ifmt_ldrhdl0_l ATTRIBUTE_UNUSED = {
1624  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1625};
1626
1627static const CGEN_IFMT ifmt_ldrx ATTRIBUTE_UNUSED = {
1628  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1629};
1630
1631static const CGEN_IFMT ifmt_ldrp ATTRIBUTE_UNUSED = {
1632  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1633};
1634
1635static const CGEN_IFMT ifmt_ldrd ATTRIBUTE_UNUSED = {
1636  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1637};
1638
1639static const CGEN_IFMT ifmt_ldrdpm ATTRIBUTE_UNUSED = {
1640  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1641};
1642
1643static const CGEN_IFMT ifmt_ldrds0 ATTRIBUTE_UNUSED = {
1644  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1645};
1646
1647static const CGEN_IFMT ifmt_ldrdl0 ATTRIBUTE_UNUSED = {
1648  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1649};
1650
1651static const CGEN_IFMT ifmt_ldrdl0_l ATTRIBUTE_UNUSED = {
1652  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1653};
1654
1655static const CGEN_IFMT ifmt_ldrdx ATTRIBUTE_UNUSED = {
1656  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1657};
1658
1659static const CGEN_IFMT ifmt_ldrdp ATTRIBUTE_UNUSED = {
1660  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1661};
1662
1663static const CGEN_IFMT ifmt_ldrdd ATTRIBUTE_UNUSED = {
1664  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1665};
1666
1667static const CGEN_IFMT ifmt_ldrddpm ATTRIBUTE_UNUSED = {
1668  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1669};
1670
1671static const CGEN_IFMT ifmt_ldrdds0 ATTRIBUTE_UNUSED = {
1672  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1673};
1674
1675static const CGEN_IFMT ifmt_ldrddl0 ATTRIBUTE_UNUSED = {
1676  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1677};
1678
1679static const CGEN_IFMT ifmt_ldrddl0_l ATTRIBUTE_UNUSED = {
1680  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1681};
1682
1683static const CGEN_IFMT ifmt_testsetbt_l ATTRIBUTE_UNUSED = {
1684  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1685};
1686
1687static const CGEN_IFMT ifmt_testsetht_l ATTRIBUTE_UNUSED = {
1688  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1689};
1690
1691static const CGEN_IFMT ifmt_testsett_l ATTRIBUTE_UNUSED = {
1692  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1693};
1694
1695static const CGEN_IFMT ifmt_strbx_l ATTRIBUTE_UNUSED = {
1696  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1697};
1698
1699static const CGEN_IFMT ifmt_strbp_l ATTRIBUTE_UNUSED = {
1700  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1701};
1702
1703static const CGEN_IFMT ifmt_strbd_l ATTRIBUTE_UNUSED = {
1704  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1705};
1706
1707static const CGEN_IFMT ifmt_strbdpm_l ATTRIBUTE_UNUSED = {
1708  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1709};
1710
1711static const CGEN_IFMT ifmt_strbds0 ATTRIBUTE_UNUSED = {
1712  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1713};
1714
1715static const CGEN_IFMT ifmt_strbdl0 ATTRIBUTE_UNUSED = {
1716  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1717};
1718
1719static const CGEN_IFMT ifmt_strbdl0_l ATTRIBUTE_UNUSED = {
1720  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1721};
1722
1723static const CGEN_IFMT ifmt_strhx_l ATTRIBUTE_UNUSED = {
1724  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1725};
1726
1727static const CGEN_IFMT ifmt_strhp_l ATTRIBUTE_UNUSED = {
1728  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1729};
1730
1731static const CGEN_IFMT ifmt_strhd_l ATTRIBUTE_UNUSED = {
1732  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1733};
1734
1735static const CGEN_IFMT ifmt_strhdpm_l ATTRIBUTE_UNUSED = {
1736  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1737};
1738
1739static const CGEN_IFMT ifmt_strhds0 ATTRIBUTE_UNUSED = {
1740  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1741};
1742
1743static const CGEN_IFMT ifmt_strhdl0 ATTRIBUTE_UNUSED = {
1744  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1745};
1746
1747static const CGEN_IFMT ifmt_strhdl0_l ATTRIBUTE_UNUSED = {
1748  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1749};
1750
1751static const CGEN_IFMT ifmt_strx_l ATTRIBUTE_UNUSED = {
1752  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1753};
1754
1755static const CGEN_IFMT ifmt_strp_l ATTRIBUTE_UNUSED = {
1756  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1757};
1758
1759static const CGEN_IFMT ifmt_strd_l ATTRIBUTE_UNUSED = {
1760  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1761};
1762
1763static const CGEN_IFMT ifmt_strdpm_l ATTRIBUTE_UNUSED = {
1764  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1765};
1766
1767static const CGEN_IFMT ifmt_strds0 ATTRIBUTE_UNUSED = {
1768  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1769};
1770
1771static const CGEN_IFMT ifmt_strdl0 ATTRIBUTE_UNUSED = {
1772  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1773};
1774
1775static const CGEN_IFMT ifmt_strdl0_l ATTRIBUTE_UNUSED = {
1776  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1777};
1778
1779static const CGEN_IFMT ifmt_strdx_l ATTRIBUTE_UNUSED = {
1780  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_1) }, { F (F_DC_21_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1781};
1782
1783static const CGEN_IFMT ifmt_strdp_l ATTRIBUTE_UNUSED = {
1784  32, 32, 0x6f007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_ADDSUBX) }, { F (F_RM6) }, { 0 } }
1785};
1786
1787static const CGEN_IFMT ifmt_strdd_l ATTRIBUTE_UNUSED = {
1788  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1789};
1790
1791static const CGEN_IFMT ifmt_strddpm_l ATTRIBUTE_UNUSED = {
1792  32, 32, 0x200007f, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1793};
1794
1795static const CGEN_IFMT ifmt_strdds0 ATTRIBUTE_UNUSED = {
1796  16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1797};
1798
1799static const CGEN_IFMT ifmt_strddl0 ATTRIBUTE_UNUSED = {
1800  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1801};
1802
1803static const CGEN_IFMT ifmt_strddl0_l ATTRIBUTE_UNUSED = {
1804  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_PM) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SUBD) }, { F (F_DISP11) }, { 0 } }
1805};
1806
1807static const CGEN_IFMT ifmt_cmov_lEQ ATTRIBUTE_UNUSED = {
1808  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1809};
1810
1811static const CGEN_IFMT ifmt_cmov_lNE ATTRIBUTE_UNUSED = {
1812  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1813};
1814
1815static const CGEN_IFMT ifmt_cmov_lGTU ATTRIBUTE_UNUSED = {
1816  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1817};
1818
1819static const CGEN_IFMT ifmt_cmov_lGTEU ATTRIBUTE_UNUSED = {
1820  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1821};
1822
1823static const CGEN_IFMT ifmt_cmov_lLTEU ATTRIBUTE_UNUSED = {
1824  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1825};
1826
1827static const CGEN_IFMT ifmt_cmov_lLTU ATTRIBUTE_UNUSED = {
1828  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1829};
1830
1831static const CGEN_IFMT ifmt_cmov_lGT ATTRIBUTE_UNUSED = {
1832  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1833};
1834
1835static const CGEN_IFMT ifmt_cmov_lGTE ATTRIBUTE_UNUSED = {
1836  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1837};
1838
1839static const CGEN_IFMT ifmt_cmov_lLT ATTRIBUTE_UNUSED = {
1840  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1841};
1842
1843static const CGEN_IFMT ifmt_cmov_lLTE ATTRIBUTE_UNUSED = {
1844  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1845};
1846
1847static const CGEN_IFMT ifmt_cmov_lB ATTRIBUTE_UNUSED = {
1848  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1849};
1850
1851static const CGEN_IFMT ifmt_cmov_lBEQ ATTRIBUTE_UNUSED = {
1852  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1853};
1854
1855static const CGEN_IFMT ifmt_cmov_lBNE ATTRIBUTE_UNUSED = {
1856  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1857};
1858
1859static const CGEN_IFMT ifmt_cmov_lBLT ATTRIBUTE_UNUSED = {
1860  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1861};
1862
1863static const CGEN_IFMT ifmt_cmov_lBLTE ATTRIBUTE_UNUSED = {
1864  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { 0 } }
1865};
1866
1867static const CGEN_IFMT ifmt_movts_l6 ATTRIBUTE_UNUSED = {
1868  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
1869};
1870
1871static const CGEN_IFMT ifmt_movts_ldma ATTRIBUTE_UNUSED = {
1872  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
1873};
1874
1875static const CGEN_IFMT ifmt_movts_lmem ATTRIBUTE_UNUSED = {
1876  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
1877};
1878
1879static const CGEN_IFMT ifmt_movts_lmesh ATTRIBUTE_UNUSED = {
1880  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_SN6) }, { F (F_RD6) }, { 0 } }
1881};
1882
1883static const CGEN_IFMT ifmt_movfs_l6 ATTRIBUTE_UNUSED = {
1884  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
1885};
1886
1887static const CGEN_IFMT ifmt_movfs_ldma ATTRIBUTE_UNUSED = {
1888  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
1889};
1890
1891static const CGEN_IFMT ifmt_movfs_lmem ATTRIBUTE_UNUSED = {
1892  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
1893};
1894
1895static const CGEN_IFMT ifmt_movfs_lmesh ATTRIBUTE_UNUSED = {
1896  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_DC_7_4) }, { F (F_OPC_8_1) }, { F (F_DC_9_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_4) }, { F (F_DC_21_2) }, { F (F_RD6) }, { F (F_SN6) }, { 0 } }
1897};
1898
1899static const CGEN_IFMT ifmt_add_l ATTRIBUTE_UNUSED = {
1900  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1901};
1902
1903static const CGEN_IFMT ifmt_sub_l ATTRIBUTE_UNUSED = {
1904  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1905};
1906
1907static const CGEN_IFMT ifmt_and_l ATTRIBUTE_UNUSED = {
1908  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1909};
1910
1911static const CGEN_IFMT ifmt_orr_l ATTRIBUTE_UNUSED = {
1912  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1913};
1914
1915static const CGEN_IFMT ifmt_eor_l ATTRIBUTE_UNUSED = {
1916  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1917};
1918
1919static const CGEN_IFMT ifmt_addir ATTRIBUTE_UNUSED = {
1920  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
1921};
1922
1923static const CGEN_IFMT ifmt_addi32r ATTRIBUTE_UNUSED = {
1924  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
1925};
1926
1927static const CGEN_IFMT ifmt_addi32m ATTRIBUTE_UNUSED = {
1928  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
1929};
1930
1931static const CGEN_IFMT ifmt_subir ATTRIBUTE_UNUSED = {
1932  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
1933};
1934
1935static const CGEN_IFMT ifmt_subi32r ATTRIBUTE_UNUSED = {
1936  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
1937};
1938
1939static const CGEN_IFMT ifmt_subi32m ATTRIBUTE_UNUSED = {
1940  32, 32, 0x300007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_DC_25_2) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SDISP11) }, { 0 } }
1941};
1942
1943static const CGEN_IFMT ifmt_asr_l ATTRIBUTE_UNUSED = {
1944  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1945};
1946
1947static const CGEN_IFMT ifmt_lsr_l ATTRIBUTE_UNUSED = {
1948  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1949};
1950
1951static const CGEN_IFMT ifmt_lsl_l ATTRIBUTE_UNUSED = {
1952  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1953};
1954
1955static const CGEN_IFMT ifmt_lsri32_l ATTRIBUTE_UNUSED = {
1956  32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
1957};
1958
1959static const CGEN_IFMT ifmt_lsli32_l ATTRIBUTE_UNUSED = {
1960  32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
1961};
1962
1963static const CGEN_IFMT ifmt_asri32_l ATTRIBUTE_UNUSED = {
1964  32, 32, 0x3ff001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
1965};
1966
1967static const CGEN_IFMT ifmt_bitrl ATTRIBUTE_UNUSED = {
1968  32, 32, 0x3ff03ff, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_25_6) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_SHIFT) }, { 0 } }
1969};
1970
1971static const CGEN_IFMT ifmt_fext_l ATTRIBUTE_UNUSED = {
1972  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1973};
1974
1975static const CGEN_IFMT ifmt_fdep_l ATTRIBUTE_UNUSED = {
1976  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1977};
1978
1979static const CGEN_IFMT ifmt_lfsr_l ATTRIBUTE_UNUSED = {
1980  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
1981};
1982
1983static const CGEN_IFMT ifmt_mov8r ATTRIBUTE_UNUSED = {
1984  16, 16, 0x1f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_RD) }, { F (F_IMM8) }, { 0 } }
1985};
1986
1987static const CGEN_IFMT ifmt_mov16r ATTRIBUTE_UNUSED = {
1988  32, 32, 0x100f001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_28_1) }, { F (F_RD6) }, { F (F_IMM16) }, { 0 } }
1989};
1990
1991static const CGEN_IFMT ifmt_movtl ATTRIBUTE_UNUSED = {
1992  32, 32, 0x100f001f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_OPC_19_4) }, { F (F_DC_28_1) }, { F (F_RD6) }, { F (F_IMM16) }, { 0 } }
1993};
1994
1995static const CGEN_IFMT ifmt_i_addf16 ATTRIBUTE_UNUSED = {
1996  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
1997};
1998
1999static const CGEN_IFMT ifmt_f_addf32_l ATTRIBUTE_UNUSED = {
2000  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2001};
2002
2003static const CGEN_IFMT ifmt_i_addf32 ATTRIBUTE_UNUSED = {
2004  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2005};
2006
2007static const CGEN_IFMT ifmt_i_addf32_l ATTRIBUTE_UNUSED = {
2008  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2009};
2010
2011static const CGEN_IFMT ifmt_i_subf16 ATTRIBUTE_UNUSED = {
2012  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2013};
2014
2015static const CGEN_IFMT ifmt_f_subf32_l ATTRIBUTE_UNUSED = {
2016  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2017};
2018
2019static const CGEN_IFMT ifmt_i_subf32 ATTRIBUTE_UNUSED = {
2020  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2021};
2022
2023static const CGEN_IFMT ifmt_i_subf32_l ATTRIBUTE_UNUSED = {
2024  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2025};
2026
2027static const CGEN_IFMT ifmt_i_mulf16 ATTRIBUTE_UNUSED = {
2028  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2029};
2030
2031static const CGEN_IFMT ifmt_f_mulf32_l ATTRIBUTE_UNUSED = {
2032  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2033};
2034
2035static const CGEN_IFMT ifmt_i_mulf32 ATTRIBUTE_UNUSED = {
2036  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2037};
2038
2039static const CGEN_IFMT ifmt_i_mulf32_l ATTRIBUTE_UNUSED = {
2040  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2041};
2042
2043static const CGEN_IFMT ifmt_i_maddf16 ATTRIBUTE_UNUSED = {
2044  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2045};
2046
2047static const CGEN_IFMT ifmt_f_maddf32_l ATTRIBUTE_UNUSED = {
2048  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2049};
2050
2051static const CGEN_IFMT ifmt_i_maddf32 ATTRIBUTE_UNUSED = {
2052  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2053};
2054
2055static const CGEN_IFMT ifmt_i_maddf32_l ATTRIBUTE_UNUSED = {
2056  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2057};
2058
2059static const CGEN_IFMT ifmt_i_msubf16 ATTRIBUTE_UNUSED = {
2060  16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2061};
2062
2063static const CGEN_IFMT ifmt_f_msubf32_l ATTRIBUTE_UNUSED = {
2064  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2065};
2066
2067static const CGEN_IFMT ifmt_i_msubf32 ATTRIBUTE_UNUSED = {
2068  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2069};
2070
2071static const CGEN_IFMT ifmt_i_msubf32_l ATTRIBUTE_UNUSED = {
2072  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RM6) }, { 0 } }
2073};
2074
2075static const CGEN_IFMT ifmt_f_absf32_l ATTRIBUTE_UNUSED = {
2076  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
2077};
2078
2079static const CGEN_IFMT ifmt_f_loatf32_l ATTRIBUTE_UNUSED = {
2080  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
2081};
2082
2083static const CGEN_IFMT ifmt_f_ixf32_l ATTRIBUTE_UNUSED = {
2084  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_3) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
2085};
2086
2087static const CGEN_IFMT ifmt_f_recipf32_l ATTRIBUTE_UNUSED = {
2088  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
2089};
2090
2091static const CGEN_IFMT ifmt_f_sqrtf32_l ATTRIBUTE_UNUSED = {
2092  32, 32, 0x7f007f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_OPC_19_4) }, { F (F_DC_22_2) }, { F (F_DC_20_1) }, { F (F_RD6) }, { F (F_RN6) }, { F (F_RN6) }, { 0 } }
2093};
2094
2095#undef F
2096
2097/* Each non-simple macro entry points to an array of expansion possibilities.  */
2098
2099#define A(a) (1 << CGEN_INSN_##a)
2100#define OPERAND(op) EPIPHANY_OPERAND_##op
2101#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
2102#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
2103
2104/* The macro instruction table.  */
2105
2106static const CGEN_IBASE epiphany_cgen_macro_insn_table[] =
2107{
2108/* beq $simm8 */
2109  {
2110    -1, "beq16r", "beq", 16,
2111    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2112  },
2113/* beq $simm24 */
2114  {
2115    -1, "beq32r", "beq", 32,
2116    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2117  },
2118/* bne $simm8 */
2119  {
2120    -1, "bne16r", "bne", 16,
2121    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2122  },
2123/* bne $simm24 */
2124  {
2125    -1, "bne32r", "bne", 32,
2126    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2127  },
2128/* bgtu $simm8 */
2129  {
2130    -1, "bgtu16r", "bgtu", 16,
2131    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2132  },
2133/* bgtu $simm24 */
2134  {
2135    -1, "bgtu32r", "bgtu", 32,
2136    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2137  },
2138/* bgteu $simm8 */
2139  {
2140    -1, "bgteu16r", "bgteu", 16,
2141    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2142  },
2143/* bgteu $simm24 */
2144  {
2145    -1, "bgteu32r", "bgteu", 32,
2146    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2147  },
2148/* blteu $simm8 */
2149  {
2150    -1, "blteu16r", "blteu", 16,
2151    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2152  },
2153/* blteu $simm24 */
2154  {
2155    -1, "blteu32r", "blteu", 32,
2156    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2157  },
2158/* bltu $simm8 */
2159  {
2160    -1, "bltu16r", "bltu", 16,
2161    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2162  },
2163/* bltu $simm24 */
2164  {
2165    -1, "bltu32r", "bltu", 32,
2166    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2167  },
2168/* bgt $simm8 */
2169  {
2170    -1, "bgt16r", "bgt", 16,
2171    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2172  },
2173/* bgt $simm24 */
2174  {
2175    -1, "bgt32r", "bgt", 32,
2176    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2177  },
2178/* bgte $simm8 */
2179  {
2180    -1, "bgte16r", "bgte", 16,
2181    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2182  },
2183/* bgte $simm24 */
2184  {
2185    -1, "bgte32r", "bgte", 32,
2186    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2187  },
2188/* blt $simm8 */
2189  {
2190    -1, "blt16r", "blt", 16,
2191    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2192  },
2193/* blt $simm24 */
2194  {
2195    -1, "blt32r", "blt", 32,
2196    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2197  },
2198/* blte $simm8 */
2199  {
2200    -1, "blte16r", "blte", 16,
2201    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2202  },
2203/* blte $simm24 */
2204  {
2205    -1, "blte32r", "blte", 32,
2206    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2207  },
2208/* bbeq $simm8 */
2209  {
2210    -1, "bbeq16r", "bbeq", 16,
2211    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2212  },
2213/* bbeq $simm24 */
2214  {
2215    -1, "bbeq32r", "bbeq", 32,
2216    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2217  },
2218/* bbne $simm8 */
2219  {
2220    -1, "bbne16r", "bbne", 16,
2221    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2222  },
2223/* bbne $simm24 */
2224  {
2225    -1, "bbne32r", "bbne", 32,
2226    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2227  },
2228/* bblt $simm8 */
2229  {
2230    -1, "bblt16r", "bblt", 16,
2231    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2232  },
2233/* bblt $simm24 */
2234  {
2235    -1, "bblt32r", "bblt", 32,
2236    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2237  },
2238/* bblte $simm8 */
2239  {
2240    -1, "bblte16r", "bblte", 16,
2241    { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2242  },
2243/* bblte $simm24 */
2244  {
2245    -1, "bblte32r", "bblte", 32,
2246    { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2247  },
2248/* b $simm8 */
2249  {
2250    -1, "b16r", "b", 16,
2251    { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2252  },
2253/* b $simm24 */
2254  {
2255    -1, "b32r", "b", 32,
2256    { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2257  },
2258/* bl $simm8 */
2259  {
2260    -1, "bl16r", "bl", 16,
2261    { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2262  },
2263/* bl $simm24 */
2264  {
2265    -1, "blr", "bl", 32,
2266    { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2267  },
2268/* ldrb.l $rd6,[$rn6,$direction$rm6] */
2269  {
2270    -1, "ldrbx", "ldrb.l", 32,
2271    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2272  },
2273/* ldrb.l $rd6,[$rn6],$direction$rm6 */
2274  {
2275    -1, "ldrbp", "ldrb.l", 32,
2276    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2277  },
2278/* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
2279  {
2280    -1, "ldrbd", "ldrb.l", 32,
2281    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2282  },
2283/* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
2284  {
2285    -1, "ldrbdpm", "ldrb.l", 32,
2286    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2287  },
2288/* ldrb $rd,[$rn] */
2289  {
2290    -1, "ldrbds0", "ldrb", 16,
2291    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2292  },
2293/* ldrb $rd6,[$rn6] */
2294  {
2295    -1, "ldrbdl0", "ldrb", 32,
2296    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2297  },
2298/* ldrb.l $rd6,[$rn6] */
2299  {
2300    -1, "ldrbdl0.l", "ldrb.l", 32,
2301    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2302  },
2303/* ldrh.l $rd6,[$rn6,$direction$rm6] */
2304  {
2305    -1, "ldrhx", "ldrh.l", 32,
2306    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2307  },
2308/* ldrh.l $rd6,[$rn6],$direction$rm6 */
2309  {
2310    -1, "ldrhp", "ldrh.l", 32,
2311    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2312  },
2313/* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
2314  {
2315    -1, "ldrhd", "ldrh.l", 32,
2316    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2317  },
2318/* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
2319  {
2320    -1, "ldrhdpm", "ldrh.l", 32,
2321    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2322  },
2323/* ldrh $rd,[$rn] */
2324  {
2325    -1, "ldrhds0", "ldrh", 16,
2326    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2327  },
2328/* ldrh $rd6,[$rn6] */
2329  {
2330    -1, "ldrhdl0", "ldrh", 32,
2331    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2332  },
2333/* ldrh.l $rd6,[$rn6] */
2334  {
2335    -1, "ldrhdl0.l", "ldrh.l", 32,
2336    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2337  },
2338/* ldr.l $rd6,[$rn6,$direction$rm6] */
2339  {
2340    -1, "ldrx", "ldr.l", 32,
2341    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2342  },
2343/* ldr.l $rd6,[$rn6],$direction$rm6 */
2344  {
2345    -1, "ldrp", "ldr.l", 32,
2346    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2347  },
2348/* ldr.l $rd6,[$rn6,$dpmi$disp11] */
2349  {
2350    -1, "ldrd", "ldr.l", 32,
2351    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2352  },
2353/* ldr.l $rd6,[$rn6],$dpmi$disp11 */
2354  {
2355    -1, "ldrdpm", "ldr.l", 32,
2356    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2357  },
2358/* ldr $rd,[$rn] */
2359  {
2360    -1, "ldrds0", "ldr", 16,
2361    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2362  },
2363/* ldr $rd6,[$rn6] */
2364  {
2365    -1, "ldrdl0", "ldr", 32,
2366    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2367  },
2368/* ldr.l $rd6,[$rn6] */
2369  {
2370    -1, "ldrdl0.l", "ldr.l", 32,
2371    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2372  },
2373/* ldrd.l $rd6,[$rn6,$direction$rm6] */
2374  {
2375    -1, "ldrdx", "ldrd.l", 32,
2376    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2377  },
2378/* ldrd.l $rd6,[$rn6],$direction$rm6 */
2379  {
2380    -1, "ldrdp", "ldrd.l", 32,
2381    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2382  },
2383/* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
2384  {
2385    -1, "ldrdd", "ldrd.l", 32,
2386    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2387  },
2388/* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
2389  {
2390    -1, "ldrddpm", "ldrd.l", 32,
2391    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2392  },
2393/* ldrd $rd,[$rn] */
2394  {
2395    -1, "ldrdds0", "ldrd", 16,
2396    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2397  },
2398/* ldrd $rd6,[$rn6] */
2399  {
2400    -1, "ldrddl0", "ldrd", 32,
2401    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2402  },
2403/* ldrd.l $rd6,[$rn6] */
2404  {
2405    -1, "ldrddl0.l", "ldrd.l", 32,
2406    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2407  },
2408/* testsetb.l $rd6,[$rn6,$direction$rm6] */
2409  {
2410    -1, "testsetbt.l", "testsetb.l", 32,
2411    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2412  },
2413/* testseth.l $rd6,[$rn6,$direction$rm6] */
2414  {
2415    -1, "testsetht.l", "testseth.l", 32,
2416    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2417  },
2418/* testset.l $rd6,[$rn6,$direction$rm6] */
2419  {
2420    -1, "testsett.l", "testset.l", 32,
2421    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2422  },
2423/* strb.l $rd6,[$rn6,$direction$rm6] */
2424  {
2425    -1, "strbx.l", "strb.l", 32,
2426    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2427  },
2428/* strb.l $rd6,[$rn6],$direction$rm6 */
2429  {
2430    -1, "strbp.l", "strb.l", 32,
2431    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2432  },
2433/* strb.l $rd6,[$rn6,$dpmi$disp11] */
2434  {
2435    -1, "strbd.l", "strb.l", 32,
2436    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2437  },
2438/* strb.l $rd6,[$rn6],$dpmi$disp11 */
2439  {
2440    -1, "strbdpm.l", "strb.l", 32,
2441    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2442  },
2443/* strb $rd,[$rn] */
2444  {
2445    -1, "strbds0", "strb", 16,
2446    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2447  },
2448/* strb $rd6,[$rn6] */
2449  {
2450    -1, "strbdl0", "strb", 32,
2451    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2452  },
2453/* strb.l $rd6,[$rn6] */
2454  {
2455    -1, "strbdl0.l", "strb.l", 32,
2456    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2457  },
2458/* strh.l $rd6,[$rn6,$direction$rm6] */
2459  {
2460    -1, "strhx.l", "strh.l", 32,
2461    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2462  },
2463/* strh.l $rd6,[$rn6],$direction$rm6 */
2464  {
2465    -1, "strhp.l", "strh.l", 32,
2466    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2467  },
2468/* strh.l $rd6,[$rn6,$dpmi$disp11] */
2469  {
2470    -1, "strhd.l", "strh.l", 32,
2471    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2472  },
2473/* strh.l $rd6,[$rn6],$dpmi$disp11 */
2474  {
2475    -1, "strhdpm.l", "strh.l", 32,
2476    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2477  },
2478/* strh $rd,[$rn] */
2479  {
2480    -1, "strhds0", "strh", 16,
2481    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2482  },
2483/* strh $rd6,[$rn6] */
2484  {
2485    -1, "strhdl0", "strh", 32,
2486    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2487  },
2488/* strh.l $rd6,[$rn6] */
2489  {
2490    -1, "strhdl0.l", "strh.l", 32,
2491    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2492  },
2493/* str.l $rd6,[$rn6,$direction$rm6] */
2494  {
2495    -1, "strx.l", "str.l", 32,
2496    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2497  },
2498/* str.l $rd6,[$rn6],$direction$rm6 */
2499  {
2500    -1, "strp.l", "str.l", 32,
2501    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2502  },
2503/* str.l $rd6,[$rn6,$dpmi$disp11] */
2504  {
2505    -1, "strd.l", "str.l", 32,
2506    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2507  },
2508/* str.l $rd6,[$rn6],$dpmi$disp11 */
2509  {
2510    -1, "strdpm.l", "str.l", 32,
2511    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2512  },
2513/* str $rd,[$rn] */
2514  {
2515    -1, "strds0", "str", 16,
2516    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2517  },
2518/* str $rd6,[$rn6] */
2519  {
2520    -1, "strdl0", "str", 32,
2521    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2522  },
2523/* str.l $rd6,[$rn6] */
2524  {
2525    -1, "strdl0.l", "str.l", 32,
2526    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2527  },
2528/* strd.l $rd6,[$rn6,$direction$rm6] */
2529  {
2530    -1, "strdx.l", "strd.l", 32,
2531    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2532  },
2533/* strd.l $rd6,[$rn6],$direction$rm6 */
2534  {
2535    -1, "strdp.l", "strd.l", 32,
2536    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2537  },
2538/* strd.l $rd6,[$rn6,$dpmi$disp11] */
2539  {
2540    -1, "strdd.l", "strd.l", 32,
2541    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2542  },
2543/* strd.l $rd6,[$rn6],$dpmi$disp11 */
2544  {
2545    -1, "strddpm.l", "strd.l", 32,
2546    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2547  },
2548/* strd $rd,[$rn] */
2549  {
2550    -1, "strdds0", "strd", 16,
2551    { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2552  },
2553/* strd $rd6,[$rn6] */
2554  {
2555    -1, "strddl0", "strd", 32,
2556    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2557  },
2558/* strd.l $rd6,[$rn6] */
2559  {
2560    -1, "strddl0.l", "strd.l", 32,
2561    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2562  },
2563/* moveq.l $rd6,$rn6 */
2564  {
2565    -1, "cmov.lEQ", "moveq.l", 32,
2566    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2567  },
2568/* movne.l $rd6,$rn6 */
2569  {
2570    -1, "cmov.lNE", "movne.l", 32,
2571    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2572  },
2573/* movgtu.l $rd6,$rn6 */
2574  {
2575    -1, "cmov.lGTU", "movgtu.l", 32,
2576    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2577  },
2578/* movgteu.l $rd6,$rn6 */
2579  {
2580    -1, "cmov.lGTEU", "movgteu.l", 32,
2581    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2582  },
2583/* movlteu.l $rd6,$rn6 */
2584  {
2585    -1, "cmov.lLTEU", "movlteu.l", 32,
2586    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2587  },
2588/* movltu.l $rd6,$rn6 */
2589  {
2590    -1, "cmov.lLTU", "movltu.l", 32,
2591    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2592  },
2593/* movgt.l $rd6,$rn6 */
2594  {
2595    -1, "cmov.lGT", "movgt.l", 32,
2596    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2597  },
2598/* movgte.l $rd6,$rn6 */
2599  {
2600    -1, "cmov.lGTE", "movgte.l", 32,
2601    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2602  },
2603/* movlt.l $rd6,$rn6 */
2604  {
2605    -1, "cmov.lLT", "movlt.l", 32,
2606    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2607  },
2608/* movlte.l $rd6,$rn6 */
2609  {
2610    -1, "cmov.lLTE", "movlte.l", 32,
2611    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2612  },
2613/* mov.l $rd6,$rn6 */
2614  {
2615    -1, "cmov.lB", "mov.l", 32,
2616    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2617  },
2618/* movbeq.l $rd6,$rn6 */
2619  {
2620    -1, "cmov.lBEQ", "movbeq.l", 32,
2621    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2622  },
2623/* movbne.l $rd6,$rn6 */
2624  {
2625    -1, "cmov.lBNE", "movbne.l", 32,
2626    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2627  },
2628/* movblt.l $rd6,$rn6 */
2629  {
2630    -1, "cmov.lBLT", "movblt.l", 32,
2631    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2632  },
2633/* movblte.l $rd6,$rn6 */
2634  {
2635    -1, "cmov.lBLTE", "movblte.l", 32,
2636    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2637  },
2638/* movts.l $sn6,$rd6 */
2639  {
2640    -1, "movts.l6", "movts.l", 32,
2641    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2642  },
2643/* movts.l $sndma,$rd6 */
2644  {
2645    -1, "movts.ldma", "movts.l", 32,
2646    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2647  },
2648/* movts.l $snmem,$rd6 */
2649  {
2650    -1, "movts.lmem", "movts.l", 32,
2651    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2652  },
2653/* movts.l $snmesh,$rd6 */
2654  {
2655    -1, "movts.lmesh", "movts.l", 32,
2656    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2657  },
2658/* movfs.l $rd6,$sn6 */
2659  {
2660    -1, "movfs.l6", "movfs.l", 32,
2661    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2662  },
2663/* movfs.l $rd6,$sndma */
2664  {
2665    -1, "movfs.ldma", "movfs.l", 32,
2666    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2667  },
2668/* movfs.l $rd6,$snmem */
2669  {
2670    -1, "movfs.lmem", "movfs.l", 32,
2671    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2672  },
2673/* movfs.l $rd6,$snmesh */
2674  {
2675    -1, "movfs.lmesh", "movfs.l", 32,
2676    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2677  },
2678/* add.l $rd6,$rn6,$rm6 */
2679  {
2680    -1, "add.l", "add.l", 32,
2681    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2682  },
2683/* sub.l $rd6,$rn6,$rm6 */
2684  {
2685    -1, "sub.l", "sub.l", 32,
2686    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2687  },
2688/* and.l $rd6,$rn6,$rm6 */
2689  {
2690    -1, "and.l", "and.l", 32,
2691    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2692  },
2693/* orr.l $rd6,$rn6,$rm6 */
2694  {
2695    -1, "orr.l", "orr.l", 32,
2696    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2697  },
2698/* eor.l $rd6,$rn6,$rm6 */
2699  {
2700    -1, "eor.l", "eor.l", 32,
2701    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2702  },
2703/* add $rd,$rn,$simm3 */
2704  {
2705    -1, "addir", "add", 16,
2706    { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2707  },
2708/* add $rd6,$rn6,$simm11 */
2709  {
2710    -1, "addi32r", "add", 32,
2711    { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2712  },
2713/* add $rd6,$rn6,$simm11 */
2714  {
2715    -1, "addi32m", "add", 32,
2716    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2717  },
2718/* sub $rd,$rn,$simm3 */
2719  {
2720    -1, "subir", "sub", 16,
2721    { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2722  },
2723/* sub $rd6,$rn6,$simm11 */
2724  {
2725    -1, "subi32r", "sub", 32,
2726    { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2727  },
2728/* sub $rd6,$rn6,$simm11 */
2729  {
2730    -1, "subi32m", "sub", 32,
2731    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2732  },
2733/* asr.l $rd6,$rn6,$rm6 */
2734  {
2735    -1, "asr.l", "asr.l", 32,
2736    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2737  },
2738/* lsr.l $rd6,$rn6,$rm6 */
2739  {
2740    -1, "lsr.l", "lsr.l", 32,
2741    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2742  },
2743/* lsl.l $rd6,$rn6,$rm6 */
2744  {
2745    -1, "lsl.l", "lsl.l", 32,
2746    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2747  },
2748/* lsr.l $rd6,$rn6,$shift */
2749  {
2750    -1, "lsri32.l", "lsr.l", 32,
2751    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2752  },
2753/* lsl.l $rd6,$rn6,$shift */
2754  {
2755    -1, "lsli32.l", "lsl.l", 32,
2756    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2757  },
2758/* asr.l $rd6,$rn6,$shift */
2759  {
2760    -1, "asri32.l", "asr.l", 32,
2761    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2762  },
2763/* bitr.l $rd6,$rn6 */
2764  {
2765    -1, "bitrl", "bitr.l", 32,
2766    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2767  },
2768/* fext.l $rd6,$rn6,$rm6 */
2769  {
2770    -1, "fext.l", "fext.l", 32,
2771    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2772  },
2773/* fdep.l $rd6,$rn6,$rm6 */
2774  {
2775    -1, "fdep.l", "fdep.l", 32,
2776    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2777  },
2778/* lfsr.l $rd6,$rn6,$rm6 */
2779  {
2780    -1, "lfsr.l", "lfsr.l", 32,
2781    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2782  },
2783/* mov $rd,$imm8 */
2784  {
2785    -1, "mov8r", "mov", 16,
2786    { 0|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2787  },
2788/* mov $rd6,$imm16 */
2789  {
2790    -1, "mov16r", "mov", 32,
2791    { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2792  },
2793/* movt.l $rd6,$imm16 */
2794  {
2795    -1, "movtl", "movt.l", 32,
2796    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2797  },
2798/* iadd $rd,$rn,$rm */
2799  {
2800    -1, "i_addf16", "iadd", 16,
2801    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2802  },
2803/* fadd.l $rd6,$rn6,$rm6 */
2804  {
2805    -1, "f_addf32.l", "fadd.l", 32,
2806    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2807  },
2808/* iadd $rd6,$rn6,$rm6 */
2809  {
2810    -1, "i_addf32", "iadd", 32,
2811    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2812  },
2813/* iadd.l $rd6,$rn6,$rm6 */
2814  {
2815    -1, "i_addf32.l", "iadd.l", 32,
2816    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2817  },
2818/* isub $rd,$rn,$rm */
2819  {
2820    -1, "i_subf16", "isub", 16,
2821    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2822  },
2823/* fsub.l $rd6,$rn6,$rm6 */
2824  {
2825    -1, "f_subf32.l", "fsub.l", 32,
2826    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2827  },
2828/* isub $rd6,$rn6,$rm6 */
2829  {
2830    -1, "i_subf32", "isub", 32,
2831    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2832  },
2833/* isub.l $rd6,$rn6,$rm6 */
2834  {
2835    -1, "i_subf32.l", "isub.l", 32,
2836    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2837  },
2838/* imul $rd,$rn,$rm */
2839  {
2840    -1, "i_mulf16", "imul", 16,
2841    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2842  },
2843/* fmul.l $rd6,$rn6,$rm6 */
2844  {
2845    -1, "f_mulf32.l", "fmul.l", 32,
2846    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2847  },
2848/* imul $rd6,$rn6,$rm6 */
2849  {
2850    -1, "i_mulf32", "imul", 32,
2851    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2852  },
2853/* imul.l $rd6,$rn6,$rm6 */
2854  {
2855    -1, "i_mulf32.l", "imul.l", 32,
2856    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2857  },
2858/* imadd $rd,$rn,$rm */
2859  {
2860    -1, "i_maddf16", "imadd", 16,
2861    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2862  },
2863/* fmadd.l $rd6,$rn6,$rm6 */
2864  {
2865    -1, "f_maddf32.l", "fmadd.l", 32,
2866    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2867  },
2868/* imadd $rd6,$rn6,$rm6 */
2869  {
2870    -1, "i_maddf32", "imadd", 32,
2871    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2872  },
2873/* imadd.l $rd6,$rn6,$rm6 */
2874  {
2875    -1, "i_maddf32.l", "imadd.l", 32,
2876    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2877  },
2878/* imsub $rd,$rn,$rm */
2879  {
2880    -1, "i_msubf16", "imsub", 16,
2881    { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2882  },
2883/* fmsub.l $rd6,$rn6,$rm6 */
2884  {
2885    -1, "f_msubf32.l", "fmsub.l", 32,
2886    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2887  },
2888/* imsub $rd6,$rn6,$rm6 */
2889  {
2890    -1, "i_msubf32", "imsub", 32,
2891    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2892  },
2893/* imsub.l $rd6,$rn6,$rm6 */
2894  {
2895    -1, "i_msubf32.l", "imsub.l", 32,
2896    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2897  },
2898/* fabs.l $rd6,$rn6 */
2899  {
2900    -1, "f_absf32.l", "fabs.l", 32,
2901    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2902  },
2903/* float.l $rd6,$rn6 */
2904  {
2905    -1, "f_loatf32.l", "float.l", 32,
2906    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2907  },
2908/* fix.l $rd6,$rn6 */
2909  {
2910    -1, "f_ixf32.l", "fix.l", 32,
2911    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2912  },
2913/* frecip.l $frd6,$frn6 */
2914  {
2915    -1, "f_recipf32.l", "frecip.l", 32,
2916    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2917  },
2918/* fsqrt.l $frd6,$frn6 */
2919  {
2920    -1, "f_sqrtf32.l", "fsqrt.l", 32,
2921    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2922  },
2923};
2924
2925/* The macro instruction opcode table.  */
2926
2927static const CGEN_OPCODE epiphany_cgen_macro_insn_opcode_table[] =
2928{
2929/* beq $simm8 */
2930  {
2931    { 0, 0, 0, 0 },
2932    { { MNEM, ' ', OP (SIMM8), 0 } },
2933    & ifmt_beq16r, { 0x0 }
2934  },
2935/* beq $simm24 */
2936  {
2937    { 0, 0, 0, 0 },
2938    { { MNEM, ' ', OP (SIMM24), 0 } },
2939    & ifmt_beq32r, { 0x8 }
2940  },
2941/* bne $simm8 */
2942  {
2943    { 0, 0, 0, 0 },
2944    { { MNEM, ' ', OP (SIMM8), 0 } },
2945    & ifmt_bne16r, { 0x10 }
2946  },
2947/* bne $simm24 */
2948  {
2949    { 0, 0, 0, 0 },
2950    { { MNEM, ' ', OP (SIMM24), 0 } },
2951    & ifmt_bne32r, { 0x18 }
2952  },
2953/* bgtu $simm8 */
2954  {
2955    { 0, 0, 0, 0 },
2956    { { MNEM, ' ', OP (SIMM8), 0 } },
2957    & ifmt_bgtu16r, { 0x20 }
2958  },
2959/* bgtu $simm24 */
2960  {
2961    { 0, 0, 0, 0 },
2962    { { MNEM, ' ', OP (SIMM24), 0 } },
2963    & ifmt_bgtu32r, { 0x28 }
2964  },
2965/* bgteu $simm8 */
2966  {
2967    { 0, 0, 0, 0 },
2968    { { MNEM, ' ', OP (SIMM8), 0 } },
2969    & ifmt_bgteu16r, { 0x30 }
2970  },
2971/* bgteu $simm24 */
2972  {
2973    { 0, 0, 0, 0 },
2974    { { MNEM, ' ', OP (SIMM24), 0 } },
2975    & ifmt_bgteu32r, { 0x38 }
2976  },
2977/* blteu $simm8 */
2978  {
2979    { 0, 0, 0, 0 },
2980    { { MNEM, ' ', OP (SIMM8), 0 } },
2981    & ifmt_blteu16r, { 0x40 }
2982  },
2983/* blteu $simm24 */
2984  {
2985    { 0, 0, 0, 0 },
2986    { { MNEM, ' ', OP (SIMM24), 0 } },
2987    & ifmt_blteu32r, { 0x48 }
2988  },
2989/* bltu $simm8 */
2990  {
2991    { 0, 0, 0, 0 },
2992    { { MNEM, ' ', OP (SIMM8), 0 } },
2993    & ifmt_bltu16r, { 0x50 }
2994  },
2995/* bltu $simm24 */
2996  {
2997    { 0, 0, 0, 0 },
2998    { { MNEM, ' ', OP (SIMM24), 0 } },
2999    & ifmt_bltu32r, { 0x58 }
3000  },
3001/* bgt $simm8 */
3002  {
3003    { 0, 0, 0, 0 },
3004    { { MNEM, ' ', OP (SIMM8), 0 } },
3005    & ifmt_bgt16r, { 0x60 }
3006  },
3007/* bgt $simm24 */
3008  {
3009    { 0, 0, 0, 0 },
3010    { { MNEM, ' ', OP (SIMM24), 0 } },
3011    & ifmt_bgt32r, { 0x68 }
3012  },
3013/* bgte $simm8 */
3014  {
3015    { 0, 0, 0, 0 },
3016    { { MNEM, ' ', OP (SIMM8), 0 } },
3017    & ifmt_bgte16r, { 0x70 }
3018  },
3019/* bgte $simm24 */
3020  {
3021    { 0, 0, 0, 0 },
3022    { { MNEM, ' ', OP (SIMM24), 0 } },
3023    & ifmt_bgte32r, { 0x78 }
3024  },
3025/* blt $simm8 */
3026  {
3027    { 0, 0, 0, 0 },
3028    { { MNEM, ' ', OP (SIMM8), 0 } },
3029    & ifmt_blt16r, { 0x80 }
3030  },
3031/* blt $simm24 */
3032  {
3033    { 0, 0, 0, 0 },
3034    { { MNEM, ' ', OP (SIMM24), 0 } },
3035    & ifmt_blt32r, { 0x88 }
3036  },
3037/* blte $simm8 */
3038  {
3039    { 0, 0, 0, 0 },
3040    { { MNEM, ' ', OP (SIMM8), 0 } },
3041    & ifmt_blte16r, { 0x90 }
3042  },
3043/* blte $simm24 */
3044  {
3045    { 0, 0, 0, 0 },
3046    { { MNEM, ' ', OP (SIMM24), 0 } },
3047    & ifmt_blte32r, { 0x98 }
3048  },
3049/* bbeq $simm8 */
3050  {
3051    { 0, 0, 0, 0 },
3052    { { MNEM, ' ', OP (SIMM8), 0 } },
3053    & ifmt_bbeq16r, { 0xa0 }
3054  },
3055/* bbeq $simm24 */
3056  {
3057    { 0, 0, 0, 0 },
3058    { { MNEM, ' ', OP (SIMM24), 0 } },
3059    & ifmt_bbeq32r, { 0xa8 }
3060  },
3061/* bbne $simm8 */
3062  {
3063    { 0, 0, 0, 0 },
3064    { { MNEM, ' ', OP (SIMM8), 0 } },
3065    & ifmt_bbne16r, { 0xb0 }
3066  },
3067/* bbne $simm24 */
3068  {
3069    { 0, 0, 0, 0 },
3070    { { MNEM, ' ', OP (SIMM24), 0 } },
3071    & ifmt_bbne32r, { 0xb8 }
3072  },
3073/* bblt $simm8 */
3074  {
3075    { 0, 0, 0, 0 },
3076    { { MNEM, ' ', OP (SIMM8), 0 } },
3077    & ifmt_bblt16r, { 0xc0 }
3078  },
3079/* bblt $simm24 */
3080  {
3081    { 0, 0, 0, 0 },
3082    { { MNEM, ' ', OP (SIMM24), 0 } },
3083    & ifmt_bblt32r, { 0xc8 }
3084  },
3085/* bblte $simm8 */
3086  {
3087    { 0, 0, 0, 0 },
3088    { { MNEM, ' ', OP (SIMM8), 0 } },
3089    & ifmt_bblte16r, { 0xd0 }
3090  },
3091/* bblte $simm24 */
3092  {
3093    { 0, 0, 0, 0 },
3094    { { MNEM, ' ', OP (SIMM24), 0 } },
3095    & ifmt_bblte32r, { 0xd8 }
3096  },
3097/* b $simm8 */
3098  {
3099    { 0, 0, 0, 0 },
3100    { { MNEM, ' ', OP (SIMM8), 0 } },
3101    & ifmt_b16r, { 0xe0 }
3102  },
3103/* b $simm24 */
3104  {
3105    { 0, 0, 0, 0 },
3106    { { MNEM, ' ', OP (SIMM24), 0 } },
3107    & ifmt_b32r, { 0xe8 }
3108  },
3109/* bl $simm8 */
3110  {
3111    { 0, 0, 0, 0 },
3112    { { MNEM, ' ', OP (SIMM8), 0 } },
3113    & ifmt_bl16r, { 0xf0 }
3114  },
3115/* bl $simm24 */
3116  {
3117    { 0, 0, 0, 0 },
3118    { { MNEM, ' ', OP (SIMM24), 0 } },
3119    & ifmt_blr, { 0xf8 }
3120  },
3121/* ldrb.l $rd6,[$rn6,$direction$rm6] */
3122  {
3123    { 0, 0, 0, 0 },
3124    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3125    & ifmt_ldrbx, { 0x9 }
3126  },
3127/* ldrb.l $rd6,[$rn6],$direction$rm6 */
3128  {
3129    { 0, 0, 0, 0 },
3130    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3131    & ifmt_ldrbp, { 0xd }
3132  },
3133/* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
3134  {
3135    { 0, 0, 0, 0 },
3136    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3137    & ifmt_ldrbd, { 0xc }
3138  },
3139/* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
3140  {
3141    { 0, 0, 0, 0 },
3142    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3143    & ifmt_ldrbdpm, { 0x200000c }
3144  },
3145/* ldrb $rd,[$rn] */
3146  {
3147    { 0, 0, 0, 0 },
3148    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3149    & ifmt_ldrbds0, { 0x4 }
3150  },
3151/* ldrb $rd6,[$rn6] */
3152  {
3153    { 0, 0, 0, 0 },
3154    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3155    & ifmt_ldrbdl0, { 0xc }
3156  },
3157/* ldrb.l $rd6,[$rn6] */
3158  {
3159    { 0, 0, 0, 0 },
3160    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3161    & ifmt_ldrbdl0_l, { 0xc }
3162  },
3163/* ldrh.l $rd6,[$rn6,$direction$rm6] */
3164  {
3165    { 0, 0, 0, 0 },
3166    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3167    & ifmt_ldrhx, { 0x29 }
3168  },
3169/* ldrh.l $rd6,[$rn6],$direction$rm6 */
3170  {
3171    { 0, 0, 0, 0 },
3172    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3173    & ifmt_ldrhp, { 0x2d }
3174  },
3175/* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
3176  {
3177    { 0, 0, 0, 0 },
3178    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3179    & ifmt_ldrhd, { 0x2c }
3180  },
3181/* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
3182  {
3183    { 0, 0, 0, 0 },
3184    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3185    & ifmt_ldrhdpm, { 0x200002c }
3186  },
3187/* ldrh $rd,[$rn] */
3188  {
3189    { 0, 0, 0, 0 },
3190    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3191    & ifmt_ldrhds0, { 0x24 }
3192  },
3193/* ldrh $rd6,[$rn6] */
3194  {
3195    { 0, 0, 0, 0 },
3196    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3197    & ifmt_ldrhdl0, { 0x2c }
3198  },
3199/* ldrh.l $rd6,[$rn6] */
3200  {
3201    { 0, 0, 0, 0 },
3202    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3203    & ifmt_ldrhdl0_l, { 0x2c }
3204  },
3205/* ldr.l $rd6,[$rn6,$direction$rm6] */
3206  {
3207    { 0, 0, 0, 0 },
3208    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3209    & ifmt_ldrx, { 0x49 }
3210  },
3211/* ldr.l $rd6,[$rn6],$direction$rm6 */
3212  {
3213    { 0, 0, 0, 0 },
3214    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3215    & ifmt_ldrp, { 0x4d }
3216  },
3217/* ldr.l $rd6,[$rn6,$dpmi$disp11] */
3218  {
3219    { 0, 0, 0, 0 },
3220    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3221    & ifmt_ldrd, { 0x4c }
3222  },
3223/* ldr.l $rd6,[$rn6],$dpmi$disp11 */
3224  {
3225    { 0, 0, 0, 0 },
3226    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3227    & ifmt_ldrdpm, { 0x200004c }
3228  },
3229/* ldr $rd,[$rn] */
3230  {
3231    { 0, 0, 0, 0 },
3232    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3233    & ifmt_ldrds0, { 0x44 }
3234  },
3235/* ldr $rd6,[$rn6] */
3236  {
3237    { 0, 0, 0, 0 },
3238    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3239    & ifmt_ldrdl0, { 0x4c }
3240  },
3241/* ldr.l $rd6,[$rn6] */
3242  {
3243    { 0, 0, 0, 0 },
3244    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3245    & ifmt_ldrdl0_l, { 0x4c }
3246  },
3247/* ldrd.l $rd6,[$rn6,$direction$rm6] */
3248  {
3249    { 0, 0, 0, 0 },
3250    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3251    & ifmt_ldrdx, { 0x69 }
3252  },
3253/* ldrd.l $rd6,[$rn6],$direction$rm6 */
3254  {
3255    { 0, 0, 0, 0 },
3256    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3257    & ifmt_ldrdp, { 0x6d }
3258  },
3259/* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
3260  {
3261    { 0, 0, 0, 0 },
3262    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3263    & ifmt_ldrdd, { 0x6c }
3264  },
3265/* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
3266  {
3267    { 0, 0, 0, 0 },
3268    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3269    & ifmt_ldrddpm, { 0x200006c }
3270  },
3271/* ldrd $rd,[$rn] */
3272  {
3273    { 0, 0, 0, 0 },
3274    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3275    & ifmt_ldrdds0, { 0x64 }
3276  },
3277/* ldrd $rd6,[$rn6] */
3278  {
3279    { 0, 0, 0, 0 },
3280    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3281    & ifmt_ldrddl0, { 0x6c }
3282  },
3283/* ldrd.l $rd6,[$rn6] */
3284  {
3285    { 0, 0, 0, 0 },
3286    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3287    & ifmt_ldrddl0_l, { 0x6c }
3288  },
3289/* testsetb.l $rd6,[$rn6,$direction$rm6] */
3290  {
3291    { 0, 0, 0, 0 },
3292    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3293    & ifmt_testsetbt_l, { 0x200009 }
3294  },
3295/* testseth.l $rd6,[$rn6,$direction$rm6] */
3296  {
3297    { 0, 0, 0, 0 },
3298    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3299    & ifmt_testsetht_l, { 0x200029 }
3300  },
3301/* testset.l $rd6,[$rn6,$direction$rm6] */
3302  {
3303    { 0, 0, 0, 0 },
3304    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3305    & ifmt_testsett_l, { 0x200049 }
3306  },
3307/* strb.l $rd6,[$rn6,$direction$rm6] */
3308  {
3309    { 0, 0, 0, 0 },
3310    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3311    & ifmt_strbx_l, { 0x19 }
3312  },
3313/* strb.l $rd6,[$rn6],$direction$rm6 */
3314  {
3315    { 0, 0, 0, 0 },
3316    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3317    & ifmt_strbp_l, { 0x1d }
3318  },
3319/* strb.l $rd6,[$rn6,$dpmi$disp11] */
3320  {
3321    { 0, 0, 0, 0 },
3322    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3323    & ifmt_strbd_l, { 0x1c }
3324  },
3325/* strb.l $rd6,[$rn6],$dpmi$disp11 */
3326  {
3327    { 0, 0, 0, 0 },
3328    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3329    & ifmt_strbdpm_l, { 0x200001c }
3330  },
3331/* strb $rd,[$rn] */
3332  {
3333    { 0, 0, 0, 0 },
3334    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3335    & ifmt_strbds0, { 0x14 }
3336  },
3337/* strb $rd6,[$rn6] */
3338  {
3339    { 0, 0, 0, 0 },
3340    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3341    & ifmt_strbdl0, { 0x1c }
3342  },
3343/* strb.l $rd6,[$rn6] */
3344  {
3345    { 0, 0, 0, 0 },
3346    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3347    & ifmt_strbdl0_l, { 0x1c }
3348  },
3349/* strh.l $rd6,[$rn6,$direction$rm6] */
3350  {
3351    { 0, 0, 0, 0 },
3352    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3353    & ifmt_strhx_l, { 0x39 }
3354  },
3355/* strh.l $rd6,[$rn6],$direction$rm6 */
3356  {
3357    { 0, 0, 0, 0 },
3358    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3359    & ifmt_strhp_l, { 0x3d }
3360  },
3361/* strh.l $rd6,[$rn6,$dpmi$disp11] */
3362  {
3363    { 0, 0, 0, 0 },
3364    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3365    & ifmt_strhd_l, { 0x3c }
3366  },
3367/* strh.l $rd6,[$rn6],$dpmi$disp11 */
3368  {
3369    { 0, 0, 0, 0 },
3370    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3371    & ifmt_strhdpm_l, { 0x200003c }
3372  },
3373/* strh $rd,[$rn] */
3374  {
3375    { 0, 0, 0, 0 },
3376    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3377    & ifmt_strhds0, { 0x34 }
3378  },
3379/* strh $rd6,[$rn6] */
3380  {
3381    { 0, 0, 0, 0 },
3382    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3383    & ifmt_strhdl0, { 0x3c }
3384  },
3385/* strh.l $rd6,[$rn6] */
3386  {
3387    { 0, 0, 0, 0 },
3388    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3389    & ifmt_strhdl0_l, { 0x3c }
3390  },
3391/* str.l $rd6,[$rn6,$direction$rm6] */
3392  {
3393    { 0, 0, 0, 0 },
3394    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3395    & ifmt_strx_l, { 0x59 }
3396  },
3397/* str.l $rd6,[$rn6],$direction$rm6 */
3398  {
3399    { 0, 0, 0, 0 },
3400    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3401    & ifmt_strp_l, { 0x5d }
3402  },
3403/* str.l $rd6,[$rn6,$dpmi$disp11] */
3404  {
3405    { 0, 0, 0, 0 },
3406    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3407    & ifmt_strd_l, { 0x5c }
3408  },
3409/* str.l $rd6,[$rn6],$dpmi$disp11 */
3410  {
3411    { 0, 0, 0, 0 },
3412    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3413    & ifmt_strdpm_l, { 0x200005c }
3414  },
3415/* str $rd,[$rn] */
3416  {
3417    { 0, 0, 0, 0 },
3418    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3419    & ifmt_strds0, { 0x54 }
3420  },
3421/* str $rd6,[$rn6] */
3422  {
3423    { 0, 0, 0, 0 },
3424    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3425    & ifmt_strdl0, { 0x5c }
3426  },
3427/* str.l $rd6,[$rn6] */
3428  {
3429    { 0, 0, 0, 0 },
3430    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3431    & ifmt_strdl0_l, { 0x5c }
3432  },
3433/* strd.l $rd6,[$rn6,$direction$rm6] */
3434  {
3435    { 0, 0, 0, 0 },
3436    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3437    & ifmt_strdx_l, { 0x79 }
3438  },
3439/* strd.l $rd6,[$rn6],$direction$rm6 */
3440  {
3441    { 0, 0, 0, 0 },
3442    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3443    & ifmt_strdp_l, { 0x7d }
3444  },
3445/* strd.l $rd6,[$rn6,$dpmi$disp11] */
3446  {
3447    { 0, 0, 0, 0 },
3448    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3449    & ifmt_strdd_l, { 0x7c }
3450  },
3451/* strd.l $rd6,[$rn6],$dpmi$disp11 */
3452  {
3453    { 0, 0, 0, 0 },
3454    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3455    & ifmt_strddpm_l, { 0x200007c }
3456  },
3457/* strd $rd,[$rn] */
3458  {
3459    { 0, 0, 0, 0 },
3460    { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3461    & ifmt_strdds0, { 0x74 }
3462  },
3463/* strd $rd6,[$rn6] */
3464  {
3465    { 0, 0, 0, 0 },
3466    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3467    & ifmt_strddl0, { 0x7c }
3468  },
3469/* strd.l $rd6,[$rn6] */
3470  {
3471    { 0, 0, 0, 0 },
3472    { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3473    & ifmt_strddl0_l, { 0x7c }
3474  },
3475/* moveq.l $rd6,$rn6 */
3476  {
3477    { 0, 0, 0, 0 },
3478    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3479    & ifmt_cmov_lEQ, { 0x2000f }
3480  },
3481/* movne.l $rd6,$rn6 */
3482  {
3483    { 0, 0, 0, 0 },
3484    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3485    & ifmt_cmov_lNE, { 0x2001f }
3486  },
3487/* movgtu.l $rd6,$rn6 */
3488  {
3489    { 0, 0, 0, 0 },
3490    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3491    & ifmt_cmov_lGTU, { 0x2002f }
3492  },
3493/* movgteu.l $rd6,$rn6 */
3494  {
3495    { 0, 0, 0, 0 },
3496    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3497    & ifmt_cmov_lGTEU, { 0x2003f }
3498  },
3499/* movlteu.l $rd6,$rn6 */
3500  {
3501    { 0, 0, 0, 0 },
3502    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3503    & ifmt_cmov_lLTEU, { 0x2004f }
3504  },
3505/* movltu.l $rd6,$rn6 */
3506  {
3507    { 0, 0, 0, 0 },
3508    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3509    & ifmt_cmov_lLTU, { 0x2005f }
3510  },
3511/* movgt.l $rd6,$rn6 */
3512  {
3513    { 0, 0, 0, 0 },
3514    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3515    & ifmt_cmov_lGT, { 0x2006f }
3516  },
3517/* movgte.l $rd6,$rn6 */
3518  {
3519    { 0, 0, 0, 0 },
3520    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3521    & ifmt_cmov_lGTE, { 0x2007f }
3522  },
3523/* movlt.l $rd6,$rn6 */
3524  {
3525    { 0, 0, 0, 0 },
3526    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3527    & ifmt_cmov_lLT, { 0x2008f }
3528  },
3529/* movlte.l $rd6,$rn6 */
3530  {
3531    { 0, 0, 0, 0 },
3532    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3533    & ifmt_cmov_lLTE, { 0x2009f }
3534  },
3535/* mov.l $rd6,$rn6 */
3536  {
3537    { 0, 0, 0, 0 },
3538    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3539    & ifmt_cmov_lB, { 0x200ef }
3540  },
3541/* movbeq.l $rd6,$rn6 */
3542  {
3543    { 0, 0, 0, 0 },
3544    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3545    & ifmt_cmov_lBEQ, { 0x200af }
3546  },
3547/* movbne.l $rd6,$rn6 */
3548  {
3549    { 0, 0, 0, 0 },
3550    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3551    & ifmt_cmov_lBNE, { 0x200bf }
3552  },
3553/* movblt.l $rd6,$rn6 */
3554  {
3555    { 0, 0, 0, 0 },
3556    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3557    & ifmt_cmov_lBLT, { 0x200cf }
3558  },
3559/* movblte.l $rd6,$rn6 */
3560  {
3561    { 0, 0, 0, 0 },
3562    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3563    & ifmt_cmov_lBLTE, { 0x200df }
3564  },
3565/* movts.l $sn6,$rd6 */
3566  {
3567    { 0, 0, 0, 0 },
3568    { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
3569    & ifmt_movts_l6, { 0x2010f }
3570  },
3571/* movts.l $sndma,$rd6 */
3572  {
3573    { 0, 0, 0, 0 },
3574    { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
3575    & ifmt_movts_ldma, { 0x12010f }
3576  },
3577/* movts.l $snmem,$rd6 */
3578  {
3579    { 0, 0, 0, 0 },
3580    { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
3581    & ifmt_movts_lmem, { 0x22010f }
3582  },
3583/* movts.l $snmesh,$rd6 */
3584  {
3585    { 0, 0, 0, 0 },
3586    { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
3587    & ifmt_movts_lmesh, { 0x32010f }
3588  },
3589/* movfs.l $rd6,$sn6 */
3590  {
3591    { 0, 0, 0, 0 },
3592    { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
3593    & ifmt_movfs_l6, { 0x2011f }
3594  },
3595/* movfs.l $rd6,$sndma */
3596  {
3597    { 0, 0, 0, 0 },
3598    { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
3599    & ifmt_movfs_ldma, { 0x12011f }
3600  },
3601/* movfs.l $rd6,$snmem */
3602  {
3603    { 0, 0, 0, 0 },
3604    { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
3605    & ifmt_movfs_lmem, { 0x22011f }
3606  },
3607/* movfs.l $rd6,$snmesh */
3608  {
3609    { 0, 0, 0, 0 },
3610    { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
3611    & ifmt_movfs_lmesh, { 0x32011f }
3612  },
3613/* add.l $rd6,$rn6,$rm6 */
3614  {
3615    { 0, 0, 0, 0 },
3616    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3617    & ifmt_add_l, { 0xa001f }
3618  },
3619/* sub.l $rd6,$rn6,$rm6 */
3620  {
3621    { 0, 0, 0, 0 },
3622    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3623    & ifmt_sub_l, { 0xa003f }
3624  },
3625/* and.l $rd6,$rn6,$rm6 */
3626  {
3627    { 0, 0, 0, 0 },
3628    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3629    & ifmt_and_l, { 0xa005f }
3630  },
3631/* orr.l $rd6,$rn6,$rm6 */
3632  {
3633    { 0, 0, 0, 0 },
3634    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3635    & ifmt_orr_l, { 0xa007f }
3636  },
3637/* eor.l $rd6,$rn6,$rm6 */
3638  {
3639    { 0, 0, 0, 0 },
3640    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3641    & ifmt_eor_l, { 0xa000f }
3642  },
3643/* add $rd,$rn,$simm3 */
3644  {
3645    { 0, 0, 0, 0 },
3646    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
3647    & ifmt_addir, { 0x13 }
3648  },
3649/* add $rd6,$rn6,$simm11 */
3650  {
3651    { 0, 0, 0, 0 },
3652    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3653    & ifmt_addi32r, { 0x1b }
3654  },
3655/* add $rd6,$rn6,$simm11 */
3656  {
3657    { 0, 0, 0, 0 },
3658    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3659    & ifmt_addi32m, { 0x1b }
3660  },
3661/* sub $rd,$rn,$simm3 */
3662  {
3663    { 0, 0, 0, 0 },
3664    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
3665    & ifmt_subir, { 0x33 }
3666  },
3667/* sub $rd6,$rn6,$simm11 */
3668  {
3669    { 0, 0, 0, 0 },
3670    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3671    & ifmt_subi32r, { 0x3b }
3672  },
3673/* sub $rd6,$rn6,$simm11 */
3674  {
3675    { 0, 0, 0, 0 },
3676    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3677    & ifmt_subi32m, { 0x3b }
3678  },
3679/* asr.l $rd6,$rn6,$rm6 */
3680  {
3681    { 0, 0, 0, 0 },
3682    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3683    & ifmt_asr_l, { 0xa006f }
3684  },
3685/* lsr.l $rd6,$rn6,$rm6 */
3686  {
3687    { 0, 0, 0, 0 },
3688    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3689    & ifmt_lsr_l, { 0xa004f }
3690  },
3691/* lsl.l $rd6,$rn6,$rm6 */
3692  {
3693    { 0, 0, 0, 0 },
3694    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3695    & ifmt_lsl_l, { 0xa002f }
3696  },
3697/* lsr.l $rd6,$rn6,$shift */
3698  {
3699    { 0, 0, 0, 0 },
3700    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3701    & ifmt_lsri32_l, { 0x6000f }
3702  },
3703/* lsl.l $rd6,$rn6,$shift */
3704  {
3705    { 0, 0, 0, 0 },
3706    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3707    & ifmt_lsli32_l, { 0x6001f }
3708  },
3709/* asr.l $rd6,$rn6,$shift */
3710  {
3711    { 0, 0, 0, 0 },
3712    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3713    & ifmt_asri32_l, { 0xe000f }
3714  },
3715/* bitr.l $rd6,$rn6 */
3716  {
3717    { 0, 0, 0, 0 },
3718    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3719    & ifmt_bitrl, { 0xe001f }
3720  },
3721/* fext.l $rd6,$rn6,$rm6 */
3722  {
3723    { 0, 0, 0, 0 },
3724    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3725    & ifmt_fext_l, { 0x1a000f }
3726  },
3727/* fdep.l $rd6,$rn6,$rm6 */
3728  {
3729    { 0, 0, 0, 0 },
3730    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3731    & ifmt_fdep_l, { 0x1a001f }
3732  },
3733/* lfsr.l $rd6,$rn6,$rm6 */
3734  {
3735    { 0, 0, 0, 0 },
3736    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3737    & ifmt_lfsr_l, { 0x1a002f }
3738  },
3739/* mov $rd,$imm8 */
3740  {
3741    { 0, 0, 0, 0 },
3742    { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
3743    & ifmt_mov8r, { 0x3 }
3744  },
3745/* mov $rd6,$imm16 */
3746  {
3747    { 0, 0, 0, 0 },
3748    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
3749    & ifmt_mov16r, { 0x2000b }
3750  },
3751/* movt.l $rd6,$imm16 */
3752  {
3753    { 0, 0, 0, 0 },
3754    { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
3755    & ifmt_movtl, { 0x1002000b }
3756  },
3757/* iadd $rd,$rn,$rm */
3758  {
3759    { 0, 0, 0, 0 },
3760    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3761    & ifmt_i_addf16, { 0x7 }
3762  },
3763/* fadd.l $rd6,$rn6,$rm6 */
3764  {
3765    { 0, 0, 0, 0 },
3766    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3767    & ifmt_f_addf32_l, { 0x7000f }
3768  },
3769/* iadd $rd6,$rn6,$rm6 */
3770  {
3771    { 0, 0, 0, 0 },
3772    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3773    & ifmt_i_addf32, { 0x7000f }
3774  },
3775/* iadd.l $rd6,$rn6,$rm6 */
3776  {
3777    { 0, 0, 0, 0 },
3778    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3779    & ifmt_i_addf32_l, { 0x7000f }
3780  },
3781/* isub $rd,$rn,$rm */
3782  {
3783    { 0, 0, 0, 0 },
3784    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3785    & ifmt_i_subf16, { 0x17 }
3786  },
3787/* fsub.l $rd6,$rn6,$rm6 */
3788  {
3789    { 0, 0, 0, 0 },
3790    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3791    & ifmt_f_subf32_l, { 0x7001f }
3792  },
3793/* isub $rd6,$rn6,$rm6 */
3794  {
3795    { 0, 0, 0, 0 },
3796    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3797    & ifmt_i_subf32, { 0x7001f }
3798  },
3799/* isub.l $rd6,$rn6,$rm6 */
3800  {
3801    { 0, 0, 0, 0 },
3802    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3803    & ifmt_i_subf32_l, { 0x7001f }
3804  },
3805/* imul $rd,$rn,$rm */
3806  {
3807    { 0, 0, 0, 0 },
3808    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3809    & ifmt_i_mulf16, { 0x27 }
3810  },
3811/* fmul.l $rd6,$rn6,$rm6 */
3812  {
3813    { 0, 0, 0, 0 },
3814    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3815    & ifmt_f_mulf32_l, { 0x7002f }
3816  },
3817/* imul $rd6,$rn6,$rm6 */
3818  {
3819    { 0, 0, 0, 0 },
3820    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3821    & ifmt_i_mulf32, { 0x7002f }
3822  },
3823/* imul.l $rd6,$rn6,$rm6 */
3824  {
3825    { 0, 0, 0, 0 },
3826    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3827    & ifmt_i_mulf32_l, { 0x7002f }
3828  },
3829/* imadd $rd,$rn,$rm */
3830  {
3831    { 0, 0, 0, 0 },
3832    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3833    & ifmt_i_maddf16, { 0x37 }
3834  },
3835/* fmadd.l $rd6,$rn6,$rm6 */
3836  {
3837    { 0, 0, 0, 0 },
3838    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3839    & ifmt_f_maddf32_l, { 0x7003f }
3840  },
3841/* imadd $rd6,$rn6,$rm6 */
3842  {
3843    { 0, 0, 0, 0 },
3844    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3845    & ifmt_i_maddf32, { 0x7003f }
3846  },
3847/* imadd.l $rd6,$rn6,$rm6 */
3848  {
3849    { 0, 0, 0, 0 },
3850    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3851    & ifmt_i_maddf32_l, { 0x7003f }
3852  },
3853/* imsub $rd,$rn,$rm */
3854  {
3855    { 0, 0, 0, 0 },
3856    { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3857    & ifmt_i_msubf16, { 0x47 }
3858  },
3859/* fmsub.l $rd6,$rn6,$rm6 */
3860  {
3861    { 0, 0, 0, 0 },
3862    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3863    & ifmt_f_msubf32_l, { 0x7004f }
3864  },
3865/* imsub $rd6,$rn6,$rm6 */
3866  {
3867    { 0, 0, 0, 0 },
3868    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3869    & ifmt_i_msubf32, { 0x7004f }
3870  },
3871/* imsub.l $rd6,$rn6,$rm6 */
3872  {
3873    { 0, 0, 0, 0 },
3874    { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3875    & ifmt_i_msubf32_l, { 0x7004f }
3876  },
3877/* fabs.l $rd6,$rn6 */
3878  {
3879    { 0, 0, 0, 0 },
3880    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3881    & ifmt_f_absf32_l, { 0x7007f }
3882  },
3883/* float.l $rd6,$rn6 */
3884  {
3885    { 0, 0, 0, 0 },
3886    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3887    & ifmt_f_loatf32_l, { 0x7005f }
3888  },
3889/* fix.l $rd6,$rn6 */
3890  {
3891    { 0, 0, 0, 0 },
3892    { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3893    & ifmt_f_ixf32_l, { 0x7006f }
3894  },
3895/* frecip.l $frd6,$frn6 */
3896  {
3897    { 0, 0, 0, 0 },
3898    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
3899    & ifmt_f_recipf32_l, { 0x17000f }
3900  },
3901/* fsqrt.l $frd6,$frn6 */
3902  {
3903    { 0, 0, 0, 0 },
3904    { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
3905    & ifmt_f_sqrtf32_l, { 0x17001f }
3906  },
3907};
3908
3909#undef A
3910#undef OPERAND
3911#undef MNEM
3912#undef OP
3913
3914#ifndef CGEN_ASM_HASH_P
3915#define CGEN_ASM_HASH_P(insn) 1
3916#endif
3917
3918#ifndef CGEN_DIS_HASH_P
3919#define CGEN_DIS_HASH_P(insn) 1
3920#endif
3921
3922/* Return non-zero if INSN is to be added to the hash table.
3923   Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file.  */
3924
3925static int
3926asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
3927{
3928  return CGEN_ASM_HASH_P (insn);
3929}
3930
3931static int
3932dis_hash_insn_p (const CGEN_INSN *insn)
3933{
3934  /* If building the hash table and the NO-DIS attribute is present,
3935     ignore.  */
3936  if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
3937    return 0;
3938  return CGEN_DIS_HASH_P (insn);
3939}
3940
3941#ifndef CGEN_ASM_HASH
3942#define CGEN_ASM_HASH_SIZE 127
3943#ifdef CGEN_MNEMONIC_OPERANDS
3944#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
3945#else
3946#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
3947#endif
3948#endif
3949
3950/* It doesn't make much sense to provide a default here,
3951   but while this is under development we do.
3952   BUFFER is a pointer to the bytes of the insn, target order.
3953   VALUE is the first base_insn_bitsize bits as an int in host order.  */
3954
3955#ifndef CGEN_DIS_HASH
3956#define CGEN_DIS_HASH_SIZE 256
3957#define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
3958#endif
3959
3960/* The result is the hash value of the insn.
3961   Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file.  */
3962
3963static unsigned int
3964asm_hash_insn (const char *mnem)
3965{
3966  return CGEN_ASM_HASH (mnem);
3967}
3968
3969/* BUF is a pointer to the bytes of the insn, target order.
3970   VALUE is the first base_insn_bitsize bits as an int in host order.  */
3971
3972static unsigned int
3973dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
3974		     CGEN_INSN_INT value ATTRIBUTE_UNUSED)
3975{
3976  return CGEN_DIS_HASH (buf, value);
3977}
3978
3979/* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
3980
3981static void
3982set_fields_bitsize (CGEN_FIELDS *fields, int size)
3983{
3984  CGEN_FIELDS_BITSIZE (fields) = size;
3985}
3986
3987/* Function to call before using the operand instance table.
3988   This plugs the opcode entries and macro instructions into the cpu table.  */
3989
3990void
3991epiphany_cgen_init_opcode_table (CGEN_CPU_DESC cd)
3992{
3993  int i;
3994  int num_macros = (sizeof (epiphany_cgen_macro_insn_table) /
3995		    sizeof (epiphany_cgen_macro_insn_table[0]));
3996  const CGEN_IBASE *ib = & epiphany_cgen_macro_insn_table[0];
3997  const CGEN_OPCODE *oc = & epiphany_cgen_macro_insn_opcode_table[0];
3998  CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
3999
4000  /* This test has been added to avoid a warning generated
4001     if memset is called with a third argument of value zero.  */
4002  if (num_macros >= 1)
4003    memset (insns, 0, num_macros * sizeof (CGEN_INSN));
4004  for (i = 0; i < num_macros; ++i)
4005    {
4006      insns[i].base = &ib[i];
4007      insns[i].opcode = &oc[i];
4008      epiphany_cgen_build_insn_regex (& insns[i]);
4009    }
4010  cd->macro_insn_table.init_entries = insns;
4011  cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
4012  cd->macro_insn_table.num_init_entries = num_macros;
4013
4014  oc = & epiphany_cgen_insn_opcode_table[0];
4015  insns = (CGEN_INSN *) cd->insn_table.init_entries;
4016  for (i = 0; i < MAX_INSNS; ++i)
4017    {
4018      insns[i].opcode = &oc[i];
4019      epiphany_cgen_build_insn_regex (& insns[i]);
4020    }
4021
4022  cd->sizeof_fields = sizeof (CGEN_FIELDS);
4023  cd->set_fields_bitsize = set_fields_bitsize;
4024
4025  cd->asm_hash_p = asm_hash_insn_p;
4026  cd->asm_hash = asm_hash_insn;
4027  cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
4028
4029  cd->dis_hash_p = dis_hash_insn_p;
4030  cd->dis_hash = dis_hash_insn;
4031  cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
4032}
4033