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