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