1 /* Instruction opcode table for xc16x. 2 3 THIS FILE IS MACHINE GENERATED WITH CGEN. 4 5 Copyright 1996-2005 Free Software Foundation, Inc. 6 7 This file is part of the GNU Binutils and/or GDB, the GNU debugger. 8 9 This program 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 2, or (at your option) 12 any later version. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public 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 "xc16x-desc.h" 30 #include "xc16x-opc.h" 31 #include "libiberty.h" 32 33 /* -- opc.c */ 34 35 /* -- */ 36 /* The hash functions are recorded here to help keep assembler code out of 37 the disassembler and vice versa. */ 38 39 static int asm_hash_insn_p (const CGEN_INSN *); 40 static unsigned int asm_hash_insn (const char *); 41 static int dis_hash_insn_p (const CGEN_INSN *); 42 static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT); 43 44 /* Instruction formats. */ 45 46 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 47 #define F(f) & xc16x_cgen_ifld_table[XC16X_##f] 48 #else 49 #define F(f) & xc16x_cgen_ifld_table[XC16X_/**/f] 50 #endif 51 static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = { 52 0, 0, 0x0, { { 0 } } 53 }; 54 55 static const CGEN_IFMT ifmt_addrpof ATTRIBUTE_UNUSED = { 56 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 57 }; 58 59 static const CGEN_IFMT ifmt_addbrpof ATTRIBUTE_UNUSED = { 60 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 61 }; 62 63 static const CGEN_IFMT ifmt_addrpag ATTRIBUTE_UNUSED = { 64 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 65 }; 66 67 static const CGEN_IFMT ifmt_addbrpag ATTRIBUTE_UNUSED = { 68 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 69 }; 70 71 static const CGEN_IFMT ifmt_addrhpof ATTRIBUTE_UNUSED = { 72 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 73 }; 74 75 static const CGEN_IFMT ifmt_addrhpof3 ATTRIBUTE_UNUSED = { 76 16, 16, 0x8ff, { { F (F_R1) }, { F (F_OP_BIT1) }, { F (F_UIMM3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 77 }; 78 79 static const CGEN_IFMT ifmt_addbrhpag3 ATTRIBUTE_UNUSED = { 80 16, 16, 0x8ff, { { F (F_R1) }, { F (F_OP_BIT1) }, { F (F_UIMM3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 81 }; 82 83 static const CGEN_IFMT ifmt_addrbhpof ATTRIBUTE_UNUSED = { 84 32, 32, 0xff0000ff, { { F (F_OP_BIT8) }, { F (F_UIMM8) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 85 }; 86 87 static const CGEN_IFMT ifmt_addr ATTRIBUTE_UNUSED = { 88 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 89 }; 90 91 static const CGEN_IFMT ifmt_addbr ATTRIBUTE_UNUSED = { 92 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 93 }; 94 95 static const CGEN_IFMT ifmt_add2 ATTRIBUTE_UNUSED = { 96 16, 16, 0xcff, { { F (F_R1) }, { F (F_OP_BIT2) }, { F (F_R0) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 97 }; 98 99 static const CGEN_IFMT ifmt_addb2 ATTRIBUTE_UNUSED = { 100 16, 16, 0xcff, { { F (F_R1) }, { F (F_OP_BIT2) }, { F (F_R0) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 101 }; 102 103 static const CGEN_IFMT ifmt_addrm2 ATTRIBUTE_UNUSED = { 104 32, 32, 0xff, { { F (F_MEMGR8) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 105 }; 106 107 static const CGEN_IFMT ifmt_addrm ATTRIBUTE_UNUSED = { 108 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 109 }; 110 111 static const CGEN_IFMT ifmt_addbrm2 ATTRIBUTE_UNUSED = { 112 32, 32, 0xff, { { F (F_MEMGR8) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 113 }; 114 115 static const CGEN_IFMT ifmt_addbrm ATTRIBUTE_UNUSED = { 116 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 117 }; 118 119 static const CGEN_IFMT ifmt_muls ATTRIBUTE_UNUSED = { 120 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 121 }; 122 123 static const CGEN_IFMT ifmt_div ATTRIBUTE_UNUSED = { 124 16, 16, 0xff, { { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 125 }; 126 127 static const CGEN_IFMT ifmt_cpl ATTRIBUTE_UNUSED = { 128 16, 16, 0xfff, { { F (F_R1) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 129 }; 130 131 static const CGEN_IFMT ifmt_cplb ATTRIBUTE_UNUSED = { 132 16, 16, 0xfff, { { F (F_R1) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 133 }; 134 135 static const CGEN_IFMT ifmt_movri ATTRIBUTE_UNUSED = { 136 16, 16, 0xff, { { F (F_UIMM4) }, { F (F_R4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 137 }; 138 139 static const CGEN_IFMT ifmt_movbri ATTRIBUTE_UNUSED = { 140 16, 16, 0xff, { { F (F_UIMM4) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 141 }; 142 143 static const CGEN_IFMT ifmt_movbr2 ATTRIBUTE_UNUSED = { 144 16, 16, 0xff, { { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 145 }; 146 147 static const CGEN_IFMT ifmt_mov9i ATTRIBUTE_UNUSED = { 148 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 149 }; 150 151 static const CGEN_IFMT ifmt_movb9i ATTRIBUTE_UNUSED = { 152 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_R1) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 153 }; 154 155 static const CGEN_IFMT ifmt_movri11 ATTRIBUTE_UNUSED = { 156 32, 32, 0xf0ff, { { F (F_MEMORY) }, { F (F_OP_LBIT4) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 157 }; 158 159 static const CGEN_IFMT ifmt_movehm5 ATTRIBUTE_UNUSED = { 160 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 161 }; 162 163 static const CGEN_IFMT ifmt_movehm6 ATTRIBUTE_UNUSED = { 164 32, 32, 0xff, { { F (F_UIMM16) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 165 }; 166 167 static const CGEN_IFMT ifmt_movehm7 ATTRIBUTE_UNUSED = { 168 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 169 }; 170 171 static const CGEN_IFMT ifmt_movehm8 ATTRIBUTE_UNUSED = { 172 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 173 }; 174 175 static const CGEN_IFMT ifmt_movehm10 ATTRIBUTE_UNUSED = { 176 32, 32, 0xff0000ff, { { F (F_OP_BIT8) }, { F (F_UIMM8) }, { F (F_REGOFF8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 177 }; 178 179 static const CGEN_IFMT ifmt_movbsrpofm ATTRIBUTE_UNUSED = { 180 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 181 }; 182 183 static const CGEN_IFMT ifmt_movbspofmr ATTRIBUTE_UNUSED = { 184 32, 32, 0xff, { { F (F_MEMORY) }, { F (F_REGMEM8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 185 }; 186 187 static const CGEN_IFMT ifmt_jmpa0 ATTRIBUTE_UNUSED = { 188 32, 32, 0x4ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_BITONE) }, { F (F_OP_ONEBIT) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 189 }; 190 191 static const CGEN_IFMT ifmt_jmpa_ ATTRIBUTE_UNUSED = { 192 32, 32, 0x5ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_BITONE) }, { F (F_OP_ONEBIT) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 193 }; 194 195 static const CGEN_IFMT ifmt_jmpi ATTRIBUTE_UNUSED = { 196 16, 16, 0xff, { { F (F_ICONDCODE) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 197 }; 198 199 static const CGEN_IFMT ifmt_jmpr_nenz ATTRIBUTE_UNUSED = { 200 16, 16, 0xff, { { F (F_REL8) }, { F (F_RCOND) }, { F (F_OP2) }, { 0 } } 201 }; 202 203 static const CGEN_IFMT ifmt_jmpseg ATTRIBUTE_UNUSED = { 204 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_SEG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 205 }; 206 207 static const CGEN_IFMT ifmt_jmps ATTRIBUTE_UNUSED = { 208 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_SEG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 209 }; 210 211 static const CGEN_IFMT ifmt_jb ATTRIBUTE_UNUSED = { 212 32, 32, 0xf0000ff, { { F (F_QLOBIT) }, { F (F_QHIBIT) }, { F (F_RELHI8) }, { F (F_REGB8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 213 }; 214 215 static const CGEN_IFMT ifmt_calla0 ATTRIBUTE_UNUSED = { 216 32, 32, 0x6ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_2BIT) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 217 }; 218 219 static const CGEN_IFMT ifmt_calla_ ATTRIBUTE_UNUSED = { 220 32, 32, 0x7ff, { { F (F_OFFSET16) }, { F (F_EXTCCODE) }, { F (F_OP_BIT3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 221 }; 222 223 static const CGEN_IFMT ifmt_callr ATTRIBUTE_UNUSED = { 224 16, 16, 0xff, { { F (F_REL8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 225 }; 226 227 static const CGEN_IFMT ifmt_callseg ATTRIBUTE_UNUSED = { 228 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_SEG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 229 }; 230 231 static const CGEN_IFMT ifmt_pcall ATTRIBUTE_UNUSED = { 232 32, 32, 0xff, { { F (F_OFFSET16) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 233 }; 234 235 static const CGEN_IFMT ifmt_trap ATTRIBUTE_UNUSED = { 236 16, 16, 0x1ff, { { F (F_UIMM7) }, { F (F_OP_1BIT) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 237 }; 238 239 static const CGEN_IFMT ifmt_ret ATTRIBUTE_UNUSED = { 240 16, 16, 0xff0000ff, { { F (F_OP_BIT8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 241 }; 242 243 static const CGEN_IFMT ifmt_retp ATTRIBUTE_UNUSED = { 244 16, 16, 0xff, { { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 245 }; 246 247 static const CGEN_IFMT ifmt_reti ATTRIBUTE_UNUSED = { 248 16, 16, 0xffff, { { F (F_OP_LBIT4) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 249 }; 250 251 static const CGEN_IFMT ifmt_srstm ATTRIBUTE_UNUSED = { 252 32, 32, 0xffffffff, { { F (F_OP_BIT8) }, { F (F_DATA8) }, { F (F_OP_LBIT4) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 253 }; 254 255 static const CGEN_IFMT ifmt_atomic ATTRIBUTE_UNUSED = { 256 16, 16, 0xcfff, { { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 257 }; 258 259 static const CGEN_IFMT ifmt_extp ATTRIBUTE_UNUSED = { 260 16, 16, 0xc0ff, { { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 261 }; 262 263 static const CGEN_IFMT ifmt_extp1 ATTRIBUTE_UNUSED = { 264 32, 32, 0xfc00cfff, { { F (F_QLOBIT) }, { F (F_QLOBIT2) }, { F (F_PAGENUM) }, { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 265 }; 266 267 static const CGEN_IFMT ifmt_extpg1 ATTRIBUTE_UNUSED = { 268 32, 32, 0xcfff, { { F (F_UIMM16) }, { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 269 }; 270 271 static const CGEN_IFMT ifmt_exts1 ATTRIBUTE_UNUSED = { 272 32, 32, 0xff00cfff, { { F (F_OP_BIT8) }, { F (F_SEGNUM8) }, { F (F_OP_LBIT2) }, { F (F_UIMM2) }, { F (F_OP_BIT4) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 273 }; 274 275 static const CGEN_IFMT ifmt_bclr18 ATTRIBUTE_UNUSED = { 276 16, 16, 0xff, { { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 277 }; 278 279 static const CGEN_IFMT ifmt_bclr0 ATTRIBUTE_UNUSED = { 280 16, 16, 0xff, { { F (F_REG8) }, { F (F_QCOND) }, { F (F_OP2) }, { 0 } } 281 }; 282 283 static const CGEN_IFMT ifmt_bmov ATTRIBUTE_UNUSED = { 284 32, 32, 0xff, { { F (F_QLOBIT) }, { F (F_QHIBIT) }, { F (F_REGHI8) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 285 }; 286 287 static const CGEN_IFMT ifmt_bfldl ATTRIBUTE_UNUSED = { 288 32, 32, 0xff, { { F (F_DATAHI8) }, { F (F_MASK8) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 289 }; 290 291 static const CGEN_IFMT ifmt_bfldh ATTRIBUTE_UNUSED = { 292 32, 32, 0xff, { { F (F_DATAHI8) }, { F (F_DATA8) }, { F (F_REG8) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 293 }; 294 295 static const CGEN_IFMT ifmt_cmpri ATTRIBUTE_UNUSED = { 296 16, 16, 0x8ff, { { F (F_R1) }, { F (F_OP_BIT1) }, { F (F_UIMM3) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 297 }; 298 299 static const CGEN_IFMT ifmt_cmpd1ri ATTRIBUTE_UNUSED = { 300 16, 16, 0xff, { { F (F_UIMM4) }, { F (F_R2) }, { F (F_OP1) }, { F (F_OP2) }, { 0 } } 301 }; 302 303 #undef F 304 305 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 306 #define A(a) (1 << CGEN_INSN_##a) 307 #else 308 #define A(a) (1 << CGEN_INSN_/**/a) 309 #endif 310 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 311 #define OPERAND(op) XC16X_OPERAND_##op 312 #else 313 #define OPERAND(op) XC16X_OPERAND_/**/op 314 #endif 315 #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */ 316 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field)) 317 318 /* The instruction table. */ 319 320 static const CGEN_OPCODE xc16x_cgen_insn_opcode_table[MAX_INSNS] = 321 { 322 /* Special null first entry. 323 A `num' value of zero is thus invalid. 324 Also, the special `invalid' insn resides here. */ 325 { { 0, 0, 0, 0 }, {{0}}, 0, {0}}, 326 /* add $reg8,$pof$upof16 */ 327 { 328 { 0, 0, 0, 0 }, 329 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 330 & ifmt_addrpof, { 0x2 } 331 }, 332 /* sub $reg8,$pof$upof16 */ 333 { 334 { 0, 0, 0, 0 }, 335 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 336 & ifmt_addrpof, { 0x22 } 337 }, 338 /* addb $regb8,$pof$upof16 */ 339 { 340 { 0, 0, 0, 0 }, 341 { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } }, 342 & ifmt_addbrpof, { 0x3 } 343 }, 344 /* subb $regb8,$pof$upof16 */ 345 { 346 { 0, 0, 0, 0 }, 347 { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } }, 348 & ifmt_addbrpof, { 0x23 } 349 }, 350 /* add $reg8,$pag$upag16 */ 351 { 352 { 0, 0, 0, 0 }, 353 { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } }, 354 & ifmt_addrpag, { 0x2 } 355 }, 356 /* sub $reg8,$pag$upag16 */ 357 { 358 { 0, 0, 0, 0 }, 359 { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } }, 360 & ifmt_addrpag, { 0x22 } 361 }, 362 /* addb $regb8,$pag$upag16 */ 363 { 364 { 0, 0, 0, 0 }, 365 { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } }, 366 & ifmt_addbrpag, { 0x3 } 367 }, 368 /* subb $regb8,$pag$upag16 */ 369 { 370 { 0, 0, 0, 0 }, 371 { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } }, 372 & ifmt_addbrpag, { 0x23 } 373 }, 374 /* addc $reg8,$pof$upof16 */ 375 { 376 { 0, 0, 0, 0 }, 377 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 378 & ifmt_addrpof, { 0x12 } 379 }, 380 /* subc $reg8,$pof$upof16 */ 381 { 382 { 0, 0, 0, 0 }, 383 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 384 & ifmt_addrpof, { 0x32 } 385 }, 386 /* addcb $regb8,$pof$upof16 */ 387 { 388 { 0, 0, 0, 0 }, 389 { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } }, 390 & ifmt_addbrpof, { 0x13 } 391 }, 392 /* subcb $regb8,$pof$upof16 */ 393 { 394 { 0, 0, 0, 0 }, 395 { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } }, 396 & ifmt_addbrpof, { 0x33 } 397 }, 398 /* addc $reg8,$pag$upag16 */ 399 { 400 { 0, 0, 0, 0 }, 401 { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } }, 402 & ifmt_addrpag, { 0x12 } 403 }, 404 /* subc $reg8,$pag$upag16 */ 405 { 406 { 0, 0, 0, 0 }, 407 { { MNEM, ' ', OP (REG8), ',', OP (PAG), OP (UPAG16), 0 } }, 408 & ifmt_addrpag, { 0x32 } 409 }, 410 /* addcb $regb8,$pag$upag16 */ 411 { 412 { 0, 0, 0, 0 }, 413 { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } }, 414 & ifmt_addbrpag, { 0x13 } 415 }, 416 /* subcb $regb8,$pag$upag16 */ 417 { 418 { 0, 0, 0, 0 }, 419 { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } }, 420 & ifmt_addbrpag, { 0x33 } 421 }, 422 /* add $pof$upof16,$reg8 */ 423 { 424 { 0, 0, 0, 0 }, 425 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 426 & ifmt_addrpof, { 0x4 } 427 }, 428 /* sub $pof$upof16,$reg8 */ 429 { 430 { 0, 0, 0, 0 }, 431 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 432 & ifmt_addrpof, { 0x24 } 433 }, 434 /* addb $pof$upof16,$regb8 */ 435 { 436 { 0, 0, 0, 0 }, 437 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 438 & ifmt_addbrpof, { 0x5 } 439 }, 440 /* subb $pof$upof16,$regb8 */ 441 { 442 { 0, 0, 0, 0 }, 443 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 444 & ifmt_addbrpof, { 0x25 } 445 }, 446 /* addc $pof$upof16,$reg8 */ 447 { 448 { 0, 0, 0, 0 }, 449 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 450 & ifmt_addrpof, { 0x14 } 451 }, 452 /* subc $pof$upof16,$reg8 */ 453 { 454 { 0, 0, 0, 0 }, 455 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 456 & ifmt_addrpof, { 0x34 } 457 }, 458 /* addcb $pof$upof16,$regb8 */ 459 { 460 { 0, 0, 0, 0 }, 461 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 462 & ifmt_addbrpof, { 0x15 } 463 }, 464 /* subcb $pof$upof16,$regb8 */ 465 { 466 { 0, 0, 0, 0 }, 467 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 468 & ifmt_addbrpof, { 0x35 } 469 }, 470 /* add $reg8,$hash$pof$uimm16 */ 471 { 472 { 0, 0, 0, 0 }, 473 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } }, 474 & ifmt_addrhpof, { 0x6 } 475 }, 476 /* sub $reg8,$hash$pof$uimm16 */ 477 { 478 { 0, 0, 0, 0 }, 479 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } }, 480 & ifmt_addrhpof, { 0x26 } 481 }, 482 /* add $reg8,$hash$pag$uimm16 */ 483 { 484 { 0, 0, 0, 0 }, 485 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } }, 486 & ifmt_addrhpof, { 0x6 } 487 }, 488 /* sub $reg8,$hash$pag$uimm16 */ 489 { 490 { 0, 0, 0, 0 }, 491 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } }, 492 & ifmt_addrhpof, { 0x26 } 493 }, 494 /* add $dr,$hash$pof$uimm3 */ 495 { 496 { 0, 0, 0, 0 }, 497 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 498 & ifmt_addrhpof3, { 0x8 } 499 }, 500 /* sub $dr,$hash$pof$uimm3 */ 501 { 502 { 0, 0, 0, 0 }, 503 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 504 & ifmt_addrhpof3, { 0x28 } 505 }, 506 /* addb $drb,$hash$pag$uimm3 */ 507 { 508 { 0, 0, 0, 0 }, 509 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 510 & ifmt_addbrhpag3, { 0x9 } 511 }, 512 /* subb $drb,$hash$pag$uimm3 */ 513 { 514 { 0, 0, 0, 0 }, 515 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 516 & ifmt_addbrhpag3, { 0x29 } 517 }, 518 /* add $dr,$hash$pag$uimm3 */ 519 { 520 { 0, 0, 0, 0 }, 521 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 522 & ifmt_addrhpof3, { 0x8 } 523 }, 524 /* sub $dr,$hash$pag$uimm3 */ 525 { 526 { 0, 0, 0, 0 }, 527 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 528 & ifmt_addrhpof3, { 0x28 } 529 }, 530 /* addb $drb,$hash$pof$uimm3 */ 531 { 532 { 0, 0, 0, 0 }, 533 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 534 & ifmt_addbrhpag3, { 0x9 } 535 }, 536 /* subb $drb,$hash$pof$uimm3 */ 537 { 538 { 0, 0, 0, 0 }, 539 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 540 & ifmt_addbrhpag3, { 0x29 } 541 }, 542 /* addb $regb8,$hash$pof$uimm8 */ 543 { 544 { 0, 0, 0, 0 }, 545 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } }, 546 & ifmt_addrbhpof, { 0x7 } 547 }, 548 /* subb $regb8,$hash$pof$uimm8 */ 549 { 550 { 0, 0, 0, 0 }, 551 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } }, 552 & ifmt_addrbhpof, { 0x27 } 553 }, 554 /* addb $regb8,$hash$pag$uimm8 */ 555 { 556 { 0, 0, 0, 0 }, 557 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } }, 558 & ifmt_addrbhpof, { 0x7 } 559 }, 560 /* subb $regb8,$hash$pag$uimm8 */ 561 { 562 { 0, 0, 0, 0 }, 563 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } }, 564 & ifmt_addrbhpof, { 0x27 } 565 }, 566 /* addc $reg8,$hash$pof$uimm16 */ 567 { 568 { 0, 0, 0, 0 }, 569 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } }, 570 & ifmt_addrhpof, { 0x16 } 571 }, 572 /* subc $reg8,$hash$pof$uimm16 */ 573 { 574 { 0, 0, 0, 0 }, 575 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (POF), OP (UIMM16), 0 } }, 576 & ifmt_addrhpof, { 0x36 } 577 }, 578 /* addc $reg8,$hash$pag$uimm16 */ 579 { 580 { 0, 0, 0, 0 }, 581 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } }, 582 & ifmt_addrhpof, { 0x16 } 583 }, 584 /* subc $reg8,$hash$pag$uimm16 */ 585 { 586 { 0, 0, 0, 0 }, 587 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (PAG), OP (UIMM16), 0 } }, 588 & ifmt_addrhpof, { 0x36 } 589 }, 590 /* addc $dr,$hash$pof$uimm3 */ 591 { 592 { 0, 0, 0, 0 }, 593 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 594 & ifmt_addrhpof3, { 0x18 } 595 }, 596 /* subc $dr,$hash$pof$uimm3 */ 597 { 598 { 0, 0, 0, 0 }, 599 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 600 & ifmt_addrhpof3, { 0x38 } 601 }, 602 /* addcb $drb,$hash$pag$uimm3 */ 603 { 604 { 0, 0, 0, 0 }, 605 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 606 & ifmt_addbrhpag3, { 0x19 } 607 }, 608 /* subcb $drb,$hash$pag$uimm3 */ 609 { 610 { 0, 0, 0, 0 }, 611 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 612 & ifmt_addbrhpag3, { 0x39 } 613 }, 614 /* addc $dr,$hash$pag$uimm3 */ 615 { 616 { 0, 0, 0, 0 }, 617 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 618 & ifmt_addrhpof3, { 0x18 } 619 }, 620 /* subc $dr,$hash$pag$uimm3 */ 621 { 622 { 0, 0, 0, 0 }, 623 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (PAG), OP (UIMM3), 0 } }, 624 & ifmt_addrhpof3, { 0x38 } 625 }, 626 /* addcb $drb,$hash$pof$uimm3 */ 627 { 628 { 0, 0, 0, 0 }, 629 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 630 & ifmt_addbrhpag3, { 0x19 } 631 }, 632 /* subcb $drb,$hash$pof$uimm3 */ 633 { 634 { 0, 0, 0, 0 }, 635 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (POF), OP (UIMM3), 0 } }, 636 & ifmt_addbrhpag3, { 0x39 } 637 }, 638 /* addcb $regb8,$hash$pof$uimm8 */ 639 { 640 { 0, 0, 0, 0 }, 641 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } }, 642 & ifmt_addrbhpof, { 0x17 } 643 }, 644 /* subcb $regb8,$hash$pof$uimm8 */ 645 { 646 { 0, 0, 0, 0 }, 647 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } }, 648 & ifmt_addrbhpof, { 0x37 } 649 }, 650 /* addcb $regb8,$hash$pag$uimm8 */ 651 { 652 { 0, 0, 0, 0 }, 653 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } }, 654 & ifmt_addrbhpof, { 0x17 } 655 }, 656 /* subcb $regb8,$hash$pag$uimm8 */ 657 { 658 { 0, 0, 0, 0 }, 659 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } }, 660 & ifmt_addrbhpof, { 0x37 } 661 }, 662 /* add $dr,$hash$uimm3 */ 663 { 664 { 0, 0, 0, 0 }, 665 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 666 & ifmt_addrhpof3, { 0x8 } 667 }, 668 /* sub $dr,$hash$uimm3 */ 669 { 670 { 0, 0, 0, 0 }, 671 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 672 & ifmt_addrhpof3, { 0x28 } 673 }, 674 /* addb $drb,$hash$uimm3 */ 675 { 676 { 0, 0, 0, 0 }, 677 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 678 & ifmt_addbrhpag3, { 0x9 } 679 }, 680 /* subb $drb,$hash$uimm3 */ 681 { 682 { 0, 0, 0, 0 }, 683 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 684 & ifmt_addbrhpag3, { 0x29 } 685 }, 686 /* add $reg8,$hash$uimm16 */ 687 { 688 { 0, 0, 0, 0 }, 689 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 690 & ifmt_addrhpof, { 0x6 } 691 }, 692 /* sub $reg8,$hash$uimm16 */ 693 { 694 { 0, 0, 0, 0 }, 695 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 696 & ifmt_addrhpof, { 0x26 } 697 }, 698 /* addb $regb8,$hash$uimm8 */ 699 { 700 { 0, 0, 0, 0 }, 701 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 702 & ifmt_addrbhpof, { 0x7 } 703 }, 704 /* subb $regb8,$hash$uimm8 */ 705 { 706 { 0, 0, 0, 0 }, 707 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 708 & ifmt_addrbhpof, { 0x27 } 709 }, 710 /* addc $dr,$hash$uimm3 */ 711 { 712 { 0, 0, 0, 0 }, 713 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 714 & ifmt_addrhpof3, { 0x18 } 715 }, 716 /* subc $dr,$hash$uimm3 */ 717 { 718 { 0, 0, 0, 0 }, 719 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 720 & ifmt_addrhpof3, { 0x38 } 721 }, 722 /* addcb $drb,$hash$uimm3 */ 723 { 724 { 0, 0, 0, 0 }, 725 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 726 & ifmt_addbrhpag3, { 0x19 } 727 }, 728 /* subcb $drb,$hash$uimm3 */ 729 { 730 { 0, 0, 0, 0 }, 731 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 732 & ifmt_addbrhpag3, { 0x39 } 733 }, 734 /* addc $reg8,$hash$uimm16 */ 735 { 736 { 0, 0, 0, 0 }, 737 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 738 & ifmt_addrhpof, { 0x16 } 739 }, 740 /* subc $reg8,$hash$uimm16 */ 741 { 742 { 0, 0, 0, 0 }, 743 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 744 & ifmt_addrhpof, { 0x36 } 745 }, 746 /* addcb $regb8,$hash$uimm8 */ 747 { 748 { 0, 0, 0, 0 }, 749 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 750 & ifmt_addrbhpof, { 0x17 } 751 }, 752 /* subcb $regb8,$hash$uimm8 */ 753 { 754 { 0, 0, 0, 0 }, 755 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 756 & ifmt_addrbhpof, { 0x37 } 757 }, 758 /* add $dr,$sr */ 759 { 760 { 0, 0, 0, 0 }, 761 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 762 & ifmt_addr, { 0x0 } 763 }, 764 /* sub $dr,$sr */ 765 { 766 { 0, 0, 0, 0 }, 767 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 768 & ifmt_addr, { 0x20 } 769 }, 770 /* addb $drb,$srb */ 771 { 772 { 0, 0, 0, 0 }, 773 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 774 & ifmt_addbr, { 0x1 } 775 }, 776 /* subb $drb,$srb */ 777 { 778 { 0, 0, 0, 0 }, 779 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 780 & ifmt_addbr, { 0x21 } 781 }, 782 /* add $dr,[$sr2] */ 783 { 784 { 0, 0, 0, 0 }, 785 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 786 & ifmt_add2, { 0x808 } 787 }, 788 /* sub $dr,[$sr2] */ 789 { 790 { 0, 0, 0, 0 }, 791 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 792 & ifmt_add2, { 0x828 } 793 }, 794 /* addb $drb,[$sr2] */ 795 { 796 { 0, 0, 0, 0 }, 797 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 798 & ifmt_addb2, { 0x809 } 799 }, 800 /* subb $drb,[$sr2] */ 801 { 802 { 0, 0, 0, 0 }, 803 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 804 & ifmt_addb2, { 0x829 } 805 }, 806 /* add $dr,[$sr2+] */ 807 { 808 { 0, 0, 0, 0 }, 809 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 810 & ifmt_add2, { 0xc08 } 811 }, 812 /* sub $dr,[$sr2+] */ 813 { 814 { 0, 0, 0, 0 }, 815 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 816 & ifmt_add2, { 0xc28 } 817 }, 818 /* addb $drb,[$sr2+] */ 819 { 820 { 0, 0, 0, 0 }, 821 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 822 & ifmt_addb2, { 0xc09 } 823 }, 824 /* subb $drb,[$sr2+] */ 825 { 826 { 0, 0, 0, 0 }, 827 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 828 & ifmt_addb2, { 0xc29 } 829 }, 830 /* addc $dr,$sr */ 831 { 832 { 0, 0, 0, 0 }, 833 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 834 & ifmt_addr, { 0x10 } 835 }, 836 /* subc $dr,$sr */ 837 { 838 { 0, 0, 0, 0 }, 839 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 840 & ifmt_addr, { 0x30 } 841 }, 842 /* addcb $drb,$srb */ 843 { 844 { 0, 0, 0, 0 }, 845 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 846 & ifmt_addbr, { 0x11 } 847 }, 848 /* subcb $drb,$srb */ 849 { 850 { 0, 0, 0, 0 }, 851 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 852 & ifmt_addbr, { 0x31 } 853 }, 854 /* addc $dr,[$sr2] */ 855 { 856 { 0, 0, 0, 0 }, 857 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 858 & ifmt_add2, { 0x818 } 859 }, 860 /* subc $dr,[$sr2] */ 861 { 862 { 0, 0, 0, 0 }, 863 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 864 & ifmt_add2, { 0x838 } 865 }, 866 /* addcb $drb,[$sr2] */ 867 { 868 { 0, 0, 0, 0 }, 869 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 870 & ifmt_addb2, { 0x819 } 871 }, 872 /* subcb $drb,[$sr2] */ 873 { 874 { 0, 0, 0, 0 }, 875 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 876 & ifmt_addb2, { 0x839 } 877 }, 878 /* addc $dr,[$sr2+] */ 879 { 880 { 0, 0, 0, 0 }, 881 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 882 & ifmt_add2, { 0xc18 } 883 }, 884 /* subc $dr,[$sr2+] */ 885 { 886 { 0, 0, 0, 0 }, 887 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 888 & ifmt_add2, { 0xc38 } 889 }, 890 /* addcb $drb,[$sr2+] */ 891 { 892 { 0, 0, 0, 0 }, 893 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 894 & ifmt_addb2, { 0xc19 } 895 }, 896 /* subcb $drb,[$sr2+] */ 897 { 898 { 0, 0, 0, 0 }, 899 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 900 & ifmt_addb2, { 0xc39 } 901 }, 902 /* add $regmem8,$memgr8 */ 903 { 904 { 0, 0, 0, 0 }, 905 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 906 & ifmt_addrm2, { 0x2 } 907 }, 908 /* add $memgr8,$regmem8 */ 909 { 910 { 0, 0, 0, 0 }, 911 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 912 & ifmt_addrm2, { 0x4 } 913 }, 914 /* add $reg8,$memory */ 915 { 916 { 0, 0, 0, 0 }, 917 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 918 & ifmt_addrm, { 0x2 } 919 }, 920 /* add $memory,$reg8 */ 921 { 922 { 0, 0, 0, 0 }, 923 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 924 & ifmt_addrm, { 0x4 } 925 }, 926 /* sub $regmem8,$memgr8 */ 927 { 928 { 0, 0, 0, 0 }, 929 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 930 & ifmt_addrm2, { 0x22 } 931 }, 932 /* sub $memgr8,$regmem8 */ 933 { 934 { 0, 0, 0, 0 }, 935 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 936 & ifmt_addrm2, { 0x24 } 937 }, 938 /* sub $reg8,$memory */ 939 { 940 { 0, 0, 0, 0 }, 941 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 942 & ifmt_addrm, { 0x22 } 943 }, 944 /* sub $memory,$reg8 */ 945 { 946 { 0, 0, 0, 0 }, 947 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 948 & ifmt_addrm, { 0x24 } 949 }, 950 /* addb $regbmem8,$memgr8 */ 951 { 952 { 0, 0, 0, 0 }, 953 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 954 & ifmt_addbrm2, { 0x3 } 955 }, 956 /* addb $memgr8,$regbmem8 */ 957 { 958 { 0, 0, 0, 0 }, 959 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 960 & ifmt_addbrm2, { 0x5 } 961 }, 962 /* addb $regb8,$memory */ 963 { 964 { 0, 0, 0, 0 }, 965 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 966 & ifmt_addbrm, { 0x3 } 967 }, 968 /* addb $memory,$regb8 */ 969 { 970 { 0, 0, 0, 0 }, 971 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 972 & ifmt_addbrm, { 0x5 } 973 }, 974 /* subb $regbmem8,$memgr8 */ 975 { 976 { 0, 0, 0, 0 }, 977 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 978 & ifmt_addbrm2, { 0x23 } 979 }, 980 /* subb $memgr8,$regbmem8 */ 981 { 982 { 0, 0, 0, 0 }, 983 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 984 & ifmt_addbrm2, { 0x25 } 985 }, 986 /* subb $regb8,$memory */ 987 { 988 { 0, 0, 0, 0 }, 989 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 990 & ifmt_addbrm, { 0x23 } 991 }, 992 /* subb $memory,$regb8 */ 993 { 994 { 0, 0, 0, 0 }, 995 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 996 & ifmt_addbrm, { 0x25 } 997 }, 998 /* addc $regmem8,$memgr8 */ 999 { 1000 { 0, 0, 0, 0 }, 1001 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1002 & ifmt_addrm2, { 0x12 } 1003 }, 1004 /* addc $memgr8,$regmem8 */ 1005 { 1006 { 0, 0, 0, 0 }, 1007 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 1008 & ifmt_addrm2, { 0x14 } 1009 }, 1010 /* addc $reg8,$memory */ 1011 { 1012 { 0, 0, 0, 0 }, 1013 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1014 & ifmt_addrm, { 0x12 } 1015 }, 1016 /* addc $memory,$reg8 */ 1017 { 1018 { 0, 0, 0, 0 }, 1019 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 1020 & ifmt_addrm, { 0x14 } 1021 }, 1022 /* subc $regmem8,$memgr8 */ 1023 { 1024 { 0, 0, 0, 0 }, 1025 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1026 & ifmt_addrm2, { 0x32 } 1027 }, 1028 /* subc $memgr8,$regmem8 */ 1029 { 1030 { 0, 0, 0, 0 }, 1031 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 1032 & ifmt_addrm2, { 0x34 } 1033 }, 1034 /* subc $reg8,$memory */ 1035 { 1036 { 0, 0, 0, 0 }, 1037 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1038 & ifmt_addrm, { 0x32 } 1039 }, 1040 /* subc $memory,$reg8 */ 1041 { 1042 { 0, 0, 0, 0 }, 1043 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 1044 & ifmt_addrm, { 0x34 } 1045 }, 1046 /* addcb $regbmem8,$memgr8 */ 1047 { 1048 { 0, 0, 0, 0 }, 1049 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 1050 & ifmt_addbrm2, { 0x13 } 1051 }, 1052 /* addcb $memgr8,$regbmem8 */ 1053 { 1054 { 0, 0, 0, 0 }, 1055 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1056 & ifmt_addbrm2, { 0x15 } 1057 }, 1058 /* addcb $regb8,$memory */ 1059 { 1060 { 0, 0, 0, 0 }, 1061 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 1062 & ifmt_addbrm, { 0x13 } 1063 }, 1064 /* addcb $memory,$regb8 */ 1065 { 1066 { 0, 0, 0, 0 }, 1067 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1068 & ifmt_addbrm, { 0x15 } 1069 }, 1070 /* subcb $regbmem8,$memgr8 */ 1071 { 1072 { 0, 0, 0, 0 }, 1073 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 1074 & ifmt_addbrm2, { 0x33 } 1075 }, 1076 /* subcb $memgr8,$regbmem8 */ 1077 { 1078 { 0, 0, 0, 0 }, 1079 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1080 & ifmt_addbrm2, { 0x35 } 1081 }, 1082 /* subcb $regb8,$memory */ 1083 { 1084 { 0, 0, 0, 0 }, 1085 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 1086 & ifmt_addbrm, { 0x33 } 1087 }, 1088 /* subcb $memory,$regb8 */ 1089 { 1090 { 0, 0, 0, 0 }, 1091 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1092 & ifmt_addbrm, { 0x35 } 1093 }, 1094 /* mul $src1,$src2 */ 1095 { 1096 { 0, 0, 0, 0 }, 1097 { { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 } }, 1098 & ifmt_muls, { 0xb } 1099 }, 1100 /* mulu $src1,$src2 */ 1101 { 1102 { 0, 0, 0, 0 }, 1103 { { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 } }, 1104 & ifmt_muls, { 0x1b } 1105 }, 1106 /* div $srdiv */ 1107 { 1108 { 0, 0, 0, 0 }, 1109 { { MNEM, ' ', OP (SRDIV), 0 } }, 1110 & ifmt_div, { 0x4b } 1111 }, 1112 /* divl $srdiv */ 1113 { 1114 { 0, 0, 0, 0 }, 1115 { { MNEM, ' ', OP (SRDIV), 0 } }, 1116 & ifmt_div, { 0x6b } 1117 }, 1118 /* divlu $srdiv */ 1119 { 1120 { 0, 0, 0, 0 }, 1121 { { MNEM, ' ', OP (SRDIV), 0 } }, 1122 & ifmt_div, { 0x7b } 1123 }, 1124 /* divu $srdiv */ 1125 { 1126 { 0, 0, 0, 0 }, 1127 { { MNEM, ' ', OP (SRDIV), 0 } }, 1128 & ifmt_div, { 0x5b } 1129 }, 1130 /* cpl $dr */ 1131 { 1132 { 0, 0, 0, 0 }, 1133 { { MNEM, ' ', OP (DR), 0 } }, 1134 & ifmt_cpl, { 0x91 } 1135 }, 1136 /* cplb $drb */ 1137 { 1138 { 0, 0, 0, 0 }, 1139 { { MNEM, ' ', OP (DRB), 0 } }, 1140 & ifmt_cplb, { 0xb1 } 1141 }, 1142 /* neg $dr */ 1143 { 1144 { 0, 0, 0, 0 }, 1145 { { MNEM, ' ', OP (DR), 0 } }, 1146 & ifmt_cpl, { 0x81 } 1147 }, 1148 /* negb $drb */ 1149 { 1150 { 0, 0, 0, 0 }, 1151 { { MNEM, ' ', OP (DRB), 0 } }, 1152 & ifmt_cplb, { 0xa1 } 1153 }, 1154 /* and $dr,$sr */ 1155 { 1156 { 0, 0, 0, 0 }, 1157 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 1158 & ifmt_addr, { 0x60 } 1159 }, 1160 /* or $dr,$sr */ 1161 { 1162 { 0, 0, 0, 0 }, 1163 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 1164 & ifmt_addr, { 0x70 } 1165 }, 1166 /* xor $dr,$sr */ 1167 { 1168 { 0, 0, 0, 0 }, 1169 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 1170 & ifmt_addr, { 0x50 } 1171 }, 1172 /* andb $drb,$srb */ 1173 { 1174 { 0, 0, 0, 0 }, 1175 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 1176 & ifmt_addbr, { 0x61 } 1177 }, 1178 /* orb $drb,$srb */ 1179 { 1180 { 0, 0, 0, 0 }, 1181 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 1182 & ifmt_addbr, { 0x71 } 1183 }, 1184 /* xorb $drb,$srb */ 1185 { 1186 { 0, 0, 0, 0 }, 1187 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 1188 & ifmt_addbr, { 0x51 } 1189 }, 1190 /* and $dr,$hash$uimm3 */ 1191 { 1192 { 0, 0, 0, 0 }, 1193 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 1194 & ifmt_addrhpof3, { 0x68 } 1195 }, 1196 /* or $dr,$hash$uimm3 */ 1197 { 1198 { 0, 0, 0, 0 }, 1199 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 1200 & ifmt_addrhpof3, { 0x78 } 1201 }, 1202 /* xor $dr,$hash$uimm3 */ 1203 { 1204 { 0, 0, 0, 0 }, 1205 { { MNEM, ' ', OP (DR), ',', OP (HASH), OP (UIMM3), 0 } }, 1206 & ifmt_addrhpof3, { 0x58 } 1207 }, 1208 /* andb $drb,$hash$uimm3 */ 1209 { 1210 { 0, 0, 0, 0 }, 1211 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 1212 & ifmt_addbrhpag3, { 0x69 } 1213 }, 1214 /* orb $drb,$hash$uimm3 */ 1215 { 1216 { 0, 0, 0, 0 }, 1217 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 1218 & ifmt_addbrhpag3, { 0x79 } 1219 }, 1220 /* xorb $drb,$hash$uimm3 */ 1221 { 1222 { 0, 0, 0, 0 }, 1223 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 1224 & ifmt_addbrhpag3, { 0x59 } 1225 }, 1226 /* and $reg8,$hash$uimm16 */ 1227 { 1228 { 0, 0, 0, 0 }, 1229 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 1230 & ifmt_addrhpof, { 0x66 } 1231 }, 1232 /* or $reg8,$hash$uimm16 */ 1233 { 1234 { 0, 0, 0, 0 }, 1235 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 1236 & ifmt_addrhpof, { 0x76 } 1237 }, 1238 /* xor $reg8,$hash$uimm16 */ 1239 { 1240 { 0, 0, 0, 0 }, 1241 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 1242 & ifmt_addrhpof, { 0x56 } 1243 }, 1244 /* andb $regb8,$hash$uimm8 */ 1245 { 1246 { 0, 0, 0, 0 }, 1247 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 1248 & ifmt_addrbhpof, { 0x67 } 1249 }, 1250 /* orb $regb8,$hash$uimm8 */ 1251 { 1252 { 0, 0, 0, 0 }, 1253 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 1254 & ifmt_addrbhpof, { 0x77 } 1255 }, 1256 /* xorb $regb8,$hash$uimm8 */ 1257 { 1258 { 0, 0, 0, 0 }, 1259 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 1260 & ifmt_addrbhpof, { 0x57 } 1261 }, 1262 /* and $dr,[$sr2] */ 1263 { 1264 { 0, 0, 0, 0 }, 1265 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 1266 & ifmt_add2, { 0x868 } 1267 }, 1268 /* or $dr,[$sr2] */ 1269 { 1270 { 0, 0, 0, 0 }, 1271 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 1272 & ifmt_add2, { 0x878 } 1273 }, 1274 /* xor $dr,[$sr2] */ 1275 { 1276 { 0, 0, 0, 0 }, 1277 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 1278 & ifmt_add2, { 0x858 } 1279 }, 1280 /* andb $drb,[$sr2] */ 1281 { 1282 { 0, 0, 0, 0 }, 1283 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 1284 & ifmt_addb2, { 0x869 } 1285 }, 1286 /* orb $drb,[$sr2] */ 1287 { 1288 { 0, 0, 0, 0 }, 1289 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 1290 & ifmt_addb2, { 0x879 } 1291 }, 1292 /* xorb $drb,[$sr2] */ 1293 { 1294 { 0, 0, 0, 0 }, 1295 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 1296 & ifmt_addb2, { 0x859 } 1297 }, 1298 /* and $dr,[$sr2+] */ 1299 { 1300 { 0, 0, 0, 0 }, 1301 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 1302 & ifmt_add2, { 0xc68 } 1303 }, 1304 /* or $dr,[$sr2+] */ 1305 { 1306 { 0, 0, 0, 0 }, 1307 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 1308 & ifmt_add2, { 0xc78 } 1309 }, 1310 /* xor $dr,[$sr2+] */ 1311 { 1312 { 0, 0, 0, 0 }, 1313 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 1314 & ifmt_add2, { 0xc58 } 1315 }, 1316 /* andb $drb,[$sr2+] */ 1317 { 1318 { 0, 0, 0, 0 }, 1319 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 1320 & ifmt_addb2, { 0xc69 } 1321 }, 1322 /* orb $drb,[$sr2+] */ 1323 { 1324 { 0, 0, 0, 0 }, 1325 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 1326 & ifmt_addb2, { 0xc79 } 1327 }, 1328 /* xorb $drb,[$sr2+] */ 1329 { 1330 { 0, 0, 0, 0 }, 1331 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 1332 & ifmt_addb2, { 0xc59 } 1333 }, 1334 /* and $pof$reg8,$upof16 */ 1335 { 1336 { 0, 0, 0, 0 }, 1337 { { MNEM, ' ', OP (POF), OP (REG8), ',', OP (UPOF16), 0 } }, 1338 & ifmt_addrpof, { 0x62 } 1339 }, 1340 /* or $pof$reg8,$upof16 */ 1341 { 1342 { 0, 0, 0, 0 }, 1343 { { MNEM, ' ', OP (POF), OP (REG8), ',', OP (UPOF16), 0 } }, 1344 & ifmt_addrpof, { 0x72 } 1345 }, 1346 /* xor $pof$reg8,$upof16 */ 1347 { 1348 { 0, 0, 0, 0 }, 1349 { { MNEM, ' ', OP (POF), OP (REG8), ',', OP (UPOF16), 0 } }, 1350 & ifmt_addrpof, { 0x52 } 1351 }, 1352 /* andb $pof$regb8,$upof16 */ 1353 { 1354 { 0, 0, 0, 0 }, 1355 { { MNEM, ' ', OP (POF), OP (REGB8), ',', OP (UPOF16), 0 } }, 1356 & ifmt_addbrpof, { 0x63 } 1357 }, 1358 /* orb $pof$regb8,$upof16 */ 1359 { 1360 { 0, 0, 0, 0 }, 1361 { { MNEM, ' ', OP (POF), OP (REGB8), ',', OP (UPOF16), 0 } }, 1362 & ifmt_addbrpof, { 0x73 } 1363 }, 1364 /* xorb $pof$regb8,$upof16 */ 1365 { 1366 { 0, 0, 0, 0 }, 1367 { { MNEM, ' ', OP (POF), OP (REGB8), ',', OP (UPOF16), 0 } }, 1368 & ifmt_addbrpof, { 0x53 } 1369 }, 1370 /* and $pof$upof16,$reg8 */ 1371 { 1372 { 0, 0, 0, 0 }, 1373 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 1374 & ifmt_addrpof, { 0x64 } 1375 }, 1376 /* or $pof$upof16,$reg8 */ 1377 { 1378 { 0, 0, 0, 0 }, 1379 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 1380 & ifmt_addrpof, { 0x74 } 1381 }, 1382 /* xor $pof$upof16,$reg8 */ 1383 { 1384 { 0, 0, 0, 0 }, 1385 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REG8), 0 } }, 1386 & ifmt_addrpof, { 0x54 } 1387 }, 1388 /* andb $pof$upof16,$regb8 */ 1389 { 1390 { 0, 0, 0, 0 }, 1391 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 1392 & ifmt_addbrpof, { 0x65 } 1393 }, 1394 /* orb $pof$upof16,$regb8 */ 1395 { 1396 { 0, 0, 0, 0 }, 1397 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 1398 & ifmt_addbrpof, { 0x75 } 1399 }, 1400 /* xorb $pof$upof16,$regb8 */ 1401 { 1402 { 0, 0, 0, 0 }, 1403 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 1404 & ifmt_addbrpof, { 0x55 } 1405 }, 1406 /* and $regmem8,$memgr8 */ 1407 { 1408 { 0, 0, 0, 0 }, 1409 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1410 & ifmt_addrm2, { 0x62 } 1411 }, 1412 /* and $memgr8,$regmem8 */ 1413 { 1414 { 0, 0, 0, 0 }, 1415 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 1416 & ifmt_addrm2, { 0x64 } 1417 }, 1418 /* and $reg8,$memory */ 1419 { 1420 { 0, 0, 0, 0 }, 1421 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1422 & ifmt_addrm, { 0x62 } 1423 }, 1424 /* and $memory,$reg8 */ 1425 { 1426 { 0, 0, 0, 0 }, 1427 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 1428 & ifmt_addrm, { 0x64 } 1429 }, 1430 /* or $regmem8,$memgr8 */ 1431 { 1432 { 0, 0, 0, 0 }, 1433 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1434 & ifmt_addrm2, { 0x72 } 1435 }, 1436 /* or $memgr8,$regmem8 */ 1437 { 1438 { 0, 0, 0, 0 }, 1439 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 1440 & ifmt_addrm2, { 0x74 } 1441 }, 1442 /* or $reg8,$memory */ 1443 { 1444 { 0, 0, 0, 0 }, 1445 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1446 & ifmt_addrm, { 0x72 } 1447 }, 1448 /* or $memory,$reg8 */ 1449 { 1450 { 0, 0, 0, 0 }, 1451 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 1452 & ifmt_addrm, { 0x74 } 1453 }, 1454 /* xor $regmem8,$memgr8 */ 1455 { 1456 { 0, 0, 0, 0 }, 1457 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1458 & ifmt_addrm2, { 0x52 } 1459 }, 1460 /* xor $memgr8,$regmem8 */ 1461 { 1462 { 0, 0, 0, 0 }, 1463 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 1464 & ifmt_addrm2, { 0x54 } 1465 }, 1466 /* xor $reg8,$memory */ 1467 { 1468 { 0, 0, 0, 0 }, 1469 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1470 & ifmt_addrm, { 0x52 } 1471 }, 1472 /* xor $memory,$reg8 */ 1473 { 1474 { 0, 0, 0, 0 }, 1475 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 1476 & ifmt_addrm, { 0x54 } 1477 }, 1478 /* andb $regbmem8,$memgr8 */ 1479 { 1480 { 0, 0, 0, 0 }, 1481 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 1482 & ifmt_addbrm2, { 0x63 } 1483 }, 1484 /* andb $memgr8,$regbmem8 */ 1485 { 1486 { 0, 0, 0, 0 }, 1487 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1488 & ifmt_addbrm2, { 0x65 } 1489 }, 1490 /* andb $regb8,$memory */ 1491 { 1492 { 0, 0, 0, 0 }, 1493 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 1494 & ifmt_addbrm, { 0x63 } 1495 }, 1496 /* andb $memory,$regb8 */ 1497 { 1498 { 0, 0, 0, 0 }, 1499 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1500 & ifmt_addbrm, { 0x65 } 1501 }, 1502 /* orb $regbmem8,$memgr8 */ 1503 { 1504 { 0, 0, 0, 0 }, 1505 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 1506 & ifmt_addbrm2, { 0x73 } 1507 }, 1508 /* orb $memgr8,$regbmem8 */ 1509 { 1510 { 0, 0, 0, 0 }, 1511 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1512 & ifmt_addbrm2, { 0x75 } 1513 }, 1514 /* orb $regb8,$memory */ 1515 { 1516 { 0, 0, 0, 0 }, 1517 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 1518 & ifmt_addbrm, { 0x73 } 1519 }, 1520 /* orb $memory,$regb8 */ 1521 { 1522 { 0, 0, 0, 0 }, 1523 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1524 & ifmt_addbrm, { 0x75 } 1525 }, 1526 /* xorb $regbmem8,$memgr8 */ 1527 { 1528 { 0, 0, 0, 0 }, 1529 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 1530 & ifmt_addbrm2, { 0x53 } 1531 }, 1532 /* xorb $memgr8,$regbmem8 */ 1533 { 1534 { 0, 0, 0, 0 }, 1535 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1536 & ifmt_addbrm2, { 0x55 } 1537 }, 1538 /* xorb $regb8,$memory */ 1539 { 1540 { 0, 0, 0, 0 }, 1541 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 1542 & ifmt_addbrm, { 0x53 } 1543 }, 1544 /* xorb $memory,$regb8 */ 1545 { 1546 { 0, 0, 0, 0 }, 1547 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1548 & ifmt_addbrm, { 0x55 } 1549 }, 1550 /* mov $dr,$sr */ 1551 { 1552 { 0, 0, 0, 0 }, 1553 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 1554 & ifmt_addr, { 0xf0 } 1555 }, 1556 /* movb $drb,$srb */ 1557 { 1558 { 0, 0, 0, 0 }, 1559 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 1560 & ifmt_addbr, { 0xf1 } 1561 }, 1562 /* mov $dri,$hash$u4 */ 1563 { 1564 { 0, 0, 0, 0 }, 1565 { { MNEM, ' ', OP (DRI), ',', OP (HASH), OP (U4), 0 } }, 1566 & ifmt_movri, { 0xe0 } 1567 }, 1568 /* movb $srb,$hash$u4 */ 1569 { 1570 { 0, 0, 0, 0 }, 1571 { { MNEM, ' ', OP (SRB), ',', OP (HASH), OP (U4), 0 } }, 1572 & ifmt_movbri, { 0xe1 } 1573 }, 1574 /* mov $reg8,$hash$uimm16 */ 1575 { 1576 { 0, 0, 0, 0 }, 1577 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 1578 & ifmt_addrhpof, { 0xe6 } 1579 }, 1580 /* movb $regb8,$hash$uimm8 */ 1581 { 1582 { 0, 0, 0, 0 }, 1583 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 1584 & ifmt_addrbhpof, { 0xe7 } 1585 }, 1586 /* mov $dr,[$sr] */ 1587 { 1588 { 0, 0, 0, 0 }, 1589 { { MNEM, ' ', OP (DR), ',', '[', OP (SR), ']', 0 } }, 1590 & ifmt_addr, { 0xa8 } 1591 }, 1592 /* movb $drb,[$sr] */ 1593 { 1594 { 0, 0, 0, 0 }, 1595 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR), ']', 0 } }, 1596 & ifmt_movbr2, { 0xa9 } 1597 }, 1598 /* mov [$sr],$dr */ 1599 { 1600 { 0, 0, 0, 0 }, 1601 { { MNEM, ' ', '[', OP (SR), ']', ',', OP (DR), 0 } }, 1602 & ifmt_addr, { 0xb8 } 1603 }, 1604 /* movb [$sr],$drb */ 1605 { 1606 { 0, 0, 0, 0 }, 1607 { { MNEM, ' ', '[', OP (SR), ']', ',', OP (DRB), 0 } }, 1608 & ifmt_movbr2, { 0xb9 } 1609 }, 1610 /* mov [-$sr],$dr */ 1611 { 1612 { 0, 0, 0, 0 }, 1613 { { MNEM, ' ', '[', '-', OP (SR), ']', ',', OP (DR), 0 } }, 1614 & ifmt_addr, { 0x88 } 1615 }, 1616 /* movb [-$sr],$drb */ 1617 { 1618 { 0, 0, 0, 0 }, 1619 { { MNEM, ' ', '[', '-', OP (SR), ']', ',', OP (DRB), 0 } }, 1620 & ifmt_movbr2, { 0x89 } 1621 }, 1622 /* mov $dr,[$sr+] */ 1623 { 1624 { 0, 0, 0, 0 }, 1625 { { MNEM, ' ', OP (DR), ',', '[', OP (SR), '+', ']', 0 } }, 1626 & ifmt_addr, { 0x98 } 1627 }, 1628 /* movb $drb,[$sr+] */ 1629 { 1630 { 0, 0, 0, 0 }, 1631 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR), '+', ']', 0 } }, 1632 & ifmt_movbr2, { 0x99 } 1633 }, 1634 /* mov [$dr],[$sr] */ 1635 { 1636 { 0, 0, 0, 0 }, 1637 { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), ']', 0 } }, 1638 & ifmt_addr, { 0xc8 } 1639 }, 1640 /* movb [$dr],[$sr] */ 1641 { 1642 { 0, 0, 0, 0 }, 1643 { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), ']', 0 } }, 1644 & ifmt_addr, { 0xc9 } 1645 }, 1646 /* mov [$dr+],[$sr] */ 1647 { 1648 { 0, 0, 0, 0 }, 1649 { { MNEM, ' ', '[', OP (DR), '+', ']', ',', '[', OP (SR), ']', 0 } }, 1650 & ifmt_addr, { 0xd8 } 1651 }, 1652 /* movb [$dr+],[$sr] */ 1653 { 1654 { 0, 0, 0, 0 }, 1655 { { MNEM, ' ', '[', OP (DR), '+', ']', ',', '[', OP (SR), ']', 0 } }, 1656 & ifmt_addr, { 0xd9 } 1657 }, 1658 /* mov [$dr],[$sr+] */ 1659 { 1660 { 0, 0, 0, 0 }, 1661 { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), '+', ']', 0 } }, 1662 & ifmt_addr, { 0xe8 } 1663 }, 1664 /* movb [$dr],[$sr+] */ 1665 { 1666 { 0, 0, 0, 0 }, 1667 { { MNEM, ' ', '[', OP (DR), ']', ',', '[', OP (SR), '+', ']', 0 } }, 1668 & ifmt_addr, { 0xe9 } 1669 }, 1670 /* mov $dr,[$sr+$hash$uimm16] */ 1671 { 1672 { 0, 0, 0, 0 }, 1673 { { MNEM, ' ', OP (DR), ',', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', 0 } }, 1674 & ifmt_mov9i, { 0xd4 } 1675 }, 1676 /* movb $drb,[$sr+$hash$uimm16] */ 1677 { 1678 { 0, 0, 0, 0 }, 1679 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', 0 } }, 1680 & ifmt_movb9i, { 0xf4 } 1681 }, 1682 /* mov [$sr+$hash$uimm16],$dr */ 1683 { 1684 { 0, 0, 0, 0 }, 1685 { { MNEM, ' ', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', ',', OP (DR), 0 } }, 1686 & ifmt_mov9i, { 0xc4 } 1687 }, 1688 /* movb [$sr+$hash$uimm16],$drb */ 1689 { 1690 { 0, 0, 0, 0 }, 1691 { { MNEM, ' ', '[', OP (SR), '+', OP (HASH), OP (UIMM16), ']', ',', OP (DRB), 0 } }, 1692 & ifmt_movb9i, { 0xe4 } 1693 }, 1694 /* mov [$src2],$memory */ 1695 { 1696 { 0, 0, 0, 0 }, 1697 { { MNEM, ' ', '[', OP (SRC2), ']', ',', OP (MEMORY), 0 } }, 1698 & ifmt_movri11, { 0x84 } 1699 }, 1700 /* movb [$src2],$memory */ 1701 { 1702 { 0, 0, 0, 0 }, 1703 { { MNEM, ' ', '[', OP (SRC2), ']', ',', OP (MEMORY), 0 } }, 1704 & ifmt_movri11, { 0xa4 } 1705 }, 1706 /* mov $memory,[$src2] */ 1707 { 1708 { 0, 0, 0, 0 }, 1709 { { MNEM, ' ', OP (MEMORY), ',', '[', OP (SRC2), ']', 0 } }, 1710 & ifmt_movri11, { 0x94 } 1711 }, 1712 /* movb $memory,[$src2] */ 1713 { 1714 { 0, 0, 0, 0 }, 1715 { { MNEM, ' ', OP (MEMORY), ',', '[', OP (SRC2), ']', 0 } }, 1716 & ifmt_movri11, { 0xb4 } 1717 }, 1718 /* mov $regoff8,$hash$pof$upof16 */ 1719 { 1720 { 0, 0, 0, 0 }, 1721 { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (POF), OP (UPOF16), 0 } }, 1722 & ifmt_movehm5, { 0xe6 } 1723 }, 1724 /* mov $regoff8,$hash$pag$upag16 */ 1725 { 1726 { 0, 0, 0, 0 }, 1727 { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (PAG), OP (UPAG16), 0 } }, 1728 & ifmt_movehm6, { 0xe6 } 1729 }, 1730 /* mov $regoff8,$hash$segm$useg16 */ 1731 { 1732 { 0, 0, 0, 0 }, 1733 { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (SEGM), OP (USEG16), 0 } }, 1734 & ifmt_movehm7, { 0xe6 } 1735 }, 1736 /* mov $regoff8,$hash$sof$usof16 */ 1737 { 1738 { 0, 0, 0, 0 }, 1739 { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (SOF), OP (USOF16), 0 } }, 1740 & ifmt_movehm8, { 0xe6 } 1741 }, 1742 /* movb $regb8,$hash$pof$uimm8 */ 1743 { 1744 { 0, 0, 0, 0 }, 1745 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (POF), OP (UIMM8), 0 } }, 1746 & ifmt_addrbhpof, { 0xe7 } 1747 }, 1748 /* movb $regoff8,$hash$pag$uimm8 */ 1749 { 1750 { 0, 0, 0, 0 }, 1751 { { MNEM, ' ', OP (REGOFF8), ',', OP (HASH), OP (PAG), OP (UIMM8), 0 } }, 1752 & ifmt_movehm10, { 0xe7 } 1753 }, 1754 /* mov $regoff8,$pof$upof16 */ 1755 { 1756 { 0, 0, 0, 0 }, 1757 { { MNEM, ' ', OP (REGOFF8), ',', OP (POF), OP (UPOF16), 0 } }, 1758 & ifmt_movehm5, { 0xf2 } 1759 }, 1760 /* movb $regb8,$pof$upof16 */ 1761 { 1762 { 0, 0, 0, 0 }, 1763 { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } }, 1764 & ifmt_addbrpof, { 0xf3 } 1765 }, 1766 /* mov $regoff8,$pag$upag16 */ 1767 { 1768 { 0, 0, 0, 0 }, 1769 { { MNEM, ' ', OP (REGOFF8), ',', OP (PAG), OP (UPAG16), 0 } }, 1770 & ifmt_movehm6, { 0xf2 } 1771 }, 1772 /* movb $regb8,$pag$upag16 */ 1773 { 1774 { 0, 0, 0, 0 }, 1775 { { MNEM, ' ', OP (REGB8), ',', OP (PAG), OP (UPAG16), 0 } }, 1776 & ifmt_addbrpag, { 0xf3 } 1777 }, 1778 /* mov $pof$upof16,$regoff8 */ 1779 { 1780 { 0, 0, 0, 0 }, 1781 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGOFF8), 0 } }, 1782 & ifmt_movehm5, { 0xf6 } 1783 }, 1784 /* movb $pof$upof16,$regb8 */ 1785 { 1786 { 0, 0, 0, 0 }, 1787 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 1788 & ifmt_addbrpof, { 0xf7 } 1789 }, 1790 /* mov $dri,$hash$pof$u4 */ 1791 { 1792 { 0, 0, 0, 0 }, 1793 { { MNEM, ' ', OP (DRI), ',', OP (HASH), OP (POF), OP (U4), 0 } }, 1794 & ifmt_movri, { 0xe0 } 1795 }, 1796 /* movb $srb,$hash$pof$u4 */ 1797 { 1798 { 0, 0, 0, 0 }, 1799 { { MNEM, ' ', OP (SRB), ',', OP (HASH), OP (POF), OP (U4), 0 } }, 1800 & ifmt_movbri, { 0xe1 } 1801 }, 1802 /* mov $dri,$hash$pag$u4 */ 1803 { 1804 { 0, 0, 0, 0 }, 1805 { { MNEM, ' ', OP (DRI), ',', OP (HASH), OP (PAG), OP (U4), 0 } }, 1806 & ifmt_movri, { 0xe0 } 1807 }, 1808 /* movb $srb,$hash$pag$u4 */ 1809 { 1810 { 0, 0, 0, 0 }, 1811 { { MNEM, ' ', OP (SRB), ',', OP (HASH), OP (PAG), OP (U4), 0 } }, 1812 & ifmt_movbri, { 0xe1 } 1813 }, 1814 /* mov $regmem8,$memgr8 */ 1815 { 1816 { 0, 0, 0, 0 }, 1817 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1818 & ifmt_addrm2, { 0xf2 } 1819 }, 1820 /* mov $memgr8,$regmem8 */ 1821 { 1822 { 0, 0, 0, 0 }, 1823 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGMEM8), 0 } }, 1824 & ifmt_addrm2, { 0xf6 } 1825 }, 1826 /* mov $reg8,$memory */ 1827 { 1828 { 0, 0, 0, 0 }, 1829 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1830 & ifmt_addrm, { 0xf2 } 1831 }, 1832 /* mov $memory,$reg8 */ 1833 { 1834 { 0, 0, 0, 0 }, 1835 { { MNEM, ' ', OP (MEMORY), ',', OP (REG8), 0 } }, 1836 & ifmt_addrm, { 0xf6 } 1837 }, 1838 /* movb $regbmem8,$memgr8 */ 1839 { 1840 { 0, 0, 0, 0 }, 1841 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 1842 & ifmt_addbrm2, { 0xf3 } 1843 }, 1844 /* movb $memgr8,$regbmem8 */ 1845 { 1846 { 0, 0, 0, 0 }, 1847 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1848 & ifmt_addbrm2, { 0xf7 } 1849 }, 1850 /* movb $regb8,$memory */ 1851 { 1852 { 0, 0, 0, 0 }, 1853 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 1854 & ifmt_addbrm, { 0xf3 } 1855 }, 1856 /* movb $memory,$regb8 */ 1857 { 1858 { 0, 0, 0, 0 }, 1859 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1860 & ifmt_addbrm, { 0xf7 } 1861 }, 1862 /* movbs $sr,$drb */ 1863 { 1864 { 0, 0, 0, 0 }, 1865 { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } }, 1866 & ifmt_movbr2, { 0xd0 } 1867 }, 1868 /* movbz $sr,$drb */ 1869 { 1870 { 0, 0, 0, 0 }, 1871 { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } }, 1872 & ifmt_movbr2, { 0xc0 } 1873 }, 1874 /* movbs $regmem8,$pof$upof16 */ 1875 { 1876 { 0, 0, 0, 0 }, 1877 { { MNEM, ' ', OP (REGMEM8), ',', OP (POF), OP (UPOF16), 0 } }, 1878 & ifmt_movbsrpofm, { 0xd2 } 1879 }, 1880 /* movbs $pof$upof16,$regbmem8 */ 1881 { 1882 { 0, 0, 0, 0 }, 1883 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGBMEM8), 0 } }, 1884 & ifmt_movbspofmr, { 0xd5 } 1885 }, 1886 /* movbz $reg8,$pof$upof16 */ 1887 { 1888 { 0, 0, 0, 0 }, 1889 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 1890 & ifmt_addrpof, { 0xc2 } 1891 }, 1892 /* movbz $pof$upof16,$regb8 */ 1893 { 1894 { 0, 0, 0, 0 }, 1895 { { MNEM, ' ', OP (POF), OP (UPOF16), ',', OP (REGB8), 0 } }, 1896 & ifmt_addbrpof, { 0xc5 } 1897 }, 1898 /* movbs $regmem8,$memgr8 */ 1899 { 1900 { 0, 0, 0, 0 }, 1901 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1902 & ifmt_addrm2, { 0xd2 } 1903 }, 1904 /* movbs $memgr8,$regbmem8 */ 1905 { 1906 { 0, 0, 0, 0 }, 1907 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1908 & ifmt_addbrm2, { 0xd5 } 1909 }, 1910 /* movbs $reg8,$memory */ 1911 { 1912 { 0, 0, 0, 0 }, 1913 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1914 & ifmt_addrm, { 0xd2 } 1915 }, 1916 /* movbs $memory,$regb8 */ 1917 { 1918 { 0, 0, 0, 0 }, 1919 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1920 & ifmt_addbrm, { 0xd5 } 1921 }, 1922 /* movbz $regmem8,$memgr8 */ 1923 { 1924 { 0, 0, 0, 0 }, 1925 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 1926 & ifmt_addrm2, { 0xc2 } 1927 }, 1928 /* movbz $memgr8,$regbmem8 */ 1929 { 1930 { 0, 0, 0, 0 }, 1931 { { MNEM, ' ', OP (MEMGR8), ',', OP (REGBMEM8), 0 } }, 1932 & ifmt_addbrm2, { 0xc5 } 1933 }, 1934 /* movbz $reg8,$memory */ 1935 { 1936 { 0, 0, 0, 0 }, 1937 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 1938 & ifmt_addrm, { 0xc2 } 1939 }, 1940 /* movbz $memory,$regb8 */ 1941 { 1942 { 0, 0, 0, 0 }, 1943 { { MNEM, ' ', OP (MEMORY), ',', OP (REGB8), 0 } }, 1944 & ifmt_addbrm, { 0xc5 } 1945 }, 1946 /* movbs $sr,$drb */ 1947 { 1948 { 0, 0, 0, 0 }, 1949 { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } }, 1950 & ifmt_movbr2, { 0xd0 } 1951 }, 1952 /* movbz $sr,$drb */ 1953 { 1954 { 0, 0, 0, 0 }, 1955 { { MNEM, ' ', OP (SR), ',', OP (DRB), 0 } }, 1956 & ifmt_movbr2, { 0xc0 } 1957 }, 1958 /* jmpa+ $extcond,$caddr */ 1959 { 1960 { 0, 0, 0, 0 }, 1961 { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } }, 1962 & ifmt_jmpa0, { 0xea } 1963 }, 1964 /* jmpa $extcond,$caddr */ 1965 { 1966 { 0, 0, 0, 0 }, 1967 { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } }, 1968 & ifmt_jmpa0, { 0xea } 1969 }, 1970 /* jmpa- $extcond,$caddr */ 1971 { 1972 { 0, 0, 0, 0 }, 1973 { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } }, 1974 & ifmt_jmpa_, { 0x1ea } 1975 }, 1976 /* jmpi $icond,[$sr] */ 1977 { 1978 { 0, 0, 0, 0 }, 1979 { { MNEM, ' ', OP (ICOND), ',', '[', OP (SR), ']', 0 } }, 1980 & ifmt_jmpi, { 0x9c } 1981 }, 1982 /* jmpr $cond,$rel */ 1983 { 1984 { 0, 0, 0, 0 }, 1985 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 1986 & ifmt_jmpr_nenz, { 0x3d } 1987 }, 1988 /* jmpr $cond,$rel */ 1989 { 1990 { 0, 0, 0, 0 }, 1991 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 1992 & ifmt_jmpr_nenz, { 0xad } 1993 }, 1994 /* jmpr $cond,$rel */ 1995 { 1996 { 0, 0, 0, 0 }, 1997 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 1998 & ifmt_jmpr_nenz, { 0x2d } 1999 }, 2000 /* jmpr $cond,$rel */ 2001 { 2002 { 0, 0, 0, 0 }, 2003 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2004 & ifmt_jmpr_nenz, { 0x4d } 2005 }, 2006 /* jmpr $cond,$rel */ 2007 { 2008 { 0, 0, 0, 0 }, 2009 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2010 & ifmt_jmpr_nenz, { 0x5d } 2011 }, 2012 /* jmpr $cond,$rel */ 2013 { 2014 { 0, 0, 0, 0 }, 2015 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2016 & ifmt_jmpr_nenz, { 0x6d } 2017 }, 2018 /* jmpr $cond,$rel */ 2019 { 2020 { 0, 0, 0, 0 }, 2021 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2022 & ifmt_jmpr_nenz, { 0x7d } 2023 }, 2024 /* jmpr $cond,$rel */ 2025 { 2026 { 0, 0, 0, 0 }, 2027 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2028 & ifmt_jmpr_nenz, { 0x8d } 2029 }, 2030 /* jmpr $cond,$rel */ 2031 { 2032 { 0, 0, 0, 0 }, 2033 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2034 & ifmt_jmpr_nenz, { 0x9d } 2035 }, 2036 /* jmpr $cond,$rel */ 2037 { 2038 { 0, 0, 0, 0 }, 2039 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2040 & ifmt_jmpr_nenz, { 0x2d } 2041 }, 2042 /* jmpr $cond,$rel */ 2043 { 2044 { 0, 0, 0, 0 }, 2045 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2046 & ifmt_jmpr_nenz, { 0x3d } 2047 }, 2048 /* jmpr $cond,$rel */ 2049 { 2050 { 0, 0, 0, 0 }, 2051 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2052 & ifmt_jmpr_nenz, { 0x8d } 2053 }, 2054 /* jmpr $cond,$rel */ 2055 { 2056 { 0, 0, 0, 0 }, 2057 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2058 & ifmt_jmpr_nenz, { 0xfd } 2059 }, 2060 /* jmpr $cond,$rel */ 2061 { 2062 { 0, 0, 0, 0 }, 2063 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2064 & ifmt_jmpr_nenz, { 0x9d } 2065 }, 2066 /* jmpr $cond,$rel */ 2067 { 2068 { 0, 0, 0, 0 }, 2069 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2070 & ifmt_jmpr_nenz, { 0xed } 2071 }, 2072 /* jmpr $cond,$rel */ 2073 { 2074 { 0, 0, 0, 0 }, 2075 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2076 & ifmt_jmpr_nenz, { 0xbd } 2077 }, 2078 /* jmpr $cond,$rel */ 2079 { 2080 { 0, 0, 0, 0 }, 2081 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2082 & ifmt_jmpr_nenz, { 0xdd } 2083 }, 2084 /* jmpr $cond,$rel */ 2085 { 2086 { 0, 0, 0, 0 }, 2087 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2088 & ifmt_jmpr_nenz, { 0x1d } 2089 }, 2090 /* jmpr $cond,$rel */ 2091 { 2092 { 0, 0, 0, 0 }, 2093 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2094 & ifmt_jmpr_nenz, { 0xd } 2095 }, 2096 /* jmpr $cond,$rel */ 2097 { 2098 { 0, 0, 0, 0 }, 2099 { { MNEM, ' ', OP (COND), ',', OP (REL), 0 } }, 2100 & ifmt_jmpr_nenz, { 0xcd } 2101 }, 2102 /* jmps $hash$segm$useg8,$hash$sof$usof16 */ 2103 { 2104 { 0, 0, 0, 0 }, 2105 { { MNEM, ' ', OP (HASH), OP (SEGM), OP (USEG8), ',', OP (HASH), OP (SOF), OP (USOF16), 0 } }, 2106 & ifmt_jmpseg, { 0xfa } 2107 }, 2108 /* jmps $seg,$caddr */ 2109 { 2110 { 0, 0, 0, 0 }, 2111 { { MNEM, ' ', OP (SEG), ',', OP (CADDR), 0 } }, 2112 & ifmt_jmps, { 0xfa } 2113 }, 2114 /* jb $genreg$dot$qlobit,$relhi */ 2115 { 2116 { 0, 0, 0, 0 }, 2117 { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } }, 2118 & ifmt_jb, { 0x8a } 2119 }, 2120 /* jbc $genreg$dot$qlobit,$relhi */ 2121 { 2122 { 0, 0, 0, 0 }, 2123 { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } }, 2124 & ifmt_jb, { 0xaa } 2125 }, 2126 /* jnb $genreg$dot$qlobit,$relhi */ 2127 { 2128 { 0, 0, 0, 0 }, 2129 { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } }, 2130 & ifmt_jb, { 0x9a } 2131 }, 2132 /* jnbs $genreg$dot$qlobit,$relhi */ 2133 { 2134 { 0, 0, 0, 0 }, 2135 { { MNEM, ' ', OP (GENREG), OP (DOT), OP (QLOBIT), ',', OP (RELHI), 0 } }, 2136 & ifmt_jb, { 0xba } 2137 }, 2138 /* calla+ $extcond,$caddr */ 2139 { 2140 { 0, 0, 0, 0 }, 2141 { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } }, 2142 & ifmt_calla0, { 0xca } 2143 }, 2144 /* calla $extcond,$caddr */ 2145 { 2146 { 0, 0, 0, 0 }, 2147 { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } }, 2148 & ifmt_calla0, { 0xca } 2149 }, 2150 /* calla- $extcond,$caddr */ 2151 { 2152 { 0, 0, 0, 0 }, 2153 { { MNEM, ' ', OP (EXTCOND), ',', OP (CADDR), 0 } }, 2154 & ifmt_calla_, { 0x1ca } 2155 }, 2156 /* calli $icond,[$sr] */ 2157 { 2158 { 0, 0, 0, 0 }, 2159 { { MNEM, ' ', OP (ICOND), ',', '[', OP (SR), ']', 0 } }, 2160 & ifmt_jmpi, { 0xab } 2161 }, 2162 /* callr $rel */ 2163 { 2164 { 0, 0, 0, 0 }, 2165 { { MNEM, ' ', OP (REL), 0 } }, 2166 & ifmt_callr, { 0xbb } 2167 }, 2168 /* calls $hash$segm$useg8,$hash$sof$usof16 */ 2169 { 2170 { 0, 0, 0, 0 }, 2171 { { MNEM, ' ', OP (HASH), OP (SEGM), OP (USEG8), ',', OP (HASH), OP (SOF), OP (USOF16), 0 } }, 2172 & ifmt_callseg, { 0xda } 2173 }, 2174 /* calls $seg,$caddr */ 2175 { 2176 { 0, 0, 0, 0 }, 2177 { { MNEM, ' ', OP (SEG), ',', OP (CADDR), 0 } }, 2178 & ifmt_jmps, { 0xda } 2179 }, 2180 /* pcall $reg8,$caddr */ 2181 { 2182 { 0, 0, 0, 0 }, 2183 { { MNEM, ' ', OP (REG8), ',', OP (CADDR), 0 } }, 2184 & ifmt_pcall, { 0xe2 } 2185 }, 2186 /* trap $hash$uimm7 */ 2187 { 2188 { 0, 0, 0, 0 }, 2189 { { MNEM, ' ', OP (HASH), OP (UIMM7), 0 } }, 2190 & ifmt_trap, { 0x9b } 2191 }, 2192 /* ret */ 2193 { 2194 { 0, 0, 0, 0 }, 2195 { { MNEM, 0 } }, 2196 & ifmt_ret, { 0xcb } 2197 }, 2198 /* rets */ 2199 { 2200 { 0, 0, 0, 0 }, 2201 { { MNEM, 0 } }, 2202 & ifmt_ret, { 0xdb } 2203 }, 2204 /* retp $reg8 */ 2205 { 2206 { 0, 0, 0, 0 }, 2207 { { MNEM, ' ', OP (REG8), 0 } }, 2208 & ifmt_retp, { 0xeb } 2209 }, 2210 /* reti */ 2211 { 2212 { 0, 0, 0, 0 }, 2213 { { MNEM, 0 } }, 2214 & ifmt_reti, { 0x88fb } 2215 }, 2216 /* pop $reg8 */ 2217 { 2218 { 0, 0, 0, 0 }, 2219 { { MNEM, ' ', OP (REG8), 0 } }, 2220 & ifmt_retp, { 0xfc } 2221 }, 2222 /* push $reg8 */ 2223 { 2224 { 0, 0, 0, 0 }, 2225 { { MNEM, ' ', OP (REG8), 0 } }, 2226 & ifmt_retp, { 0xec } 2227 }, 2228 /* scxt $reg8,$hash$uimm16 */ 2229 { 2230 { 0, 0, 0, 0 }, 2231 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 2232 & ifmt_addrhpof, { 0xc6 } 2233 }, 2234 /* scxt $reg8,$pof$upof16 */ 2235 { 2236 { 0, 0, 0, 0 }, 2237 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 2238 & ifmt_addrpof, { 0xd6 } 2239 }, 2240 /* scxt $regmem8,$memgr8 */ 2241 { 2242 { 0, 0, 0, 0 }, 2243 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 2244 & ifmt_addrm2, { 0xd6 } 2245 }, 2246 /* scxt $reg8,$memory */ 2247 { 2248 { 0, 0, 0, 0 }, 2249 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 2250 & ifmt_addrm, { 0xd6 } 2251 }, 2252 /* nop */ 2253 { 2254 { 0, 0, 0, 0 }, 2255 { { MNEM, 0 } }, 2256 & ifmt_ret, { 0xcc } 2257 }, 2258 /* srst */ 2259 { 2260 { 0, 0, 0, 0 }, 2261 { { MNEM, 0 } }, 2262 & ifmt_srstm, { 0xb7b748b7 } 2263 }, 2264 /* idle */ 2265 { 2266 { 0, 0, 0, 0 }, 2267 { { MNEM, 0 } }, 2268 & ifmt_srstm, { 0x87877887 } 2269 }, 2270 /* pwrdn */ 2271 { 2272 { 0, 0, 0, 0 }, 2273 { { MNEM, 0 } }, 2274 & ifmt_srstm, { 0x97976897 } 2275 }, 2276 /* diswdt */ 2277 { 2278 { 0, 0, 0, 0 }, 2279 { { MNEM, 0 } }, 2280 & ifmt_srstm, { 0xa5a55aa5 } 2281 }, 2282 /* enwdt */ 2283 { 2284 { 0, 0, 0, 0 }, 2285 { { MNEM, 0 } }, 2286 & ifmt_srstm, { 0x85857a85 } 2287 }, 2288 /* einit */ 2289 { 2290 { 0, 0, 0, 0 }, 2291 { { MNEM, 0 } }, 2292 & ifmt_srstm, { 0xb5b54ab5 } 2293 }, 2294 /* srvwdt */ 2295 { 2296 { 0, 0, 0, 0 }, 2297 { { MNEM, 0 } }, 2298 & ifmt_srstm, { 0xa7a758a7 } 2299 }, 2300 /* sbrk */ 2301 { 2302 { 0, 0, 0, 0 }, 2303 { { MNEM, 0 } }, 2304 & ifmt_ret, { 0x8c } 2305 }, 2306 /* atomic $hash$uimm2 */ 2307 { 2308 { 0, 0, 0, 0 }, 2309 { { MNEM, ' ', OP (HASH), OP (UIMM2), 0 } }, 2310 & ifmt_atomic, { 0xd1 } 2311 }, 2312 /* extr $hash$uimm2 */ 2313 { 2314 { 0, 0, 0, 0 }, 2315 { { MNEM, ' ', OP (HASH), OP (UIMM2), 0 } }, 2316 & ifmt_atomic, { 0x80d1 } 2317 }, 2318 /* extp $sr,$hash$uimm2 */ 2319 { 2320 { 0, 0, 0, 0 }, 2321 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } }, 2322 & ifmt_extp, { 0x40dc } 2323 }, 2324 /* extp $hash$pagenum,$hash$uimm2 */ 2325 { 2326 { 0, 0, 0, 0 }, 2327 { { MNEM, ' ', OP (HASH), OP (PAGENUM), ',', OP (HASH), OP (UIMM2), 0 } }, 2328 & ifmt_extp1, { 0x40d7 } 2329 }, 2330 /* extp $hash$pag$upag16,$hash$uimm2 */ 2331 { 2332 { 0, 0, 0, 0 }, 2333 { { MNEM, ' ', OP (HASH), OP (PAG), OP (UPAG16), ',', OP (HASH), OP (UIMM2), 0 } }, 2334 & ifmt_extpg1, { 0x40d7 } 2335 }, 2336 /* extpr $sr,$hash$uimm2 */ 2337 { 2338 { 0, 0, 0, 0 }, 2339 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } }, 2340 & ifmt_extp, { 0xc0dc } 2341 }, 2342 /* extpr $hash$pagenum,$hash$uimm2 */ 2343 { 2344 { 0, 0, 0, 0 }, 2345 { { MNEM, ' ', OP (HASH), OP (PAGENUM), ',', OP (HASH), OP (UIMM2), 0 } }, 2346 & ifmt_extp1, { 0xc0d7 } 2347 }, 2348 /* exts $sr,$hash$uimm2 */ 2349 { 2350 { 0, 0, 0, 0 }, 2351 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } }, 2352 & ifmt_extp, { 0xdc } 2353 }, 2354 /* exts $hash$seghi8,$hash$uimm2 */ 2355 { 2356 { 0, 0, 0, 0 }, 2357 { { MNEM, ' ', OP (HASH), OP (SEGHI8), ',', OP (HASH), OP (UIMM2), 0 } }, 2358 & ifmt_exts1, { 0xd7 } 2359 }, 2360 /* extsr $sr,$hash$uimm2 */ 2361 { 2362 { 0, 0, 0, 0 }, 2363 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM2), 0 } }, 2364 & ifmt_extp, { 0x80dc } 2365 }, 2366 /* extsr $hash$seghi8,$hash$uimm2 */ 2367 { 2368 { 0, 0, 0, 0 }, 2369 { { MNEM, ' ', OP (HASH), OP (SEGHI8), ',', OP (HASH), OP (UIMM2), 0 } }, 2370 & ifmt_exts1, { 0x80d7 } 2371 }, 2372 /* prior $dr,$sr */ 2373 { 2374 { 0, 0, 0, 0 }, 2375 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 2376 & ifmt_addr, { 0x2b } 2377 }, 2378 /* bclr $RegNam */ 2379 { 2380 { 0, 0, 0, 0 }, 2381 { { MNEM, ' ', OP (REGNAM), 0 } }, 2382 & ifmt_bclr18, { 0xbe } 2383 }, 2384 /* bclr $reg8$dot$qbit */ 2385 { 2386 { 0, 0, 0, 0 }, 2387 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2388 & ifmt_bclr0, { 0xe } 2389 }, 2390 /* bclr $reg8$dot$qbit */ 2391 { 2392 { 0, 0, 0, 0 }, 2393 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2394 & ifmt_bclr0, { 0x1e } 2395 }, 2396 /* bclr $reg8$dot$qbit */ 2397 { 2398 { 0, 0, 0, 0 }, 2399 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2400 & ifmt_bclr0, { 0x2e } 2401 }, 2402 /* bclr $reg8$dot$qbit */ 2403 { 2404 { 0, 0, 0, 0 }, 2405 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2406 & ifmt_bclr0, { 0x3e } 2407 }, 2408 /* bclr $reg8$dot$qbit */ 2409 { 2410 { 0, 0, 0, 0 }, 2411 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2412 & ifmt_bclr0, { 0x4e } 2413 }, 2414 /* bclr $reg8$dot$qbit */ 2415 { 2416 { 0, 0, 0, 0 }, 2417 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2418 & ifmt_bclr0, { 0x5e } 2419 }, 2420 /* bclr $reg8$dot$qbit */ 2421 { 2422 { 0, 0, 0, 0 }, 2423 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2424 & ifmt_bclr0, { 0x6e } 2425 }, 2426 /* bclr $reg8$dot$qbit */ 2427 { 2428 { 0, 0, 0, 0 }, 2429 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2430 & ifmt_bclr0, { 0x7e } 2431 }, 2432 /* bclr $reg8$dot$qbit */ 2433 { 2434 { 0, 0, 0, 0 }, 2435 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2436 & ifmt_bclr0, { 0x8e } 2437 }, 2438 /* bclr $reg8$dot$qbit */ 2439 { 2440 { 0, 0, 0, 0 }, 2441 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2442 & ifmt_bclr0, { 0x9e } 2443 }, 2444 /* bclr $reg8$dot$qbit */ 2445 { 2446 { 0, 0, 0, 0 }, 2447 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2448 & ifmt_bclr0, { 0xae } 2449 }, 2450 /* bclr $reg8$dot$qbit */ 2451 { 2452 { 0, 0, 0, 0 }, 2453 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2454 & ifmt_bclr0, { 0xbe } 2455 }, 2456 /* bclr $reg8$dot$qbit */ 2457 { 2458 { 0, 0, 0, 0 }, 2459 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2460 & ifmt_bclr0, { 0xce } 2461 }, 2462 /* bclr $reg8$dot$qbit */ 2463 { 2464 { 0, 0, 0, 0 }, 2465 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2466 & ifmt_bclr0, { 0xde } 2467 }, 2468 /* bclr $reg8$dot$qbit */ 2469 { 2470 { 0, 0, 0, 0 }, 2471 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2472 & ifmt_bclr0, { 0xee } 2473 }, 2474 /* bclr $reg8$dot$qbit */ 2475 { 2476 { 0, 0, 0, 0 }, 2477 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2478 & ifmt_bclr0, { 0xfe } 2479 }, 2480 /* bset $RegNam */ 2481 { 2482 { 0, 0, 0, 0 }, 2483 { { MNEM, ' ', OP (REGNAM), 0 } }, 2484 & ifmt_bclr18, { 0xbf } 2485 }, 2486 /* bset $reg8$dot$qbit */ 2487 { 2488 { 0, 0, 0, 0 }, 2489 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2490 & ifmt_bclr0, { 0xf } 2491 }, 2492 /* bset $reg8$dot$qbit */ 2493 { 2494 { 0, 0, 0, 0 }, 2495 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2496 & ifmt_bclr0, { 0x1f } 2497 }, 2498 /* bset $reg8$dot$qbit */ 2499 { 2500 { 0, 0, 0, 0 }, 2501 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2502 & ifmt_bclr0, { 0x2f } 2503 }, 2504 /* bset $reg8$dot$qbit */ 2505 { 2506 { 0, 0, 0, 0 }, 2507 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2508 & ifmt_bclr0, { 0x3f } 2509 }, 2510 /* bset $reg8$dot$qbit */ 2511 { 2512 { 0, 0, 0, 0 }, 2513 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2514 & ifmt_bclr0, { 0x4f } 2515 }, 2516 /* bset $reg8$dot$qbit */ 2517 { 2518 { 0, 0, 0, 0 }, 2519 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2520 & ifmt_bclr0, { 0x5f } 2521 }, 2522 /* bset $reg8$dot$qbit */ 2523 { 2524 { 0, 0, 0, 0 }, 2525 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2526 & ifmt_bclr0, { 0x6f } 2527 }, 2528 /* bset $reg8$dot$qbit */ 2529 { 2530 { 0, 0, 0, 0 }, 2531 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2532 & ifmt_bclr0, { 0x7f } 2533 }, 2534 /* bset $reg8$dot$qbit */ 2535 { 2536 { 0, 0, 0, 0 }, 2537 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2538 & ifmt_bclr0, { 0x8f } 2539 }, 2540 /* bset $reg8$dot$qbit */ 2541 { 2542 { 0, 0, 0, 0 }, 2543 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2544 & ifmt_bclr0, { 0x9f } 2545 }, 2546 /* bset $reg8$dot$qbit */ 2547 { 2548 { 0, 0, 0, 0 }, 2549 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2550 & ifmt_bclr0, { 0xaf } 2551 }, 2552 /* bset $reg8$dot$qbit */ 2553 { 2554 { 0, 0, 0, 0 }, 2555 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2556 & ifmt_bclr0, { 0xbf } 2557 }, 2558 /* bset $reg8$dot$qbit */ 2559 { 2560 { 0, 0, 0, 0 }, 2561 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2562 & ifmt_bclr0, { 0xcf } 2563 }, 2564 /* bset $reg8$dot$qbit */ 2565 { 2566 { 0, 0, 0, 0 }, 2567 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2568 & ifmt_bclr0, { 0xdf } 2569 }, 2570 /* bset $reg8$dot$qbit */ 2571 { 2572 { 0, 0, 0, 0 }, 2573 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2574 & ifmt_bclr0, { 0xef } 2575 }, 2576 /* bset $reg8$dot$qbit */ 2577 { 2578 { 0, 0, 0, 0 }, 2579 { { MNEM, ' ', OP (REG8), OP (DOT), OP (QBIT), 0 } }, 2580 & ifmt_bclr0, { 0xff } 2581 }, 2582 /* bmov $reghi8$dot$qhibit,$reg8$dot$qlobit */ 2583 { 2584 { 0, 0, 0, 0 }, 2585 { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } }, 2586 & ifmt_bmov, { 0x4a } 2587 }, 2588 /* bmovn $reghi8$dot$qhibit,$reg8$dot$qlobit */ 2589 { 2590 { 0, 0, 0, 0 }, 2591 { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } }, 2592 & ifmt_bmov, { 0x3a } 2593 }, 2594 /* band $reghi8$dot$qhibit,$reg8$dot$qlobit */ 2595 { 2596 { 0, 0, 0, 0 }, 2597 { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } }, 2598 & ifmt_bmov, { 0x6a } 2599 }, 2600 /* bor $reghi8$dot$qhibit,$reg8$dot$qlobit */ 2601 { 2602 { 0, 0, 0, 0 }, 2603 { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } }, 2604 & ifmt_bmov, { 0x5a } 2605 }, 2606 /* bxor $reghi8$dot$qhibit,$reg8$dot$qlobit */ 2607 { 2608 { 0, 0, 0, 0 }, 2609 { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } }, 2610 & ifmt_bmov, { 0x7a } 2611 }, 2612 /* bcmp $reghi8$dot$qhibit,$reg8$dot$qlobit */ 2613 { 2614 { 0, 0, 0, 0 }, 2615 { { MNEM, ' ', OP (REGHI8), OP (DOT), OP (QHIBIT), ',', OP (REG8), OP (DOT), OP (QLOBIT), 0 } }, 2616 & ifmt_bmov, { 0x2a } 2617 }, 2618 /* bfldl $reg8,$hash$mask8,$hash$datahi8 */ 2619 { 2620 { 0, 0, 0, 0 }, 2621 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (MASK8), ',', OP (HASH), OP (DATAHI8), 0 } }, 2622 & ifmt_bfldl, { 0xa } 2623 }, 2624 /* bfldh $reg8,$hash$masklo8,$hash$data8 */ 2625 { 2626 { 0, 0, 0, 0 }, 2627 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (MASKLO8), ',', OP (HASH), OP (DATA8), 0 } }, 2628 & ifmt_bfldh, { 0x1a } 2629 }, 2630 /* cmp $src1,$src2 */ 2631 { 2632 { 0, 0, 0, 0 }, 2633 { { MNEM, ' ', OP (SRC1), ',', OP (SRC2), 0 } }, 2634 & ifmt_muls, { 0x40 } 2635 }, 2636 /* cmpb $drb,$srb */ 2637 { 2638 { 0, 0, 0, 0 }, 2639 { { MNEM, ' ', OP (DRB), ',', OP (SRB), 0 } }, 2640 & ifmt_addbr, { 0x41 } 2641 }, 2642 /* cmp $src1,$hash$uimm3 */ 2643 { 2644 { 0, 0, 0, 0 }, 2645 { { MNEM, ' ', OP (SRC1), ',', OP (HASH), OP (UIMM3), 0 } }, 2646 & ifmt_cmpri, { 0x48 } 2647 }, 2648 /* cmpb $drb,$hash$uimm3 */ 2649 { 2650 { 0, 0, 0, 0 }, 2651 { { MNEM, ' ', OP (DRB), ',', OP (HASH), OP (UIMM3), 0 } }, 2652 & ifmt_addbrhpag3, { 0x49 } 2653 }, 2654 /* cmp $reg8,$hash$uimm16 */ 2655 { 2656 { 0, 0, 0, 0 }, 2657 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 2658 & ifmt_addrhpof, { 0x46 } 2659 }, 2660 /* cmpb $regb8,$hash$uimm8 */ 2661 { 2662 { 0, 0, 0, 0 }, 2663 { { MNEM, ' ', OP (REGB8), ',', OP (HASH), OP (UIMM8), 0 } }, 2664 & ifmt_addrbhpof, { 0x47 } 2665 }, 2666 /* cmp $dr,[$sr2] */ 2667 { 2668 { 0, 0, 0, 0 }, 2669 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), ']', 0 } }, 2670 & ifmt_add2, { 0x848 } 2671 }, 2672 /* cmpb $drb,[$sr2] */ 2673 { 2674 { 0, 0, 0, 0 }, 2675 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), ']', 0 } }, 2676 & ifmt_addb2, { 0x849 } 2677 }, 2678 /* cmp $dr,[$sr2+] */ 2679 { 2680 { 0, 0, 0, 0 }, 2681 { { MNEM, ' ', OP (DR), ',', '[', OP (SR2), '+', ']', 0 } }, 2682 & ifmt_add2, { 0xc48 } 2683 }, 2684 /* cmpb $drb,[$sr2+] */ 2685 { 2686 { 0, 0, 0, 0 }, 2687 { { MNEM, ' ', OP (DRB), ',', '[', OP (SR2), '+', ']', 0 } }, 2688 & ifmt_addb2, { 0xc49 } 2689 }, 2690 /* cmp $reg8,$pof$upof16 */ 2691 { 2692 { 0, 0, 0, 0 }, 2693 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 2694 & ifmt_addrpof, { 0x42 } 2695 }, 2696 /* cmpb $regb8,$pof$upof16 */ 2697 { 2698 { 0, 0, 0, 0 }, 2699 { { MNEM, ' ', OP (REGB8), ',', OP (POF), OP (UPOF16), 0 } }, 2700 & ifmt_addbrpof, { 0x43 } 2701 }, 2702 /* cmp $regmem8,$memgr8 */ 2703 { 2704 { 0, 0, 0, 0 }, 2705 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 2706 & ifmt_addrm2, { 0x42 } 2707 }, 2708 /* cmp $reg8,$memory */ 2709 { 2710 { 0, 0, 0, 0 }, 2711 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 2712 & ifmt_addrm, { 0x42 } 2713 }, 2714 /* cmpb $regbmem8,$memgr8 */ 2715 { 2716 { 0, 0, 0, 0 }, 2717 { { MNEM, ' ', OP (REGBMEM8), ',', OP (MEMGR8), 0 } }, 2718 & ifmt_addbrm2, { 0x43 } 2719 }, 2720 /* cmpb $regb8,$memory */ 2721 { 2722 { 0, 0, 0, 0 }, 2723 { { MNEM, ' ', OP (REGB8), ',', OP (MEMORY), 0 } }, 2724 & ifmt_addbrm, { 0x43 } 2725 }, 2726 /* cmpd1 $sr,$hash$uimm4 */ 2727 { 2728 { 0, 0, 0, 0 }, 2729 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2730 & ifmt_cmpd1ri, { 0xa0 } 2731 }, 2732 /* cmpd2 $sr,$hash$uimm4 */ 2733 { 2734 { 0, 0, 0, 0 }, 2735 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2736 & ifmt_cmpd1ri, { 0xb0 } 2737 }, 2738 /* cmpi1 $sr,$hash$uimm4 */ 2739 { 2740 { 0, 0, 0, 0 }, 2741 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2742 & ifmt_cmpd1ri, { 0x80 } 2743 }, 2744 /* cmpi2 $sr,$hash$uimm4 */ 2745 { 2746 { 0, 0, 0, 0 }, 2747 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2748 & ifmt_cmpd1ri, { 0x90 } 2749 }, 2750 /* cmpd1 $reg8,$hash$uimm16 */ 2751 { 2752 { 0, 0, 0, 0 }, 2753 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 2754 & ifmt_addrhpof, { 0xa6 } 2755 }, 2756 /* cmpd2 $reg8,$hash$uimm16 */ 2757 { 2758 { 0, 0, 0, 0 }, 2759 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 2760 & ifmt_addrhpof, { 0xb6 } 2761 }, 2762 /* cmpi1 $reg8,$hash$uimm16 */ 2763 { 2764 { 0, 0, 0, 0 }, 2765 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 2766 & ifmt_addrhpof, { 0x86 } 2767 }, 2768 /* cmpi2 $reg8,$hash$uimm16 */ 2769 { 2770 { 0, 0, 0, 0 }, 2771 { { MNEM, ' ', OP (REG8), ',', OP (HASH), OP (UIMM16), 0 } }, 2772 & ifmt_addrhpof, { 0x96 } 2773 }, 2774 /* cmpd1 $reg8,$pof$upof16 */ 2775 { 2776 { 0, 0, 0, 0 }, 2777 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 2778 & ifmt_addrpof, { 0xa2 } 2779 }, 2780 /* cmpd2 $reg8,$pof$upof16 */ 2781 { 2782 { 0, 0, 0, 0 }, 2783 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 2784 & ifmt_addrpof, { 0xb2 } 2785 }, 2786 /* cmpi1 $reg8,$pof$upof16 */ 2787 { 2788 { 0, 0, 0, 0 }, 2789 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 2790 & ifmt_addrpof, { 0x82 } 2791 }, 2792 /* cmpi2 $reg8,$pof$upof16 */ 2793 { 2794 { 0, 0, 0, 0 }, 2795 { { MNEM, ' ', OP (REG8), ',', OP (POF), OP (UPOF16), 0 } }, 2796 & ifmt_addrpof, { 0x92 } 2797 }, 2798 /* cmpd1 $regmem8,$memgr8 */ 2799 { 2800 { 0, 0, 0, 0 }, 2801 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 2802 & ifmt_addrm2, { 0xa2 } 2803 }, 2804 /* cmpd2 $regmem8,$memgr8 */ 2805 { 2806 { 0, 0, 0, 0 }, 2807 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 2808 & ifmt_addrm2, { 0xb2 } 2809 }, 2810 /* cmpi1 $regmem8,$memgr8 */ 2811 { 2812 { 0, 0, 0, 0 }, 2813 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 2814 & ifmt_addrm2, { 0x82 } 2815 }, 2816 /* cmpi2 $regmem8,$memgr8 */ 2817 { 2818 { 0, 0, 0, 0 }, 2819 { { MNEM, ' ', OP (REGMEM8), ',', OP (MEMGR8), 0 } }, 2820 & ifmt_addrm2, { 0x92 } 2821 }, 2822 /* cmpd1 $reg8,$memory */ 2823 { 2824 { 0, 0, 0, 0 }, 2825 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 2826 & ifmt_addrm, { 0xa2 } 2827 }, 2828 /* cmpd2 $reg8,$memory */ 2829 { 2830 { 0, 0, 0, 0 }, 2831 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 2832 & ifmt_addrm, { 0xb2 } 2833 }, 2834 /* cmpi1 $reg8,$memory */ 2835 { 2836 { 0, 0, 0, 0 }, 2837 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 2838 & ifmt_addrm, { 0x82 } 2839 }, 2840 /* cmpi2 $reg8,$memory */ 2841 { 2842 { 0, 0, 0, 0 }, 2843 { { MNEM, ' ', OP (REG8), ',', OP (MEMORY), 0 } }, 2844 & ifmt_addrm, { 0x92 } 2845 }, 2846 /* shl $dr,$sr */ 2847 { 2848 { 0, 0, 0, 0 }, 2849 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 2850 & ifmt_addr, { 0x4c } 2851 }, 2852 /* shr $dr,$sr */ 2853 { 2854 { 0, 0, 0, 0 }, 2855 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 2856 & ifmt_addr, { 0x6c } 2857 }, 2858 /* rol $dr,$sr */ 2859 { 2860 { 0, 0, 0, 0 }, 2861 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 2862 & ifmt_addr, { 0xc } 2863 }, 2864 /* ror $dr,$sr */ 2865 { 2866 { 0, 0, 0, 0 }, 2867 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 2868 & ifmt_addr, { 0x2c } 2869 }, 2870 /* ashr $dr,$sr */ 2871 { 2872 { 0, 0, 0, 0 }, 2873 { { MNEM, ' ', OP (DR), ',', OP (SR), 0 } }, 2874 & ifmt_addr, { 0xac } 2875 }, 2876 /* shl $sr,$hash$uimm4 */ 2877 { 2878 { 0, 0, 0, 0 }, 2879 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2880 & ifmt_cmpd1ri, { 0x5c } 2881 }, 2882 /* shr $sr,$hash$uimm4 */ 2883 { 2884 { 0, 0, 0, 0 }, 2885 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2886 & ifmt_cmpd1ri, { 0x7c } 2887 }, 2888 /* rol $sr,$hash$uimm4 */ 2889 { 2890 { 0, 0, 0, 0 }, 2891 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2892 & ifmt_cmpd1ri, { 0x1c } 2893 }, 2894 /* ror $sr,$hash$uimm4 */ 2895 { 2896 { 0, 0, 0, 0 }, 2897 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2898 & ifmt_cmpd1ri, { 0x3c } 2899 }, 2900 /* ashr $sr,$hash$uimm4 */ 2901 { 2902 { 0, 0, 0, 0 }, 2903 { { MNEM, ' ', OP (SR), ',', OP (HASH), OP (UIMM4), 0 } }, 2904 & ifmt_cmpd1ri, { 0xbc } 2905 }, 2906 }; 2907 2908 #undef A 2909 #undef OPERAND 2910 #undef MNEM 2911 #undef OP 2912 2913 /* Formats for ALIAS macro-insns. */ 2914 2915 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 2916 #define F(f) & xc16x_cgen_ifld_table[XC16X_##f] 2917 #else 2918 #define F(f) & xc16x_cgen_ifld_table[XC16X_/**/f] 2919 #endif 2920 #undef F 2921 2922 /* Each non-simple macro entry points to an array of expansion possibilities. */ 2923 2924 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 2925 #define A(a) (1 << CGEN_INSN_##a) 2926 #else 2927 #define A(a) (1 << CGEN_INSN_/**/a) 2928 #endif 2929 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) 2930 #define OPERAND(op) XC16X_OPERAND_##op 2931 #else 2932 #define OPERAND(op) XC16X_OPERAND_/**/op 2933 #endif 2934 #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */ 2935 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field)) 2936 2937 /* The macro instruction table. */ 2938 2939 static const CGEN_IBASE xc16x_cgen_macro_insn_table[] = 2940 { 2941 }; 2942 2943 /* The macro instruction opcode table. */ 2944 2945 static const CGEN_OPCODE xc16x_cgen_macro_insn_opcode_table[] = 2946 { 2947 }; 2948 2949 #undef A 2950 #undef OPERAND 2951 #undef MNEM 2952 #undef OP 2953 2954 #ifndef CGEN_ASM_HASH_P 2955 #define CGEN_ASM_HASH_P(insn) 1 2956 #endif 2957 2958 #ifndef CGEN_DIS_HASH_P 2959 #define CGEN_DIS_HASH_P(insn) 1 2960 #endif 2961 2962 /* Return non-zero if INSN is to be added to the hash table. 2963 Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file. */ 2964 2965 static int 2966 asm_hash_insn_p (insn) 2967 const CGEN_INSN *insn ATTRIBUTE_UNUSED; 2968 { 2969 return CGEN_ASM_HASH_P (insn); 2970 } 2971 2972 static int 2973 dis_hash_insn_p (insn) 2974 const CGEN_INSN *insn; 2975 { 2976 /* If building the hash table and the NO-DIS attribute is present, 2977 ignore. */ 2978 if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS)) 2979 return 0; 2980 return CGEN_DIS_HASH_P (insn); 2981 } 2982 2983 #ifndef CGEN_ASM_HASH 2984 #define CGEN_ASM_HASH_SIZE 127 2985 #ifdef CGEN_MNEMONIC_OPERANDS 2986 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) 2987 #else 2988 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/ 2989 #endif 2990 #endif 2991 2992 /* It doesn't make much sense to provide a default here, 2993 but while this is under development we do. 2994 BUFFER is a pointer to the bytes of the insn, target order. 2995 VALUE is the first base_insn_bitsize bits as an int in host order. */ 2996 2997 #ifndef CGEN_DIS_HASH 2998 #define CGEN_DIS_HASH_SIZE 256 2999 #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf)) 3000 #endif 3001 3002 /* The result is the hash value of the insn. 3003 Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */ 3004 3005 static unsigned int 3006 asm_hash_insn (mnem) 3007 const char * mnem; 3008 { 3009 return CGEN_ASM_HASH (mnem); 3010 } 3011 3012 /* BUF is a pointer to the bytes of the insn, target order. 3013 VALUE is the first base_insn_bitsize bits as an int in host order. */ 3014 3015 static unsigned int 3016 dis_hash_insn (buf, value) 3017 const char * buf ATTRIBUTE_UNUSED; 3018 CGEN_INSN_INT value ATTRIBUTE_UNUSED; 3019 { 3020 return CGEN_DIS_HASH (buf, value); 3021 } 3022 3023 /* Set the recorded length of the insn in the CGEN_FIELDS struct. */ 3024 3025 static void 3026 set_fields_bitsize (CGEN_FIELDS *fields, int size) 3027 { 3028 CGEN_FIELDS_BITSIZE (fields) = size; 3029 } 3030 3031 /* Function to call before using the operand instance table. 3032 This plugs the opcode entries and macro instructions into the cpu table. */ 3033 3034 void 3035 xc16x_cgen_init_opcode_table (CGEN_CPU_DESC cd) 3036 { 3037 int i; 3038 int num_macros = (sizeof (xc16x_cgen_macro_insn_table) / 3039 sizeof (xc16x_cgen_macro_insn_table[0])); 3040 const CGEN_IBASE *ib = & xc16x_cgen_macro_insn_table[0]; 3041 const CGEN_OPCODE *oc = & xc16x_cgen_macro_insn_opcode_table[0]; 3042 CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN)); 3043 3044 memset (insns, 0, num_macros * sizeof (CGEN_INSN)); 3045 for (i = 0; i < num_macros; ++i) 3046 { 3047 insns[i].base = &ib[i]; 3048 insns[i].opcode = &oc[i]; 3049 xc16x_cgen_build_insn_regex (& insns[i]); 3050 } 3051 cd->macro_insn_table.init_entries = insns; 3052 cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE); 3053 cd->macro_insn_table.num_init_entries = num_macros; 3054 3055 oc = & xc16x_cgen_insn_opcode_table[0]; 3056 insns = (CGEN_INSN *) cd->insn_table.init_entries; 3057 for (i = 0; i < MAX_INSNS; ++i) 3058 { 3059 insns[i].opcode = &oc[i]; 3060 xc16x_cgen_build_insn_regex (& insns[i]); 3061 } 3062 3063 cd->sizeof_fields = sizeof (CGEN_FIELDS); 3064 cd->set_fields_bitsize = set_fields_bitsize; 3065 3066 cd->asm_hash_p = asm_hash_insn_p; 3067 cd->asm_hash = asm_hash_insn; 3068 cd->asm_hash_size = CGEN_ASM_HASH_SIZE; 3069 3070 cd->dis_hash_p = dis_hash_insn_p; 3071 cd->dis_hash = dis_hash_insn; 3072 cd->dis_hash_size = CGEN_DIS_HASH_SIZE; 3073 } 3074