]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/epiphany-opc.c
Sync dlang demangling tests from upstream libiberty testsuite.
[thirdparty/binutils-gdb.git] / opcodes / epiphany-opc.c
CommitLineData
cfb8c092
NC
1/* Instruction opcode table for epiphany.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
2571583a 5Copyright (C) 1996-2017 Free Software Foundation, Inc.
cfb8c092
NC
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\f
37/* -- asm.c */
38/* The hash functions are recorded here to help keep assembler code out of
39 the disassembler and vice versa. */
40
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,
02a79b89 2270 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2271 },
2272/* ldrb.l $rd6,[$rn6],$direction$rm6 */
2273 {
2274 -1, "ldrbp", "ldrb.l", 32,
02a79b89 2275 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2276 },
2277/* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
2278 {
2279 -1, "ldrbd", "ldrb.l", 32,
02a79b89 2280 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2281 },
2282/* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
2283 {
2284 -1, "ldrbdpm", "ldrb.l", 32,
02a79b89 2285 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2295 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2296 },
2297/* ldrb.l $rd6,[$rn6] */
2298 {
2299 -1, "ldrbdl0.l", "ldrb.l", 32,
02a79b89 2300 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2301 },
2302/* ldrh.l $rd6,[$rn6,$direction$rm6] */
2303 {
2304 -1, "ldrhx", "ldrh.l", 32,
02a79b89 2305 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2306 },
2307/* ldrh.l $rd6,[$rn6],$direction$rm6 */
2308 {
2309 -1, "ldrhp", "ldrh.l", 32,
02a79b89 2310 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2311 },
2312/* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
2313 {
2314 -1, "ldrhd", "ldrh.l", 32,
02a79b89 2315 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2316 },
2317/* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
2318 {
2319 -1, "ldrhdpm", "ldrh.l", 32,
02a79b89 2320 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2330 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2331 },
2332/* ldrh.l $rd6,[$rn6] */
2333 {
2334 -1, "ldrhdl0.l", "ldrh.l", 32,
02a79b89 2335 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2336 },
2337/* ldr.l $rd6,[$rn6,$direction$rm6] */
2338 {
2339 -1, "ldrx", "ldr.l", 32,
02a79b89 2340 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2341 },
2342/* ldr.l $rd6,[$rn6],$direction$rm6 */
2343 {
2344 -1, "ldrp", "ldr.l", 32,
02a79b89 2345 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2346 },
2347/* ldr.l $rd6,[$rn6,$dpmi$disp11] */
2348 {
2349 -1, "ldrd", "ldr.l", 32,
02a79b89 2350 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2351 },
2352/* ldr.l $rd6,[$rn6],$dpmi$disp11 */
2353 {
2354 -1, "ldrdpm", "ldr.l", 32,
02a79b89 2355 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2365 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2366 },
2367/* ldr.l $rd6,[$rn6] */
2368 {
2369 -1, "ldrdl0.l", "ldr.l", 32,
02a79b89 2370 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2371 },
2372/* ldrd.l $rd6,[$rn6,$direction$rm6] */
2373 {
2374 -1, "ldrdx", "ldrd.l", 32,
02a79b89 2375 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2376 },
2377/* ldrd.l $rd6,[$rn6],$direction$rm6 */
2378 {
2379 -1, "ldrdp", "ldrd.l", 32,
02a79b89 2380 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2381 },
2382/* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
2383 {
2384 -1, "ldrdd", "ldrd.l", 32,
02a79b89 2385 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2386 },
2387/* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
2388 {
2389 -1, "ldrddpm", "ldrd.l", 32,
02a79b89 2390 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2400 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2401 },
2402/* ldrd.l $rd6,[$rn6] */
2403 {
2404 -1, "ldrddl0.l", "ldrd.l", 32,
02a79b89 2405 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2406 },
2407/* testsetb.l $rd6,[$rn6,$direction$rm6] */
2408 {
2409 -1, "testsetbt.l", "testsetb.l", 32,
02a79b89 2410 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2411 },
2412/* testseth.l $rd6,[$rn6,$direction$rm6] */
2413 {
2414 -1, "testsetht.l", "testseth.l", 32,
02a79b89 2415 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2416 },
2417/* testset.l $rd6,[$rn6,$direction$rm6] */
2418 {
2419 -1, "testsett.l", "testset.l", 32,
02a79b89 2420 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2421 },
2422/* strb.l $rd6,[$rn6,$direction$rm6] */
2423 {
2424 -1, "strbx.l", "strb.l", 32,
02a79b89 2425 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2426 },
2427/* strb.l $rd6,[$rn6],$direction$rm6 */
2428 {
2429 -1, "strbp.l", "strb.l", 32,
02a79b89 2430 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2431 },
2432/* strb.l $rd6,[$rn6,$dpmi$disp11] */
2433 {
2434 -1, "strbd.l", "strb.l", 32,
02a79b89 2435 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2436 },
2437/* strb.l $rd6,[$rn6],$dpmi$disp11 */
2438 {
2439 -1, "strbdpm.l", "strb.l", 32,
02a79b89 2440 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2455 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2456 },
2457/* strh.l $rd6,[$rn6,$direction$rm6] */
2458 {
2459 -1, "strhx.l", "strh.l", 32,
02a79b89 2460 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2461 },
2462/* strh.l $rd6,[$rn6],$direction$rm6 */
2463 {
2464 -1, "strhp.l", "strh.l", 32,
02a79b89 2465 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2466 },
2467/* strh.l $rd6,[$rn6,$dpmi$disp11] */
2468 {
2469 -1, "strhd.l", "strh.l", 32,
02a79b89 2470 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2471 },
2472/* strh.l $rd6,[$rn6],$dpmi$disp11 */
2473 {
2474 -1, "strhdpm.l", "strh.l", 32,
02a79b89 2475 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2490 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2491 },
2492/* str.l $rd6,[$rn6,$direction$rm6] */
2493 {
2494 -1, "strx.l", "str.l", 32,
02a79b89 2495 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2496 },
2497/* str.l $rd6,[$rn6],$direction$rm6 */
2498 {
2499 -1, "strp.l", "str.l", 32,
02a79b89 2500 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2501 },
2502/* str.l $rd6,[$rn6,$dpmi$disp11] */
2503 {
2504 -1, "strd.l", "str.l", 32,
02a79b89 2505 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2506 },
2507/* str.l $rd6,[$rn6],$dpmi$disp11 */
2508 {
2509 -1, "strdpm.l", "str.l", 32,
02a79b89 2510 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2525 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2526 },
2527/* strd.l $rd6,[$rn6,$direction$rm6] */
2528 {
2529 -1, "strdx.l", "strd.l", 32,
02a79b89 2530 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2531 },
2532/* strd.l $rd6,[$rn6],$direction$rm6 */
2533 {
2534 -1, "strdp.l", "strd.l", 32,
02a79b89 2535 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2536 },
2537/* strd.l $rd6,[$rn6,$dpmi$disp11] */
2538 {
2539 -1, "strdd.l", "strd.l", 32,
02a79b89 2540 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2541 },
2542/* strd.l $rd6,[$rn6],$dpmi$disp11 */
2543 {
2544 -1, "strddpm.l", "strd.l", 32,
02a79b89 2545 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2560 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2561 },
2562/* moveq.l $rd6,$rn6 */
2563 {
2564 -1, "cmov.lEQ", "moveq.l", 32,
02a79b89 2565 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2566 },
2567/* movne.l $rd6,$rn6 */
2568 {
2569 -1, "cmov.lNE", "movne.l", 32,
02a79b89 2570 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2571 },
2572/* movgtu.l $rd6,$rn6 */
2573 {
2574 -1, "cmov.lGTU", "movgtu.l", 32,
02a79b89 2575 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2576 },
2577/* movgteu.l $rd6,$rn6 */
2578 {
2579 -1, "cmov.lGTEU", "movgteu.l", 32,
02a79b89 2580 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2581 },
2582/* movlteu.l $rd6,$rn6 */
2583 {
2584 -1, "cmov.lLTEU", "movlteu.l", 32,
02a79b89 2585 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2586 },
2587/* movltu.l $rd6,$rn6 */
2588 {
2589 -1, "cmov.lLTU", "movltu.l", 32,
02a79b89 2590 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2591 },
2592/* movgt.l $rd6,$rn6 */
2593 {
2594 -1, "cmov.lGT", "movgt.l", 32,
02a79b89 2595 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2596 },
2597/* movgte.l $rd6,$rn6 */
2598 {
2599 -1, "cmov.lGTE", "movgte.l", 32,
02a79b89 2600 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2601 },
2602/* movlt.l $rd6,$rn6 */
2603 {
2604 -1, "cmov.lLT", "movlt.l", 32,
02a79b89 2605 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2606 },
2607/* movlte.l $rd6,$rn6 */
2608 {
2609 -1, "cmov.lLTE", "movlte.l", 32,
02a79b89 2610 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2611 },
2612/* mov.l $rd6,$rn6 */
2613 {
2614 -1, "cmov.lB", "mov.l", 32,
02a79b89 2615 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2616 },
2617/* movbeq.l $rd6,$rn6 */
2618 {
2619 -1, "cmov.lBEQ", "movbeq.l", 32,
02a79b89 2620 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2621 },
2622/* movbne.l $rd6,$rn6 */
2623 {
2624 -1, "cmov.lBNE", "movbne.l", 32,
02a79b89 2625 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2626 },
2627/* movblt.l $rd6,$rn6 */
2628 {
2629 -1, "cmov.lBLT", "movblt.l", 32,
02a79b89 2630 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2631 },
2632/* movblte.l $rd6,$rn6 */
2633 {
2634 -1, "cmov.lBLTE", "movblte.l", 32,
02a79b89 2635 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2636 },
2637/* movts.l $sn6,$rd6 */
2638 {
2639 -1, "movts.l6", "movts.l", 32,
02a79b89 2640 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2641 },
2642/* movts.l $sndma,$rd6 */
2643 {
2644 -1, "movts.ldma", "movts.l", 32,
02a79b89 2645 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2646 },
2647/* movts.l $snmem,$rd6 */
2648 {
2649 -1, "movts.lmem", "movts.l", 32,
02a79b89 2650 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2651 },
2652/* movts.l $snmesh,$rd6 */
2653 {
2654 -1, "movts.lmesh", "movts.l", 32,
02a79b89 2655 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2656 },
2657/* movfs.l $rd6,$sn6 */
2658 {
2659 -1, "movfs.l6", "movfs.l", 32,
02a79b89 2660 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2661 },
2662/* movfs.l $rd6,$sndma */
2663 {
2664 -1, "movfs.ldma", "movfs.l", 32,
02a79b89 2665 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2666 },
2667/* movfs.l $rd6,$snmem */
2668 {
2669 -1, "movfs.lmem", "movfs.l", 32,
02a79b89 2670 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2671 },
2672/* movfs.l $rd6,$snmesh */
2673 {
2674 -1, "movfs.lmesh", "movfs.l", 32,
02a79b89 2675 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2676 },
2677/* add.l $rd6,$rn6,$rm6 */
2678 {
2679 -1, "add.l", "add.l", 32,
02a79b89 2680 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2681 },
2682/* sub.l $rd6,$rn6,$rm6 */
2683 {
2684 -1, "sub.l", "sub.l", 32,
02a79b89 2685 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2686 },
2687/* and.l $rd6,$rn6,$rm6 */
2688 {
2689 -1, "and.l", "and.l", 32,
02a79b89 2690 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2691 },
2692/* orr.l $rd6,$rn6,$rm6 */
2693 {
2694 -1, "orr.l", "orr.l", 32,
02a79b89 2695 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2696 },
2697/* eor.l $rd6,$rn6,$rm6 */
2698 {
2699 -1, "eor.l", "eor.l", 32,
02a79b89 2700 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2735 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2736 },
2737/* lsr.l $rd6,$rn6,$rm6 */
2738 {
2739 -1, "lsr.l", "lsr.l", 32,
02a79b89 2740 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2741 },
2742/* lsl.l $rd6,$rn6,$rm6 */
2743 {
2744 -1, "lsl.l", "lsl.l", 32,
02a79b89 2745 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2746 },
2747/* lsr.l $rd6,$rn6,$shift */
2748 {
2749 -1, "lsri32.l", "lsr.l", 32,
02a79b89 2750 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2751 },
2752/* lsl.l $rd6,$rn6,$shift */
2753 {
2754 -1, "lsli32.l", "lsl.l", 32,
02a79b89 2755 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2756 },
2757/* asr.l $rd6,$rn6,$shift */
2758 {
2759 -1, "asri32.l", "asr.l", 32,
02a79b89 2760 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2761 },
2762/* bitr.l $rd6,$rn6 */
2763 {
2764 -1, "bitrl", "bitr.l", 32,
02a79b89 2765 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2766 },
2767/* fext.l $rd6,$rn6,$rm6 */
2768 {
2769 -1, "fext.l", "fext.l", 32,
02a79b89 2770 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2771 },
2772/* fdep.l $rd6,$rn6,$rm6 */
2773 {
2774 -1, "fdep.l", "fdep.l", 32,
02a79b89 2775 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2776 },
2777/* lfsr.l $rd6,$rn6,$rm6 */
2778 {
2779 -1, "lfsr.l", "lfsr.l", 32,
02a79b89 2780 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2795 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2805 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2825 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2845 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2865 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2885 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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,
02a79b89 2900 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2901 },
2902/* float.l $rd6,$rn6 */
2903 {
2904 -1, "f_loatf32.l", "float.l", 32,
02a79b89 2905 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2906 },
2907/* fix.l $rd6,$rn6 */
2908 {
2909 -1, "f_ixf32.l", "fix.l", 32,
02a79b89 2910 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2911 },
2912/* frecip.l $frd6,$frn6 */
2913 {
2914 -1, "f_recipf32.l", "frecip.l", 32,
02a79b89 2915 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
2916 },
2917/* fsqrt.l $frd6,$frn6 */
2918 {
2919 -1, "f_sqrtf32.l", "fsqrt.l", 32,
02a79b89 2920 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
cfb8c092
NC
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
e6c7cdec 3925asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
cfb8c092
NC
3926{
3927 return CGEN_ASM_HASH_P (insn);
3928}
3929
3930static int
e6c7cdec 3931dis_hash_insn_p (const CGEN_INSN *insn)
cfb8c092
NC
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
e6c7cdec 3963asm_hash_insn (const char *mnem)
cfb8c092
NC
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
e6c7cdec
TS
3972dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
3973 CGEN_INSN_INT value ATTRIBUTE_UNUSED)
cfb8c092
NC
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}