1/* Instruction opcode table for epiphany.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright (C) 1996-2017 Free Software Foundation, Inc.
6
7This 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
37/* -- asm.c */
38/* The hash functions are recorded here to help keep assembler code out of
39   the disassembler and vice versa.  */
40
41static int asm_hash_insn_p        (const CGEN_INSN *);
42static unsigned int asm_hash_insn (const char *);
43static int dis_hash_insn_p        (const CGEN_INSN *);
44static 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]
49static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
50  0, 0, 0x0, { { 0 } }
51};
52
53static const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
54  16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
55};
56
57static const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
58  32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
59};
60
61static 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
65static 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
69static 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
73static 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
77static 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
81static 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
85static 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
89static 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
93static 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
97static 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
101static 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
105static 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
109static 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
113static 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
117static 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
121static 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
125static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
126  32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
127};
128
129static 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
133static 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
137static 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
141static 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
145static 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
149static 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
153static 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
157static 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
161static 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
165static 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
169static 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
173static 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
177static 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
181static 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
185static 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
189static 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
193static 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
197static 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
201static 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
214static 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]
1442static const CGEN_IFMT ifmt_beq16r ATTRIBUTE_UNUSED = {
1443  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1444};
1445
1446static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
1447  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1448};
1449
1450static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
1451  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1452};
1453
1454static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
1455  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1456};
1457
1458static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
1459  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1460};
1461
1462static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
1463  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1464};
1465
1466static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
1467  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1468};
1469
1470static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
1471  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1472};
1473
1474static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
1475  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1476};
1477
1478static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
1479  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1480};
1481
1482static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
1483  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1484};
1485
1486static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
1487  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1488};
1489
1490static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
1491  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1492};
1493
1494static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
1495  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1496};
1497
1498static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
1499  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1500};
1501
1502static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
1503  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1504};
1505
1506static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
1507  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1508};
1509
1510static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
1511  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1512};
1513
1514static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
1515  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1516};
1517
1518static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
1519  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1520};
1521
1522static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
1523  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1524};
1525
1526static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
1527  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1528};
1529
1530static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
1531  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1532};
1533
1534static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
1535  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1536};
1537
1538static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
1539  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1540};
1541
1542static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
1543  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1544};
1545
1546static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
1547  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1548};
1549
1550static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
1551  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1552};
1553
1554static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
1555  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1556};
1557
1558static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
1559  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1560};
1561
1562static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
1563  16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1564};
1565
1566static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
1567  32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1568};
1569
1570static 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
1574static 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
1578static 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
1582static 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
1586static 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
1590static 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
1594static 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
1598static 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
1602static 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
1606static 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
1610static 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
1614static 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
1618static 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
1622static 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
1626static 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
1630static 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
1634static 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
1638static 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
1642static 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
1646static 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
1650static 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
1654static 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
1658static 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
1662static 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
1666static 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
1670static 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
1674static 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
1678static 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
1682static 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
1686static 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
1690static 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
1694static 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
1698static 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
1702static 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
1706static 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
1710static 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
1714static 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
1718static 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
1722static 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
1726static 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
1730static 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
1734static 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
1738static 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
1742static 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
1746static 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
1750static 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
1754static 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
1758static 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
1762static 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
1766static 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
1770static 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
1774static 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
1778static 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
1782static 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
1786static 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
1790static 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
1794static 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
1798static 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
1802static 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
1806static 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
1810static 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
1814static 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
1818static 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
1822static 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
1826static 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
1830static 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
1834static 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
1838static 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
1842static 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
1846static 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
1850static 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
1854static 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
1858static 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
1862static 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
1866static 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
1870static 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
1874static 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
1878static 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
1882static 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
1886static 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
1890static 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
1894static 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
1898static 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
1902static 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
1906static 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
1910static 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
1914static 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
1918static 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
1922static 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
1926static 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
1930static 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
1934static 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
1938static 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
1942static 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
1946static 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
1950static 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
1954static 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
1958static 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
1962static 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
1966static 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
1970static 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
1974static 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
1978static 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
1982static 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
1986static 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
1990static 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
1994static 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
1998static 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
2002static 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
2006static 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
2010static 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
2014static 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
2018static 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
2022static 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
2026static 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
2030static 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
2034static 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
2038static 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
2042static 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
2046static 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
2050static 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
2054static 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
2058static 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
2062static 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
2066static 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
2070static 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
2074static 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
2078static 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
2082static 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
2086static 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
2090static 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
2105static 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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2271  },
2272/* ldrb.l $rd6,[$rn6],$direction$rm6 */
2273  {
2274    -1, "ldrbp", "ldrb.l", 32,
2275    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2276  },
2277/* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
2278  {
2279    -1, "ldrbd", "ldrb.l", 32,
2280    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2281  },
2282/* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
2283  {
2284    -1, "ldrbdpm", "ldrb.l", 32,
2285    { 0|A(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2296  },
2297/* ldrb.l $rd6,[$rn6] */
2298  {
2299    -1, "ldrbdl0.l", "ldrb.l", 32,
2300    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2301  },
2302/* ldrh.l $rd6,[$rn6,$direction$rm6] */
2303  {
2304    -1, "ldrhx", "ldrh.l", 32,
2305    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2306  },
2307/* ldrh.l $rd6,[$rn6],$direction$rm6 */
2308  {
2309    -1, "ldrhp", "ldrh.l", 32,
2310    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2311  },
2312/* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
2313  {
2314    -1, "ldrhd", "ldrh.l", 32,
2315    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2316  },
2317/* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
2318  {
2319    -1, "ldrhdpm", "ldrh.l", 32,
2320    { 0|A(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2331  },
2332/* ldrh.l $rd6,[$rn6] */
2333  {
2334    -1, "ldrhdl0.l", "ldrh.l", 32,
2335    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2336  },
2337/* ldr.l $rd6,[$rn6,$direction$rm6] */
2338  {
2339    -1, "ldrx", "ldr.l", 32,
2340    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2341  },
2342/* ldr.l $rd6,[$rn6],$direction$rm6 */
2343  {
2344    -1, "ldrp", "ldr.l", 32,
2345    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2346  },
2347/* ldr.l $rd6,[$rn6,$dpmi$disp11] */
2348  {
2349    -1, "ldrd", "ldr.l", 32,
2350    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2351  },
2352/* ldr.l $rd6,[$rn6],$dpmi$disp11 */
2353  {
2354    -1, "ldrdpm", "ldr.l", 32,
2355    { 0|A(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2366  },
2367/* ldr.l $rd6,[$rn6] */
2368  {
2369    -1, "ldrdl0.l", "ldr.l", 32,
2370    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2371  },
2372/* ldrd.l $rd6,[$rn6,$direction$rm6] */
2373  {
2374    -1, "ldrdx", "ldrd.l", 32,
2375    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2376  },
2377/* ldrd.l $rd6,[$rn6],$direction$rm6 */
2378  {
2379    -1, "ldrdp", "ldrd.l", 32,
2380    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2381  },
2382/* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
2383  {
2384    -1, "ldrdd", "ldrd.l", 32,
2385    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2386  },
2387/* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
2388  {
2389    -1, "ldrddpm", "ldrd.l", 32,
2390    { 0|A(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2401  },
2402/* ldrd.l $rd6,[$rn6] */
2403  {
2404    -1, "ldrddl0.l", "ldrd.l", 32,
2405    { 0|A(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2561  },
2562/* moveq.l $rd6,$rn6 */
2563  {
2564    -1, "cmov.lEQ", "moveq.l", 32,
2565    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2566  },
2567/* movne.l $rd6,$rn6 */
2568  {
2569    -1, "cmov.lNE", "movne.l", 32,
2570    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2571  },
2572/* movgtu.l $rd6,$rn6 */
2573  {
2574    -1, "cmov.lGTU", "movgtu.l", 32,
2575    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2576  },
2577/* movgteu.l $rd6,$rn6 */
2578  {
2579    -1, "cmov.lGTEU", "movgteu.l", 32,
2580    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2581  },
2582/* movlteu.l $rd6,$rn6 */
2583  {
2584    -1, "cmov.lLTEU", "movlteu.l", 32,
2585    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2586  },
2587/* movltu.l $rd6,$rn6 */
2588  {
2589    -1, "cmov.lLTU", "movltu.l", 32,
2590    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2591  },
2592/* movgt.l $rd6,$rn6 */
2593  {
2594    -1, "cmov.lGT", "movgt.l", 32,
2595    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2596  },
2597/* movgte.l $rd6,$rn6 */
2598  {
2599    -1, "cmov.lGTE", "movgte.l", 32,
2600    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2601  },
2602/* movlt.l $rd6,$rn6 */
2603  {
2604    -1, "cmov.lLT", "movlt.l", 32,
2605    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2606  },
2607/* movlte.l $rd6,$rn6 */
2608  {
2609    -1, "cmov.lLTE", "movlte.l", 32,
2610    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2611  },
2612/* mov.l $rd6,$rn6 */
2613  {
2614    -1, "cmov.lB", "mov.l", 32,
2615    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2616  },
2617/* movbeq.l $rd6,$rn6 */
2618  {
2619    -1, "cmov.lBEQ", "movbeq.l", 32,
2620    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2621  },
2622/* movbne.l $rd6,$rn6 */
2623  {
2624    -1, "cmov.lBNE", "movbne.l", 32,
2625    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2626  },
2627/* movblt.l $rd6,$rn6 */
2628  {
2629    -1, "cmov.lBLT", "movblt.l", 32,
2630    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2631  },
2632/* movblte.l $rd6,$rn6 */
2633  {
2634    -1, "cmov.lBLTE", "movblte.l", 32,
2635    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2636  },
2637/* movts.l $sn6,$rd6 */
2638  {
2639    -1, "movts.l6", "movts.l", 32,
2640    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2641  },
2642/* movts.l $sndma,$rd6 */
2643  {
2644    -1, "movts.ldma", "movts.l", 32,
2645    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2646  },
2647/* movts.l $snmem,$rd6 */
2648  {
2649    -1, "movts.lmem", "movts.l", 32,
2650    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2651  },
2652/* movts.l $snmesh,$rd6 */
2653  {
2654    -1, "movts.lmesh", "movts.l", 32,
2655    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2656  },
2657/* movfs.l $rd6,$sn6 */
2658  {
2659    -1, "movfs.l6", "movfs.l", 32,
2660    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2661  },
2662/* movfs.l $rd6,$sndma */
2663  {
2664    -1, "movfs.ldma", "movfs.l", 32,
2665    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2666  },
2667/* movfs.l $rd6,$snmem */
2668  {
2669    -1, "movfs.lmem", "movfs.l", 32,
2670    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2671  },
2672/* movfs.l $rd6,$snmesh */
2673  {
2674    -1, "movfs.lmesh", "movfs.l", 32,
2675    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2676  },
2677/* add.l $rd6,$rn6,$rm6 */
2678  {
2679    -1, "add.l", "add.l", 32,
2680    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2681  },
2682/* sub.l $rd6,$rn6,$rm6 */
2683  {
2684    -1, "sub.l", "sub.l", 32,
2685    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2686  },
2687/* and.l $rd6,$rn6,$rm6 */
2688  {
2689    -1, "and.l", "and.l", 32,
2690    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2691  },
2692/* orr.l $rd6,$rn6,$rm6 */
2693  {
2694    -1, "orr.l", "orr.l", 32,
2695    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2696  },
2697/* eor.l $rd6,$rn6,$rm6 */
2698  {
2699    -1, "eor.l", "eor.l", 32,
2700    { 0|A(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2736  },
2737/* lsr.l $rd6,$rn6,$rm6 */
2738  {
2739    -1, "lsr.l", "lsr.l", 32,
2740    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2741  },
2742/* lsl.l $rd6,$rn6,$rm6 */
2743  {
2744    -1, "lsl.l", "lsl.l", 32,
2745    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2746  },
2747/* lsr.l $rd6,$rn6,$shift */
2748  {
2749    -1, "lsri32.l", "lsr.l", 32,
2750    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2751  },
2752/* lsl.l $rd6,$rn6,$shift */
2753  {
2754    -1, "lsli32.l", "lsl.l", 32,
2755    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2756  },
2757/* asr.l $rd6,$rn6,$shift */
2758  {
2759    -1, "asri32.l", "asr.l", 32,
2760    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2761  },
2762/* bitr.l $rd6,$rn6 */
2763  {
2764    -1, "bitrl", "bitr.l", 32,
2765    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2766  },
2767/* fext.l $rd6,$rn6,$rm6 */
2768  {
2769    -1, "fext.l", "fext.l", 32,
2770    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2771  },
2772/* fdep.l $rd6,$rn6,$rm6 */
2773  {
2774    -1, "fdep.l", "fdep.l", 32,
2775    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2776  },
2777/* lfsr.l $rd6,$rn6,$rm6 */
2778  {
2779    -1, "lfsr.l", "lfsr.l", 32,
2780    { 0|A(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|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(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2901  },
2902/* float.l $rd6,$rn6 */
2903  {
2904    -1, "f_loatf32.l", "float.l", 32,
2905    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2906  },
2907/* fix.l $rd6,$rn6 */
2908  {
2909    -1, "f_ixf32.l", "fix.l", 32,
2910    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2911  },
2912/* frecip.l $frd6,$frn6 */
2913  {
2914    -1, "f_recipf32.l", "frecip.l", 32,
2915    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2916  },
2917/* fsqrt.l $frd6,$frn6 */
2918  {
2919    -1, "f_sqrtf32.l", "fsqrt.l", 32,
2920    { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2921  },
2922};
2923
2924/* The macro instruction opcode table.  */
2925
2926static 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
3924static int
3925asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
3926{
3927  return CGEN_ASM_HASH_P (insn);
3928}
3929
3930static int
3931dis_hash_insn_p (const CGEN_INSN *insn)
3932{
3933  /* If building the hash table and the NO-DIS attribute is present,
3934     ignore.  */
3935  if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
3936    return 0;
3937  return CGEN_DIS_HASH_P (insn);
3938}
3939
3940#ifndef CGEN_ASM_HASH
3941#define CGEN_ASM_HASH_SIZE 127
3942#ifdef CGEN_MNEMONIC_OPERANDS
3943#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
3944#else
3945#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
3946#endif
3947#endif
3948
3949/* It doesn't make much sense to provide a default here,
3950   but while this is under development we do.
3951   BUFFER is a pointer to the bytes of the insn, target order.
3952   VALUE is the first base_insn_bitsize bits as an int in host order.  */
3953
3954#ifndef CGEN_DIS_HASH
3955#define CGEN_DIS_HASH_SIZE 256
3956#define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
3957#endif
3958
3959/* The result is the hash value of the insn.
3960   Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file.  */
3961
3962static unsigned int
3963asm_hash_insn (const char *mnem)
3964{
3965  return CGEN_ASM_HASH (mnem);
3966}
3967
3968/* BUF is a pointer to the bytes of the insn, target order.
3969   VALUE is the first base_insn_bitsize bits as an int in host order.  */
3970
3971static unsigned int
3972dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
3973		     CGEN_INSN_INT value ATTRIBUTE_UNUSED)
3974{
3975  return CGEN_DIS_HASH (buf, value);
3976}
3977
3978/* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
3979
3980static void
3981set_fields_bitsize (CGEN_FIELDS *fields, int size)
3982{
3983  CGEN_FIELDS_BITSIZE (fields) = size;
3984}
3985
3986/* Function to call before using the operand instance table.
3987   This plugs the opcode entries and macro instructions into the cpu table.  */
3988
3989void
3990epiphany_cgen_init_opcode_table (CGEN_CPU_DESC cd)
3991{
3992  int i;
3993  int num_macros = (sizeof (epiphany_cgen_macro_insn_table) /
3994		    sizeof (epiphany_cgen_macro_insn_table[0]));
3995  const CGEN_IBASE *ib = & epiphany_cgen_macro_insn_table[0];
3996  const CGEN_OPCODE *oc = & epiphany_cgen_macro_insn_opcode_table[0];
3997  CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
3998
3999  /* This test has been added to avoid a warning generated
4000     if memset is called with a third argument of value zero.  */
4001  if (num_macros >= 1)
4002    memset (insns, 0, num_macros * sizeof (CGEN_INSN));
4003  for (i = 0; i < num_macros; ++i)
4004    {
4005      insns[i].base = &ib[i];
4006      insns[i].opcode = &oc[i];
4007      epiphany_cgen_build_insn_regex (& insns[i]);
4008    }
4009  cd->macro_insn_table.init_entries = insns;
4010  cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
4011  cd->macro_insn_table.num_init_entries = num_macros;
4012
4013  oc = & epiphany_cgen_insn_opcode_table[0];
4014  insns = (CGEN_INSN *) cd->insn_table.init_entries;
4015  for (i = 0; i < MAX_INSNS; ++i)
4016    {
4017      insns[i].opcode = &oc[i];
4018      epiphany_cgen_build_insn_regex (& insns[i]);
4019    }
4020
4021  cd->sizeof_fields = sizeof (CGEN_FIELDS);
4022  cd->set_fields_bitsize = set_fields_bitsize;
4023
4024  cd->asm_hash_p = asm_hash_insn_p;
4025  cd->asm_hash = asm_hash_insn;
4026  cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
4027
4028  cd->dis_hash_p = dis_hash_insn_p;
4029  cd->dis_hash = dis_hash_insn;
4030  cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
4031}
4032