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