Change breakpoint::filter to be a unique_xmalloc_ptr
[external/binutils.git] / opcodes / epiphany-opc.c
1 /* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
2 /* Instruction opcode table for epiphany.
3
4 THIS FILE IS MACHINE GENERATED WITH CGEN.
5
6 Copyright (C) 1996-2019 Free Software Foundation, Inc.
7
8 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9
10    This file is free software; you can redistribute it and/or modify
11    it under the terms of the GNU General Public License as published by
12    the Free Software Foundation; either version 3, or (at your option)
13    any later version.
14
15    It is distributed in the hope that it will be useful, but WITHOUT
16    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
18    License for more details.
19
20    You should have received a copy of the GNU General Public License along
21    with this program; if not, write to the Free Software Foundation, Inc.,
22    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
23
24 */
25
26 #include "sysdep.h"
27 #include "ansidecl.h"
28 #include "bfd.h"
29 #include "symcat.h"
30 #include "epiphany-desc.h"
31 #include "epiphany-opc.h"
32 #include "libiberty.h"
33
34 /* -- opc.c */
35
36
37 \f
38 /* -- asm.c */
39 /* The hash functions are recorded here to help keep assembler code out of
40    the disassembler and vice versa.  */
41
42 static int asm_hash_insn_p        (const CGEN_INSN *);
43 static unsigned int asm_hash_insn (const char *);
44 static int dis_hash_insn_p        (const CGEN_INSN *);
45 static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
46
47 /* Instruction formats.  */
48
49 #define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
50 static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
51   0, 0, 0x0, { { 0 } }
52 };
53
54 static const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
55   16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
56 };
57
58 static const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
59   32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
60 };
61
62 static const CGEN_IFMT ifmt_jr16 ATTRIBUTE_UNUSED = {
63   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 } }
64 };
65
66 static const CGEN_IFMT ifmt_rts ATTRIBUTE_UNUSED = {
67   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 } }
68 };
69
70 static const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
71   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 } }
72 };
73
74 static 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
78 static 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
82 static 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
86 static 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
90 static 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
94 static 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
98 static 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
102 static 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
106 static 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
110 static 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
114 static 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
118 static 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
122 static 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
126 static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
127   32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
128 };
129
130 static 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
134 static 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
138 static 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
142 static 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
146 static 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
150 static 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
154 static 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
158 static 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
162 static 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
166 static 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
170 static 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
174 static 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
178 static 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
182 static 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
186 static 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
190 static 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
194 static 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
198 static 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
202 static 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
215 static 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]
1443 static const CGEN_IFMT ifmt_beq16r ATTRIBUTE_UNUSED = {
1444   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1445 };
1446
1447 static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
1448   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1449 };
1450
1451 static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
1452   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1453 };
1454
1455 static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
1456   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1457 };
1458
1459 static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
1460   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1461 };
1462
1463 static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
1464   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1465 };
1466
1467 static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
1468   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1469 };
1470
1471 static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
1472   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1473 };
1474
1475 static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
1476   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1477 };
1478
1479 static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
1480   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1481 };
1482
1483 static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
1484   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1485 };
1486
1487 static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
1488   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1489 };
1490
1491 static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
1492   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1493 };
1494
1495 static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
1496   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1497 };
1498
1499 static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
1500   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1501 };
1502
1503 static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
1504   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1505 };
1506
1507 static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
1508   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1509 };
1510
1511 static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
1512   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1513 };
1514
1515 static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
1516   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1517 };
1518
1519 static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
1520   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1521 };
1522
1523 static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
1524   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1525 };
1526
1527 static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
1528   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1529 };
1530
1531 static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
1532   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1533 };
1534
1535 static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
1536   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1537 };
1538
1539 static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
1540   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1541 };
1542
1543 static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
1544   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1545 };
1546
1547 static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
1548   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1549 };
1550
1551 static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
1552   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1553 };
1554
1555 static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
1556   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1557 };
1558
1559 static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
1560   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1561 };
1562
1563 static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
1564   16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1565 };
1566
1567 static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
1568   32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1569 };
1570
1571 static 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
1575 static 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
1579 static 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
1583 static 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
1587 static 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
1591 static 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
1595 static 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
1599 static 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
1603 static 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
1607 static 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
1611 static 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
1615 static 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
1619 static 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
1623 static 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
1627 static 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
1631 static 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
1635 static 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
1639 static 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
1643 static 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
1647 static 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
1651 static 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
1655 static 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
1659 static 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
1663 static 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
1667 static 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
1671 static 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
1675 static 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
1679 static 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
1683 static 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
1687 static 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
1691 static 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
1695 static 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
1699 static 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
1703 static 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
1707 static 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
1711 static 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
1715 static 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
1719 static 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
1723 static 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
1727 static 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
1731 static 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
1735 static 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
1739 static 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
1743 static 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
1747 static 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
1751 static 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
1755 static 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
1759 static 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
1763 static 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
1767 static 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
1771 static 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
1775 static 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
1779 static 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
1783 static 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
1787 static 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
1791 static 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
1795 static 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
1799 static 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
1803 static 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
1807 static 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
1811 static 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
1815 static 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
1819 static 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
1823 static 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
1827 static 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
1831 static 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
1835 static 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
1839 static 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
1843 static 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
1847 static 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
1851 static 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
1855 static 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
1859 static 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
1863 static 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
1867 static 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
1871 static 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
1875 static 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
1879 static 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
1883 static 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
1887 static 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
1891 static 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
1895 static 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
1899 static 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
1903 static 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
1907 static 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
1911 static 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
1915 static 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
1919 static 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
1923 static 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
1927 static 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
1931 static 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
1935 static 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
1939 static 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
1943 static 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
1947 static 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
1951 static 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
1955 static 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
1959 static 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
1963 static 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
1967 static 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
1971 static 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
1975 static 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
1979 static 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
1983 static 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
1987 static 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
1991 static 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
1995 static 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
1999 static 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
2003 static 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
2007 static 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
2011 static 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
2015 static 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
2019 static 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
2023 static 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
2027 static 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
2031 static 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
2035 static 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
2039 static 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
2043 static 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
2047 static 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
2051 static 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
2055 static 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
2059 static 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
2063 static 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
2067 static 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
2071 static 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
2075 static 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
2079 static 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
2083 static 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
2087 static 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
2091 static 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
2106 static 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
2927 static 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
3925 static int
3926 asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
3927 {
3928   return CGEN_ASM_HASH_P (insn);
3929 }
3930
3931 static int
3932 dis_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
3963 static unsigned int
3964 asm_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
3972 static unsigned int
3973 dis_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
3981 static void
3982 set_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
3990 void
3991 epiphany_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 }