1 /* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */
2 /* Instruction opcode table for epiphany.
4 THIS FILE IS MACHINE GENERATED WITH CGEN.
6 Copyright (C) 1996-2018 Free Software Foundation, Inc.
8 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
10 This file is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3, or (at your option)
15 It is distributed in the hope that it will be useful, but WITHOUT
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
17 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
18 License for more details.
20 You should have received a copy of the GNU General Public License along
21 with this program; if not, write to the Free Software Foundation, Inc.,
22 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
30 #include "epiphany-desc.h"
31 #include "epiphany-opc.h"
32 #include "libiberty.h"
39 /* The hash functions are recorded here to help keep assembler code out of
40 the disassembler and vice versa. */
42 static int asm_hash_insn_p (const CGEN_INSN *);
43 static unsigned int asm_hash_insn (const char *);
44 static int dis_hash_insn_p (const CGEN_INSN *);
45 static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
47 /* Instruction formats. */
49 #define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
50 static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
54 static const CGEN_IFMT ifmt_beq16 ATTRIBUTE_UNUSED = {
55 16, 16, 0xff, { { F (F_SIMM8) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
58 static const CGEN_IFMT ifmt_beq ATTRIBUTE_UNUSED = {
59 32, 32, 0xff, { { F (F_SIMM24) }, { F (F_CONDCODE) }, { F (F_OPC) }, { 0 } }
62 static const CGEN_IFMT ifmt_jr16 ATTRIBUTE_UNUSED = {
63 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 } }
66 static const CGEN_IFMT ifmt_rts ATTRIBUTE_UNUSED = {
67 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 } }
70 static const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
71 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 } }
74 static const CGEN_IFMT ifmt_ldrbx16_s ATTRIBUTE_UNUSED = {
75 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
78 static const CGEN_IFMT ifmt_ldrbx_l ATTRIBUTE_UNUSED = {
79 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 } }
82 static const CGEN_IFMT ifmt_ldrbp_l ATTRIBUTE_UNUSED = {
83 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 } }
86 static const CGEN_IFMT ifmt_ldrbd16_s ATTRIBUTE_UNUSED = {
87 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_OPC) }, { 0 } }
90 static const CGEN_IFMT ifmt_ldrbd_l ATTRIBUTE_UNUSED = {
91 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 } }
94 static const CGEN_IFMT ifmt_cmov16EQ ATTRIBUTE_UNUSED = {
95 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 } }
98 static const CGEN_IFMT ifmt_cmovEQ ATTRIBUTE_UNUSED = {
99 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 } }
102 static const CGEN_IFMT ifmt_movts16 ATTRIBUTE_UNUSED = {
103 16, 16, 0x3ff, { { F (F_RD) }, { F (F_SN) }, { F (F_DC_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
106 static const CGEN_IFMT ifmt_movts6 ATTRIBUTE_UNUSED = {
107 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 } }
110 static const CGEN_IFMT ifmt_movtsdma ATTRIBUTE_UNUSED = {
111 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 } }
114 static const CGEN_IFMT ifmt_movtsmem ATTRIBUTE_UNUSED = {
115 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 } }
118 static const CGEN_IFMT ifmt_movtsmesh ATTRIBUTE_UNUSED = {
119 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 } }
122 static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
123 16, 16, 0xffff, { { F (F_DC_15_7) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
126 static const CGEN_IFMT ifmt_unimpl ATTRIBUTE_UNUSED = {
127 32, 32, 0xffffffff, { { F (F_OPC_31_32) }, { 0 } }
130 static const CGEN_IFMT ifmt_gien ATTRIBUTE_UNUSED = {
131 16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_GIEN_GIDIS_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
134 static const CGEN_IFMT ifmt_swi_num ATTRIBUTE_UNUSED = {
135 16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
138 static const CGEN_IFMT ifmt_swi ATTRIBUTE_UNUSED = {
139 16, 16, 0xffff, { { F (F_DC_15_6) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
142 static const CGEN_IFMT ifmt_trap16 ATTRIBUTE_UNUSED = {
143 16, 16, 0x3ff, { { F (F_TRAP_NUM) }, { F (F_TRAP_SWI_9_1) }, { F (F_OPC_8_5) }, { F (F_OPC) }, { 0 } }
146 static const CGEN_IFMT ifmt_add16 ATTRIBUTE_UNUSED = {
147 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
150 static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
151 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 } }
154 static const CGEN_IFMT ifmt_addi16 ATTRIBUTE_UNUSED = {
155 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
158 static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
159 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 } }
162 static const CGEN_IFMT ifmt_lsri16 ATTRIBUTE_UNUSED = {
163 16, 16, 0x1f, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
166 static const CGEN_IFMT ifmt_lsri32 ATTRIBUTE_UNUSED = {
167 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 } }
170 static const CGEN_IFMT ifmt_bitr16 ATTRIBUTE_UNUSED = {
171 16, 16, 0x3ff, { { F (F_RD) }, { F (F_RN) }, { F (F_SHIFT) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
174 static const CGEN_IFMT ifmt_bitr ATTRIBUTE_UNUSED = {
175 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 } }
178 static const CGEN_IFMT ifmt_fext ATTRIBUTE_UNUSED = {
179 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 } }
182 static const CGEN_IFMT ifmt_mov8 ATTRIBUTE_UNUSED = {
183 16, 16, 0x1f, { { F (F_RD) }, { F (F_IMM8) }, { F (F_OPC_4_1) }, { F (F_OPC) }, { 0 } }
186 static const CGEN_IFMT ifmt_mov16 ATTRIBUTE_UNUSED = {
187 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 } }
190 static const CGEN_IFMT ifmt_f_absf16 ATTRIBUTE_UNUSED = {
191 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
194 static const CGEN_IFMT ifmt_f_absf32 ATTRIBUTE_UNUSED = {
195 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 } }
198 static const CGEN_IFMT ifmt_f_loatf16 ATTRIBUTE_UNUSED = {
199 16, 16, 0x7f, { { F (F_RD) }, { F (F_RN) }, { F (F_RN) }, { F (F_OPC_6_3) }, { F (F_OPC) }, { 0 } }
202 static const CGEN_IFMT ifmt_f_recipf32 ATTRIBUTE_UNUSED = {
203 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 } }
208 #define A(a) (1 << CGEN_INSN_##a)
209 #define OPERAND(op) EPIPHANY_OPERAND_##op
210 #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
211 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
213 /* The instruction table. */
215 static const CGEN_OPCODE epiphany_cgen_insn_opcode_table[MAX_INSNS] =
217 /* Special null first entry.
218 A `num' value of zero is thus invalid.
219 Also, the special `invalid' insn resides here. */
220 { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
224 { { MNEM, ' ', OP (SIMM8), 0 } },
225 & ifmt_beq16, { 0x0 }
230 { { MNEM, ' ', OP (SIMM24), 0 } },
236 { { MNEM, ' ', OP (SIMM8), 0 } },
237 & ifmt_beq16, { 0x10 }
242 { { MNEM, ' ', OP (SIMM24), 0 } },
248 { { MNEM, ' ', OP (SIMM8), 0 } },
249 & ifmt_beq16, { 0x20 }
254 { { MNEM, ' ', OP (SIMM24), 0 } },
260 { { MNEM, ' ', OP (SIMM8), 0 } },
261 & ifmt_beq16, { 0x30 }
263 /* bgteu.l $simm24 */
266 { { MNEM, ' ', OP (SIMM24), 0 } },
272 { { MNEM, ' ', OP (SIMM8), 0 } },
273 & ifmt_beq16, { 0x40 }
275 /* blteu.l $simm24 */
278 { { MNEM, ' ', OP (SIMM24), 0 } },
284 { { MNEM, ' ', OP (SIMM8), 0 } },
285 & ifmt_beq16, { 0x50 }
290 { { MNEM, ' ', OP (SIMM24), 0 } },
296 { { MNEM, ' ', OP (SIMM8), 0 } },
297 & ifmt_beq16, { 0x60 }
302 { { MNEM, ' ', OP (SIMM24), 0 } },
308 { { MNEM, ' ', OP (SIMM8), 0 } },
309 & ifmt_beq16, { 0x70 }
314 { { MNEM, ' ', OP (SIMM24), 0 } },
320 { { MNEM, ' ', OP (SIMM8), 0 } },
321 & ifmt_beq16, { 0x80 }
326 { { MNEM, ' ', OP (SIMM24), 0 } },
332 { { MNEM, ' ', OP (SIMM8), 0 } },
333 & ifmt_beq16, { 0x90 }
338 { { MNEM, ' ', OP (SIMM24), 0 } },
344 { { MNEM, ' ', OP (SIMM8), 0 } },
345 & ifmt_beq16, { 0xa0 }
350 { { MNEM, ' ', OP (SIMM24), 0 } },
356 { { MNEM, ' ', OP (SIMM8), 0 } },
357 & ifmt_beq16, { 0xb0 }
362 { { MNEM, ' ', OP (SIMM24), 0 } },
368 { { MNEM, ' ', OP (SIMM8), 0 } },
369 & ifmt_beq16, { 0xc0 }
374 { { MNEM, ' ', OP (SIMM24), 0 } },
380 { { MNEM, ' ', OP (SIMM8), 0 } },
381 & ifmt_beq16, { 0xd0 }
383 /* bblte.l $simm24 */
386 { { MNEM, ' ', OP (SIMM24), 0 } },
392 { { MNEM, ' ', OP (SIMM8), 0 } },
393 & ifmt_beq16, { 0xe0 }
398 { { MNEM, ' ', OP (SIMM24), 0 } },
404 { { MNEM, ' ', OP (SIMM8), 0 } },
405 & ifmt_beq16, { 0xf0 }
410 { { MNEM, ' ', OP (SIMM24), 0 } },
416 { { MNEM, ' ', OP (RN), 0 } },
417 & ifmt_jr16, { 0x142 }
423 & ifmt_rts, { 0x402194f }
428 { { MNEM, ' ', OP (RN6), 0 } },
429 & ifmt_jr, { 0x2014f }
434 { { MNEM, ' ', OP (RN), 0 } },
435 & ifmt_jr16, { 0x152 }
440 { { MNEM, ' ', OP (RN6), 0 } },
441 & ifmt_jr, { 0x2015f }
443 /* ldrb $rd,[$rn,$rm] */
446 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
447 & ifmt_ldrbx16_s, { 0x1 }
449 /* ldrb $rd,[$rn],$rm */
452 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
453 & ifmt_ldrbx16_s, { 0x5 }
455 /* ldrb $rd6,[$rn6,$direction$rm6] */
458 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
459 & ifmt_ldrbx_l, { 0x9 }
461 /* ldrb $rd6,[$rn6],$direction$rm6 */
464 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
465 & ifmt_ldrbp_l, { 0xd }
467 /* ldrb $rd,[$rn,$disp3] */
470 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
471 & ifmt_ldrbd16_s, { 0x4 }
473 /* ldrb $rd6,[$rn6,$dpmi$disp11] */
476 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
477 & ifmt_ldrbd_l, { 0xc }
479 /* ldrb $rd6,[$rn6],$dpmi$disp11 */
482 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
483 & ifmt_ldrbd_l, { 0x200000c }
485 /* ldrh $rd,[$rn,$rm] */
488 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
489 & ifmt_ldrbx16_s, { 0x21 }
491 /* ldrh $rd,[$rn],$rm */
494 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
495 & ifmt_ldrbx16_s, { 0x25 }
497 /* ldrh $rd6,[$rn6,$direction$rm6] */
500 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
501 & ifmt_ldrbx_l, { 0x29 }
503 /* ldrh $rd6,[$rn6],$direction$rm6 */
506 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
507 & ifmt_ldrbp_l, { 0x2d }
509 /* ldrh $rd,[$rn,$disp3] */
512 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
513 & ifmt_ldrbd16_s, { 0x24 }
515 /* ldrh $rd6,[$rn6,$dpmi$disp11] */
518 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
519 & ifmt_ldrbd_l, { 0x2c }
521 /* ldrh $rd6,[$rn6],$dpmi$disp11 */
524 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
525 & ifmt_ldrbd_l, { 0x200002c }
527 /* ldr $rd,[$rn,$rm] */
530 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
531 & ifmt_ldrbx16_s, { 0x41 }
533 /* ldr $rd,[$rn],$rm */
536 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
537 & ifmt_ldrbx16_s, { 0x45 }
539 /* ldr $rd6,[$rn6,$direction$rm6] */
542 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
543 & ifmt_ldrbx_l, { 0x49 }
545 /* ldr $rd6,[$rn6],$direction$rm6 */
548 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
549 & ifmt_ldrbp_l, { 0x4d }
551 /* ldr $rd,[$rn,$disp3] */
554 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
555 & ifmt_ldrbd16_s, { 0x44 }
557 /* ldr $rd6,[$rn6,$dpmi$disp11] */
560 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
561 & ifmt_ldrbd_l, { 0x4c }
563 /* ldr $rd6,[$rn6],$dpmi$disp11 */
566 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
567 & ifmt_ldrbd_l, { 0x200004c }
569 /* ldrd $rd,[$rn,$rm] */
572 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
573 & ifmt_ldrbx16_s, { 0x61 }
575 /* ldrd $rd,[$rn],$rm */
578 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
579 & ifmt_ldrbx16_s, { 0x65 }
581 /* ldrd $rd6,[$rn6,$direction$rm6] */
584 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
585 & ifmt_ldrbx_l, { 0x69 }
587 /* ldrd $rd6,[$rn6],$direction$rm6 */
590 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
591 & ifmt_ldrbp_l, { 0x6d }
593 /* ldrd $rd,[$rn,$disp3] */
596 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
597 & ifmt_ldrbd16_s, { 0x64 }
599 /* ldrd $rd6,[$rn6,$dpmi$disp11] */
602 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
603 & ifmt_ldrbd_l, { 0x6c }
605 /* ldrd $rd6,[$rn6],$dpmi$disp11 */
608 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
609 & ifmt_ldrbd_l, { 0x200006c }
611 /* testsetb $rd6,[$rn6,$direction$rm6] */
614 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
615 & ifmt_ldrbx_l, { 0x200009 }
617 /* testseth $rd6,[$rn6,$direction$rm6] */
620 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
621 & ifmt_ldrbx_l, { 0x200029 }
623 /* testset $rd6,[$rn6,$direction$rm6] */
626 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
627 & ifmt_ldrbx_l, { 0x200049 }
629 /* strb $rd,[$rn,$rm] */
632 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
633 & ifmt_ldrbx16_s, { 0x11 }
635 /* strb $rd6,[$rn6,$direction$rm6] */
638 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
639 & ifmt_ldrbx_l, { 0x19 }
641 /* strb $rd,[$rn],$rm */
644 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
645 & ifmt_ldrbx16_s, { 0x15 }
647 /* strb $rd6,[$rn6],$direction$rm6 */
650 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
651 & ifmt_ldrbp_l, { 0x1d }
653 /* strb $rd,[$rn,$disp3] */
656 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
657 & ifmt_ldrbd16_s, { 0x14 }
659 /* strb $rd6,[$rn6,$dpmi$disp11] */
662 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
663 & ifmt_ldrbd_l, { 0x1c }
665 /* strb $rd6,[$rn6],$dpmi$disp11 */
668 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
669 & ifmt_ldrbd_l, { 0x200001c }
671 /* strh $rd,[$rn,$rm] */
674 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
675 & ifmt_ldrbx16_s, { 0x31 }
677 /* strh $rd6,[$rn6,$direction$rm6] */
680 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
681 & ifmt_ldrbx_l, { 0x39 }
683 /* strh $rd,[$rn],$rm */
686 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
687 & ifmt_ldrbx16_s, { 0x35 }
689 /* strh $rd6,[$rn6],$direction$rm6 */
692 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
693 & ifmt_ldrbp_l, { 0x3d }
695 /* strh $rd,[$rn,$disp3] */
698 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
699 & ifmt_ldrbd16_s, { 0x34 }
701 /* strh $rd6,[$rn6,$dpmi$disp11] */
704 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
705 & ifmt_ldrbd_l, { 0x3c }
707 /* strh $rd6,[$rn6],$dpmi$disp11 */
710 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
711 & ifmt_ldrbd_l, { 0x200003c }
713 /* str $rd,[$rn,$rm] */
716 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
717 & ifmt_ldrbx16_s, { 0x51 }
719 /* str $rd6,[$rn6,$direction$rm6] */
722 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
723 & ifmt_ldrbx_l, { 0x59 }
725 /* str $rd,[$rn],$rm */
728 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
729 & ifmt_ldrbx16_s, { 0x55 }
731 /* str $rd6,[$rn6],$direction$rm6 */
734 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
735 & ifmt_ldrbp_l, { 0x5d }
737 /* str $rd,[$rn,$disp3] */
740 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
741 & ifmt_ldrbd16_s, { 0x54 }
743 /* str $rd6,[$rn6,$dpmi$disp11] */
746 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
747 & ifmt_ldrbd_l, { 0x5c }
749 /* str $rd6,[$rn6],$dpmi$disp11 */
752 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
753 & ifmt_ldrbd_l, { 0x200005c }
755 /* strd $rd,[$rn,$rm] */
758 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (RM), ']', 0 } },
759 & ifmt_ldrbx16_s, { 0x71 }
761 /* strd $rd6,[$rn6,$direction$rm6] */
764 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
765 & ifmt_ldrbx_l, { 0x79 }
767 /* strd $rd,[$rn],$rm */
770 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', ',', OP (RM), 0 } },
771 & ifmt_ldrbx16_s, { 0x75 }
773 /* strd $rd6,[$rn6],$direction$rm6 */
776 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
777 & ifmt_ldrbp_l, { 0x7d }
779 /* strd $rd,[$rn,$disp3] */
782 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ',', OP (DISP3), ']', 0 } },
783 & ifmt_ldrbd16_s, { 0x74 }
785 /* strd $rd6,[$rn6,$dpmi$disp11] */
788 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
789 & ifmt_ldrbd_l, { 0x7c }
791 /* strd $rd6,[$rn6],$dpmi$disp11 */
794 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
795 & ifmt_ldrbd_l, { 0x200007c }
800 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
801 & ifmt_cmov16EQ, { 0x2 }
803 /* moveq $rd6,$rn6 */
806 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
807 & ifmt_cmovEQ, { 0x2000f }
812 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
813 & ifmt_cmov16EQ, { 0x12 }
815 /* movne $rd6,$rn6 */
818 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
819 & ifmt_cmovEQ, { 0x2001f }
824 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
825 & ifmt_cmov16EQ, { 0x22 }
827 /* movgtu $rd6,$rn6 */
830 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
831 & ifmt_cmovEQ, { 0x2002f }
833 /* movgteu $rd,$rn */
836 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
837 & ifmt_cmov16EQ, { 0x32 }
839 /* movgteu $rd6,$rn6 */
842 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
843 & ifmt_cmovEQ, { 0x2003f }
845 /* movlteu $rd,$rn */
848 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
849 & ifmt_cmov16EQ, { 0x42 }
851 /* movlteu $rd6,$rn6 */
854 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
855 & ifmt_cmovEQ, { 0x2004f }
860 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
861 & ifmt_cmov16EQ, { 0x52 }
863 /* movltu $rd6,$rn6 */
866 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
867 & ifmt_cmovEQ, { 0x2005f }
872 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
873 & ifmt_cmov16EQ, { 0x62 }
875 /* movgt $rd6,$rn6 */
878 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
879 & ifmt_cmovEQ, { 0x2006f }
884 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
885 & ifmt_cmov16EQ, { 0x72 }
887 /* movgte $rd6,$rn6 */
890 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
891 & ifmt_cmovEQ, { 0x2007f }
896 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
897 & ifmt_cmov16EQ, { 0x82 }
899 /* movlt $rd6,$rn6 */
902 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
903 & ifmt_cmovEQ, { 0x2008f }
908 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
909 & ifmt_cmov16EQ, { 0x92 }
911 /* movlte $rd6,$rn6 */
914 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
915 & ifmt_cmovEQ, { 0x2009f }
920 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
921 & ifmt_cmov16EQ, { 0xe2 }
926 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
927 & ifmt_cmovEQ, { 0x200ef }
932 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
933 & ifmt_cmov16EQ, { 0xa2 }
935 /* movbeq $rd6,$rn6 */
938 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
939 & ifmt_cmovEQ, { 0x200af }
944 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
945 & ifmt_cmov16EQ, { 0xb2 }
947 /* movbne $rd6,$rn6 */
950 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
951 & ifmt_cmovEQ, { 0x200bf }
956 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
957 & ifmt_cmov16EQ, { 0xc2 }
959 /* movblt $rd6,$rn6 */
962 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
963 & ifmt_cmovEQ, { 0x200cf }
965 /* movblte $rd,$rn */
968 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
969 & ifmt_cmov16EQ, { 0xd2 }
971 /* movblte $rd6,$rn6 */
974 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
975 & ifmt_cmovEQ, { 0x200df }
980 { { MNEM, ' ', OP (SN), ',', OP (RD), 0 } },
981 & ifmt_movts16, { 0x102 }
983 /* movts $sn6,$rd6 */
986 { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
987 & ifmt_movts6, { 0x2010f }
989 /* movts $sndma,$rd6 */
992 { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
993 & ifmt_movtsdma, { 0x12010f }
995 /* movts $snmem,$rd6 */
998 { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
999 & ifmt_movtsmem, { 0x22010f }
1001 /* movts $snmesh,$rd6 */
1004 { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
1005 & ifmt_movtsmesh, { 0x32010f }
1010 { { MNEM, ' ', OP (RD), ',', OP (SN), 0 } },
1011 & ifmt_movts16, { 0x112 }
1013 /* movfs $rd6,$sn6 */
1016 { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
1017 & ifmt_movts6, { 0x2011f }
1019 /* movfs $rd6,$sndma */
1022 { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
1023 & ifmt_movtsdma, { 0x12011f }
1025 /* movfs $rd6,$snmem */
1028 { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
1029 & ifmt_movtsmem, { 0x22011f }
1031 /* movfs $rd6,$snmesh */
1034 { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
1035 & ifmt_movtsmesh, { 0x32011f }
1041 & ifmt_nop, { 0x1a2 }
1047 & ifmt_nop, { 0x3a2 }
1053 & ifmt_unimpl, { 0xf000f }
1059 & ifmt_nop, { 0x1b2 }
1065 & ifmt_nop, { 0x1c2 }
1071 & ifmt_nop, { 0x3c2 }
1077 & ifmt_nop, { 0x1d2 }
1083 & ifmt_nop, { 0x182 }
1089 & ifmt_nop, { 0x1f2 }
1095 & ifmt_gien, { 0x192 }
1101 & ifmt_gien, { 0x392 }
1106 { { MNEM, ' ', OP (SWI_NUM), 0 } },
1107 & ifmt_swi_num, { 0x1e2 }
1113 & ifmt_swi, { 0x1e2 }
1115 /* trap $trapnum6 */
1118 { { MNEM, ' ', OP (TRAPNUM6), 0 } },
1119 & ifmt_trap16, { 0x3e2 }
1121 /* add $rd,$rn,$rm */
1124 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1125 & ifmt_add16, { 0x1a }
1127 /* add $rd6,$rn6,$rm6 */
1130 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1131 & ifmt_add, { 0xa001f }
1133 /* sub $rd,$rn,$rm */
1136 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1137 & ifmt_add16, { 0x3a }
1139 /* sub $rd6,$rn6,$rm6 */
1142 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1143 & ifmt_add, { 0xa003f }
1145 /* and $rd,$rn,$rm */
1148 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1149 & ifmt_add16, { 0x5a }
1151 /* and $rd6,$rn6,$rm6 */
1154 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1155 & ifmt_add, { 0xa005f }
1157 /* orr $rd,$rn,$rm */
1160 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1161 & ifmt_add16, { 0x7a }
1163 /* orr $rd6,$rn6,$rm6 */
1166 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1167 & ifmt_add, { 0xa007f }
1169 /* eor $rd,$rn,$rm */
1172 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1173 & ifmt_add16, { 0xa }
1175 /* eor $rd6,$rn6,$rm6 */
1178 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1179 & ifmt_add, { 0xa000f }
1181 /* add.s $rd,$rn,$simm3 */
1184 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
1185 & ifmt_addi16, { 0x13 }
1187 /* add.l $rd6,$rn6,$simm11 */
1190 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
1191 & ifmt_addi, { 0x1b }
1193 /* sub.s $rd,$rn,$simm3 */
1196 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
1197 & ifmt_addi16, { 0x33 }
1199 /* sub.l $rd6,$rn6,$simm11 */
1202 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
1203 & ifmt_addi, { 0x3b }
1205 /* asr $rd,$rn,$rm */
1208 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1209 & ifmt_add16, { 0x6a }
1211 /* asr $rd6,$rn6,$rm6 */
1214 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1215 & ifmt_add, { 0xa006f }
1217 /* lsr $rd,$rn,$rm */
1220 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1221 & ifmt_add16, { 0x4a }
1223 /* lsr $rd6,$rn6,$rm6 */
1226 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1227 & ifmt_add, { 0xa004f }
1229 /* lsl $rd,$rn,$rm */
1232 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1233 & ifmt_add16, { 0x2a }
1235 /* lsl $rd6,$rn6,$rm6 */
1238 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1239 & ifmt_add, { 0xa002f }
1241 /* lsr $rd,$rn,$shift */
1244 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1245 & ifmt_lsri16, { 0x6 }
1247 /* lsr $rd6,$rn6,$shift */
1250 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1251 & ifmt_lsri32, { 0x6000f }
1253 /* lsl $rd,$rn,$shift */
1256 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1257 & ifmt_lsri16, { 0x16 }
1259 /* lsl $rd6,$rn6,$shift */
1262 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1263 & ifmt_lsri32, { 0x6001f }
1265 /* asr $rd,$rn,$shift */
1268 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SHIFT), 0 } },
1269 & ifmt_lsri16, { 0xe }
1271 /* asr $rd6,$rn6,$shift */
1274 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
1275 & ifmt_lsri32, { 0xe000f }
1280 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1281 & ifmt_bitr16, { 0x1e }
1283 /* bitr $rd6,$rn6 */
1286 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1287 & ifmt_bitr, { 0xe001f }
1289 /* fext $rd6,$rn6,$rm6 */
1292 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1293 & ifmt_fext, { 0x1a000f }
1295 /* fdep $rd6,$rn6,$rm6 */
1298 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1299 & ifmt_fext, { 0x1a001f }
1301 /* lfsr $rd6,$rn6,$rm6 */
1304 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1305 & ifmt_fext, { 0x1a002f }
1307 /* mov.b $rd,$imm8 */
1310 { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
1311 & ifmt_mov8, { 0x3 }
1313 /* mov.l $rd6,$imm16 */
1316 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
1317 & ifmt_mov16, { 0x2000b }
1319 /* movt $rd6,$imm16 */
1322 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
1323 & ifmt_mov16, { 0x1002000b }
1325 /* fadd $rd,$rn,$rm */
1328 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1329 & ifmt_add16, { 0x7 }
1331 /* fadd $rd6,$rn6,$rm6 */
1334 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1335 & ifmt_add, { 0x7000f }
1337 /* fsub $rd,$rn,$rm */
1340 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1341 & ifmt_add16, { 0x17 }
1343 /* fsub $rd6,$rn6,$rm6 */
1346 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1347 & ifmt_add, { 0x7001f }
1349 /* fmul $rd,$rn,$rm */
1352 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1353 & ifmt_add16, { 0x27 }
1355 /* fmul $rd6,$rn6,$rm6 */
1358 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1359 & ifmt_add, { 0x7002f }
1361 /* fmadd $rd,$rn,$rm */
1364 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1365 & ifmt_add16, { 0x37 }
1367 /* fmadd $rd6,$rn6,$rm6 */
1370 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1371 & ifmt_add, { 0x7003f }
1373 /* fmsub $rd,$rn,$rm */
1376 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
1377 & ifmt_add16, { 0x47 }
1379 /* fmsub $rd6,$rn6,$rm6 */
1382 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
1383 & ifmt_add, { 0x7004f }
1388 { { MNEM, ' ', 'r', 'd', ',', 'r', 'n', 0 } },
1389 & ifmt_f_absf16, { 0x77 }
1391 /* fabs $rd6,$rn6 */
1394 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1395 & ifmt_f_absf32, { 0x7007f }
1400 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1401 & ifmt_f_loatf16, { 0x57 }
1403 /* float $rd6,$rn6 */
1406 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1407 & ifmt_f_absf32, { 0x7005f }
1412 { { MNEM, ' ', OP (RD), ',', OP (RN), 0 } },
1413 & ifmt_f_absf16, { 0x67 }
1418 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
1419 & ifmt_f_absf32, { 0x7006f }
1421 /* frecip $frd6,$frn6 */
1424 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
1425 & ifmt_f_recipf32, { 0x17000f }
1427 /* fsqrt $frd6,$frn6 */
1430 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
1431 & ifmt_f_recipf32, { 0x17001f }
1440 /* Formats for ALIAS macro-insns. */
1442 #define F(f) & epiphany_cgen_ifld_table[EPIPHANY_##f]
1443 static const CGEN_IFMT ifmt_beq16r ATTRIBUTE_UNUSED = {
1444 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1447 static const CGEN_IFMT ifmt_beq32r ATTRIBUTE_UNUSED = {
1448 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1451 static const CGEN_IFMT ifmt_bne16r ATTRIBUTE_UNUSED = {
1452 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1455 static const CGEN_IFMT ifmt_bne32r ATTRIBUTE_UNUSED = {
1456 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1459 static const CGEN_IFMT ifmt_bgtu16r ATTRIBUTE_UNUSED = {
1460 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1463 static const CGEN_IFMT ifmt_bgtu32r ATTRIBUTE_UNUSED = {
1464 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1467 static const CGEN_IFMT ifmt_bgteu16r ATTRIBUTE_UNUSED = {
1468 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1471 static const CGEN_IFMT ifmt_bgteu32r ATTRIBUTE_UNUSED = {
1472 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1475 static const CGEN_IFMT ifmt_blteu16r ATTRIBUTE_UNUSED = {
1476 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1479 static const CGEN_IFMT ifmt_blteu32r ATTRIBUTE_UNUSED = {
1480 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1483 static const CGEN_IFMT ifmt_bltu16r ATTRIBUTE_UNUSED = {
1484 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1487 static const CGEN_IFMT ifmt_bltu32r ATTRIBUTE_UNUSED = {
1488 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1491 static const CGEN_IFMT ifmt_bgt16r ATTRIBUTE_UNUSED = {
1492 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1495 static const CGEN_IFMT ifmt_bgt32r ATTRIBUTE_UNUSED = {
1496 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1499 static const CGEN_IFMT ifmt_bgte16r ATTRIBUTE_UNUSED = {
1500 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1503 static const CGEN_IFMT ifmt_bgte32r ATTRIBUTE_UNUSED = {
1504 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1507 static const CGEN_IFMT ifmt_blt16r ATTRIBUTE_UNUSED = {
1508 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1511 static const CGEN_IFMT ifmt_blt32r ATTRIBUTE_UNUSED = {
1512 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1515 static const CGEN_IFMT ifmt_blte16r ATTRIBUTE_UNUSED = {
1516 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1519 static const CGEN_IFMT ifmt_blte32r ATTRIBUTE_UNUSED = {
1520 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1523 static const CGEN_IFMT ifmt_bbeq16r ATTRIBUTE_UNUSED = {
1524 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1527 static const CGEN_IFMT ifmt_bbeq32r ATTRIBUTE_UNUSED = {
1528 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1531 static const CGEN_IFMT ifmt_bbne16r ATTRIBUTE_UNUSED = {
1532 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1535 static const CGEN_IFMT ifmt_bbne32r ATTRIBUTE_UNUSED = {
1536 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1539 static const CGEN_IFMT ifmt_bblt16r ATTRIBUTE_UNUSED = {
1540 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1543 static const CGEN_IFMT ifmt_bblt32r ATTRIBUTE_UNUSED = {
1544 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1547 static const CGEN_IFMT ifmt_bblte16r ATTRIBUTE_UNUSED = {
1548 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1551 static const CGEN_IFMT ifmt_bblte32r ATTRIBUTE_UNUSED = {
1552 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1555 static const CGEN_IFMT ifmt_b16r ATTRIBUTE_UNUSED = {
1556 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1559 static const CGEN_IFMT ifmt_b32r ATTRIBUTE_UNUSED = {
1560 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1563 static const CGEN_IFMT ifmt_bl16r ATTRIBUTE_UNUSED = {
1564 16, 16, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM8) }, { 0 } }
1567 static const CGEN_IFMT ifmt_blr ATTRIBUTE_UNUSED = {
1568 32, 32, 0xff, { { F (F_OPC) }, { F (F_CONDCODE) }, { F (F_SIMM24) }, { 0 } }
1571 static const CGEN_IFMT ifmt_ldrbx ATTRIBUTE_UNUSED = {
1572 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 } }
1575 static const CGEN_IFMT ifmt_ldrbp ATTRIBUTE_UNUSED = {
1576 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 } }
1579 static const CGEN_IFMT ifmt_ldrbd ATTRIBUTE_UNUSED = {
1580 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 } }
1583 static const CGEN_IFMT ifmt_ldrbdpm ATTRIBUTE_UNUSED = {
1584 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 } }
1587 static const CGEN_IFMT ifmt_ldrbds0 ATTRIBUTE_UNUSED = {
1588 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1591 static const CGEN_IFMT ifmt_ldrbdl0 ATTRIBUTE_UNUSED = {
1592 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 } }
1595 static const CGEN_IFMT ifmt_ldrbdl0_l ATTRIBUTE_UNUSED = {
1596 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 } }
1599 static const CGEN_IFMT ifmt_ldrhx ATTRIBUTE_UNUSED = {
1600 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 } }
1603 static const CGEN_IFMT ifmt_ldrhp ATTRIBUTE_UNUSED = {
1604 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 } }
1607 static const CGEN_IFMT ifmt_ldrhd ATTRIBUTE_UNUSED = {
1608 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 } }
1611 static const CGEN_IFMT ifmt_ldrhdpm ATTRIBUTE_UNUSED = {
1612 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 } }
1615 static const CGEN_IFMT ifmt_ldrhds0 ATTRIBUTE_UNUSED = {
1616 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1619 static const CGEN_IFMT ifmt_ldrhdl0 ATTRIBUTE_UNUSED = {
1620 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 } }
1623 static const CGEN_IFMT ifmt_ldrhdl0_l ATTRIBUTE_UNUSED = {
1624 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 } }
1627 static const CGEN_IFMT ifmt_ldrx ATTRIBUTE_UNUSED = {
1628 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 } }
1631 static const CGEN_IFMT ifmt_ldrp ATTRIBUTE_UNUSED = {
1632 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 } }
1635 static const CGEN_IFMT ifmt_ldrd ATTRIBUTE_UNUSED = {
1636 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 } }
1639 static const CGEN_IFMT ifmt_ldrdpm ATTRIBUTE_UNUSED = {
1640 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 } }
1643 static const CGEN_IFMT ifmt_ldrds0 ATTRIBUTE_UNUSED = {
1644 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1647 static const CGEN_IFMT ifmt_ldrdl0 ATTRIBUTE_UNUSED = {
1648 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 } }
1651 static const CGEN_IFMT ifmt_ldrdl0_l ATTRIBUTE_UNUSED = {
1652 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 } }
1655 static const CGEN_IFMT ifmt_ldrdx ATTRIBUTE_UNUSED = {
1656 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 } }
1659 static const CGEN_IFMT ifmt_ldrdp ATTRIBUTE_UNUSED = {
1660 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 } }
1663 static const CGEN_IFMT ifmt_ldrdd ATTRIBUTE_UNUSED = {
1664 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 } }
1667 static const CGEN_IFMT ifmt_ldrddpm ATTRIBUTE_UNUSED = {
1668 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 } }
1671 static const CGEN_IFMT ifmt_ldrdds0 ATTRIBUTE_UNUSED = {
1672 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1675 static const CGEN_IFMT ifmt_ldrddl0 ATTRIBUTE_UNUSED = {
1676 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 } }
1679 static const CGEN_IFMT ifmt_ldrddl0_l ATTRIBUTE_UNUSED = {
1680 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 } }
1683 static const CGEN_IFMT ifmt_testsetbt_l ATTRIBUTE_UNUSED = {
1684 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 } }
1687 static const CGEN_IFMT ifmt_testsetht_l ATTRIBUTE_UNUSED = {
1688 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 } }
1691 static const CGEN_IFMT ifmt_testsett_l ATTRIBUTE_UNUSED = {
1692 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 } }
1695 static const CGEN_IFMT ifmt_strbx_l ATTRIBUTE_UNUSED = {
1696 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 } }
1699 static const CGEN_IFMT ifmt_strbp_l ATTRIBUTE_UNUSED = {
1700 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 } }
1703 static const CGEN_IFMT ifmt_strbd_l ATTRIBUTE_UNUSED = {
1704 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 } }
1707 static const CGEN_IFMT ifmt_strbdpm_l ATTRIBUTE_UNUSED = {
1708 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 } }
1711 static const CGEN_IFMT ifmt_strbds0 ATTRIBUTE_UNUSED = {
1712 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1715 static const CGEN_IFMT ifmt_strbdl0 ATTRIBUTE_UNUSED = {
1716 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 } }
1719 static const CGEN_IFMT ifmt_strbdl0_l ATTRIBUTE_UNUSED = {
1720 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 } }
1723 static const CGEN_IFMT ifmt_strhx_l ATTRIBUTE_UNUSED = {
1724 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 } }
1727 static const CGEN_IFMT ifmt_strhp_l ATTRIBUTE_UNUSED = {
1728 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 } }
1731 static const CGEN_IFMT ifmt_strhd_l ATTRIBUTE_UNUSED = {
1732 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 } }
1735 static const CGEN_IFMT ifmt_strhdpm_l ATTRIBUTE_UNUSED = {
1736 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 } }
1739 static const CGEN_IFMT ifmt_strhds0 ATTRIBUTE_UNUSED = {
1740 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1743 static const CGEN_IFMT ifmt_strhdl0 ATTRIBUTE_UNUSED = {
1744 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 } }
1747 static const CGEN_IFMT ifmt_strhdl0_l ATTRIBUTE_UNUSED = {
1748 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 } }
1751 static const CGEN_IFMT ifmt_strx_l ATTRIBUTE_UNUSED = {
1752 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 } }
1755 static const CGEN_IFMT ifmt_strp_l ATTRIBUTE_UNUSED = {
1756 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 } }
1759 static const CGEN_IFMT ifmt_strd_l ATTRIBUTE_UNUSED = {
1760 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 } }
1763 static const CGEN_IFMT ifmt_strdpm_l ATTRIBUTE_UNUSED = {
1764 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 } }
1767 static const CGEN_IFMT ifmt_strds0 ATTRIBUTE_UNUSED = {
1768 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1771 static const CGEN_IFMT ifmt_strdl0 ATTRIBUTE_UNUSED = {
1772 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 } }
1775 static const CGEN_IFMT ifmt_strdl0_l ATTRIBUTE_UNUSED = {
1776 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 } }
1779 static const CGEN_IFMT ifmt_strdx_l ATTRIBUTE_UNUSED = {
1780 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 } }
1783 static const CGEN_IFMT ifmt_strdp_l ATTRIBUTE_UNUSED = {
1784 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 } }
1787 static const CGEN_IFMT ifmt_strdd_l ATTRIBUTE_UNUSED = {
1788 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 } }
1791 static const CGEN_IFMT ifmt_strddpm_l ATTRIBUTE_UNUSED = {
1792 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 } }
1795 static const CGEN_IFMT ifmt_strdds0 ATTRIBUTE_UNUSED = {
1796 16, 16, 0x3ff, { { F (F_OPC) }, { F (F_WORDSIZE) }, { F (F_STORE) }, { F (F_RD) }, { F (F_RN) }, { F (F_DISP3) }, { 0 } }
1799 static const CGEN_IFMT ifmt_strddl0 ATTRIBUTE_UNUSED = {
1800 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 } }
1803 static const CGEN_IFMT ifmt_strddl0_l ATTRIBUTE_UNUSED = {
1804 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 } }
1807 static const CGEN_IFMT ifmt_cmov_lEQ ATTRIBUTE_UNUSED = {
1808 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 } }
1811 static const CGEN_IFMT ifmt_cmov_lNE ATTRIBUTE_UNUSED = {
1812 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 } }
1815 static const CGEN_IFMT ifmt_cmov_lGTU ATTRIBUTE_UNUSED = {
1816 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 } }
1819 static const CGEN_IFMT ifmt_cmov_lGTEU ATTRIBUTE_UNUSED = {
1820 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 } }
1823 static const CGEN_IFMT ifmt_cmov_lLTEU ATTRIBUTE_UNUSED = {
1824 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 } }
1827 static const CGEN_IFMT ifmt_cmov_lLTU ATTRIBUTE_UNUSED = {
1828 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 } }
1831 static const CGEN_IFMT ifmt_cmov_lGT ATTRIBUTE_UNUSED = {
1832 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 } }
1835 static const CGEN_IFMT ifmt_cmov_lGTE ATTRIBUTE_UNUSED = {
1836 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 } }
1839 static const CGEN_IFMT ifmt_cmov_lLT ATTRIBUTE_UNUSED = {
1840 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 } }
1843 static const CGEN_IFMT ifmt_cmov_lLTE ATTRIBUTE_UNUSED = {
1844 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 } }
1847 static const CGEN_IFMT ifmt_cmov_lB ATTRIBUTE_UNUSED = {
1848 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 } }
1851 static const CGEN_IFMT ifmt_cmov_lBEQ ATTRIBUTE_UNUSED = {
1852 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 } }
1855 static const CGEN_IFMT ifmt_cmov_lBNE ATTRIBUTE_UNUSED = {
1856 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 } }
1859 static const CGEN_IFMT ifmt_cmov_lBLT ATTRIBUTE_UNUSED = {
1860 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 } }
1863 static const CGEN_IFMT ifmt_cmov_lBLTE ATTRIBUTE_UNUSED = {
1864 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 } }
1867 static const CGEN_IFMT ifmt_movts_l6 ATTRIBUTE_UNUSED = {
1868 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 } }
1871 static const CGEN_IFMT ifmt_movts_ldma ATTRIBUTE_UNUSED = {
1872 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 } }
1875 static const CGEN_IFMT ifmt_movts_lmem ATTRIBUTE_UNUSED = {
1876 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 } }
1879 static const CGEN_IFMT ifmt_movts_lmesh ATTRIBUTE_UNUSED = {
1880 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 } }
1883 static const CGEN_IFMT ifmt_movfs_l6 ATTRIBUTE_UNUSED = {
1884 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 } }
1887 static const CGEN_IFMT ifmt_movfs_ldma ATTRIBUTE_UNUSED = {
1888 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 } }
1891 static const CGEN_IFMT ifmt_movfs_lmem ATTRIBUTE_UNUSED = {
1892 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 } }
1895 static const CGEN_IFMT ifmt_movfs_lmesh ATTRIBUTE_UNUSED = {
1896 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 } }
1899 static const CGEN_IFMT ifmt_add_l ATTRIBUTE_UNUSED = {
1900 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 } }
1903 static const CGEN_IFMT ifmt_sub_l ATTRIBUTE_UNUSED = {
1904 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 } }
1907 static const CGEN_IFMT ifmt_and_l ATTRIBUTE_UNUSED = {
1908 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 } }
1911 static const CGEN_IFMT ifmt_orr_l ATTRIBUTE_UNUSED = {
1912 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 } }
1915 static const CGEN_IFMT ifmt_eor_l ATTRIBUTE_UNUSED = {
1916 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 } }
1919 static const CGEN_IFMT ifmt_addir ATTRIBUTE_UNUSED = {
1920 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
1923 static const CGEN_IFMT ifmt_addi32r ATTRIBUTE_UNUSED = {
1924 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 } }
1927 static const CGEN_IFMT ifmt_addi32m ATTRIBUTE_UNUSED = {
1928 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 } }
1931 static const CGEN_IFMT ifmt_subir ATTRIBUTE_UNUSED = {
1932 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_SDISP3) }, { 0 } }
1935 static const CGEN_IFMT ifmt_subi32r ATTRIBUTE_UNUSED = {
1936 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 } }
1939 static const CGEN_IFMT ifmt_subi32m ATTRIBUTE_UNUSED = {
1940 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 } }
1943 static const CGEN_IFMT ifmt_asr_l ATTRIBUTE_UNUSED = {
1944 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 } }
1947 static const CGEN_IFMT ifmt_lsr_l ATTRIBUTE_UNUSED = {
1948 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 } }
1951 static const CGEN_IFMT ifmt_lsl_l ATTRIBUTE_UNUSED = {
1952 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 } }
1955 static const CGEN_IFMT ifmt_lsri32_l ATTRIBUTE_UNUSED = {
1956 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 } }
1959 static const CGEN_IFMT ifmt_lsli32_l ATTRIBUTE_UNUSED = {
1960 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 } }
1963 static const CGEN_IFMT ifmt_asri32_l ATTRIBUTE_UNUSED = {
1964 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 } }
1967 static const CGEN_IFMT ifmt_bitrl ATTRIBUTE_UNUSED = {
1968 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 } }
1971 static const CGEN_IFMT ifmt_fext_l ATTRIBUTE_UNUSED = {
1972 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 } }
1975 static const CGEN_IFMT ifmt_fdep_l ATTRIBUTE_UNUSED = {
1976 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 } }
1979 static const CGEN_IFMT ifmt_lfsr_l ATTRIBUTE_UNUSED = {
1980 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 } }
1983 static const CGEN_IFMT ifmt_mov8r ATTRIBUTE_UNUSED = {
1984 16, 16, 0x1f, { { F (F_OPC) }, { F (F_OPC_4_1) }, { F (F_RD) }, { F (F_IMM8) }, { 0 } }
1987 static const CGEN_IFMT ifmt_mov16r ATTRIBUTE_UNUSED = {
1988 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 } }
1991 static const CGEN_IFMT ifmt_movtl ATTRIBUTE_UNUSED = {
1992 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 } }
1995 static const CGEN_IFMT ifmt_i_addf16 ATTRIBUTE_UNUSED = {
1996 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
1999 static const CGEN_IFMT ifmt_f_addf32_l ATTRIBUTE_UNUSED = {
2000 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 } }
2003 static const CGEN_IFMT ifmt_i_addf32 ATTRIBUTE_UNUSED = {
2004 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 } }
2007 static const CGEN_IFMT ifmt_i_addf32_l ATTRIBUTE_UNUSED = {
2008 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 } }
2011 static const CGEN_IFMT ifmt_i_subf16 ATTRIBUTE_UNUSED = {
2012 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2015 static const CGEN_IFMT ifmt_f_subf32_l ATTRIBUTE_UNUSED = {
2016 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 } }
2019 static const CGEN_IFMT ifmt_i_subf32 ATTRIBUTE_UNUSED = {
2020 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 } }
2023 static const CGEN_IFMT ifmt_i_subf32_l ATTRIBUTE_UNUSED = {
2024 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 } }
2027 static const CGEN_IFMT ifmt_i_mulf16 ATTRIBUTE_UNUSED = {
2028 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2031 static const CGEN_IFMT ifmt_f_mulf32_l ATTRIBUTE_UNUSED = {
2032 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 } }
2035 static const CGEN_IFMT ifmt_i_mulf32 ATTRIBUTE_UNUSED = {
2036 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 } }
2039 static const CGEN_IFMT ifmt_i_mulf32_l ATTRIBUTE_UNUSED = {
2040 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 } }
2043 static const CGEN_IFMT ifmt_i_maddf16 ATTRIBUTE_UNUSED = {
2044 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2047 static const CGEN_IFMT ifmt_f_maddf32_l ATTRIBUTE_UNUSED = {
2048 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 } }
2051 static const CGEN_IFMT ifmt_i_maddf32 ATTRIBUTE_UNUSED = {
2052 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 } }
2055 static const CGEN_IFMT ifmt_i_maddf32_l ATTRIBUTE_UNUSED = {
2056 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 } }
2059 static const CGEN_IFMT ifmt_i_msubf16 ATTRIBUTE_UNUSED = {
2060 16, 16, 0x7f, { { F (F_OPC) }, { F (F_OPC_6_3) }, { F (F_RD) }, { F (F_RN) }, { F (F_RM) }, { 0 } }
2063 static const CGEN_IFMT ifmt_f_msubf32_l ATTRIBUTE_UNUSED = {
2064 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 } }
2067 static const CGEN_IFMT ifmt_i_msubf32 ATTRIBUTE_UNUSED = {
2068 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 } }
2071 static const CGEN_IFMT ifmt_i_msubf32_l ATTRIBUTE_UNUSED = {
2072 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 } }
2075 static const CGEN_IFMT ifmt_f_absf32_l ATTRIBUTE_UNUSED = {
2076 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 } }
2079 static const CGEN_IFMT ifmt_f_loatf32_l ATTRIBUTE_UNUSED = {
2080 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 } }
2083 static const CGEN_IFMT ifmt_f_ixf32_l ATTRIBUTE_UNUSED = {
2084 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 } }
2087 static const CGEN_IFMT ifmt_f_recipf32_l ATTRIBUTE_UNUSED = {
2088 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 } }
2091 static const CGEN_IFMT ifmt_f_sqrtf32_l ATTRIBUTE_UNUSED = {
2092 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 } }
2097 /* Each non-simple macro entry points to an array of expansion possibilities. */
2099 #define A(a) (1 << CGEN_INSN_##a)
2100 #define OPERAND(op) EPIPHANY_OPERAND_##op
2101 #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
2102 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
2104 /* The macro instruction table. */
2106 static const CGEN_IBASE epiphany_cgen_macro_insn_table[] =
2110 -1, "beq16r", "beq", 16,
2111 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2115 -1, "beq32r", "beq", 32,
2116 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2120 -1, "bne16r", "bne", 16,
2121 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2125 -1, "bne32r", "bne", 32,
2126 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2130 -1, "bgtu16r", "bgtu", 16,
2131 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2135 -1, "bgtu32r", "bgtu", 32,
2136 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2140 -1, "bgteu16r", "bgteu", 16,
2141 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2145 -1, "bgteu32r", "bgteu", 32,
2146 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2150 -1, "blteu16r", "blteu", 16,
2151 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2155 -1, "blteu32r", "blteu", 32,
2156 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2160 -1, "bltu16r", "bltu", 16,
2161 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2165 -1, "bltu32r", "bltu", 32,
2166 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2170 -1, "bgt16r", "bgt", 16,
2171 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2175 -1, "bgt32r", "bgt", 32,
2176 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2180 -1, "bgte16r", "bgte", 16,
2181 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2185 -1, "bgte32r", "bgte", 32,
2186 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2190 -1, "blt16r", "blt", 16,
2191 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2195 -1, "blt32r", "blt", 32,
2196 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2200 -1, "blte16r", "blte", 16,
2201 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2205 -1, "blte32r", "blte", 32,
2206 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2210 -1, "bbeq16r", "bbeq", 16,
2211 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2215 -1, "bbeq32r", "bbeq", 32,
2216 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2220 -1, "bbne16r", "bbne", 16,
2221 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2225 -1, "bbne32r", "bbne", 32,
2226 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2230 -1, "bblt16r", "bblt", 16,
2231 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2235 -1, "bblt32r", "bblt", 32,
2236 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2240 -1, "bblte16r", "bblte", 16,
2241 { 0|A(RELAXABLE)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2245 -1, "bblte32r", "bblte", 32,
2246 { 0|A(RELAXED)|A(COND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2250 -1, "b16r", "b", 16,
2251 { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2255 -1, "b32r", "b", 32,
2256 { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2260 -1, "bl16r", "bl", 16,
2261 { 0|A(RELAXABLE)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2265 -1, "blr", "bl", 32,
2266 { 0|A(RELAXED)|A(UNCOND_CTI)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2268 /* ldrb.l $rd6,[$rn6,$direction$rm6] */
2270 -1, "ldrbx", "ldrb.l", 32,
2271 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2273 /* ldrb.l $rd6,[$rn6],$direction$rm6 */
2275 -1, "ldrbp", "ldrb.l", 32,
2276 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2278 /* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
2280 -1, "ldrbd", "ldrb.l", 32,
2281 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2283 /* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
2285 -1, "ldrbdpm", "ldrb.l", 32,
2286 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2288 /* ldrb $rd,[$rn] */
2290 -1, "ldrbds0", "ldrb", 16,
2291 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2293 /* ldrb $rd6,[$rn6] */
2295 -1, "ldrbdl0", "ldrb", 32,
2296 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2298 /* ldrb.l $rd6,[$rn6] */
2300 -1, "ldrbdl0.l", "ldrb.l", 32,
2301 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2303 /* ldrh.l $rd6,[$rn6,$direction$rm6] */
2305 -1, "ldrhx", "ldrh.l", 32,
2306 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2308 /* ldrh.l $rd6,[$rn6],$direction$rm6 */
2310 -1, "ldrhp", "ldrh.l", 32,
2311 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2313 /* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
2315 -1, "ldrhd", "ldrh.l", 32,
2316 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2318 /* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
2320 -1, "ldrhdpm", "ldrh.l", 32,
2321 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2323 /* ldrh $rd,[$rn] */
2325 -1, "ldrhds0", "ldrh", 16,
2326 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2328 /* ldrh $rd6,[$rn6] */
2330 -1, "ldrhdl0", "ldrh", 32,
2331 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2333 /* ldrh.l $rd6,[$rn6] */
2335 -1, "ldrhdl0.l", "ldrh.l", 32,
2336 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2338 /* ldr.l $rd6,[$rn6,$direction$rm6] */
2340 -1, "ldrx", "ldr.l", 32,
2341 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2343 /* ldr.l $rd6,[$rn6],$direction$rm6 */
2345 -1, "ldrp", "ldr.l", 32,
2346 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2348 /* ldr.l $rd6,[$rn6,$dpmi$disp11] */
2350 -1, "ldrd", "ldr.l", 32,
2351 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2353 /* ldr.l $rd6,[$rn6],$dpmi$disp11 */
2355 -1, "ldrdpm", "ldr.l", 32,
2356 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2360 -1, "ldrds0", "ldr", 16,
2361 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2363 /* ldr $rd6,[$rn6] */
2365 -1, "ldrdl0", "ldr", 32,
2366 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2368 /* ldr.l $rd6,[$rn6] */
2370 -1, "ldrdl0.l", "ldr.l", 32,
2371 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2373 /* ldrd.l $rd6,[$rn6,$direction$rm6] */
2375 -1, "ldrdx", "ldrd.l", 32,
2376 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2378 /* ldrd.l $rd6,[$rn6],$direction$rm6 */
2380 -1, "ldrdp", "ldrd.l", 32,
2381 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2383 /* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
2385 -1, "ldrdd", "ldrd.l", 32,
2386 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2388 /* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
2390 -1, "ldrddpm", "ldrd.l", 32,
2391 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2393 /* ldrd $rd,[$rn] */
2395 -1, "ldrdds0", "ldrd", 16,
2396 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2398 /* ldrd $rd6,[$rn6] */
2400 -1, "ldrddl0", "ldrd", 32,
2401 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2403 /* ldrd.l $rd6,[$rn6] */
2405 -1, "ldrddl0.l", "ldrd.l", 32,
2406 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2408 /* testsetb.l $rd6,[$rn6,$direction$rm6] */
2410 -1, "testsetbt.l", "testsetb.l", 32,
2411 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2413 /* testseth.l $rd6,[$rn6,$direction$rm6] */
2415 -1, "testsetht.l", "testseth.l", 32,
2416 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2418 /* testset.l $rd6,[$rn6,$direction$rm6] */
2420 -1, "testsett.l", "testset.l", 32,
2421 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2423 /* strb.l $rd6,[$rn6,$direction$rm6] */
2425 -1, "strbx.l", "strb.l", 32,
2426 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2428 /* strb.l $rd6,[$rn6],$direction$rm6 */
2430 -1, "strbp.l", "strb.l", 32,
2431 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2433 /* strb.l $rd6,[$rn6,$dpmi$disp11] */
2435 -1, "strbd.l", "strb.l", 32,
2436 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2438 /* strb.l $rd6,[$rn6],$dpmi$disp11 */
2440 -1, "strbdpm.l", "strb.l", 32,
2441 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2443 /* strb $rd,[$rn] */
2445 -1, "strbds0", "strb", 16,
2446 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2448 /* strb $rd6,[$rn6] */
2450 -1, "strbdl0", "strb", 32,
2451 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2453 /* strb.l $rd6,[$rn6] */
2455 -1, "strbdl0.l", "strb.l", 32,
2456 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2458 /* strh.l $rd6,[$rn6,$direction$rm6] */
2460 -1, "strhx.l", "strh.l", 32,
2461 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2463 /* strh.l $rd6,[$rn6],$direction$rm6 */
2465 -1, "strhp.l", "strh.l", 32,
2466 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2468 /* strh.l $rd6,[$rn6,$dpmi$disp11] */
2470 -1, "strhd.l", "strh.l", 32,
2471 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2473 /* strh.l $rd6,[$rn6],$dpmi$disp11 */
2475 -1, "strhdpm.l", "strh.l", 32,
2476 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2478 /* strh $rd,[$rn] */
2480 -1, "strhds0", "strh", 16,
2481 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2483 /* strh $rd6,[$rn6] */
2485 -1, "strhdl0", "strh", 32,
2486 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2488 /* strh.l $rd6,[$rn6] */
2490 -1, "strhdl0.l", "strh.l", 32,
2491 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2493 /* str.l $rd6,[$rn6,$direction$rm6] */
2495 -1, "strx.l", "str.l", 32,
2496 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2498 /* str.l $rd6,[$rn6],$direction$rm6 */
2500 -1, "strp.l", "str.l", 32,
2501 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2503 /* str.l $rd6,[$rn6,$dpmi$disp11] */
2505 -1, "strd.l", "str.l", 32,
2506 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2508 /* str.l $rd6,[$rn6],$dpmi$disp11 */
2510 -1, "strdpm.l", "str.l", 32,
2511 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2515 -1, "strds0", "str", 16,
2516 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2518 /* str $rd6,[$rn6] */
2520 -1, "strdl0", "str", 32,
2521 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2523 /* str.l $rd6,[$rn6] */
2525 -1, "strdl0.l", "str.l", 32,
2526 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2528 /* strd.l $rd6,[$rn6,$direction$rm6] */
2530 -1, "strdx.l", "strd.l", 32,
2531 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2533 /* strd.l $rd6,[$rn6],$direction$rm6 */
2535 -1, "strdp.l", "strd.l", 32,
2536 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2538 /* strd.l $rd6,[$rn6,$dpmi$disp11] */
2540 -1, "strdd.l", "strd.l", 32,
2541 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2543 /* strd.l $rd6,[$rn6],$dpmi$disp11 */
2545 -1, "strddpm.l", "strd.l", 32,
2546 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2548 /* strd $rd,[$rn] */
2550 -1, "strdds0", "strd", 16,
2551 { 0|A(IMM3)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2553 /* strd $rd6,[$rn6] */
2555 -1, "strddl0", "strd", 32,
2556 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2558 /* strd.l $rd6,[$rn6] */
2560 -1, "strddl0.l", "strd.l", 32,
2561 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2563 /* moveq.l $rd6,$rn6 */
2565 -1, "cmov.lEQ", "moveq.l", 32,
2566 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2568 /* movne.l $rd6,$rn6 */
2570 -1, "cmov.lNE", "movne.l", 32,
2571 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2573 /* movgtu.l $rd6,$rn6 */
2575 -1, "cmov.lGTU", "movgtu.l", 32,
2576 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2578 /* movgteu.l $rd6,$rn6 */
2580 -1, "cmov.lGTEU", "movgteu.l", 32,
2581 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2583 /* movlteu.l $rd6,$rn6 */
2585 -1, "cmov.lLTEU", "movlteu.l", 32,
2586 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2588 /* movltu.l $rd6,$rn6 */
2590 -1, "cmov.lLTU", "movltu.l", 32,
2591 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2593 /* movgt.l $rd6,$rn6 */
2595 -1, "cmov.lGT", "movgt.l", 32,
2596 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2598 /* movgte.l $rd6,$rn6 */
2600 -1, "cmov.lGTE", "movgte.l", 32,
2601 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2603 /* movlt.l $rd6,$rn6 */
2605 -1, "cmov.lLT", "movlt.l", 32,
2606 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2608 /* movlte.l $rd6,$rn6 */
2610 -1, "cmov.lLTE", "movlte.l", 32,
2611 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2613 /* mov.l $rd6,$rn6 */
2615 -1, "cmov.lB", "mov.l", 32,
2616 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2618 /* movbeq.l $rd6,$rn6 */
2620 -1, "cmov.lBEQ", "movbeq.l", 32,
2621 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2623 /* movbne.l $rd6,$rn6 */
2625 -1, "cmov.lBNE", "movbne.l", 32,
2626 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2628 /* movblt.l $rd6,$rn6 */
2630 -1, "cmov.lBLT", "movblt.l", 32,
2631 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2633 /* movblte.l $rd6,$rn6 */
2635 -1, "cmov.lBLTE", "movblte.l", 32,
2636 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2638 /* movts.l $sn6,$rd6 */
2640 -1, "movts.l6", "movts.l", 32,
2641 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2643 /* movts.l $sndma,$rd6 */
2645 -1, "movts.ldma", "movts.l", 32,
2646 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2648 /* movts.l $snmem,$rd6 */
2650 -1, "movts.lmem", "movts.l", 32,
2651 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2653 /* movts.l $snmesh,$rd6 */
2655 -1, "movts.lmesh", "movts.l", 32,
2656 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2658 /* movfs.l $rd6,$sn6 */
2660 -1, "movfs.l6", "movfs.l", 32,
2661 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2663 /* movfs.l $rd6,$sndma */
2665 -1, "movfs.ldma", "movfs.l", 32,
2666 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2668 /* movfs.l $rd6,$snmem */
2670 -1, "movfs.lmem", "movfs.l", 32,
2671 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2673 /* movfs.l $rd6,$snmesh */
2675 -1, "movfs.lmesh", "movfs.l", 32,
2676 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2678 /* add.l $rd6,$rn6,$rm6 */
2680 -1, "add.l", "add.l", 32,
2681 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2683 /* sub.l $rd6,$rn6,$rm6 */
2685 -1, "sub.l", "sub.l", 32,
2686 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2688 /* and.l $rd6,$rn6,$rm6 */
2690 -1, "and.l", "and.l", 32,
2691 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2693 /* orr.l $rd6,$rn6,$rm6 */
2695 -1, "orr.l", "orr.l", 32,
2696 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2698 /* eor.l $rd6,$rn6,$rm6 */
2700 -1, "eor.l", "eor.l", 32,
2701 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2703 /* add $rd,$rn,$simm3 */
2705 -1, "addir", "add", 16,
2706 { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2708 /* add $rd6,$rn6,$simm11 */
2710 -1, "addi32r", "add", 32,
2711 { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2713 /* add $rd6,$rn6,$simm11 */
2715 -1, "addi32m", "add", 32,
2716 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2718 /* sub $rd,$rn,$simm3 */
2720 -1, "subir", "sub", 16,
2721 { 0|A(IMM3)|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2723 /* sub $rd6,$rn6,$simm11 */
2725 -1, "subi32r", "sub", 32,
2726 { 0|A(RELAXED)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2728 /* sub $rd6,$rn6,$simm11 */
2730 -1, "subi32m", "sub", 32,
2731 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2733 /* asr.l $rd6,$rn6,$rm6 */
2735 -1, "asr.l", "asr.l", 32,
2736 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2738 /* lsr.l $rd6,$rn6,$rm6 */
2740 -1, "lsr.l", "lsr.l", 32,
2741 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2743 /* lsl.l $rd6,$rn6,$rm6 */
2745 -1, "lsl.l", "lsl.l", 32,
2746 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2748 /* lsr.l $rd6,$rn6,$shift */
2750 -1, "lsri32.l", "lsr.l", 32,
2751 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2753 /* lsl.l $rd6,$rn6,$shift */
2755 -1, "lsli32.l", "lsl.l", 32,
2756 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2758 /* asr.l $rd6,$rn6,$shift */
2760 -1, "asri32.l", "asr.l", 32,
2761 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2763 /* bitr.l $rd6,$rn6 */
2765 -1, "bitrl", "bitr.l", 32,
2766 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2768 /* fext.l $rd6,$rn6,$rm6 */
2770 -1, "fext.l", "fext.l", 32,
2771 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2773 /* fdep.l $rd6,$rn6,$rm6 */
2775 -1, "fdep.l", "fdep.l", 32,
2776 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2778 /* lfsr.l $rd6,$rn6,$rm6 */
2780 -1, "lfsr.l", "lfsr.l", 32,
2781 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2785 -1, "mov8r", "mov", 16,
2786 { 0|A(RELAXABLE)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2788 /* mov $rd6,$imm16 */
2790 -1, "mov16r", "mov", 32,
2791 { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2793 /* movt.l $rd6,$imm16 */
2795 -1, "movtl", "movt.l", 32,
2796 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2798 /* iadd $rd,$rn,$rm */
2800 -1, "i_addf16", "iadd", 16,
2801 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2803 /* fadd.l $rd6,$rn6,$rm6 */
2805 -1, "f_addf32.l", "fadd.l", 32,
2806 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2808 /* iadd $rd6,$rn6,$rm6 */
2810 -1, "i_addf32", "iadd", 32,
2811 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2813 /* iadd.l $rd6,$rn6,$rm6 */
2815 -1, "i_addf32.l", "iadd.l", 32,
2816 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2818 /* isub $rd,$rn,$rm */
2820 -1, "i_subf16", "isub", 16,
2821 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2823 /* fsub.l $rd6,$rn6,$rm6 */
2825 -1, "f_subf32.l", "fsub.l", 32,
2826 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2828 /* isub $rd6,$rn6,$rm6 */
2830 -1, "i_subf32", "isub", 32,
2831 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2833 /* isub.l $rd6,$rn6,$rm6 */
2835 -1, "i_subf32.l", "isub.l", 32,
2836 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2838 /* imul $rd,$rn,$rm */
2840 -1, "i_mulf16", "imul", 16,
2841 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2843 /* fmul.l $rd6,$rn6,$rm6 */
2845 -1, "f_mulf32.l", "fmul.l", 32,
2846 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2848 /* imul $rd6,$rn6,$rm6 */
2850 -1, "i_mulf32", "imul", 32,
2851 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2853 /* imul.l $rd6,$rn6,$rm6 */
2855 -1, "i_mulf32.l", "imul.l", 32,
2856 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2858 /* imadd $rd,$rn,$rm */
2860 -1, "i_maddf16", "imadd", 16,
2861 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2863 /* fmadd.l $rd6,$rn6,$rm6 */
2865 -1, "f_maddf32.l", "fmadd.l", 32,
2866 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2868 /* imadd $rd6,$rn6,$rm6 */
2870 -1, "i_maddf32", "imadd", 32,
2871 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2873 /* imadd.l $rd6,$rn6,$rm6 */
2875 -1, "i_maddf32.l", "imadd.l", 32,
2876 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2878 /* imsub $rd,$rn,$rm */
2880 -1, "i_msubf16", "imsub", 16,
2881 { 0|A(NO_DIS)|A(SHORT_INSN)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2883 /* fmsub.l $rd6,$rn6,$rm6 */
2885 -1, "f_msubf32.l", "fmsub.l", 32,
2886 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2888 /* imsub $rd6,$rn6,$rm6 */
2890 -1, "i_msubf32", "imsub", 32,
2891 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2893 /* imsub.l $rd6,$rn6,$rm6 */
2895 -1, "i_msubf32.l", "imsub.l", 32,
2896 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2898 /* fabs.l $rd6,$rn6 */
2900 -1, "f_absf32.l", "fabs.l", 32,
2901 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2903 /* float.l $rd6,$rn6 */
2905 -1, "f_loatf32.l", "float.l", 32,
2906 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2908 /* fix.l $rd6,$rn6 */
2910 -1, "f_ixf32.l", "fix.l", 32,
2911 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2913 /* frecip.l $frd6,$frn6 */
2915 -1, "f_recipf32.l", "frecip.l", 32,
2916 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2918 /* fsqrt.l $frd6,$frn6 */
2920 -1, "f_sqrtf32.l", "fsqrt.l", 32,
2921 { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
2925 /* The macro instruction opcode table. */
2927 static const CGEN_OPCODE epiphany_cgen_macro_insn_opcode_table[] =
2932 { { MNEM, ' ', OP (SIMM8), 0 } },
2933 & ifmt_beq16r, { 0x0 }
2938 { { MNEM, ' ', OP (SIMM24), 0 } },
2939 & ifmt_beq32r, { 0x8 }
2944 { { MNEM, ' ', OP (SIMM8), 0 } },
2945 & ifmt_bne16r, { 0x10 }
2950 { { MNEM, ' ', OP (SIMM24), 0 } },
2951 & ifmt_bne32r, { 0x18 }
2956 { { MNEM, ' ', OP (SIMM8), 0 } },
2957 & ifmt_bgtu16r, { 0x20 }
2962 { { MNEM, ' ', OP (SIMM24), 0 } },
2963 & ifmt_bgtu32r, { 0x28 }
2968 { { MNEM, ' ', OP (SIMM8), 0 } },
2969 & ifmt_bgteu16r, { 0x30 }
2974 { { MNEM, ' ', OP (SIMM24), 0 } },
2975 & ifmt_bgteu32r, { 0x38 }
2980 { { MNEM, ' ', OP (SIMM8), 0 } },
2981 & ifmt_blteu16r, { 0x40 }
2986 { { MNEM, ' ', OP (SIMM24), 0 } },
2987 & ifmt_blteu32r, { 0x48 }
2992 { { MNEM, ' ', OP (SIMM8), 0 } },
2993 & ifmt_bltu16r, { 0x50 }
2998 { { MNEM, ' ', OP (SIMM24), 0 } },
2999 & ifmt_bltu32r, { 0x58 }
3004 { { MNEM, ' ', OP (SIMM8), 0 } },
3005 & ifmt_bgt16r, { 0x60 }
3010 { { MNEM, ' ', OP (SIMM24), 0 } },
3011 & ifmt_bgt32r, { 0x68 }
3016 { { MNEM, ' ', OP (SIMM8), 0 } },
3017 & ifmt_bgte16r, { 0x70 }
3022 { { MNEM, ' ', OP (SIMM24), 0 } },
3023 & ifmt_bgte32r, { 0x78 }
3028 { { MNEM, ' ', OP (SIMM8), 0 } },
3029 & ifmt_blt16r, { 0x80 }
3034 { { MNEM, ' ', OP (SIMM24), 0 } },
3035 & ifmt_blt32r, { 0x88 }
3040 { { MNEM, ' ', OP (SIMM8), 0 } },
3041 & ifmt_blte16r, { 0x90 }
3046 { { MNEM, ' ', OP (SIMM24), 0 } },
3047 & ifmt_blte32r, { 0x98 }
3052 { { MNEM, ' ', OP (SIMM8), 0 } },
3053 & ifmt_bbeq16r, { 0xa0 }
3058 { { MNEM, ' ', OP (SIMM24), 0 } },
3059 & ifmt_bbeq32r, { 0xa8 }
3064 { { MNEM, ' ', OP (SIMM8), 0 } },
3065 & ifmt_bbne16r, { 0xb0 }
3070 { { MNEM, ' ', OP (SIMM24), 0 } },
3071 & ifmt_bbne32r, { 0xb8 }
3076 { { MNEM, ' ', OP (SIMM8), 0 } },
3077 & ifmt_bblt16r, { 0xc0 }
3082 { { MNEM, ' ', OP (SIMM24), 0 } },
3083 & ifmt_bblt32r, { 0xc8 }
3088 { { MNEM, ' ', OP (SIMM8), 0 } },
3089 & ifmt_bblte16r, { 0xd0 }
3094 { { MNEM, ' ', OP (SIMM24), 0 } },
3095 & ifmt_bblte32r, { 0xd8 }
3100 { { MNEM, ' ', OP (SIMM8), 0 } },
3101 & ifmt_b16r, { 0xe0 }
3106 { { MNEM, ' ', OP (SIMM24), 0 } },
3107 & ifmt_b32r, { 0xe8 }
3112 { { MNEM, ' ', OP (SIMM8), 0 } },
3113 & ifmt_bl16r, { 0xf0 }
3118 { { MNEM, ' ', OP (SIMM24), 0 } },
3119 & ifmt_blr, { 0xf8 }
3121 /* ldrb.l $rd6,[$rn6,$direction$rm6] */
3124 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3125 & ifmt_ldrbx, { 0x9 }
3127 /* ldrb.l $rd6,[$rn6],$direction$rm6 */
3130 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3131 & ifmt_ldrbp, { 0xd }
3133 /* ldrb.l $rd6,[$rn6,$dpmi$disp11] */
3136 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3137 & ifmt_ldrbd, { 0xc }
3139 /* ldrb.l $rd6,[$rn6],$dpmi$disp11 */
3142 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3143 & ifmt_ldrbdpm, { 0x200000c }
3145 /* ldrb $rd,[$rn] */
3148 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3149 & ifmt_ldrbds0, { 0x4 }
3151 /* ldrb $rd6,[$rn6] */
3154 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3155 & ifmt_ldrbdl0, { 0xc }
3157 /* ldrb.l $rd6,[$rn6] */
3160 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3161 & ifmt_ldrbdl0_l, { 0xc }
3163 /* ldrh.l $rd6,[$rn6,$direction$rm6] */
3166 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3167 & ifmt_ldrhx, { 0x29 }
3169 /* ldrh.l $rd6,[$rn6],$direction$rm6 */
3172 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3173 & ifmt_ldrhp, { 0x2d }
3175 /* ldrh.l $rd6,[$rn6,$dpmi$disp11] */
3178 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3179 & ifmt_ldrhd, { 0x2c }
3181 /* ldrh.l $rd6,[$rn6],$dpmi$disp11 */
3184 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3185 & ifmt_ldrhdpm, { 0x200002c }
3187 /* ldrh $rd,[$rn] */
3190 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3191 & ifmt_ldrhds0, { 0x24 }
3193 /* ldrh $rd6,[$rn6] */
3196 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3197 & ifmt_ldrhdl0, { 0x2c }
3199 /* ldrh.l $rd6,[$rn6] */
3202 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3203 & ifmt_ldrhdl0_l, { 0x2c }
3205 /* ldr.l $rd6,[$rn6,$direction$rm6] */
3208 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3209 & ifmt_ldrx, { 0x49 }
3211 /* ldr.l $rd6,[$rn6],$direction$rm6 */
3214 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3215 & ifmt_ldrp, { 0x4d }
3217 /* ldr.l $rd6,[$rn6,$dpmi$disp11] */
3220 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3221 & ifmt_ldrd, { 0x4c }
3223 /* ldr.l $rd6,[$rn6],$dpmi$disp11 */
3226 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3227 & ifmt_ldrdpm, { 0x200004c }
3232 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3233 & ifmt_ldrds0, { 0x44 }
3235 /* ldr $rd6,[$rn6] */
3238 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3239 & ifmt_ldrdl0, { 0x4c }
3241 /* ldr.l $rd6,[$rn6] */
3244 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3245 & ifmt_ldrdl0_l, { 0x4c }
3247 /* ldrd.l $rd6,[$rn6,$direction$rm6] */
3250 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3251 & ifmt_ldrdx, { 0x69 }
3253 /* ldrd.l $rd6,[$rn6],$direction$rm6 */
3256 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3257 & ifmt_ldrdp, { 0x6d }
3259 /* ldrd.l $rd6,[$rn6,$dpmi$disp11] */
3262 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3263 & ifmt_ldrdd, { 0x6c }
3265 /* ldrd.l $rd6,[$rn6],$dpmi$disp11 */
3268 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3269 & ifmt_ldrddpm, { 0x200006c }
3271 /* ldrd $rd,[$rn] */
3274 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3275 & ifmt_ldrdds0, { 0x64 }
3277 /* ldrd $rd6,[$rn6] */
3280 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3281 & ifmt_ldrddl0, { 0x6c }
3283 /* ldrd.l $rd6,[$rn6] */
3286 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3287 & ifmt_ldrddl0_l, { 0x6c }
3289 /* testsetb.l $rd6,[$rn6,$direction$rm6] */
3292 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3293 & ifmt_testsetbt_l, { 0x200009 }
3295 /* testseth.l $rd6,[$rn6,$direction$rm6] */
3298 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3299 & ifmt_testsetht_l, { 0x200029 }
3301 /* testset.l $rd6,[$rn6,$direction$rm6] */
3304 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3305 & ifmt_testsett_l, { 0x200049 }
3307 /* strb.l $rd6,[$rn6,$direction$rm6] */
3310 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3311 & ifmt_strbx_l, { 0x19 }
3313 /* strb.l $rd6,[$rn6],$direction$rm6 */
3316 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3317 & ifmt_strbp_l, { 0x1d }
3319 /* strb.l $rd6,[$rn6,$dpmi$disp11] */
3322 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3323 & ifmt_strbd_l, { 0x1c }
3325 /* strb.l $rd6,[$rn6],$dpmi$disp11 */
3328 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3329 & ifmt_strbdpm_l, { 0x200001c }
3331 /* strb $rd,[$rn] */
3334 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3335 & ifmt_strbds0, { 0x14 }
3337 /* strb $rd6,[$rn6] */
3340 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3341 & ifmt_strbdl0, { 0x1c }
3343 /* strb.l $rd6,[$rn6] */
3346 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3347 & ifmt_strbdl0_l, { 0x1c }
3349 /* strh.l $rd6,[$rn6,$direction$rm6] */
3352 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3353 & ifmt_strhx_l, { 0x39 }
3355 /* strh.l $rd6,[$rn6],$direction$rm6 */
3358 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3359 & ifmt_strhp_l, { 0x3d }
3361 /* strh.l $rd6,[$rn6,$dpmi$disp11] */
3364 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3365 & ifmt_strhd_l, { 0x3c }
3367 /* strh.l $rd6,[$rn6],$dpmi$disp11 */
3370 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3371 & ifmt_strhdpm_l, { 0x200003c }
3373 /* strh $rd,[$rn] */
3376 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3377 & ifmt_strhds0, { 0x34 }
3379 /* strh $rd6,[$rn6] */
3382 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3383 & ifmt_strhdl0, { 0x3c }
3385 /* strh.l $rd6,[$rn6] */
3388 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3389 & ifmt_strhdl0_l, { 0x3c }
3391 /* str.l $rd6,[$rn6,$direction$rm6] */
3394 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3395 & ifmt_strx_l, { 0x59 }
3397 /* str.l $rd6,[$rn6],$direction$rm6 */
3400 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3401 & ifmt_strp_l, { 0x5d }
3403 /* str.l $rd6,[$rn6,$dpmi$disp11] */
3406 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3407 & ifmt_strd_l, { 0x5c }
3409 /* str.l $rd6,[$rn6],$dpmi$disp11 */
3412 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3413 & ifmt_strdpm_l, { 0x200005c }
3418 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3419 & ifmt_strds0, { 0x54 }
3421 /* str $rd6,[$rn6] */
3424 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3425 & ifmt_strdl0, { 0x5c }
3427 /* str.l $rd6,[$rn6] */
3430 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3431 & ifmt_strdl0_l, { 0x5c }
3433 /* strd.l $rd6,[$rn6,$direction$rm6] */
3436 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DIRECTION), OP (RM6), ']', 0 } },
3437 & ifmt_strdx_l, { 0x79 }
3439 /* strd.l $rd6,[$rn6],$direction$rm6 */
3442 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DIRECTION), OP (RM6), 0 } },
3443 & ifmt_strdp_l, { 0x7d }
3445 /* strd.l $rd6,[$rn6,$dpmi$disp11] */
3448 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ',', OP (DPMI), OP (DISP11), ']', 0 } },
3449 & ifmt_strdd_l, { 0x7c }
3451 /* strd.l $rd6,[$rn6],$dpmi$disp11 */
3454 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', ',', OP (DPMI), OP (DISP11), 0 } },
3455 & ifmt_strddpm_l, { 0x200007c }
3457 /* strd $rd,[$rn] */
3460 { { MNEM, ' ', OP (RD), ',', '[', OP (RN), ']', 0 } },
3461 & ifmt_strdds0, { 0x74 }
3463 /* strd $rd6,[$rn6] */
3466 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3467 & ifmt_strddl0, { 0x7c }
3469 /* strd.l $rd6,[$rn6] */
3472 { { MNEM, ' ', OP (RD6), ',', '[', OP (RN6), ']', 0 } },
3473 & ifmt_strddl0_l, { 0x7c }
3475 /* moveq.l $rd6,$rn6 */
3478 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3479 & ifmt_cmov_lEQ, { 0x2000f }
3481 /* movne.l $rd6,$rn6 */
3484 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3485 & ifmt_cmov_lNE, { 0x2001f }
3487 /* movgtu.l $rd6,$rn6 */
3490 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3491 & ifmt_cmov_lGTU, { 0x2002f }
3493 /* movgteu.l $rd6,$rn6 */
3496 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3497 & ifmt_cmov_lGTEU, { 0x2003f }
3499 /* movlteu.l $rd6,$rn6 */
3502 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3503 & ifmt_cmov_lLTEU, { 0x2004f }
3505 /* movltu.l $rd6,$rn6 */
3508 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3509 & ifmt_cmov_lLTU, { 0x2005f }
3511 /* movgt.l $rd6,$rn6 */
3514 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3515 & ifmt_cmov_lGT, { 0x2006f }
3517 /* movgte.l $rd6,$rn6 */
3520 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3521 & ifmt_cmov_lGTE, { 0x2007f }
3523 /* movlt.l $rd6,$rn6 */
3526 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3527 & ifmt_cmov_lLT, { 0x2008f }
3529 /* movlte.l $rd6,$rn6 */
3532 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3533 & ifmt_cmov_lLTE, { 0x2009f }
3535 /* mov.l $rd6,$rn6 */
3538 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3539 & ifmt_cmov_lB, { 0x200ef }
3541 /* movbeq.l $rd6,$rn6 */
3544 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3545 & ifmt_cmov_lBEQ, { 0x200af }
3547 /* movbne.l $rd6,$rn6 */
3550 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3551 & ifmt_cmov_lBNE, { 0x200bf }
3553 /* movblt.l $rd6,$rn6 */
3556 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3557 & ifmt_cmov_lBLT, { 0x200cf }
3559 /* movblte.l $rd6,$rn6 */
3562 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3563 & ifmt_cmov_lBLTE, { 0x200df }
3565 /* movts.l $sn6,$rd6 */
3568 { { MNEM, ' ', OP (SN6), ',', OP (RD6), 0 } },
3569 & ifmt_movts_l6, { 0x2010f }
3571 /* movts.l $sndma,$rd6 */
3574 { { MNEM, ' ', OP (SNDMA), ',', OP (RD6), 0 } },
3575 & ifmt_movts_ldma, { 0x12010f }
3577 /* movts.l $snmem,$rd6 */
3580 { { MNEM, ' ', OP (SNMEM), ',', OP (RD6), 0 } },
3581 & ifmt_movts_lmem, { 0x22010f }
3583 /* movts.l $snmesh,$rd6 */
3586 { { MNEM, ' ', OP (SNMESH), ',', OP (RD6), 0 } },
3587 & ifmt_movts_lmesh, { 0x32010f }
3589 /* movfs.l $rd6,$sn6 */
3592 { { MNEM, ' ', OP (RD6), ',', OP (SN6), 0 } },
3593 & ifmt_movfs_l6, { 0x2011f }
3595 /* movfs.l $rd6,$sndma */
3598 { { MNEM, ' ', OP (RD6), ',', OP (SNDMA), 0 } },
3599 & ifmt_movfs_ldma, { 0x12011f }
3601 /* movfs.l $rd6,$snmem */
3604 { { MNEM, ' ', OP (RD6), ',', OP (SNMEM), 0 } },
3605 & ifmt_movfs_lmem, { 0x22011f }
3607 /* movfs.l $rd6,$snmesh */
3610 { { MNEM, ' ', OP (RD6), ',', OP (SNMESH), 0 } },
3611 & ifmt_movfs_lmesh, { 0x32011f }
3613 /* add.l $rd6,$rn6,$rm6 */
3616 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3617 & ifmt_add_l, { 0xa001f }
3619 /* sub.l $rd6,$rn6,$rm6 */
3622 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3623 & ifmt_sub_l, { 0xa003f }
3625 /* and.l $rd6,$rn6,$rm6 */
3628 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3629 & ifmt_and_l, { 0xa005f }
3631 /* orr.l $rd6,$rn6,$rm6 */
3634 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3635 & ifmt_orr_l, { 0xa007f }
3637 /* eor.l $rd6,$rn6,$rm6 */
3640 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3641 & ifmt_eor_l, { 0xa000f }
3643 /* add $rd,$rn,$simm3 */
3646 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
3647 & ifmt_addir, { 0x13 }
3649 /* add $rd6,$rn6,$simm11 */
3652 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3653 & ifmt_addi32r, { 0x1b }
3655 /* add $rd6,$rn6,$simm11 */
3658 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3659 & ifmt_addi32m, { 0x1b }
3661 /* sub $rd,$rn,$simm3 */
3664 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (SIMM3), 0 } },
3665 & ifmt_subir, { 0x33 }
3667 /* sub $rd6,$rn6,$simm11 */
3670 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3671 & ifmt_subi32r, { 0x3b }
3673 /* sub $rd6,$rn6,$simm11 */
3676 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SIMM11), 0 } },
3677 & ifmt_subi32m, { 0x3b }
3679 /* asr.l $rd6,$rn6,$rm6 */
3682 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3683 & ifmt_asr_l, { 0xa006f }
3685 /* lsr.l $rd6,$rn6,$rm6 */
3688 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3689 & ifmt_lsr_l, { 0xa004f }
3691 /* lsl.l $rd6,$rn6,$rm6 */
3694 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3695 & ifmt_lsl_l, { 0xa002f }
3697 /* lsr.l $rd6,$rn6,$shift */
3700 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3701 & ifmt_lsri32_l, { 0x6000f }
3703 /* lsl.l $rd6,$rn6,$shift */
3706 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3707 & ifmt_lsli32_l, { 0x6001f }
3709 /* asr.l $rd6,$rn6,$shift */
3712 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (SHIFT), 0 } },
3713 & ifmt_asri32_l, { 0xe000f }
3715 /* bitr.l $rd6,$rn6 */
3718 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3719 & ifmt_bitrl, { 0xe001f }
3721 /* fext.l $rd6,$rn6,$rm6 */
3724 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3725 & ifmt_fext_l, { 0x1a000f }
3727 /* fdep.l $rd6,$rn6,$rm6 */
3730 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3731 & ifmt_fdep_l, { 0x1a001f }
3733 /* lfsr.l $rd6,$rn6,$rm6 */
3736 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3737 & ifmt_lfsr_l, { 0x1a002f }
3742 { { MNEM, ' ', OP (RD), ',', OP (IMM8), 0 } },
3743 & ifmt_mov8r, { 0x3 }
3745 /* mov $rd6,$imm16 */
3748 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
3749 & ifmt_mov16r, { 0x2000b }
3751 /* movt.l $rd6,$imm16 */
3754 { { MNEM, ' ', OP (RD6), ',', OP (IMM16), 0 } },
3755 & ifmt_movtl, { 0x1002000b }
3757 /* iadd $rd,$rn,$rm */
3760 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3761 & ifmt_i_addf16, { 0x7 }
3763 /* fadd.l $rd6,$rn6,$rm6 */
3766 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3767 & ifmt_f_addf32_l, { 0x7000f }
3769 /* iadd $rd6,$rn6,$rm6 */
3772 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3773 & ifmt_i_addf32, { 0x7000f }
3775 /* iadd.l $rd6,$rn6,$rm6 */
3778 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3779 & ifmt_i_addf32_l, { 0x7000f }
3781 /* isub $rd,$rn,$rm */
3784 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3785 & ifmt_i_subf16, { 0x17 }
3787 /* fsub.l $rd6,$rn6,$rm6 */
3790 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3791 & ifmt_f_subf32_l, { 0x7001f }
3793 /* isub $rd6,$rn6,$rm6 */
3796 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3797 & ifmt_i_subf32, { 0x7001f }
3799 /* isub.l $rd6,$rn6,$rm6 */
3802 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3803 & ifmt_i_subf32_l, { 0x7001f }
3805 /* imul $rd,$rn,$rm */
3808 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3809 & ifmt_i_mulf16, { 0x27 }
3811 /* fmul.l $rd6,$rn6,$rm6 */
3814 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3815 & ifmt_f_mulf32_l, { 0x7002f }
3817 /* imul $rd6,$rn6,$rm6 */
3820 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3821 & ifmt_i_mulf32, { 0x7002f }
3823 /* imul.l $rd6,$rn6,$rm6 */
3826 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3827 & ifmt_i_mulf32_l, { 0x7002f }
3829 /* imadd $rd,$rn,$rm */
3832 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3833 & ifmt_i_maddf16, { 0x37 }
3835 /* fmadd.l $rd6,$rn6,$rm6 */
3838 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3839 & ifmt_f_maddf32_l, { 0x7003f }
3841 /* imadd $rd6,$rn6,$rm6 */
3844 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3845 & ifmt_i_maddf32, { 0x7003f }
3847 /* imadd.l $rd6,$rn6,$rm6 */
3850 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3851 & ifmt_i_maddf32_l, { 0x7003f }
3853 /* imsub $rd,$rn,$rm */
3856 { { MNEM, ' ', OP (RD), ',', OP (RN), ',', OP (RM), 0 } },
3857 & ifmt_i_msubf16, { 0x47 }
3859 /* fmsub.l $rd6,$rn6,$rm6 */
3862 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3863 & ifmt_f_msubf32_l, { 0x7004f }
3865 /* imsub $rd6,$rn6,$rm6 */
3868 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3869 & ifmt_i_msubf32, { 0x7004f }
3871 /* imsub.l $rd6,$rn6,$rm6 */
3874 { { MNEM, ' ', OP (RD6), ',', OP (RN6), ',', OP (RM6), 0 } },
3875 & ifmt_i_msubf32_l, { 0x7004f }
3877 /* fabs.l $rd6,$rn6 */
3880 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3881 & ifmt_f_absf32_l, { 0x7007f }
3883 /* float.l $rd6,$rn6 */
3886 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3887 & ifmt_f_loatf32_l, { 0x7005f }
3889 /* fix.l $rd6,$rn6 */
3892 { { MNEM, ' ', OP (RD6), ',', OP (RN6), 0 } },
3893 & ifmt_f_ixf32_l, { 0x7006f }
3895 /* frecip.l $frd6,$frn6 */
3898 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
3899 & ifmt_f_recipf32_l, { 0x17000f }
3901 /* fsqrt.l $frd6,$frn6 */
3904 { { MNEM, ' ', OP (FRD6), ',', OP (FRN6), 0 } },
3905 & ifmt_f_sqrtf32_l, { 0x17001f }
3914 #ifndef CGEN_ASM_HASH_P
3915 #define CGEN_ASM_HASH_P(insn) 1
3918 #ifndef CGEN_DIS_HASH_P
3919 #define CGEN_DIS_HASH_P(insn) 1
3922 /* Return non-zero if INSN is to be added to the hash table.
3923 Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file. */
3926 asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
3928 return CGEN_ASM_HASH_P (insn);
3932 dis_hash_insn_p (const CGEN_INSN *insn)
3934 /* If building the hash table and the NO-DIS attribute is present,
3936 if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
3938 return CGEN_DIS_HASH_P (insn);
3941 #ifndef CGEN_ASM_HASH
3942 #define CGEN_ASM_HASH_SIZE 127
3943 #ifdef CGEN_MNEMONIC_OPERANDS
3944 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
3946 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
3950 /* It doesn't make much sense to provide a default here,
3951 but while this is under development we do.
3952 BUFFER is a pointer to the bytes of the insn, target order.
3953 VALUE is the first base_insn_bitsize bits as an int in host order. */
3955 #ifndef CGEN_DIS_HASH
3956 #define CGEN_DIS_HASH_SIZE 256
3957 #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
3960 /* The result is the hash value of the insn.
3961 Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
3964 asm_hash_insn (const char *mnem)
3966 return CGEN_ASM_HASH (mnem);
3969 /* BUF is a pointer to the bytes of the insn, target order.
3970 VALUE is the first base_insn_bitsize bits as an int in host order. */
3973 dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
3974 CGEN_INSN_INT value ATTRIBUTE_UNUSED)
3976 return CGEN_DIS_HASH (buf, value);
3979 /* Set the recorded length of the insn in the CGEN_FIELDS struct. */
3982 set_fields_bitsize (CGEN_FIELDS *fields, int size)
3984 CGEN_FIELDS_BITSIZE (fields) = size;
3987 /* Function to call before using the operand instance table.
3988 This plugs the opcode entries and macro instructions into the cpu table. */
3991 epiphany_cgen_init_opcode_table (CGEN_CPU_DESC cd)
3994 int num_macros = (sizeof (epiphany_cgen_macro_insn_table) /
3995 sizeof (epiphany_cgen_macro_insn_table[0]));
3996 const CGEN_IBASE *ib = & epiphany_cgen_macro_insn_table[0];
3997 const CGEN_OPCODE *oc = & epiphany_cgen_macro_insn_opcode_table[0];
3998 CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
4000 /* This test has been added to avoid a warning generated
4001 if memset is called with a third argument of value zero. */
4002 if (num_macros >= 1)
4003 memset (insns, 0, num_macros * sizeof (CGEN_INSN));
4004 for (i = 0; i < num_macros; ++i)
4006 insns[i].base = &ib[i];
4007 insns[i].opcode = &oc[i];
4008 epiphany_cgen_build_insn_regex (& insns[i]);
4010 cd->macro_insn_table.init_entries = insns;
4011 cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
4012 cd->macro_insn_table.num_init_entries = num_macros;
4014 oc = & epiphany_cgen_insn_opcode_table[0];
4015 insns = (CGEN_INSN *) cd->insn_table.init_entries;
4016 for (i = 0; i < MAX_INSNS; ++i)
4018 insns[i].opcode = &oc[i];
4019 epiphany_cgen_build_insn_regex (& insns[i]);
4022 cd->sizeof_fields = sizeof (CGEN_FIELDS);
4023 cd->set_fields_bitsize = set_fields_bitsize;
4025 cd->asm_hash_p = asm_hash_insn_p;
4026 cd->asm_hash = asm_hash_insn;
4027 cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
4029 cd->dis_hash_p = dis_hash_insn_p;
4030 cd->dis_hash = dis_hash_insn;
4031 cd->dis_hash_size = CGEN_DIS_HASH_SIZE;