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