1 /* Instruction opcode table for epiphany.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996-2014 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
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)
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.
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.
29 #include "epiphany-desc.h"
30 #include "epiphany-opc.h"
31 #include "libiberty.h"
38 /* The hash functions are recorded here to help keep assembler code out of
39 the disassembler and vice versa. */
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);
46 /* Instruction formats. */
48 #define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
49 static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
53 static const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
54 16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
57 static const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
58 32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
125 static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
126 32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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))
212 /* The instruction table. */
214 static const CGEN_OPCODE epiphany_cgen_insn_opcode_table[MAX_INSNS] =
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}},
223 { { MNEM, ' ', OP (SIMM8), 0 } },
224 & ifmt_beq16, { 0x0 }
229 { { MNEM, ' ', OP (SIMM24), 0 } },
235 { { MNEM, ' ', OP (SIMM8), 0 } },
236 & ifmt_beq16, { 0x10 }
241 { { MNEM, ' ', OP (SIMM24), 0 } },
247 { { MNEM, ' ', OP (SIMM8), 0 } },
248 & ifmt_beq16, { 0x20 }
253 { { MNEM, ' ', OP (SIMM24), 0 } },
259 { { MNEM, ' ', OP (SIMM8), 0 } },
260 & ifmt_beq16, { 0x30 }
262 /* bgteu.l $simm24 */
265 { { MNEM, ' ', OP (SIMM24), 0 } },
271 { { MNEM, ' ', OP (SIMM8), 0 } },
272 & ifmt_beq16, { 0x40 }
274 /* blteu.l $simm24 */
277 { { MNEM, ' ', OP (SIMM24), 0 } },
283 { { MNEM, ' ', OP (SIMM8), 0 } },
284 & ifmt_beq16, { 0x50 }
289 { { MNEM, ' ', OP (SIMM24), 0 } },
295 { { MNEM, ' ', OP (SIMM8), 0 } },
296 & ifmt_beq16, { 0x60 }
301 { { MNEM, ' ', OP (SIMM24), 0 } },
307 { { MNEM, ' ', OP (SIMM8), 0 } },
308 & ifmt_beq16, { 0x70 }
313 { { MNEM, ' ', OP (SIMM24), 0 } },
319 { { MNEM, ' ', OP (SIMM8), 0 } },
320 & ifmt_beq16, { 0x80 }
325 { { MNEM, ' ', OP (SIMM24), 0 } },
331 { { MNEM, ' ', OP (SIMM8), 0 } },
332 & ifmt_beq16, { 0x90 }
337 { { MNEM, ' ', OP (SIMM24), 0 } },
343 { { MNEM, ' ', OP (SIMM8), 0 } },
344 & ifmt_beq16, { 0xa0 }
349 { { MNEM, ' ', OP (SIMM24), 0 } },
355 { { MNEM, ' ', OP (SIMM8), 0 } },
356 & ifmt_beq16, { 0xb0 }
361 { { MNEM, ' ', OP (SIMM24), 0 } },
367 { { MNEM, ' ', OP (SIMM8), 0 } },
368 & ifmt_beq16, { 0xc0 }
373 { { MNEM, ' ', OP (SIMM24), 0 } },
379 { { MNEM, ' ', OP (SIMM8), 0 } },
380 & ifmt_beq16, { 0xd0 }
382 /* bblte.l $simm24 */
385 { { MNEM, ' ', OP (SIMM24), 0 } },
391 { { MNEM, ' ', OP (SIMM8), 0 } },
392 & ifmt_beq16, { 0xe0 }
397 { { MNEM, ' ', OP (SIMM24), 0 } },
403 { { MNEM, ' ', OP (SIMM8), 0 } },
404 & ifmt_beq16, { 0xf0 }
409 { { MNEM, ' ', OP (SIMM24), 0 } },
415 { { MNEM, ' ', OP (RN), 0 } },
416 & ifmt_jr16, { 0x142 }
422 & ifmt_rts, { 0x402194f }
427 { { MNEM, ' ', OP (RN6), 0 } },
428 & ifmt_jr, { 0x2014f }
433 { { MNEM, ' ', OP (RN), 0 } },
434 & ifmt_jr16, { 0x152 }
439 { { MNEM, ' ', OP (RN6), 0 } },
440 & ifmt_jr, { 0x2015f }
442 /* ldrb $rd,[$rn,$rm] */
445 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
446 & ifmt_ldrbx16_s, { 0x1 }
448 /* ldrb $rd,[$rn],$rm */
451 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
452 & ifmt_ldrbx16_s, { 0x5 }
454 /* ldrb $rd6,[$rn6,$direction$rm6] */
457 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
458 & ifmt_ldrbx_l, { 0x9 }
460 /* ldrb $rd6,[$rn6],$direction$rm6 */
463 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
464 & ifmt_ldrbp_l, { 0xd }
466 /* ldrb $rd,[$rn,$disp3] */
469 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
470 & ifmt_ldrbd16_s, { 0x4 }
472 /* ldrb $rd6,[$rn6,$dpmi$disp11] */
475 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
476 & ifmt_ldrbd_l, { 0xc }
478 /* ldrb $rd6,[$rn6],$dpmi$disp11 */
481 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
482 & ifmt_ldrbd_l, { 0x200000c }
484 /* ldrh $rd,[$rn,$rm] */
487 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
488 & ifmt_ldrbx16_s, { 0x21 }
490 /* ldrh $rd,[$rn],$rm */
493 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
494 & ifmt_ldrbx16_s, { 0x25 }
496 /* ldrh $rd6,[$rn6,$direction$rm6] */
499 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
500 & ifmt_ldrbx_l, { 0x29 }
502 /* ldrh $rd6,[$rn6],$direction$rm6 */
505 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
506 & ifmt_ldrbp_l, { 0x2d }
508 /* ldrh $rd,[$rn,$disp3] */
511 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
512 & ifmt_ldrbd16_s, { 0x24 }
514 /* ldrh $rd6,[$rn6,$dpmi$disp11] */
517 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
518 & ifmt_ldrbd_l, { 0x2c }
520 /* ldrh $rd6,[$rn6],$dpmi$disp11 */
523 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
524 & ifmt_ldrbd_l, { 0x200002c }
526 /* ldr $rd,[$rn,$rm] */
529 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
530 & ifmt_ldrbx16_s, { 0x41 }
532 /* ldr $rd,[$rn],$rm */
535 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
536 & ifmt_ldrbx16_s, { 0x45 }
538 /* ldr $rd6,[$rn6,$direction$rm6] */
541 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
542 & ifmt_ldrbx_l, { 0x49 }
544 /* ldr $rd6,[$rn6],$direction$rm6 */
547 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
548 & ifmt_ldrbp_l, { 0x4d }
550 /* ldr $rd,[$rn,$disp3] */
553 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
554 & ifmt_ldrbd16_s, { 0x44 }
556 /* ldr $rd6,[$rn6,$dpmi$disp11] */
559 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
560 & ifmt_ldrbd_l, { 0x4c }
562 /* ldr $rd6,[$rn6],$dpmi$disp11 */
565 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
566 & ifmt_ldrbd_l, { 0x200004c }
568 /* ldrd $rd,[$rn,$rm] */
571 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
572 & ifmt_ldrbx16_s, { 0x61 }
574 /* ldrd $rd,[$rn],$rm */
577 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
578 & ifmt_ldrbx16_s, { 0x65 }
580 /* ldrd $rd6,[$rn6,$direction$rm6] */
583 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
584 & ifmt_ldrbx_l, { 0x69 }
586 /* ldrd $rd6,[$rn6],$direction$rm6 */
589 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
590 & ifmt_ldrbp_l, { 0x6d }
592 /* ldrd $rd,[$rn,$disp3] */
595 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
596 & ifmt_ldrbd16_s, { 0x64 }
598 /* ldrd $rd6,[$rn6,$dpmi$disp11] */
601 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
602 & ifmt_ldrbd_l, { 0x6c }
604 /* ldrd $rd6,[$rn6],$dpmi$disp11 */
607 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
608 & ifmt_ldrbd_l, { 0x200006c }
610 /* testsetb $rd6,[$rn6,$direction$rm6] */
613 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
614 & ifmt_ldrbx_l, { 0x200009 }
616 /* testseth $rd6,[$rn6,$direction$rm6] */
619 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
620 & ifmt_ldrbx_l, { 0x200029 }
622 /* testset $rd6,[$rn6,$direction$rm6] */
625 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
626 & ifmt_ldrbx_l, { 0x200049 }
628 /* strb $rd,[$rn,$rm] */
631 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
632 & ifmt_ldrbx16_s, { 0x11 }
634 /* strb $rd6,[$rn6,$direction$rm6] */
637 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
638 & ifmt_ldrbx_l, { 0x19 }
640 /* strb $rd,[$rn],$rm */
643 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
644 & ifmt_ldrbx16_s, { 0x15 }
646 /* strb $rd6,[$rn6],$direction$rm6 */
649 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
650 & ifmt_ldrbp_l, { 0x1d }
652 /* strb $rd,[$rn,$disp3] */
655 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
656 & ifmt_ldrbd16_s, { 0x14 }
658 /* strb $rd6,[$rn6,$dpmi$disp11] */
661 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
662 & ifmt_ldrbd_l, { 0x1c }
664 /* strb $rd6,[$rn6],$dpmi$disp11 */
667 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
668 & ifmt_ldrbd_l, { 0x200001c }
670 /* strh $rd,[$rn,$rm] */
673 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
674 & ifmt_ldrbx16_s, { 0x31 }
676 /* strh $rd6,[$rn6,$direction$rm6] */
679 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
680 & ifmt_ldrbx_l, { 0x39 }
682 /* strh $rd,[$rn],$rm */
685 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
686 & ifmt_ldrbx16_s, { 0x35 }
688 /* strh $rd6,[$rn6],$direction$rm6 */
691 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
692 & ifmt_ldrbp_l, { 0x3d }
694 /* strh $rd,[$rn,$disp3] */
697 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
698 & ifmt_ldrbd16_s, { 0x34 }
700 /* strh $rd6,[$rn6,$dpmi$disp11] */
703 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
704 & ifmt_ldrbd_l, { 0x3c }
706 /* strh $rd6,[$rn6],$dpmi$disp11 */
709 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
710 & ifmt_ldrbd_l, { 0x200003c }
712 /* str $rd,[$rn,$rm] */
715 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
716 & ifmt_ldrbx16_s, { 0x51 }
718 /* str $rd6,[$rn6,$direction$rm6] */
721 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
722 & ifmt_ldrbx_l, { 0x59 }
724 /* str $rd,[$rn],$rm */
727 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
728 & ifmt_ldrbx16_s, { 0x55 }
730 /* str $rd6,[$rn6],$direction$rm6 */
733 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
734 & ifmt_ldrbp_l, { 0x5d }
736 /* str $rd,[$rn,$disp3] */
739 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
740 & ifmt_ldrbd16_s, { 0x54 }
742 /* str $rd6,[$rn6,$dpmi$disp11] */
745 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
746 & ifmt_ldrbd_l, { 0x5c }
748 /* str $rd6,[$rn6],$dpmi$disp11 */
751 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
752 & ifmt_ldrbd_l, { 0x200005c }
754 /* strd $rd,[$rn,$rm] */
757 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
758 & ifmt_ldrbx16_s, { 0x71 }
760 /* strd $rd6,[$rn6,$direction$rm6] */
763 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
764 & ifmt_ldrbx_l, { 0x79 }
766 /* strd $rd,[$rn],$rm */
769 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
770 & ifmt_ldrbx16_s, { 0x75 }
772 /* strd $rd6,[$rn6],$direction$rm6 */
775 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
776 & ifmt_ldrbp_l, { 0x7d }
778 /* strd $rd,[$rn,$disp3] */
781 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
782 & ifmt_ldrbd16_s, { 0x74 }
784 /* strd $rd6,[$rn6,$dpmi$disp11] */
787 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
788 & ifmt_ldrbd_l, { 0x7c }
790 /* strd $rd6,[$rn6],$dpmi$disp11 */
793 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
794 & ifmt_ldrbd_l, { 0x200007c }
799 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
800 & ifmt_cmov16EQ, { 0x2 }
802 /* moveq $rd6,$rn6 */
805 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
806 & ifmt_cmovEQ, { 0x2000f }
811 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
812 & ifmt_cmov16EQ, { 0x12 }
814 /* movne $rd6,$rn6 */
817 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
818 & ifmt_cmovEQ, { 0x2001f }
823 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
824 & ifmt_cmov16EQ, { 0x22 }
826 /* movgtu $rd6,$rn6 */
829 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
830 & ifmt_cmovEQ, { 0x2002f }
832 /* movgteu $rd,$rn */
835 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
836 & ifmt_cmov16EQ, { 0x32 }
838 /* movgteu $rd6,$rn6 */
841 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
842 & ifmt_cmovEQ, { 0x2003f }
844 /* movlteu $rd,$rn */
847 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
848 & ifmt_cmov16EQ, { 0x42 }
850 /* movlteu $rd6,$rn6 */
853 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
854 & ifmt_cmovEQ, { 0x2004f }
859 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
860 & ifmt_cmov16EQ, { 0x52 }
862 /* movltu $rd6,$rn6 */
865 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
866 & ifmt_cmovEQ, { 0x2005f }
871 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
872 & ifmt_cmov16EQ, { 0x62 }
874 /* movgt $rd6,$rn6 */
877 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
878 & ifmt_cmovEQ, { 0x2006f }
883 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
884 & ifmt_cmov16EQ, { 0x72 }
886 /* movgte $rd6,$rn6 */
889 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
890 & ifmt_cmovEQ, { 0x2007f }
895 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
896 & ifmt_cmov16EQ, { 0x82 }
898 /* movlt $rd6,$rn6 */
901 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
902 & ifmt_cmovEQ, { 0x2008f }
907 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
908 & ifmt_cmov16EQ, { 0x92 }
910 /* movlte $rd6,$rn6 */
913 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
914 & ifmt_cmovEQ, { 0x2009f }
919 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
920 & ifmt_cmov16EQ, { 0xe2 }
925 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
926 & ifmt_cmovEQ, { 0x200ef }
931 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
932 & ifmt_cmov16EQ, { 0xa2 }
934 /* movbeq $rd6,$rn6 */
937 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
938 & ifmt_cmovEQ, { 0x200af }
943 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
944 & ifmt_cmov16EQ, { 0xb2 }
946 /* movbne $rd6,$rn6 */
949 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
950 & ifmt_cmovEQ, { 0x200bf }
955 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
956 & ifmt_cmov16EQ, { 0xc2 }
958 /* movblt $rd6,$rn6 */
961 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
962 & ifmt_cmovEQ, { 0x200cf }
964 /* movblte $rd,$rn */
967 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
968 & ifmt_cmov16EQ, { 0xd2 }
970 /* movblte $rd6,$rn6 */
973 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
974 & ifmt_cmovEQ, { 0x200df }
979 { { MNEM, ' ', OP (SN), ',', OP (RD), 0 } },
980 & ifmt_movts16, { 0x102 }
982 /* movts $sn6,$rd6 */
985 { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
986 & ifmt_movts6, { 0x2010f }
988 /* movts $sndma,$rd6 */
991 { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
992 & ifmt_movtsdma, { 0x12010f }
994 /* movts $snmem,$rd6 */
997 { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
998 & ifmt_movtsmem, { 0x22010f }
1000 /* movts $snmesh,$rd6 */
1003 { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
1004 & ifmt_movtsmesh, { 0x32010f }
1009 { { MNEM, ' ', OP (RD), ',', OP (SN), 0 } },
1010 & ifmt_movts16, { 0x112 }
1012 /* movfs $rd6,$sn6 */
1015 { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
1016 & ifmt_movts6, { 0x2011f }
1018 /* movfs $rd6,$sndma */
1021 { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
1022 & ifmt_movtsdma, { 0x12011f }
1024 /* movfs $rd6,$snmem */
1027 { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
1028 & ifmt_movtsmem, { 0x22011f }
1030 /* movfs $rd6,$snmesh */
1033 { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
1034 & ifmt_movtsmesh, { 0x32011f }
1040 & ifmt_nop, { 0x1a2 }
1046 & ifmt_nop, { 0x3a2 }
1052 & ifmt_unimpl, { 0xf000f }
1058 & ifmt_nop, { 0x1b2 }
1064 & ifmt_nop, { 0x1c2 }
1070 & ifmt_nop, { 0x3c2 }
1076 & ifmt_nop, { 0x1d2 }
1082 & ifmt_nop, { 0x182 }
1088 & ifmt_nop, { 0x1f2 }
1094 & ifmt_gien, { 0x192 }
1100 & ifmt_gien, { 0x392 }
1105 { { MNEM, ' ', OP (SWI_NUM), 0 } },
1106 & ifmt_swi_num, { 0x1e2 }
1112 & ifmt_swi, { 0x1e2 }
1114 /* trap $trapnum6 */
1117 { { MNEM, ' ', OP (TRAPNUM6), 0 } },
1118 & ifmt_trap16, { 0x3e2 }
1120 /* add $rd,$rn,$rm */
1123 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1124 & ifmt_add16, { 0x1a }
1126 /* add $rd6,$rn6,$rm6 */
1129 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1130 & ifmt_add, { 0xa001f }
1132 /* sub $rd,$rn,$rm */
1135 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1136 & ifmt_add16, { 0x3a }
1138 /* sub $rd6,$rn6,$rm6 */
1141 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1142 & ifmt_add, { 0xa003f }
1144 /* and $rd,$rn,$rm */
1147 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1148 & ifmt_add16, { 0x5a }
1150 /* and $rd6,$rn6,$rm6 */
1153 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1154 & ifmt_add, { 0xa005f }
1156 /* orr $rd,$rn,$rm */
1159 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1160 & ifmt_add16, { 0x7a }
1162 /* orr $rd6,$rn6,$rm6 */
1165 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1166 & ifmt_add, { 0xa007f }
1168 /* eor $rd,$rn,$rm */
1171 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1172 & ifmt_add16, { 0xa }
1174 /* eor $rd6,$rn6,$rm6 */
1177 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1178 & ifmt_add, { 0xa000f }
1180 /* add.s $rd,$rn,$simm3 */
1183 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
1184 & ifmt_addi16, { 0x13 }
1186 /* add.l $rd6,$rn6,$simm11 */
1189 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
1190 & ifmt_addi, { 0x1b }
1192 /* sub.s $rd,$rn,$simm3 */
1195 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
1196 & ifmt_addi16, { 0x33 }
1198 /* sub.l $rd6,$rn6,$simm11 */
1201 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
1202 & ifmt_addi, { 0x3b }
1204 /* asr $rd,$rn,$rm */
1207 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1208 & ifmt_add16, { 0x6a }
1210 /* asr $rd6,$rn6,$rm6 */
1213 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1214 & ifmt_add, { 0xa006f }
1216 /* lsr $rd,$rn,$rm */
1219 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1220 & ifmt_add16, { 0x4a }
1222 /* lsr $rd6,$rn6,$rm6 */
1225 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1226 & ifmt_add, { 0xa004f }
1228 /* lsl $rd,$rn,$rm */
1231 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1232 & ifmt_add16, { 0x2a }
1234 /* lsl $rd6,$rn6,$rm6 */
1237 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1238 & ifmt_add, { 0xa002f }
1240 /* lsr $rd,$rn,$shift */
1243 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1244 & ifmt_lsri16, { 0x6 }
1246 /* lsr $rd6,$rn6,$shift */
1249 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1250 & ifmt_lsri32, { 0x6000f }
1252 /* lsl $rd,$rn,$shift */
1255 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1256 & ifmt_lsri16, { 0x16 }
1258 /* lsl $rd6,$rn6,$shift */
1261 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1262 & ifmt_lsri32, { 0x6001f }
1264 /* asr $rd,$rn,$shift */
1267 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1268 & ifmt_lsri16, { 0xe }
1270 /* asr $rd6,$rn6,$shift */
1273 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1274 & ifmt_lsri32, { 0xe000f }
1279 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1280 & ifmt_bitr16, { 0x1e }
1282 /* bitr $rd6,$rn6 */
1285 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1286 & ifmt_bitr, { 0xe001f }
1288 /* fext $rd6,$rn6,$rm6 */
1291 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1292 & ifmt_fext, { 0x1a000f }
1294 /* fdep $rd6,$rn6,$rm6 */
1297 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1298 & ifmt_fext, { 0x1a001f }
1300 /* lfsr $rd6,$rn6,$rm6 */
1303 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1304 & ifmt_fext, { 0x1a002f }
1306 /* mov.b $rd,$imm8 */
1309 { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
1310 & ifmt_mov8, { 0x3 }
1312 /* mov.l $rd6,$imm16 */
1315 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
1316 & ifmt_mov16, { 0x2000b }
1318 /* movt $rd6,$imm16 */
1321 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
1322 & ifmt_mov16, { 0x1002000b }
1324 /* fadd $rd,$rn,$rm */
1327 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1328 & ifmt_add16, { 0x7 }
1330 /* fadd $rd6,$rn6,$rm6 */
1333 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1334 & ifmt_add, { 0x7000f }
1336 /* fsub $rd,$rn,$rm */
1339 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1340 & ifmt_add16, { 0x17 }
1342 /* fsub $rd6,$rn6,$rm6 */
1345 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1346 & ifmt_add, { 0x7001f }
1348 /* fmul $rd,$rn,$rm */
1351 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1352 & ifmt_add16, { 0x27 }
1354 /* fmul $rd6,$rn6,$rm6 */
1357 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1358 & ifmt_add, { 0x7002f }
1360 /* fmadd $rd,$rn,$rm */
1363 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1364 & ifmt_add16, { 0x37 }
1366 /* fmadd $rd6,$rn6,$rm6 */
1369 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1370 & ifmt_add, { 0x7003f }
1372 /* fmsub $rd,$rn,$rm */
1375 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1376 & ifmt_add16, { 0x47 }
1378 /* fmsub $rd6,$rn6,$rm6 */
1381 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1382 & ifmt_add, { 0x7004f }
1387 { { MNEM, ' ', 'r', 'd', ',', 'r', 'n', 0 } },
1388 & ifmt_f_absf16, { 0x77 }
1390 /* fabs $rd6,$rn6 */
1393 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1394 & ifmt_f_absf32, { 0x7007f }
1399 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1400 & ifmt_f_loatf16, { 0x57 }
1402 /* float $rd6,$rn6 */
1405 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1406 & ifmt_f_absf32, { 0x7005f }
1411 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1412 & ifmt_f_absf16, { 0x67 }
1417 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1418 & ifmt_f_absf32, { 0x7006f }
1420 /* frecip $frd6,$frn6 */
1423 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
1424 & ifmt_f_recipf32, { 0x17000f }
1426 /* fsqrt $frd6,$frn6 */
1429 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
1430 & ifmt_f_recipf32, { 0x17001f }
1439 /* Formats for ALIAS macro-insns. */
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 } }
1446 static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
1447 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1450 static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
1451 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1454 static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
1455 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1458 static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
1459 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1462 static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
1463 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1466 static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
1467 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1470 static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
1471 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1474 static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
1475 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1478 static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
1479 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1482 static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
1483 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1486 static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
1487 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1490 static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
1491 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1494 static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
1495 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1498 static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
1499 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1502 static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
1503 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1506 static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
1507 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1510 static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
1511 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1514 static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
1515 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1518 static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
1519 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1522 static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
1523 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1526 static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
1527 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1530 static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
1531 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1534 static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
1535 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1538 static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
1539 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1542 static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
1543 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1546 static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
1547 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1550 static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
1551 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1554 static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
1555 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1558 static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
1559 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1562 static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
1563 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1566 static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
1567 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
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 } }
2096 /* Each non-simple macro entry points to an array of expansion possibilities. */
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))
2103 /* The macro instruction table. */
2105 static const CGEN_IBASE epiphany_cgen_macro_insn_table[] =
2109 -1, "beq16r", "beq", 16,
2110 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2114 -1, "beq32r", "beq", 32,
2115 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2119 -1, "bne16r", "bne", 16,
2120 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2124 -1, "bne32r", "bne", 32,
2125 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2129 -1, "bgtu16r", "bgtu", 16,
2130 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2134 -1, "bgtu32r", "bgtu", 32,
2135 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2139 -1, "bgteu16r", "bgteu", 16,
2140 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2144 -1, "bgteu32r", "bgteu", 32,
2145 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2149 -1, "blteu16r", "blteu", 16,
2150 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2154 -1, "blteu32r", "blteu", 32,
2155 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2159 -1, "bltu16r", "bltu", 16,
2160 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2164 -1, "bltu32r", "bltu", 32,
2165 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2169 -1, "bgt16r", "bgt", 16,
2170 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2174 -1, "bgt32r", "bgt", 32,
2175 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2179 -1, "bgte16r", "bgte", 16,
2180 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2184 -1, "bgte32r", "bgte", 32,
2185 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2189 -1, "blt16r", "blt", 16,
2190 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2194 -1, "blt32r", "blt", 32,
2195 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2199 -1, "blte16r", "blte", 16,
2200 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2204 -1, "blte32r", "blte", 32,
2205 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2209 -1, "bbeq16r", "bbeq", 16,
2210 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2214 -1, "bbeq32r", "bbeq", 32,
2215 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2219 -1, "bbne16r", "bbne", 16,
2220 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2224 -1, "bbne32r", "bbne", 32,
2225 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2229 -1, "bblt16r", "bblt", 16,
2230 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2234 -1, "bblt32r", "bblt", 32,
2235 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2239 -1, "bblte16r", "bblte", 16,
2240 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2244 -1, "bblte32r", "bblte", 32,
2245 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2249 -1, "b16r", "b", 16,
2250 { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2254 -1, "b32r", "b", 32,
2255 { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2259 -1, "bl16r", "bl", 16,
2260 { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2264 -1, "blr", "bl", 32,
2265 { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2267 /* ldrb.l $rd6,[$rn6,$direction$rm6] */
2269 -1, "ldrbx", "ldrb.l", 32,
2270 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2272 /* ldrb.l $rd6,[$rn6],$direction$rm6 */
2274 -1, "ldrbp", "ldrb.l", 32,
2275 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2277 /* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
2279 -1, "ldrbd", "ldrb.l", 32,
2280 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2282 /* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
2284 -1, "ldrbdpm", "ldrb.l", 32,
2285 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2287 /* ldrb $rd,[$rn] */
2289 -1, "ldrbds0", "ldrb", 16,
2290 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2292 /* ldrb $rd6,[$rn6] */
2294 -1, "ldrbdl0", "ldrb", 32,
2295 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2297 /* ldrb.l $rd6,[$rn6] */
2299 -1, "ldrbdl0.l", "ldrb.l", 32,
2300 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2302 /* ldrh.l $rd6,[$rn6,$direction$rm6] */
2304 -1, "ldrhx", "ldrh.l", 32,
2305 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2307 /* ldrh.l $rd6,[$rn6],$direction$rm6 */
2309 -1, "ldrhp", "ldrh.l", 32,
2310 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2312 /* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
2314 -1, "ldrhd", "ldrh.l", 32,
2315 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2317 /* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
2319 -1, "ldrhdpm", "ldrh.l", 32,
2320 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2322 /* ldrh $rd,[$rn] */
2324 -1, "ldrhds0", "ldrh", 16,
2325 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2327 /* ldrh $rd6,[$rn6] */
2329 -1, "ldrhdl0", "ldrh", 32,
2330 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2332 /* ldrh.l $rd6,[$rn6] */
2334 -1, "ldrhdl0.l", "ldrh.l", 32,
2335 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2337 /* ldr.l $rd6,[$rn6,$direction$rm6] */
2339 -1, "ldrx", "ldr.l", 32,
2340 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2342 /* ldr.l $rd6,[$rn6],$direction$rm6 */
2344 -1, "ldrp", "ldr.l", 32,
2345 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2347 /* ldr.l $rd6,[$rn6,$dpmi$disp11] */
2349 -1, "ldrd", "ldr.l", 32,
2350 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2352 /* ldr.l $rd6,[$rn6],$dpmi$disp11 */
2354 -1, "ldrdpm", "ldr.l", 32,
2355 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2359 -1, "ldrds0", "ldr", 16,
2360 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2362 /* ldr $rd6,[$rn6] */
2364 -1, "ldrdl0", "ldr", 32,
2365 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2367 /* ldr.l $rd6,[$rn6] */
2369 -1, "ldrdl0.l", "ldr.l", 32,
2370 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2372 /* ldrd.l $rd6,[$rn6,$direction$rm6] */
2374 -1, "ldrdx", "ldrd.l", 32,
2375 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2377 /* ldrd.l $rd6,[$rn6],$direction$rm6 */
2379 -1, "ldrdp", "ldrd.l", 32,
2380 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2382 /* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
2384 -1, "ldrdd", "ldrd.l", 32,
2385 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2387 /* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
2389 -1, "ldrddpm", "ldrd.l", 32,
2390 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2392 /* ldrd $rd,[$rn] */
2394 -1, "ldrdds0", "ldrd", 16,
2395 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2397 /* ldrd $rd6,[$rn6] */
2399 -1, "ldrddl0", "ldrd", 32,
2400 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2402 /* ldrd.l $rd6,[$rn6] */
2404 -1, "ldrddl0.l", "ldrd.l", 32,
2405 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2407 /* testsetb.l $rd6,[$rn6,$direction$rm6] */
2409 -1, "testsetbt.l", "testsetb.l", 32,
2410 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2412 /* testseth.l $rd6,[$rn6,$direction$rm6] */
2414 -1, "testsetht.l", "testseth.l", 32,
2415 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2417 /* testset.l $rd6,[$rn6,$direction$rm6] */
2419 -1, "testsett.l", "testset.l", 32,
2420 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2422 /* strb.l $rd6,[$rn6,$direction$rm6] */
2424 -1, "strbx.l", "strb.l", 32,
2425 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2427 /* strb.l $rd6,[$rn6],$direction$rm6 */
2429 -1, "strbp.l", "strb.l", 32,
2430 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2432 /* strb.l $rd6,[$rn6,$dpmi$disp11] */
2434 -1, "strbd.l", "strb.l", 32,
2435 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2437 /* strb.l $rd6,[$rn6],$dpmi$disp11 */
2439 -1, "strbdpm.l", "strb.l", 32,
2440 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2442 /* strb $rd,[$rn] */
2444 -1, "strbds0", "strb", 16,
2445 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2447 /* strb $rd6,[$rn6] */
2449 -1, "strbdl0", "strb", 32,
2450 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2452 /* strb.l $rd6,[$rn6] */
2454 -1, "strbdl0.l", "strb.l", 32,
2455 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2457 /* strh.l $rd6,[$rn6,$direction$rm6] */
2459 -1, "strhx.l", "strh.l", 32,
2460 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2462 /* strh.l $rd6,[$rn6],$direction$rm6 */
2464 -1, "strhp.l", "strh.l", 32,
2465 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2467 /* strh.l $rd6,[$rn6,$dpmi$disp11] */
2469 -1, "strhd.l", "strh.l", 32,
2470 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2472 /* strh.l $rd6,[$rn6],$dpmi$disp11 */
2474 -1, "strhdpm.l", "strh.l", 32,
2475 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2477 /* strh $rd,[$rn] */
2479 -1, "strhds0", "strh", 16,
2480 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2482 /* strh $rd6,[$rn6] */
2484 -1, "strhdl0", "strh", 32,
2485 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2487 /* strh.l $rd6,[$rn6] */
2489 -1, "strhdl0.l", "strh.l", 32,
2490 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2492 /* str.l $rd6,[$rn6,$direction$rm6] */
2494 -1, "strx.l", "str.l", 32,
2495 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2497 /* str.l $rd6,[$rn6],$direction$rm6 */
2499 -1, "strp.l", "str.l", 32,
2500 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2502 /* str.l $rd6,[$rn6,$dpmi$disp11] */
2504 -1, "strd.l", "str.l", 32,
2505 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2507 /* str.l $rd6,[$rn6],$dpmi$disp11 */
2509 -1, "strdpm.l", "str.l", 32,
2510 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2514 -1, "strds0", "str", 16,
2515 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2517 /* str $rd6,[$rn6] */
2519 -1, "strdl0", "str", 32,
2520 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2522 /* str.l $rd6,[$rn6] */
2524 -1, "strdl0.l", "str.l", 32,
2525 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2527 /* strd.l $rd6,[$rn6,$direction$rm6] */
2529 -1, "strdx.l", "strd.l", 32,
2530 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2532 /* strd.l $rd6,[$rn6],$direction$rm6 */
2534 -1, "strdp.l", "strd.l", 32,
2535 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2537 /* strd.l $rd6,[$rn6,$dpmi$disp11] */
2539 -1, "strdd.l", "strd.l", 32,
2540 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2542 /* strd.l $rd6,[$rn6],$dpmi$disp11 */
2544 -1, "strddpm.l", "strd.l", 32,
2545 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2547 /* strd $rd,[$rn] */
2549 -1, "strdds0", "strd", 16,
2550 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2552 /* strd $rd6,[$rn6] */
2554 -1, "strddl0", "strd", 32,
2555 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2557 /* strd.l $rd6,[$rn6] */
2559 -1, "strddl0.l", "strd.l", 32,
2560 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2562 /* moveq.l $rd6,$rn6 */
2564 -1, "cmov.lEQ", "moveq.l", 32,
2565 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2567 /* movne.l $rd6,$rn6 */
2569 -1, "cmov.lNE", "movne.l", 32,
2570 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2572 /* movgtu.l $rd6,$rn6 */
2574 -1, "cmov.lGTU", "movgtu.l", 32,
2575 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2577 /* movgteu.l $rd6,$rn6 */
2579 -1, "cmov.lGTEU", "movgteu.l", 32,
2580 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2582 /* movlteu.l $rd6,$rn6 */
2584 -1, "cmov.lLTEU", "movlteu.l", 32,
2585 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2587 /* movltu.l $rd6,$rn6 */
2589 -1, "cmov.lLTU", "movltu.l", 32,
2590 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2592 /* movgt.l $rd6,$rn6 */
2594 -1, "cmov.lGT", "movgt.l", 32,
2595 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2597 /* movgte.l $rd6,$rn6 */
2599 -1, "cmov.lGTE", "movgte.l", 32,
2600 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2602 /* movlt.l $rd6,$rn6 */
2604 -1, "cmov.lLT", "movlt.l", 32,
2605 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2607 /* movlte.l $rd6,$rn6 */
2609 -1, "cmov.lLTE", "movlte.l", 32,
2610 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2612 /* mov.l $rd6,$rn6 */
2614 -1, "cmov.lB", "mov.l", 32,
2615 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2617 /* movbeq.l $rd6,$rn6 */
2619 -1, "cmov.lBEQ", "movbeq.l", 32,
2620 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2622 /* movbne.l $rd6,$rn6 */
2624 -1, "cmov.lBNE", "movbne.l", 32,
2625 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2627 /* movblt.l $rd6,$rn6 */
2629 -1, "cmov.lBLT", "movblt.l", 32,
2630 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2632 /* movblte.l $rd6,$rn6 */
2634 -1, "cmov.lBLTE", "movblte.l", 32,
2635 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2637 /* movts.l $sn6,$rd6 */
2639 -1, "movts.l6", "movts.l", 32,
2640 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2642 /* movts.l $sndma,$rd6 */
2644 -1, "movts.ldma", "movts.l", 32,
2645 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2647 /* movts.l $snmem,$rd6 */
2649 -1, "movts.lmem", "movts.l", 32,
2650 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2652 /* movts.l $snmesh,$rd6 */
2654 -1, "movts.lmesh", "movts.l", 32,
2655 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2657 /* movfs.l $rd6,$sn6 */
2659 -1, "movfs.l6", "movfs.l", 32,
2660 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2662 /* movfs.l $rd6,$sndma */
2664 -1, "movfs.ldma", "movfs.l", 32,
2665 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2667 /* movfs.l $rd6,$snmem */
2669 -1, "movfs.lmem", "movfs.l", 32,
2670 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2672 /* movfs.l $rd6,$snmesh */
2674 -1, "movfs.lmesh", "movfs.l", 32,
2675 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2677 /* add.l $rd6,$rn6,$rm6 */
2679 -1, "add.l", "add.l", 32,
2680 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2682 /* sub.l $rd6,$rn6,$rm6 */
2684 -1, "sub.l", "sub.l", 32,
2685 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2687 /* and.l $rd6,$rn6,$rm6 */
2689 -1, "and.l", "and.l", 32,
2690 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2692 /* orr.l $rd6,$rn6,$rm6 */
2694 -1, "orr.l", "orr.l", 32,
2695 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2697 /* eor.l $rd6,$rn6,$rm6 */
2699 -1, "eor.l", "eor.l", 32,
2700 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2702 /* add $rd,$rn,$simm3 */
2704 -1, "addir", "add", 16,
2705 { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2707 /* add $rd6,$rn6,$simm11 */
2709 -1, "addi32r", "add", 32,
2710 { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2712 /* add $rd6,$rn6,$simm11 */
2714 -1, "addi32m", "add", 32,
2715 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2717 /* sub $rd,$rn,$simm3 */
2719 -1, "subir", "sub", 16,
2720 { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2722 /* sub $rd6,$rn6,$simm11 */
2724 -1, "subi32r", "sub", 32,
2725 { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2727 /* sub $rd6,$rn6,$simm11 */
2729 -1, "subi32m", "sub", 32,
2730 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2732 /* asr.l $rd6,$rn6,$rm6 */
2734 -1, "asr.l", "asr.l", 32,
2735 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2737 /* lsr.l $rd6,$rn6,$rm6 */
2739 -1, "lsr.l", "lsr.l", 32,
2740 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2742 /* lsl.l $rd6,$rn6,$rm6 */
2744 -1, "lsl.l", "lsl.l", 32,
2745 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2747 /* lsr.l $rd6,$rn6,$shift */
2749 -1, "lsri32.l", "lsr.l", 32,
2750 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2752 /* lsl.l $rd6,$rn6,$shift */
2754 -1, "lsli32.l", "lsl.l", 32,
2755 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2757 /* asr.l $rd6,$rn6,$shift */
2759 -1, "asri32.l", "asr.l", 32,
2760 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2762 /* bitr.l $rd6,$rn6 */
2764 -1, "bitrl", "bitr.l", 32,
2765 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2767 /* fext.l $rd6,$rn6,$rm6 */
2769 -1, "fext.l", "fext.l", 32,
2770 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2772 /* fdep.l $rd6,$rn6,$rm6 */
2774 -1, "fdep.l", "fdep.l", 32,
2775 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2777 /* lfsr.l $rd6,$rn6,$rm6 */
2779 -1, "lfsr.l", "lfsr.l", 32,
2780 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2784 -1, "mov8r", "mov", 16,
2785 { 0|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2787 /* mov $rd6,$imm16 */
2789 -1, "mov16r", "mov", 32,
2790 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2792 /* movt.l $rd6,$imm16 */
2794 -1, "movtl", "movt.l", 32,
2795 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2797 /* iadd $rd,$rn,$rm */
2799 -1, "i_addf16", "iadd", 16,
2800 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2802 /* fadd.l $rd6,$rn6,$rm6 */
2804 -1, "f_addf32.l", "fadd.l", 32,
2805 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2807 /* iadd $rd6,$rn6,$rm6 */
2809 -1, "i_addf32", "iadd", 32,
2810 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2812 /* iadd.l $rd6,$rn6,$rm6 */
2814 -1, "i_addf32.l", "iadd.l", 32,
2815 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2817 /* isub $rd,$rn,$rm */
2819 -1, "i_subf16", "isub", 16,
2820 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2822 /* fsub.l $rd6,$rn6,$rm6 */
2824 -1, "f_subf32.l", "fsub.l", 32,
2825 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2827 /* isub $rd6,$rn6,$rm6 */
2829 -1, "i_subf32", "isub", 32,
2830 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2832 /* isub.l $rd6,$rn6,$rm6 */
2834 -1, "i_subf32.l", "isub.l", 32,
2835 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2837 /* imul $rd,$rn,$rm */
2839 -1, "i_mulf16", "imul", 16,
2840 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2842 /* fmul.l $rd6,$rn6,$rm6 */
2844 -1, "f_mulf32.l", "fmul.l", 32,
2845 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2847 /* imul $rd6,$rn6,$rm6 */
2849 -1, "i_mulf32", "imul", 32,
2850 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2852 /* imul.l $rd6,$rn6,$rm6 */
2854 -1, "i_mulf32.l", "imul.l", 32,
2855 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2857 /* imadd $rd,$rn,$rm */
2859 -1, "i_maddf16", "imadd", 16,
2860 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2862 /* fmadd.l $rd6,$rn6,$rm6 */
2864 -1, "f_maddf32.l", "fmadd.l", 32,
2865 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2867 /* imadd $rd6,$rn6,$rm6 */
2869 -1, "i_maddf32", "imadd", 32,
2870 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2872 /* imadd.l $rd6,$rn6,$rm6 */
2874 -1, "i_maddf32.l", "imadd.l", 32,
2875 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2877 /* imsub $rd,$rn,$rm */
2879 -1, "i_msubf16", "imsub", 16,
2880 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2882 /* fmsub.l $rd6,$rn6,$rm6 */
2884 -1, "f_msubf32.l", "fmsub.l", 32,
2885 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2887 /* imsub $rd6,$rn6,$rm6 */
2889 -1, "i_msubf32", "imsub", 32,
2890 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2892 /* imsub.l $rd6,$rn6,$rm6 */
2894 -1, "i_msubf32.l", "imsub.l", 32,
2895 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2897 /* fabs.l $rd6,$rn6 */
2899 -1, "f_absf32.l", "fabs.l", 32,
2900 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2902 /* float.l $rd6,$rn6 */
2904 -1, "f_loatf32.l", "float.l", 32,
2905 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2907 /* fix.l $rd6,$rn6 */
2909 -1, "f_ixf32.l", "fix.l", 32,
2910 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2912 /* frecip.l $frd6,$frn6 */
2914 -1, "f_recipf32.l", "frecip.l", 32,
2915 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2917 /* fsqrt.l $frd6,$frn6 */
2919 -1, "f_sqrtf32.l", "fsqrt.l", 32,
2920 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2924 /* The macro instruction opcode table. */
2926 static const CGEN_OPCODE epiphany_cgen_macro_insn_opcode_table[] =
2931 { { MNEM, ' ', OP (SIMM8), 0 } },
2932 & ifmt_beq16r, { 0x0 }
2937 { { MNEM, ' ', OP (SIMM24), 0 } },
2938 & ifmt_beq32r, { 0x8 }
2943 { { MNEM, ' ', OP (SIMM8), 0 } },
2944 & ifmt_bne16r, { 0x10 }
2949 { { MNEM, ' ', OP (SIMM24), 0 } },
2950 & ifmt_bne32r, { 0x18 }
2955 { { MNEM, ' ', OP (SIMM8), 0 } },
2956 & ifmt_bgtu16r, { 0x20 }
2961 { { MNEM, ' ', OP (SIMM24), 0 } },
2962 & ifmt_bgtu32r, { 0x28 }
2967 { { MNEM, ' ', OP (SIMM8), 0 } },
2968 & ifmt_bgteu16r, { 0x30 }
2973 { { MNEM, ' ', OP (SIMM24), 0 } },
2974 & ifmt_bgteu32r, { 0x38 }
2979 { { MNEM, ' ', OP (SIMM8), 0 } },
2980 & ifmt_blteu16r, { 0x40 }
2985 { { MNEM, ' ', OP (SIMM24), 0 } },
2986 & ifmt_blteu32r, { 0x48 }
2991 { { MNEM, ' ', OP (SIMM8), 0 } },
2992 & ifmt_bltu16r, { 0x50 }
2997 { { MNEM, ' ', OP (SIMM24), 0 } },
2998 & ifmt_bltu32r, { 0x58 }
3003 { { MNEM, ' ', OP (SIMM8), 0 } },
3004 & ifmt_bgt16r, { 0x60 }
3009 { { MNEM, ' ', OP (SIMM24), 0 } },
3010 & ifmt_bgt32r, { 0x68 }
3015 { { MNEM, ' ', OP (SIMM8), 0 } },
3016 & ifmt_bgte16r, { 0x70 }
3021 { { MNEM, ' ', OP (SIMM24), 0 } },
3022 & ifmt_bgte32r, { 0x78 }
3027 { { MNEM, ' ', OP (SIMM8), 0 } },
3028 & ifmt_blt16r, { 0x80 }
3033 { { MNEM, ' ', OP (SIMM24), 0 } },
3034 & ifmt_blt32r, { 0x88 }
3039 { { MNEM, ' ', OP (SIMM8), 0 } },
3040 & ifmt_blte16r, { 0x90 }
3045 { { MNEM, ' ', OP (SIMM24), 0 } },
3046 & ifmt_blte32r, { 0x98 }
3051 { { MNEM, ' ', OP (SIMM8), 0 } },
3052 & ifmt_bbeq16r, { 0xa0 }
3057 { { MNEM, ' ', OP (SIMM24), 0 } },
3058 & ifmt_bbeq32r, { 0xa8 }
3063 { { MNEM, ' ', OP (SIMM8), 0 } },
3064 & ifmt_bbne16r, { 0xb0 }
3069 { { MNEM, ' ', OP (SIMM24), 0 } },
3070 & ifmt_bbne32r, { 0xb8 }
3075 { { MNEM, ' ', OP (SIMM8), 0 } },
3076 & ifmt_bblt16r, { 0xc0 }
3081 { { MNEM, ' ', OP (SIMM24), 0 } },
3082 & ifmt_bblt32r, { 0xc8 }
3087 { { MNEM, ' ', OP (SIMM8), 0 } },
3088 & ifmt_bblte16r, { 0xd0 }
3093 { { MNEM, ' ', OP (SIMM24), 0 } },
3094 & ifmt_bblte32r, { 0xd8 }
3099 { { MNEM, ' ', OP (SIMM8), 0 } },
3100 & ifmt_b16r, { 0xe0 }
3105 { { MNEM, ' ', OP (SIMM24), 0 } },
3106 & ifmt_b32r, { 0xe8 }
3111 { { MNEM, ' ', OP (SIMM8), 0 } },
3112 & ifmt_bl16r, { 0xf0 }
3117 { { MNEM, ' ', OP (SIMM24), 0 } },
3118 & ifmt_blr, { 0xf8 }
3120 /* ldrb.l $rd6,[$rn6,$direction$rm6] */
3123 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3124 & ifmt_ldrbx, { 0x9 }
3126 /* ldrb.l $rd6,[$rn6],$direction$rm6 */
3129 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3130 & ifmt_ldrbp, { 0xd }
3132 /* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
3135 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3136 & ifmt_ldrbd, { 0xc }
3138 /* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
3141 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3142 & ifmt_ldrbdpm, { 0x200000c }
3144 /* ldrb $rd,[$rn] */
3147 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3148 & ifmt_ldrbds0, { 0x4 }
3150 /* ldrb $rd6,[$rn6] */
3153 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3154 & ifmt_ldrbdl0, { 0xc }
3156 /* ldrb.l $rd6,[$rn6] */
3159 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3160 & ifmt_ldrbdl0_l, { 0xc }
3162 /* ldrh.l $rd6,[$rn6,$direction$rm6] */
3165 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3166 & ifmt_ldrhx, { 0x29 }
3168 /* ldrh.l $rd6,[$rn6],$direction$rm6 */
3171 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3172 & ifmt_ldrhp, { 0x2d }
3174 /* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
3177 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3178 & ifmt_ldrhd, { 0x2c }
3180 /* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
3183 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3184 & ifmt_ldrhdpm, { 0x200002c }
3186 /* ldrh $rd,[$rn] */
3189 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3190 & ifmt_ldrhds0, { 0x24 }
3192 /* ldrh $rd6,[$rn6] */
3195 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3196 & ifmt_ldrhdl0, { 0x2c }
3198 /* ldrh.l $rd6,[$rn6] */
3201 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3202 & ifmt_ldrhdl0_l, { 0x2c }
3204 /* ldr.l $rd6,[$rn6,$direction$rm6] */
3207 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3208 & ifmt_ldrx, { 0x49 }
3210 /* ldr.l $rd6,[$rn6],$direction$rm6 */
3213 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3214 & ifmt_ldrp, { 0x4d }
3216 /* ldr.l $rd6,[$rn6,$dpmi$disp11] */
3219 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3220 & ifmt_ldrd, { 0x4c }
3222 /* ldr.l $rd6,[$rn6],$dpmi$disp11 */
3225 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3226 & ifmt_ldrdpm, { 0x200004c }
3231 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3232 & ifmt_ldrds0, { 0x44 }
3234 /* ldr $rd6,[$rn6] */
3237 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3238 & ifmt_ldrdl0, { 0x4c }
3240 /* ldr.l $rd6,[$rn6] */
3243 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3244 & ifmt_ldrdl0_l, { 0x4c }
3246 /* ldrd.l $rd6,[$rn6,$direction$rm6] */
3249 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3250 & ifmt_ldrdx, { 0x69 }
3252 /* ldrd.l $rd6,[$rn6],$direction$rm6 */
3255 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3256 & ifmt_ldrdp, { 0x6d }
3258 /* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
3261 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3262 & ifmt_ldrdd, { 0x6c }
3264 /* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
3267 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3268 & ifmt_ldrddpm, { 0x200006c }
3270 /* ldrd $rd,[$rn] */
3273 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3274 & ifmt_ldrdds0, { 0x64 }
3276 /* ldrd $rd6,[$rn6] */
3279 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3280 & ifmt_ldrddl0, { 0x6c }
3282 /* ldrd.l $rd6,[$rn6] */
3285 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3286 & ifmt_ldrddl0_l, { 0x6c }
3288 /* testsetb.l $rd6,[$rn6,$direction$rm6] */
3291 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3292 & ifmt_testsetbt_l, { 0x200009 }
3294 /* testseth.l $rd6,[$rn6,$direction$rm6] */
3297 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3298 & ifmt_testsetht_l, { 0x200029 }
3300 /* testset.l $rd6,[$rn6,$direction$rm6] */
3303 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3304 & ifmt_testsett_l, { 0x200049 }
3306 /* strb.l $rd6,[$rn6,$direction$rm6] */
3309 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3310 & ifmt_strbx_l, { 0x19 }
3312 /* strb.l $rd6,[$rn6],$direction$rm6 */
3315 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3316 & ifmt_strbp_l, { 0x1d }
3318 /* strb.l $rd6,[$rn6,$dpmi$disp11] */
3321 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3322 & ifmt_strbd_l, { 0x1c }
3324 /* strb.l $rd6,[$rn6],$dpmi$disp11 */
3327 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3328 & ifmt_strbdpm_l, { 0x200001c }
3330 /* strb $rd,[$rn] */
3333 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3334 & ifmt_strbds0, { 0x14 }
3336 /* strb $rd6,[$rn6] */
3339 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3340 & ifmt_strbdl0, { 0x1c }
3342 /* strb.l $rd6,[$rn6] */
3345 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3346 & ifmt_strbdl0_l, { 0x1c }
3348 /* strh.l $rd6,[$rn6,$direction$rm6] */
3351 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3352 & ifmt_strhx_l, { 0x39 }
3354 /* strh.l $rd6,[$rn6],$direction$rm6 */
3357 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3358 & ifmt_strhp_l, { 0x3d }
3360 /* strh.l $rd6,[$rn6,$dpmi$disp11] */
3363 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3364 & ifmt_strhd_l, { 0x3c }
3366 /* strh.l $rd6,[$rn6],$dpmi$disp11 */
3369 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3370 & ifmt_strhdpm_l, { 0x200003c }
3372 /* strh $rd,[$rn] */
3375 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3376 & ifmt_strhds0, { 0x34 }
3378 /* strh $rd6,[$rn6] */
3381 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3382 & ifmt_strhdl0, { 0x3c }
3384 /* strh.l $rd6,[$rn6] */
3387 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3388 & ifmt_strhdl0_l, { 0x3c }
3390 /* str.l $rd6,[$rn6,$direction$rm6] */
3393 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3394 & ifmt_strx_l, { 0x59 }
3396 /* str.l $rd6,[$rn6],$direction$rm6 */
3399 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3400 & ifmt_strp_l, { 0x5d }
3402 /* str.l $rd6,[$rn6,$dpmi$disp11] */
3405 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3406 & ifmt_strd_l, { 0x5c }
3408 /* str.l $rd6,[$rn6],$dpmi$disp11 */
3411 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3412 & ifmt_strdpm_l, { 0x200005c }
3417 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3418 & ifmt_strds0, { 0x54 }
3420 /* str $rd6,[$rn6] */
3423 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3424 & ifmt_strdl0, { 0x5c }
3426 /* str.l $rd6,[$rn6] */
3429 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3430 & ifmt_strdl0_l, { 0x5c }
3432 /* strd.l $rd6,[$rn6,$direction$rm6] */
3435 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3436 & ifmt_strdx_l, { 0x79 }
3438 /* strd.l $rd6,[$rn6],$direction$rm6 */
3441 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3442 & ifmt_strdp_l, { 0x7d }
3444 /* strd.l $rd6,[$rn6,$dpmi$disp11] */
3447 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3448 & ifmt_strdd_l, { 0x7c }
3450 /* strd.l $rd6,[$rn6],$dpmi$disp11 */
3453 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3454 & ifmt_strddpm_l, { 0x200007c }
3456 /* strd $rd,[$rn] */
3459 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3460 & ifmt_strdds0, { 0x74 }
3462 /* strd $rd6,[$rn6] */
3465 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3466 & ifmt_strddl0, { 0x7c }
3468 /* strd.l $rd6,[$rn6] */
3471 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3472 & ifmt_strddl0_l, { 0x7c }
3474 /* moveq.l $rd6,$rn6 */
3477 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3478 & ifmt_cmov_lEQ, { 0x2000f }
3480 /* movne.l $rd6,$rn6 */
3483 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3484 & ifmt_cmov_lNE, { 0x2001f }
3486 /* movgtu.l $rd6,$rn6 */
3489 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3490 & ifmt_cmov_lGTU, { 0x2002f }
3492 /* movgteu.l $rd6,$rn6 */
3495 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3496 & ifmt_cmov_lGTEU, { 0x2003f }
3498 /* movlteu.l $rd6,$rn6 */
3501 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3502 & ifmt_cmov_lLTEU, { 0x2004f }
3504 /* movltu.l $rd6,$rn6 */
3507 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3508 & ifmt_cmov_lLTU, { 0x2005f }
3510 /* movgt.l $rd6,$rn6 */
3513 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3514 & ifmt_cmov_lGT, { 0x2006f }
3516 /* movgte.l $rd6,$rn6 */
3519 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3520 & ifmt_cmov_lGTE, { 0x2007f }
3522 /* movlt.l $rd6,$rn6 */
3525 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3526 & ifmt_cmov_lLT, { 0x2008f }
3528 /* movlte.l $rd6,$rn6 */
3531 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3532 & ifmt_cmov_lLTE, { 0x2009f }
3534 /* mov.l $rd6,$rn6 */
3537 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3538 & ifmt_cmov_lB, { 0x200ef }
3540 /* movbeq.l $rd6,$rn6 */
3543 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3544 & ifmt_cmov_lBEQ, { 0x200af }
3546 /* movbne.l $rd6,$rn6 */
3549 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3550 & ifmt_cmov_lBNE, { 0x200bf }
3552 /* movblt.l $rd6,$rn6 */
3555 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3556 & ifmt_cmov_lBLT, { 0x200cf }
3558 /* movblte.l $rd6,$rn6 */
3561 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3562 & ifmt_cmov_lBLTE, { 0x200df }
3564 /* movts.l $sn6,$rd6 */
3567 { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
3568 & ifmt_movts_l6, { 0x2010f }
3570 /* movts.l $sndma,$rd6 */
3573 { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
3574 & ifmt_movts_ldma, { 0x12010f }
3576 /* movts.l $snmem,$rd6 */
3579 { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
3580 & ifmt_movts_lmem, { 0x22010f }
3582 /* movts.l $snmesh,$rd6 */
3585 { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
3586 & ifmt_movts_lmesh, { 0x32010f }
3588 /* movfs.l $rd6,$sn6 */
3591 { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
3592 & ifmt_movfs_l6, { 0x2011f }
3594 /* movfs.l $rd6,$sndma */
3597 { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
3598 & ifmt_movfs_ldma, { 0x12011f }
3600 /* movfs.l $rd6,$snmem */
3603 { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
3604 & ifmt_movfs_lmem, { 0x22011f }
3606 /* movfs.l $rd6,$snmesh */
3609 { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
3610 & ifmt_movfs_lmesh, { 0x32011f }
3612 /* add.l $rd6,$rn6,$rm6 */
3615 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3616 & ifmt_add_l, { 0xa001f }
3618 /* sub.l $rd6,$rn6,$rm6 */
3621 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3622 & ifmt_sub_l, { 0xa003f }
3624 /* and.l $rd6,$rn6,$rm6 */
3627 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3628 & ifmt_and_l, { 0xa005f }
3630 /* orr.l $rd6,$rn6,$rm6 */
3633 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3634 & ifmt_orr_l, { 0xa007f }
3636 /* eor.l $rd6,$rn6,$rm6 */
3639 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3640 & ifmt_eor_l, { 0xa000f }
3642 /* add $rd,$rn,$simm3 */
3645 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
3646 & ifmt_addir, { 0x13 }
3648 /* add $rd6,$rn6,$simm11 */
3651 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3652 & ifmt_addi32r, { 0x1b }
3654 /* add $rd6,$rn6,$simm11 */
3657 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3658 & ifmt_addi32m, { 0x1b }
3660 /* sub $rd,$rn,$simm3 */
3663 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
3664 & ifmt_subir, { 0x33 }
3666 /* sub $rd6,$rn6,$simm11 */
3669 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3670 & ifmt_subi32r, { 0x3b }
3672 /* sub $rd6,$rn6,$simm11 */
3675 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3676 & ifmt_subi32m, { 0x3b }
3678 /* asr.l $rd6,$rn6,$rm6 */
3681 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3682 & ifmt_asr_l, { 0xa006f }
3684 /* lsr.l $rd6,$rn6,$rm6 */
3687 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3688 & ifmt_lsr_l, { 0xa004f }
3690 /* lsl.l $rd6,$rn6,$rm6 */
3693 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3694 & ifmt_lsl_l, { 0xa002f }
3696 /* lsr.l $rd6,$rn6,$shift */
3699 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3700 & ifmt_lsri32_l, { 0x6000f }
3702 /* lsl.l $rd6,$rn6,$shift */
3705 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3706 & ifmt_lsli32_l, { 0x6001f }
3708 /* asr.l $rd6,$rn6,$shift */
3711 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3712 & ifmt_asri32_l, { 0xe000f }
3714 /* bitr.l $rd6,$rn6 */
3717 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3718 & ifmt_bitrl, { 0xe001f }
3720 /* fext.l $rd6,$rn6,$rm6 */
3723 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3724 & ifmt_fext_l, { 0x1a000f }
3726 /* fdep.l $rd6,$rn6,$rm6 */
3729 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3730 & ifmt_fdep_l, { 0x1a001f }
3732 /* lfsr.l $rd6,$rn6,$rm6 */
3735 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3736 & ifmt_lfsr_l, { 0x1a002f }
3741 { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
3742 & ifmt_mov8r, { 0x3 }
3744 /* mov $rd6,$imm16 */
3747 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
3748 & ifmt_mov16r, { 0x2000b }
3750 /* movt.l $rd6,$imm16 */
3753 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
3754 & ifmt_movtl, { 0x1002000b }
3756 /* iadd $rd,$rn,$rm */
3759 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3760 & ifmt_i_addf16, { 0x7 }
3762 /* fadd.l $rd6,$rn6,$rm6 */
3765 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3766 & ifmt_f_addf32_l, { 0x7000f }
3768 /* iadd $rd6,$rn6,$rm6 */
3771 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3772 & ifmt_i_addf32, { 0x7000f }
3774 /* iadd.l $rd6,$rn6,$rm6 */
3777 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3778 & ifmt_i_addf32_l, { 0x7000f }
3780 /* isub $rd,$rn,$rm */
3783 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3784 & ifmt_i_subf16, { 0x17 }
3786 /* fsub.l $rd6,$rn6,$rm6 */
3789 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3790 & ifmt_f_subf32_l, { 0x7001f }
3792 /* isub $rd6,$rn6,$rm6 */
3795 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3796 & ifmt_i_subf32, { 0x7001f }
3798 /* isub.l $rd6,$rn6,$rm6 */
3801 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3802 & ifmt_i_subf32_l, { 0x7001f }
3804 /* imul $rd,$rn,$rm */
3807 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3808 & ifmt_i_mulf16, { 0x27 }
3810 /* fmul.l $rd6,$rn6,$rm6 */
3813 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3814 & ifmt_f_mulf32_l, { 0x7002f }
3816 /* imul $rd6,$rn6,$rm6 */
3819 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3820 & ifmt_i_mulf32, { 0x7002f }
3822 /* imul.l $rd6,$rn6,$rm6 */
3825 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3826 & ifmt_i_mulf32_l, { 0x7002f }
3828 /* imadd $rd,$rn,$rm */
3831 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3832 & ifmt_i_maddf16, { 0x37 }
3834 /* fmadd.l $rd6,$rn6,$rm6 */
3837 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3838 & ifmt_f_maddf32_l, { 0x7003f }
3840 /* imadd $rd6,$rn6,$rm6 */
3843 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3844 & ifmt_i_maddf32, { 0x7003f }
3846 /* imadd.l $rd6,$rn6,$rm6 */
3849 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3850 & ifmt_i_maddf32_l, { 0x7003f }
3852 /* imsub $rd,$rn,$rm */
3855 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3856 & ifmt_i_msubf16, { 0x47 }
3858 /* fmsub.l $rd6,$rn6,$rm6 */
3861 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3862 & ifmt_f_msubf32_l, { 0x7004f }
3864 /* imsub $rd6,$rn6,$rm6 */
3867 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3868 & ifmt_i_msubf32, { 0x7004f }
3870 /* imsub.l $rd6,$rn6,$rm6 */
3873 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3874 & ifmt_i_msubf32_l, { 0x7004f }
3876 /* fabs.l $rd6,$rn6 */
3879 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3880 & ifmt_f_absf32_l, { 0x7007f }
3882 /* float.l $rd6,$rn6 */
3885 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3886 & ifmt_f_loatf32_l, { 0x7005f }
3888 /* fix.l $rd6,$rn6 */
3891 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3892 & ifmt_f_ixf32_l, { 0x7006f }
3894 /* frecip.l $frd6,$frn6 */
3897 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
3898 & ifmt_f_recipf32_l, { 0x17000f }
3900 /* fsqrt.l $frd6,$frn6 */
3903 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
3904 & ifmt_f_sqrtf32_l, { 0x17001f }
3913 #ifndef CGEN_ASM_HASH_P
3914 #define CGEN_ASM_HASH_P(insn) 1
3917 #ifndef CGEN_DIS_HASH_P
3918 #define CGEN_DIS_HASH_P(insn) 1
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. */
3925 asm_hash_insn_p (insn)
3926 const CGEN_INSN *insn ATTRIBUTE_UNUSED;
3928 return CGEN_ASM_HASH_P (insn);
3932 dis_hash_insn_p (insn)
3933 const CGEN_INSN *insn;
3935 /* If building the hash table and the NO-DIS attribute is present,
3937 if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
3939 return CGEN_DIS_HASH_P (insn);
3942 #ifndef CGEN_ASM_HASH
3943 #define CGEN_ASM_HASH_SIZE 127
3944 #ifdef CGEN_MNEMONIC_OPERANDS
3945 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
3947 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
3951 /* It doesn't make much sense to provide a default here,
3952 but while this is under development we do.
3953 BUFFER is a pointer to the bytes of the insn, target order.
3954 VALUE is the first base_insn_bitsize bits as an int in host order. */
3956 #ifndef CGEN_DIS_HASH
3957 #define CGEN_DIS_HASH_SIZE 256
3958 #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
3961 /* The result is the hash value of the insn.
3962 Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
3965 asm_hash_insn (mnem)
3968 return CGEN_ASM_HASH (mnem);
3971 /* BUF is a pointer to the bytes of the insn, target order.
3972 VALUE is the first base_insn_bitsize bits as an int in host order. */
3975 dis_hash_insn (buf, value)
3976 const char * buf ATTRIBUTE_UNUSED;
3977 CGEN_INSN_INT value ATTRIBUTE_UNUSED;
3979 return CGEN_DIS_HASH (buf, value);
3982 /* Set the recorded length of the insn in the CGEN_FIELDS struct. */
3985 set_fields_bitsize (CGEN_FIELDS *fields, int size)
3987 CGEN_FIELDS_BITSIZE (fields) = size;
3990 /* Function to call before using the operand instance table.
3991 This plugs the opcode entries and macro instructions into the cpu table. */
3994 epiphany_cgen_init_opcode_table (CGEN_CPU_DESC cd)
3997 int num_macros = (sizeof (epiphany_cgen_macro_insn_table) /
3998 sizeof (epiphany_cgen_macro_insn_table[0]));
3999 const CGEN_IBASE *ib = & epiphany_cgen_macro_insn_table[0];
4000 const CGEN_OPCODE *oc = & epiphany_cgen_macro_insn_opcode_table[0];
4001 CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
4003 /* This test has been added to avoid a warning generated
4004 if memset is called with a third argument of value zero. */
4005 if (num_macros >= 1)
4006 memset (insns, 0, num_macros * sizeof (CGEN_INSN));
4007 for (i = 0; i < num_macros; ++i)
4009 insns[i].base = &ib[i];
4010 insns[i].opcode = &oc[i];
4011 epiphany_cgen_build_insn_regex (& insns[i]);
4013 cd->macro_insn_table.init_entries = insns;
4014 cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
4015 cd->macro_insn_table.num_init_entries = num_macros;
4017 oc = & epiphany_cgen_insn_opcode_table[0];
4018 insns = (CGEN_INSN *) cd->insn_table.init_entries;
4019 for (i = 0; i < MAX_INSNS; ++i)
4021 insns[i].opcode = &oc[i];
4022 epiphany_cgen_build_insn_regex (& insns[i]);
4025 cd->sizeof_fields = sizeof (CGEN_FIELDS);
4026 cd->set_fields_bitsize = set_fields_bitsize;
4028 cd->asm_hash_p = asm_hash_insn_p;
4029 cd->asm_hash = asm_hash_insn;
4030 cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
4032 cd->dis_hash_p = dis_hash_insn_p;
4033 cd->dis_hash = dis_hash_insn;
4034 cd->dis_hash_size = CGEN_DIS_HASH_SIZE;