1ed0d50c3Schristos /* Opcode table for the H8/300 2*b88e3e88Schristos Copyright (C) 1991-2020 Free Software Foundation, Inc. 3ed0d50c3Schristos Written by Steve Chamberlain <sac@cygnus.com>. 4ed0d50c3Schristos 5ed0d50c3Schristos This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler. 6ed0d50c3Schristos 7ed0d50c3Schristos This program is free software; you can redistribute it and/or modify 8ed0d50c3Schristos it under the terms of the GNU General Public License as published by 9ed0d50c3Schristos the Free Software Foundation; either version 3 of the License, or 10ed0d50c3Schristos (at your option) any later version. 11ed0d50c3Schristos 12ed0d50c3Schristos This program is distributed in the hope that it will be useful, 13ed0d50c3Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of 14ed0d50c3Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15ed0d50c3Schristos GNU General Public License for more details. 16ed0d50c3Schristos 17ed0d50c3Schristos You should have received a copy of the GNU General Public License 18ed0d50c3Schristos along with this program; if not, write to the Free Software 19ed0d50c3Schristos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 20ed0d50c3Schristos 02110-1301, USA. */ 21ed0d50c3Schristos 22ed0d50c3Schristos /* Instructions are stored as a sequence of nibbles. 23ed0d50c3Schristos If the nibble has value 15 or less than the representation is complete. 24ed0d50c3Schristos Otherwise, we record what it contains with several flags. */ 25ed0d50c3Schristos 26ed0d50c3Schristos typedef int op_type; 27ed0d50c3Schristos 28ed0d50c3Schristos enum h8_flags 29ed0d50c3Schristos { 30ed0d50c3Schristos L_2 = 0x10, 31ed0d50c3Schristos L_3 = 0x20, 32ed0d50c3Schristos /* 3 bit constant, zero not accepted. */ 33ed0d50c3Schristos L_3NZ = 0x30, 34ed0d50c3Schristos L_4 = 0x40, 35ed0d50c3Schristos L_5 = 0x50, 36ed0d50c3Schristos L_8 = 0x60, 37ed0d50c3Schristos L_8U = 0x70, 38ed0d50c3Schristos L_16 = 0x80, 39ed0d50c3Schristos L_16U = 0x90, 40ed0d50c3Schristos L_24 = 0xA0, 41ed0d50c3Schristos L_32 = 0xB0, 42ed0d50c3Schristos L_P = 0xC0, 43ed0d50c3Schristos 44ed0d50c3Schristos /* Mask to isolate the L_x size bits. */ 45ed0d50c3Schristos SIZE = 0xF0, 46ed0d50c3Schristos 47ed0d50c3Schristos REG = 0x0100, 48ed0d50c3Schristos ABS = 0x0200, 49ed0d50c3Schristos MEMIND = 0x0300, 50ed0d50c3Schristos IMM = 0x0400, 51ed0d50c3Schristos DISP = 0x0500, 52ed0d50c3Schristos IND = 0x0600, 53ed0d50c3Schristos POSTINC = 0x0700, 54ed0d50c3Schristos POSTDEC = 0x0800, 55ed0d50c3Schristos PREINC = 0x0900, 56ed0d50c3Schristos PREDEC = 0x0A00, 57ed0d50c3Schristos PCREL = 0x0B00, 58ed0d50c3Schristos KBIT = 0x0C00, 59ed0d50c3Schristos DBIT = 0x0D00, 60ed0d50c3Schristos CONST_2 = 0x0E00, 61ed0d50c3Schristos CONST_4 = 0x0F00, 62ed0d50c3Schristos CONST_8 = 0x1000, 63ed0d50c3Schristos CONST_16 = 0x1100, 64ed0d50c3Schristos INDEXB = 0x1200, 65ed0d50c3Schristos INDEXW = 0x1300, 66ed0d50c3Schristos INDEXL = 0x1400, 67ed0d50c3Schristos PCIDXB = 0x1500, 68ed0d50c3Schristos PCIDXW = 0x1600, 69ed0d50c3Schristos PCIDXL = 0x1700, 70ed0d50c3Schristos VECIND = 0x1800, 71ed0d50c3Schristos LOWREG = 0x1900, 72ed0d50c3Schristos DATA = 0x2000, 73ed0d50c3Schristos 74ed0d50c3Schristos /* Synonyms. */ 75ed0d50c3Schristos INC = POSTINC, 76ed0d50c3Schristos DEC = PREDEC, 77ed0d50c3Schristos /* Control Registers. */ 78ed0d50c3Schristos CCR = 0x4000, 79ed0d50c3Schristos EXR = 0x4100, 80ed0d50c3Schristos MACH = 0x4200, 81ed0d50c3Schristos MACL = 0x4300, 82ed0d50c3Schristos RESERV1 = 0x4400, 83ed0d50c3Schristos RESERV2 = 0x4500, 84ed0d50c3Schristos VBR = 0x4600, 85ed0d50c3Schristos SBR = 0x4700, 86ed0d50c3Schristos MACREG = 0x4800, 87ed0d50c3Schristos CCR_EXR = 0x4900, 88ed0d50c3Schristos VBR_SBR = 0x4A00, 89ed0d50c3Schristos CC_EX_VB_SB = 0x4B00, 90ed0d50c3Schristos RESERV3 = 0x4C00, 91ed0d50c3Schristos RESERV4 = 0x4D00, 92ed0d50c3Schristos RESERV5 = 0x4E00, 93ed0d50c3Schristos RESERV6 = 0x4F00, 94ed0d50c3Schristos 95ed0d50c3Schristos /* Mask to isolate the addressing mode bits (REG .. PREDEC). */ 96ed0d50c3Schristos MODE = 0x7F00, 97ed0d50c3Schristos 98ed0d50c3Schristos CTRL = 0x4000, 99ed0d50c3Schristos 100ed0d50c3Schristos NO_SYMBOLS = 0x8000, 101ed0d50c3Schristos SRC = 0x10000, 102ed0d50c3Schristos DST = 0x20000, 103ed0d50c3Schristos OP3 = 0x40000, 104ed0d50c3Schristos MEMRELAX = 0x80000, /* Move insn which may relax. */ 105ed0d50c3Schristos 106ed0d50c3Schristos DISPREG = 0x100000, 107ed0d50c3Schristos IGNORE = 0x200000, 108ed0d50c3Schristos ABSJMP = 0x400000, 109ed0d50c3Schristos 110ed0d50c3Schristos B00 = 0x800000, /* Bit 0 must be low. */ 111ed0d50c3Schristos B01 = 0x1000000, /* Bit 0 must be high. */ 112ed0d50c3Schristos B10 = 0x2000000, /* Bit 1 must be low. */ 113ed0d50c3Schristos B11 = 0x4000000, /* Bit 1 must be high. */ 114ed0d50c3Schristos B20 = 0x8000000, /* Bit 2 must be low. */ 115ed0d50c3Schristos B21 = 0x10000000, /* Bit 2 must be high. */ 116ed0d50c3Schristos B30 = 0x20000000, /* Bit 3 must be low. */ 117ed0d50c3Schristos B31 = 0x40000000, /* Bit 3 must be high. */ 118ed0d50c3Schristos E = 0x80000000, /* End of nibble sequence. */ 119ed0d50c3Schristos 120ed0d50c3Schristos /* Immediates smaller than 8 bits are always unsigned. */ 121ed0d50c3Schristos IMM3 = IMM | L_3, 122ed0d50c3Schristos IMM4 = IMM | L_4, 123ed0d50c3Schristos IMM5 = IMM | L_5, 124ed0d50c3Schristos IMM3NZ = IMM | L_3NZ, 125ed0d50c3Schristos IMM2 = IMM | L_2, 126ed0d50c3Schristos 127ed0d50c3Schristos IMM8 = IMM | SRC | L_8, 128ed0d50c3Schristos IMM8U = IMM | SRC | L_8U, 129ed0d50c3Schristos IMM16 = IMM | SRC | L_16, 130ed0d50c3Schristos IMM16U = IMM | SRC | L_16U, 131ed0d50c3Schristos IMM32 = IMM | SRC | L_32, 132ed0d50c3Schristos 133ed0d50c3Schristos IMM3NZ_NS = IMM3NZ | NO_SYMBOLS, 134ed0d50c3Schristos IMM4_NS = IMM4 | NO_SYMBOLS, 135ed0d50c3Schristos IMM8U_NS = IMM8U | NO_SYMBOLS, 136ed0d50c3Schristos IMM16U_NS = IMM16U | NO_SYMBOLS, 137ed0d50c3Schristos 138ed0d50c3Schristos RD8 = DST | L_8 | REG, 139ed0d50c3Schristos RD16 = DST | L_16 | REG, 140ed0d50c3Schristos RD32 = DST | L_32 | REG, 141ed0d50c3Schristos R3_8 = OP3 | L_8 | REG, 142ed0d50c3Schristos R3_16 = OP3 | L_16 | REG, 143ed0d50c3Schristos R3_32 = OP3 | L_32 | REG, 144ed0d50c3Schristos RS8 = SRC | L_8 | REG, 145ed0d50c3Schristos RS16 = SRC | L_16 | REG, 146ed0d50c3Schristos RS32 = SRC | L_32 | REG, 147ed0d50c3Schristos 148ed0d50c3Schristos RSP = SRC | L_P | REG, 149ed0d50c3Schristos RDP = DST | L_P | REG, 150ed0d50c3Schristos 151ed0d50c3Schristos PCREL8 = PCREL | L_8, 152ed0d50c3Schristos PCREL16 = PCREL | L_16, 153ed0d50c3Schristos 154ed0d50c3Schristos OP3PCREL8 = OP3 | PCREL | L_8, 155ed0d50c3Schristos OP3PCREL16 = OP3 | PCREL | L_16, 156ed0d50c3Schristos 157ed0d50c3Schristos INDEXB16 = INDEXB | L_16, 158ed0d50c3Schristos INDEXW16 = INDEXW | L_16, 159ed0d50c3Schristos INDEXL16 = INDEXL | L_16, 160ed0d50c3Schristos INDEXB16D = INDEXB | L_16 | DST, 161ed0d50c3Schristos INDEXW16D = INDEXW | L_16 | DST, 162ed0d50c3Schristos INDEXL16D = INDEXL | L_16 | DST, 163ed0d50c3Schristos 164ed0d50c3Schristos INDEXB32 = INDEXB | L_32, 165ed0d50c3Schristos INDEXW32 = INDEXW | L_32, 166ed0d50c3Schristos INDEXL32 = INDEXL | L_32, 167ed0d50c3Schristos INDEXB32D = INDEXB | L_32 | DST, 168ed0d50c3Schristos INDEXW32D = INDEXW | L_32 | DST, 169ed0d50c3Schristos INDEXL32D = INDEXL | L_32 | DST, 170ed0d50c3Schristos 171ed0d50c3Schristos DISP2SRC = DISP | L_2 | SRC, 172ed0d50c3Schristos DISP16SRC = DISP | L_16 | SRC, 173ed0d50c3Schristos DISP32SRC = DISP | L_32 | SRC, 174ed0d50c3Schristos 175ed0d50c3Schristos DISP2DST = DISP | L_2 | DST, 176ed0d50c3Schristos DISP16DST = DISP | L_16 | DST, 177ed0d50c3Schristos DISP32DST = DISP | L_32 | DST, 178ed0d50c3Schristos 179ed0d50c3Schristos DSTDISPREG = DST | DISPREG, 180ed0d50c3Schristos SRCDISPREG = SRC | DISPREG, 181ed0d50c3Schristos 182ed0d50c3Schristos ABS8SRC = SRC | ABS | L_8, 183ed0d50c3Schristos ABS16SRC = SRC | ABS | L_16U, 184ed0d50c3Schristos ABS24SRC = SRC | ABS | L_24, 185ed0d50c3Schristos ABS32SRC = SRC | ABS | L_32, 186ed0d50c3Schristos 187ed0d50c3Schristos ABS8DST = DST | ABS | L_8, 188ed0d50c3Schristos ABS16DST = DST | ABS | L_16U, 189ed0d50c3Schristos ABS24DST = DST | ABS | L_24, 190ed0d50c3Schristos ABS32DST = DST | ABS | L_32, 191ed0d50c3Schristos 192ed0d50c3Schristos ABS8OP3 = OP3 | ABS | L_8, 193ed0d50c3Schristos ABS16OP3 = OP3 | ABS | L_16U, 194ed0d50c3Schristos ABS24OP3 = OP3 | ABS | L_24, 195ed0d50c3Schristos ABS32OP3 = OP3 | ABS | L_32, 196ed0d50c3Schristos 197ed0d50c3Schristos RDDEC = DST | DEC, 198ed0d50c3Schristos RSINC = SRC | INC, 199ed0d50c3Schristos RDINC = DST | INC, 200ed0d50c3Schristos 201ed0d50c3Schristos RSPOSTINC = SRC | POSTINC, 202ed0d50c3Schristos RDPOSTINC = DST | POSTINC, 203ed0d50c3Schristos RSPREINC = SRC | PREINC, 204ed0d50c3Schristos RDPREINC = DST | PREINC, 205ed0d50c3Schristos RSPOSTDEC = SRC | POSTDEC, 206ed0d50c3Schristos RDPOSTDEC = DST | POSTDEC, 207ed0d50c3Schristos RSPREDEC = SRC | PREDEC, 208ed0d50c3Schristos RDPREDEC = DST | PREDEC, 209ed0d50c3Schristos 210ed0d50c3Schristos RSIND = SRC | IND, 211ed0d50c3Schristos RDIND = DST | IND, 212ed0d50c3Schristos R3_IND = OP3 | IND, 213ed0d50c3Schristos 214ed0d50c3Schristos #define MS32 (SRC | L_32 | MACREG) 215ed0d50c3Schristos #define MD32 (DST | L_32 | MACREG) 216ed0d50c3Schristos 217ed0d50c3Schristos #if 1 218ed0d50c3Schristos OR8 = RS8, /* ??? OR as in One Register. */ 219ed0d50c3Schristos OR16 = RS16, 220ed0d50c3Schristos OR32 = RS32, 221ed0d50c3Schristos #else 222ed0d50c3Schristos OR8 = RD8, 223ed0d50c3Schristos OR16 = RD16, 224ed0d50c3Schristos OR32 = RD32 225ed0d50c3Schristos #endif 226ed0d50c3Schristos }; 227ed0d50c3Schristos 228ed0d50c3Schristos enum ctrlreg 229ed0d50c3Schristos { 230ed0d50c3Schristos C_CCR = 0, 231ed0d50c3Schristos C_EXR = 1, 232ed0d50c3Schristos C_MACH = 2, 233ed0d50c3Schristos C_MACL = 3, 234ed0d50c3Schristos C_VBR = 6, 235ed0d50c3Schristos C_SBR = 7 236ed0d50c3Schristos }; 237ed0d50c3Schristos 238ed0d50c3Schristos enum {MAX_CODE_NIBBLES = 33}; 239ed0d50c3Schristos 240ed0d50c3Schristos struct code 241ed0d50c3Schristos { 242ed0d50c3Schristos op_type nib[MAX_CODE_NIBBLES]; 243ed0d50c3Schristos }; 244ed0d50c3Schristos 245ed0d50c3Schristos struct arg 246ed0d50c3Schristos { 247ed0d50c3Schristos op_type nib[3]; 248ed0d50c3Schristos }; 249ed0d50c3Schristos 250ed0d50c3Schristos /* Availability of instructions on processor models. */ 251ed0d50c3Schristos enum h8_model 252ed0d50c3Schristos { 253ed0d50c3Schristos AV_H8, 254ed0d50c3Schristos AV_H8H, 255ed0d50c3Schristos AV_H8S, 256ed0d50c3Schristos AV_H8SX 257ed0d50c3Schristos }; 258ed0d50c3Schristos 259ed0d50c3Schristos struct h8_opcode 260ed0d50c3Schristos { 261ed0d50c3Schristos int how; 262ed0d50c3Schristos enum h8_model available; 263ed0d50c3Schristos int time; 264ed0d50c3Schristos const char *name; 265ed0d50c3Schristos struct arg args; 266ed0d50c3Schristos struct code data; 267ed0d50c3Schristos }; 268ed0d50c3Schristos 269ed0d50c3Schristos #ifdef DEFINE_TABLE 270ed0d50c3Schristos 271ed0d50c3Schristos #define DATA2 DATA, DATA 272ed0d50c3Schristos #define DATA3 DATA, DATA, DATA 273ed0d50c3Schristos #define DATA5 DATA, DATA, DATA, DATA, DATA 274ed0d50c3Schristos #define DATA7 DATA, DATA, DATA, DATA, DATA, DATA, DATA 275ed0d50c3Schristos 276ed0d50c3Schristos #define IMM8LIST IMM8, DATA 277ed0d50c3Schristos #define IMM16LIST IMM16, DATA3 278ed0d50c3Schristos #define IMM16ULIST IMM16U, DATA3 279ed0d50c3Schristos #define IMM24LIST IMM24, DATA5 280ed0d50c3Schristos #define IMM32LIST IMM32, DATA7 281ed0d50c3Schristos 282ed0d50c3Schristos #define DISP16LIST DISP | L_16, DATA3 283ed0d50c3Schristos #define DISP24LIST DISP | L_24, DATA5 284ed0d50c3Schristos #define DISP32LIST DISP | L_32, DATA7 285ed0d50c3Schristos 286ed0d50c3Schristos #define ABS8LIST ABS | L_8, DATA 287ed0d50c3Schristos #define ABS16LIST ABS | L_16U, DATA3 288ed0d50c3Schristos #define ABS24LIST ABS | L_24, DATA5 289ed0d50c3Schristos #define ABS32LIST ABS | L_32, DATA7 290ed0d50c3Schristos 291ed0d50c3Schristos #define DSTABS8LIST DST | ABS | L_8, DATA 292ed0d50c3Schristos #define DSTABS16LIST DST | ABS | L_16U, DATA3 293ed0d50c3Schristos #define DSTABS24LIST DST | ABS | L_24, DATA5 294ed0d50c3Schristos #define DSTABS32LIST DST | ABS | L_32, DATA7 295ed0d50c3Schristos 296ed0d50c3Schristos #define OP3ABS8LIST OP3 | ABS | L_8, DATA 297ed0d50c3Schristos #define OP3ABS16LIST OP3 | ABS | L_16, DATA3 298ed0d50c3Schristos #define OP3ABS24LIST OP3 | ABS | L_24, DATA5 299ed0d50c3Schristos #define OP3ABS32LIST OP3 | ABS | L_32, DATA7 300ed0d50c3Schristos 301ed0d50c3Schristos #define DSTDISP16LIST DST | DISP | L_16, DATA3 302ed0d50c3Schristos #define DSTDISP24LIST DST | DISP | L_24, DATA5 303ed0d50c3Schristos #define DSTDISP32LIST DST | DISP | L_32, DATA7 304ed0d50c3Schristos 305ed0d50c3Schristos #define A16LIST L_16, DATA3 306ed0d50c3Schristos #define A24LIST L_24, DATA5 307ed0d50c3Schristos #define A32LIST L_32, DATA7 308ed0d50c3Schristos 309ed0d50c3Schristos /* Extended Operand Prefixes: */ 310ed0d50c3Schristos 311ed0d50c3Schristos #define PREFIX_010 0x0, 0x1, 0x0 312ed0d50c3Schristos #define PREFIX_015 0x0, 0x1, 0x5 313ed0d50c3Schristos #define PREFIX_017 0x0, 0x1, 0x7 314ed0d50c3Schristos 315ed0d50c3Schristos #define PREFIX_0100 0x0, 0x1, 0x0, 0x0 316ed0d50c3Schristos #define PREFIX_010_D2 0x0, 0x1, 0x0, B30 | B21 | DISP2SRC 317ed0d50c3Schristos #define PREFIX_0101 0x0, 0x1, 0x0, 0x1 318ed0d50c3Schristos #define PREFIX_0102 0x0, 0x1, 0x0, 0x2 319ed0d50c3Schristos #define PREFIX_0103 0x0, 0x1, 0x0, 0x3 320ed0d50c3Schristos #define PREFIX_0104 0x0, 0x1, 0x0, 0x4 321ed0d50c3Schristos #define PREFIX_0105 0x0, 0x1, 0x0, 0x5 322ed0d50c3Schristos #define PREFIX_0106 0x0, 0x1, 0x0, 0x6 323ed0d50c3Schristos #define PREFIX_0107 0x0, 0x1, 0x0, 0x7 324ed0d50c3Schristos #define PREFIX_0108 0x0, 0x1, 0x0, 0x8 325ed0d50c3Schristos #define PREFIX_0109 0x0, 0x1, 0x0, 0x9 326ed0d50c3Schristos #define PREFIX_010A 0x0, 0x1, 0x0, 0xa 327ed0d50c3Schristos #define PREFIX_010D 0x0, 0x1, 0x0, 0xd 328ed0d50c3Schristos #define PREFIX_010E 0x0, 0x1, 0x0, 0xe 329ed0d50c3Schristos 330ed0d50c3Schristos #define PREFIX_0150 0x0, 0x1, 0x5, 0x0 331ed0d50c3Schristos #define PREFIX_015_D2 0x0, 0x1, 0x5, B30 | B21 | DISP2SRC 332ed0d50c3Schristos #define PREFIX_0151 0x0, 0x1, 0x5, 0x1 333ed0d50c3Schristos #define PREFIX_0152 0x0, 0x1, 0x5, 0x2 334ed0d50c3Schristos #define PREFIX_0153 0x0, 0x1, 0x5, 0x3 335ed0d50c3Schristos #define PREFIX_0154 0x0, 0x1, 0x5, 0x4 336ed0d50c3Schristos #define PREFIX_0155 0x0, 0x1, 0x5, 0x5 337ed0d50c3Schristos #define PREFIX_0156 0x0, 0x1, 0x5, 0x6 338ed0d50c3Schristos #define PREFIX_0157 0x0, 0x1, 0x5, 0x7 339ed0d50c3Schristos #define PREFIX_0158 0x0, 0x1, 0x5, 0x8 340ed0d50c3Schristos #define PREFIX_0159 0x0, 0x1, 0x5, 0x9 341ed0d50c3Schristos #define PREFIX_015A 0x0, 0x1, 0x5, 0xa 342ed0d50c3Schristos #define PREFIX_015D 0x0, 0x1, 0x5, 0xd 343ed0d50c3Schristos #define PREFIX_015E 0x0, 0x1, 0x5, 0xe 344ed0d50c3Schristos #define PREFIX_015F 0x0, 0x1, 0x5, 0xf 345ed0d50c3Schristos 346ed0d50c3Schristos #define PREFIX_0170 0x0, 0x1, 0x7, 0x0 347ed0d50c3Schristos #define PREFIX_017_D2S 0x0, 0x1, 0x7, B30 | B21 | DISP2SRC 348ed0d50c3Schristos #define PREFIX_017_D2D 0x0, 0x1, 0x7, B30 | B21 | DISP2DST 349ed0d50c3Schristos #define PREFIX_0171 0x0, 0x1, 0x7, 0x1 350ed0d50c3Schristos #define PREFIX_0172 0x0, 0x1, 0x7, 0x2 351ed0d50c3Schristos #define PREFIX_0173 0x0, 0x1, 0x7, 0x3 352ed0d50c3Schristos #define PREFIX_0174 0x0, 0x1, 0x7, 0x4 353ed0d50c3Schristos #define PREFIX_0175 0x0, 0x1, 0x7, 0x5 354ed0d50c3Schristos #define PREFIX_0176 0x0, 0x1, 0x7, 0x6 355ed0d50c3Schristos #define PREFIX_0177 0x0, 0x1, 0x7, 0x7 356ed0d50c3Schristos #define PREFIX_0178 0x0, 0x1, 0x7, 0x8 357ed0d50c3Schristos #define PREFIX_0179 0x0, 0x1, 0x7, 0x9 358ed0d50c3Schristos #define PREFIX_017A 0x0, 0x1, 0x7, 0xa 359ed0d50c3Schristos #define PREFIX_017D 0x0, 0x1, 0x7, 0xd 360ed0d50c3Schristos #define PREFIX_017E 0x0, 0x1, 0x7, 0xe 361ed0d50c3Schristos #define PREFIX_017F 0x0, 0x1, 0x7, 0xf 362ed0d50c3Schristos 363ed0d50c3Schristos #define PREFIX_6A15 0x6, 0xa, 0x1, 0x5 364ed0d50c3Schristos #define PREFIX_6A35 0x6, 0xa, 0x3, 0x5 365ed0d50c3Schristos #define PREFIX_6B15 0x6, 0xb, 0x1, 0x5 366ed0d50c3Schristos #define PREFIX_6B35 0x6, 0xb, 0x3, 0x5 367ed0d50c3Schristos 368ed0d50c3Schristos #define PREFIX_78R4 0x7, 0x8, B31 | DISPREG, 0x4 369ed0d50c3Schristos #define PREFIX_78R5 0x7, 0x8, B31 | DISPREG, 0x5 370ed0d50c3Schristos #define PREFIX_78R6 0x7, 0x8, B31 | DISPREG, 0x6 371ed0d50c3Schristos #define PREFIX_78R7 0x7, 0x8, B31 | DISPREG, 0x7 372ed0d50c3Schristos 373ed0d50c3Schristos #define PREFIX_78R4W 0x7, 0x8, B30 | DISPREG, 0x4 374ed0d50c3Schristos #define PREFIX_78R5W 0x7, 0x8, B30 | DISPREG, 0x5 375ed0d50c3Schristos #define PREFIX_78R6W 0x7, 0x8, B30 | DISPREG, 0x6 376ed0d50c3Schristos #define PREFIX_78R7W 0x7, 0x8, B30 | DISPREG, 0x7 377ed0d50c3Schristos 378ed0d50c3Schristos #define PREFIX_78R4WD 0x7, 0x8, B30 | DSTDISPREG, 0x4 379ed0d50c3Schristos #define PREFIX_78R5WD 0x7, 0x8, B30 | DSTDISPREG, 0x5 380ed0d50c3Schristos #define PREFIX_78R6WD 0x7, 0x8, B30 | DSTDISPREG, 0x6 381ed0d50c3Schristos #define PREFIX_78R7WD 0x7, 0x8, B30 | DSTDISPREG, 0x7 382ed0d50c3Schristos 383ed0d50c3Schristos #define PREFIX_7974 0x7, 0x9, 0x7, 0x4 384ed0d50c3Schristos #define PREFIX_7A74 0x7, 0xa, 0x7, 0x4 385ed0d50c3Schristos #define PREFIX_7A7C 0x7, 0xa, 0x7, 0xc 386ed0d50c3Schristos 387ed0d50c3Schristos 388ed0d50c3Schristos /* Source standard fragment: */ 389ed0d50c3Schristos #define FROM_IND 0, RSIND 390ed0d50c3Schristos #define FROM_POSTINC 8, RSPOSTINC 391ed0d50c3Schristos #define FROM_POSTDEC 10, RSPOSTDEC 392ed0d50c3Schristos #define FROM_PREINC 9, RSPREINC 393ed0d50c3Schristos #define FROM_PREDEC 11, RSPREDEC 394ed0d50c3Schristos #define FROM_DISP2 B30 | B20 | DISP2SRC, DISPREG 395ed0d50c3Schristos #define FROM_DISP16 12, B30 | DISPREG 396ed0d50c3Schristos #define FROM_DISP32 12, B31 | DISPREG 397ed0d50c3Schristos #define FROM_DISP16B 13, B30 | DISPREG 398ed0d50c3Schristos #define FROM_DISP16W 14, B30 | DISPREG 399ed0d50c3Schristos #define FROM_DISP16L 15, B30 | DISPREG 400ed0d50c3Schristos #define FROM_DISP32B 13, B31 | DISPREG 401ed0d50c3Schristos #define FROM_DISP32W 14, B31 | DISPREG 402ed0d50c3Schristos #define FROM_DISP32L 15, B31 | DISPREG 403ed0d50c3Schristos #define FROM_ABS16 4, B30 | IGNORE 404ed0d50c3Schristos #define FROM_ABS32 4, B31 | IGNORE 405ed0d50c3Schristos 406ed0d50c3Schristos /* Destination standard fragment: */ 407ed0d50c3Schristos #define TO_IND 0, RDIND 408ed0d50c3Schristos #define TO_IND_MOV 0, RDIND | B30 409ed0d50c3Schristos #define TO_POSTINC 8, RDPOSTINC 410ed0d50c3Schristos #define TO_POSTINC_MOV 8, RDPOSTINC | B30 411ed0d50c3Schristos #define TO_POSTDEC 10, RDPOSTDEC 412ed0d50c3Schristos #define TO_POSTDEC_MOV 10, RDPOSTDEC | B30 413ed0d50c3Schristos #define TO_PREINC 9, RDPREINC 414ed0d50c3Schristos #define TO_PREINC_MOV 9, RDPREINC | B30 415ed0d50c3Schristos #define TO_PREDEC 11, RDPREDEC 416ed0d50c3Schristos #define TO_PREDEC_MOV 11, RDPREDEC | B30 417ed0d50c3Schristos #define TO_DISP2 B30 | B20 | DISP2DST, DSTDISPREG 418ed0d50c3Schristos #define TO_DISP2_MOV B30 | B20 | DISP2DST, DSTDISPREG | B30 419ed0d50c3Schristos #define TO_DISP16 12, B30 | DSTDISPREG 420ed0d50c3Schristos #define TO_DISP32 12, B31 | DSTDISPREG 421ed0d50c3Schristos #define TO_DISP16B 13, B30 | DSTDISPREG 422ed0d50c3Schristos #define TO_DISP16W 14, B30 | DSTDISPREG 423ed0d50c3Schristos #define TO_DISP16L 15, B30 | DSTDISPREG 424ed0d50c3Schristos #define TO_DISP32B 13, B31 | DSTDISPREG 425ed0d50c3Schristos #define TO_DISP32W 14, B31 | DSTDISPREG 426ed0d50c3Schristos #define TO_DISP32L 15, B31 | DSTDISPREG 427ed0d50c3Schristos #define TO_ABS16 4, B30 | IGNORE 428ed0d50c3Schristos #define TO_ABS32 4, B31 | IGNORE 429ed0d50c3Schristos 430ed0d50c3Schristos /* Source fragment for three-word instruction: */ 431ed0d50c3Schristos #define TFROM_IND 6, 9, B30 | RSIND, 12 432ed0d50c3Schristos #define TFROM_DISP2 6, 9, B30 | DISPREG, 12 433ed0d50c3Schristos #define TFROM_ABS16 6, 11, B30 | B20 | B10 | IGNORE, 12, ABS16LIST 434ed0d50c3Schristos #define TFROM_ABS32 6, 11, B30 | B20 | B11 | IGNORE, 12, ABS32LIST 435ed0d50c3Schristos #define TFROM_POSTINC 6, 13, B30 | RSPOSTINC, 12 436ed0d50c3Schristos #define TFROM_PREINC 6, 13, B30 | RSPREINC, 12 437ed0d50c3Schristos #define TFROM_POSTDEC 6, 13, B30 | RSPOSTDEC, 12 438ed0d50c3Schristos #define TFROM_PREDEC 6, 13, B30 | RSPREDEC, 12 439ed0d50c3Schristos #define TFROM_DISP16 6, 15, B30 | DISPREG, 12, DISP16LIST 440ed0d50c3Schristos #define TFROM_DISP32 6, 11, 2, 12, DISP32LIST 441ed0d50c3Schristos #define TFROM_DISP16B 6, 15, B30 | DISPREG, 12, DISP16LIST 442ed0d50c3Schristos #define TFROM_DISP16W 6, 15, B30 | DISPREG, 12, DISP16LIST 443ed0d50c3Schristos #define TFROM_DISP16L 6, 15, B30 | DISPREG, 12, DISP16LIST 444ed0d50c3Schristos #define TFROM_DISP32B 6, 11, 2, 12, DISP32LIST 445ed0d50c3Schristos #define TFROM_DISP32W 6, 11, 2, 12, DISP32LIST 446ed0d50c3Schristos #define TFROM_DISP32L 6, 11, 2, 12, DISP32LIST 447ed0d50c3Schristos #define TFROM_ABS16W 6, 11, 1, 12, ABS16LIST 448ed0d50c3Schristos #define TFROM_ABS32W 6, 11, 3, 12, ABS32LIST 449ed0d50c3Schristos 450ed0d50c3Schristos /* Source fragment for three-word instruction: */ 451ed0d50c3Schristos #define TFROM_IND_B 6, 8, B30 | RSIND, 12 452ed0d50c3Schristos #define TFROM_ABS16_B 6, 10, B30 | B20 | B10 | IGNORE, 12, ABS16LIST 453ed0d50c3Schristos #define TFROM_ABS32_B 6, 10, B30 | B20 | B11 | IGNORE, 12, ABS32LIST 454ed0d50c3Schristos 455ed0d50c3Schristos #define TFROM_DISP2_B 6, 8, B30 | DISPREG, 12 456ed0d50c3Schristos #define TFROM_POSTINC_B 6, 12, B30 | RSPOSTINC, 12 457ed0d50c3Schristos #define TFROM_PREINC_B 6, 12, B30 | RSPREINC, 12 458ed0d50c3Schristos #define TFROM_POSTDEC_B 6, 12, B30 | RSPOSTDEC, 12 459ed0d50c3Schristos #define TFROM_PREDEC_B 6, 12, B30 | RSPREDEC, 12 460ed0d50c3Schristos #define TFROM_DISP16_B 6, 14, B30 | DISPREG, 12, DISP16LIST 461ed0d50c3Schristos #define TFROM_DISP32_B 6, 10, 2, 12, DISP32LIST 462ed0d50c3Schristos #define TFROM_DISP16B_B 6, 14, B30 | DISPREG, 12, DISP16LIST 463ed0d50c3Schristos #define TFROM_DISP16W_B 6, 14, B30 | DISPREG, 12, DISP16LIST 464ed0d50c3Schristos #define TFROM_DISP16L_B 6, 14, B30 | DISPREG, 12, DISP16LIST 465ed0d50c3Schristos #define TFROM_DISP32B_B 6, 10, 2, 12, DISP32LIST 466ed0d50c3Schristos #define TFROM_DISP32W_B 6, 10, 2, 12, DISP32LIST 467ed0d50c3Schristos #define TFROM_DISP32L_B 6, 10, 2, 12, DISP32LIST 468ed0d50c3Schristos 469ed0d50c3Schristos #define TFROM_ABS16W_B 6, 10, 1, 12, ABS16LIST 470ed0d50c3Schristos #define TFROM_ABS32W_B 6, 10, 3, 12, ABS32LIST 471ed0d50c3Schristos 472ed0d50c3Schristos /* Extended Operand Class Expanders: */ 473ed0d50c3Schristos 474ed0d50c3Schristos #define MOVFROM_STD(CODE, PREFIX, NAME, SRC, SRC_INFIX) \ 475ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, SRC_INFIX, TO_IND_MOV, E}}}, \ 476ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, E}}}, \ 477ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, E}}}, \ 478ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, SRC_INFIX, TO_PREINC_MOV, E}}}, \ 479ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, SRC_INFIX, TO_PREDEC_MOV, E}}}, \ 480ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP2_MOV, E}}}, \ 481ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP16, DSTDISP16LIST, E}}}, \ 482ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP32, DSTDISP32LIST, E}}}, \ 483ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16B, DSTDISP16LIST, E}}}, \ 484ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16W, DSTDISP16LIST, E}}}, \ 485ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16L, DSTDISP16LIST, E}}}, \ 486ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32B, DSTDISP32LIST, E}}}, \ 487ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32W, DSTDISP32LIST, E}}}, \ 488ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32L, DSTDISP32LIST, E}}}, \ 489ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS16, DSTABS16LIST, E}}}, \ 490ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS32, DSTABS32LIST, E}}} 491ed0d50c3Schristos 492ed0d50c3Schristos #define MOVFROM_AD(CODE, PREFIX, NAME, SRC, SRC_INFIX, SRC_SUFFIX) \ 493ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, SRC_INFIX, TO_IND_MOV, SRC_SUFFIX, E}}}, \ 494ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, SRC_INFIX, TO_POSTINC_MOV, SRC_SUFFIX, E}}}, \ 495ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, SRC_INFIX, TO_POSTDEC_MOV, SRC_SUFFIX, E}}}, \ 496ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, SRC_INFIX, TO_PREINC_MOV, SRC_SUFFIX, E}}}, \ 497ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, SRC_INFIX, TO_PREDEC_MOV, SRC_SUFFIX, E}}}, \ 498ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP2_MOV, SRC_SUFFIX, E}}}, \ 499ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP16, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ 500ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, SRC_INFIX, TO_DISP32, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ 501ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16B, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ 502ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16W, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ 503ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, SRC_INFIX, TO_DISP16L, SRC_SUFFIX, DSTDISP16LIST, E}}}, \ 504ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32B, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ 505ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32W, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ 506ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, SRC_INFIX, TO_DISP32L, SRC_SUFFIX, DSTDISP32LIST, E}}}, \ 507ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS16, SRC_SUFFIX, DSTABS16LIST, E}}}, \ 508ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, SRC_INFIX, TO_ABS32, SRC_SUFFIX, DSTABS32LIST, E}}} 509ed0d50c3Schristos 510ed0d50c3Schristos #define MOVFROM_IMM8(CODE, PREFIX, NAME, SRC) \ 511ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, 0, RDIND, IMM8LIST, E}}}, \ 512ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 8, RDPOSTINC, IMM8LIST, E}}}, \ 513ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 10, RDPOSTDEC, IMM8LIST, E}}}, \ 514ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, 9, RDPREINC, IMM8LIST, E}}}, \ 515ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, 11, RDPREDEC, IMM8LIST, E}}}, \ 516ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, B30 | B20 | DISP2DST, DSTDISPREG, IMM8LIST, E}}}, \ 517ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, 12, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ 518ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, 12, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ 519ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 13, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ 520ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 14, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ 521ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 15, B30 | DSTDISPREG, IMM8LIST, DSTDISP16LIST, E}}}, \ 522ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, 13, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ 523ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, 14, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ 524ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, 15, B31 | DSTDISPREG, IMM8LIST, DSTDISP32LIST, E}}}, \ 525ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, 4, B30 | IGNORE, IMM8LIST, DSTABS16LIST, E}}}, \ 526ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, 4, B31 | IGNORE, IMM8LIST, DSTABS32LIST, E}}} 527ed0d50c3Schristos 528ed0d50c3Schristos #define MOVFROM_IMM(CODE, PREFIX, NAME, SRC, LIST) \ 529ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, LIST, 0, RDIND, DATA2, E}}}, \ 530ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, LIST, 8, RDPOSTINC, DATA2, E}}}, \ 531ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, LIST, 10, RDPOSTDEC, DATA2, E}}}, \ 532ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, LIST, 9, RDPREINC, DATA2, E}}}, \ 533ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, LIST, 11, RDPREDEC, DATA2, E}}}, \ 534ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, LIST, B30 | B20 | DISP2DST, DSTDISPREG, DATA2, E}}}, \ 535ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, LIST, 12, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ 536ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, LIST, 12, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ 537ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, LIST, 13, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ 538ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, LIST, 14, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ 539ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, LIST, 15, B30 | DSTDISPREG, DATA2, DSTDISP16LIST, E}}}, \ 540ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, LIST, 13, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ 541ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, LIST, 14, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ 542ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, LIST, 15, B31 | DSTDISPREG, DATA2, DSTDISP32LIST, E}}}, \ 543ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, LIST, 4, B30 | IGNORE, DATA2, DSTABS16LIST, E}}}, \ 544ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, LIST, 4, B31 | IGNORE, DATA2, DSTABS32LIST, E}}} 545ed0d50c3Schristos 546ed0d50c3Schristos #define MOVFROM_REG_BW(CODE, NAME, SRC, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \ 547ed0d50c3Schristos {CODE, AV_H8, 4, NAME, {{SRC, RDIND, E}}, {{ 6, OP1, B31 | RDIND, SRC, E}}}, \ 548ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, 3, 6, OP3, B31 | RDPOSTINC, SRC, E}}}, \ 549ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, 1, 6, OP3, B31 | RDPOSTDEC, SRC, E}}}, \ 550ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, 2, 6, OP3, B31 | RDPREINC, SRC, E}}}, \ 551ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{SRC, RDPREDEC, E}}, {{ 6, OP3, B31 | RDPREDEC, SRC, E}}}, \ 552ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, B30 | B20 | DISP2DST, 6, OP1, B31 | DSTDISPREG, SRC, E}}}, \ 553ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{SRC, DISP16DST, E}}, {{ 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ 554ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{SRC, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 0, 6, OP2, 10, SRC, MEMRELAX | DSTDISP32LIST, E}}}, \ 555ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, 1, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ 556ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, 2, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ 557ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, 3, 6, OP4, B31 | DSTDISPREG, SRC, DSTDISP16LIST, E}}}, \ 558ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 1, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \ 559ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 2, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \ 560ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 3, 6, OP2, 10, SRC, DSTDISP32LIST, E}}}, \ 561ed0d50c3Schristos {CODE, AV_H8, 4, NAME, {{SRC, ABS16DST, E}}, {{ 6, OP2, 8, SRC, RELAX16 | DSTABS16LIST, E}}}, \ 562ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{SRC, ABS32DST, E}}, {{ 6, OP2, 10, SRC, MEMRELAX | DSTABS32LIST, E}}} 563ed0d50c3Schristos 564ed0d50c3Schristos #define MOVTO_REG_BW(CODE, NAME, DST, PREFIX, OP1, OP2, OP3, OP4, RELAX16) \ 565ed0d50c3Schristos {CODE, AV_H8, 4, NAME, {{RSIND, DST, E}}, {{ 6, OP1, B30 | RSIND, DST, E}}}, \ 566ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{RSPOSTINC, DST, E}}, {{ 6, OP3, B30 | RSPOSTINC, DST, E}}}, \ 567ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, 2, 6, OP3, B30 | RSPOSTDEC, DST, E}}}, \ 568ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREINC, DST, E}}, {{PREFIX, 1, 6, OP3, B30 | RSPREINC, DST, E}}}, \ 569ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, DST, E}}, {{PREFIX, 3, 6, OP3, B30 | RSPREDEC, DST, E}}}, \ 570ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, DST, E}}, {{PREFIX, B30 | B20 | DISP2SRC, 6, OP1, B30 | DISPREG, DST, E}}}, \ 571ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{DISP16SRC, DST, E}}, {{ 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ 572ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{DISP32SRC, DST, E}}, {{7, 8, B30 | DISPREG, 0, 6, OP2, 2, DST, MEMRELAX | DISP32LIST, E}}}, \ 573ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB16, DST, E}}, {{PREFIX, 1, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ 574ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW16, DST, E}}, {{PREFIX, 2, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ 575ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL16, DST, E}}, {{PREFIX, 3, 6, OP4, B30 | DISPREG, DST, DISP16LIST, E}}}, \ 576ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB32, DST, E}}, {{7, 8, B30 | DISPREG, 1, 6, OP2, 2, DST, DISP32LIST, E}}}, \ 577ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW32, DST, E}}, {{7, 8, B30 | DISPREG, 2, 6, OP2, 2, DST, DISP32LIST, E}}}, \ 578ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL32, DST, E}}, {{7, 8, B30 | DISPREG, 3, 6, OP2, 2, DST, DISP32LIST, E}}}, \ 579ed0d50c3Schristos {CODE, AV_H8, 4, NAME, {{ABS16SRC, DST, E}}, {{ 6, OP2, 0, DST, RELAX16 | ABS16LIST, E}}}, \ 580ed0d50c3Schristos {CODE, AV_H8, 6, NAME, {{ABS32SRC, DST, E}}, {{ 6, OP2, 2, DST, MEMRELAX | ABS32LIST, E}}} 581ed0d50c3Schristos 582ed0d50c3Schristos /* Expansion macros for two-word (plus data) instructions. */ 583ed0d50c3Schristos 584ed0d50c3Schristos /* Expansion from one source to "standard" destinations. */ 585ed0d50c3Schristos #define EXPAND2_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, NIB1, NIB2) \ 586ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, NIB1, NIB2, E}}}, \ 587ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, NIB1, NIB2, E}}}, \ 588ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, TO_PREINC, NIB1, NIB2, E}}}, \ 589ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, TO_PREDEC, NIB1, NIB2, E}}}, \ 590ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, TO_DISP2, NIB1, NIB2, E}}}, \ 591ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 592ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32, NIB1, NIB2, DSTDISP32LIST, E}}}, \ 593ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 594ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 595ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 596ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \ 597ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \ 598ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}} 599ed0d50c3Schristos 600ed0d50c3Schristos /* Expansion from one destination to "standard" sources. */ 601ed0d50c3Schristos #define EXPAND2_STD_DST(CODE, WEIGHT, NAME, DST, PREFIX, NIB1, NIB2) \ 602ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, DST, E}}, {{PREFIX, FROM_POSTINC, NIB1, NIB2, E}}}, \ 603ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, DST, E}}, {{PREFIX, FROM_POSTDEC, NIB1, NIB2, E}}}, \ 604ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREINC, DST, E}}, {{PREFIX, FROM_PREINC, NIB1, NIB2, E}}}, \ 605ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, DST, E}}, {{PREFIX, FROM_PREDEC, NIB1, NIB2, E}}}, \ 606ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, DST, E}}, {{PREFIX, FROM_DISP2, NIB1, NIB2, E}}}, \ 607ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, DST, E}}, {{PREFIX, FROM_DISP16, NIB1, NIB2, DISP16LIST, E}}}, \ 608ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, DST, E}}, {{PREFIX, FROM_DISP32, NIB1, NIB2, DISP32LIST, E}}}, \ 609ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB16, DST, E}}, {{PREFIX, FROM_DISP16B, NIB1, NIB2, DISP16LIST, E}}}, \ 610ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW16, DST, E}}, {{PREFIX, FROM_DISP16W, NIB1, NIB2, DISP16LIST, E}}}, \ 611ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL16, DST, E}}, {{PREFIX, FROM_DISP16L, NIB1, NIB2, DISP16LIST, E}}}, \ 612ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB32, DST, E}}, {{PREFIX, FROM_DISP32B, NIB1, NIB2, DISP32LIST, E}}}, \ 613ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW32, DST, E}}, {{PREFIX, FROM_DISP32W, NIB1, NIB2, DISP32LIST, E}}}, \ 614ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL32, DST, E}}, {{PREFIX, FROM_DISP32L, NIB1, NIB2, DISP32LIST, E}}} 615ed0d50c3Schristos 616ed0d50c3Schristos /* Expansion from immediate source to "standard" destinations. */ 617ed0d50c3Schristos #define EXPAND2_STD_IMM(CODE, WEIGHT, NAME, SRC, PREFIX, OPCODE, IGN, IMMLIST) \ 618ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, TO_POSTINC, OPCODE, IGN, IMMLIST, E}}}, \ 619ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, TO_POSTDEC, OPCODE, IGN, IMMLIST, E}}}, \ 620ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, TO_PREINC, OPCODE, IGN, IMMLIST, E}}}, \ 621ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, TO_PREDEC, OPCODE, IGN, IMMLIST, E}}}, \ 622ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, TO_DISP2, OPCODE, IGN, IMMLIST, E}}}, \ 623ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, TO_DISP16, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ 624ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, TO_DISP32, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \ 625ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, TO_DISP16B, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ 626ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, TO_DISP16W, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ 627ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, TO_DISP16L, OPCODE, IGN, DSTDISP16LIST, IMMLIST, E}}}, \ 628ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, TO_DISP32B, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \ 629ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, TO_DISP32W, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}}, \ 630ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, TO_DISP32L, OPCODE, IGN, DSTDISP32LIST, IMMLIST, E}}} 631ed0d50c3Schristos 632ed0d50c3Schristos /* Expansion from abs/disp source to "standard" destinations. */ 633ed0d50c3Schristos #define EXPAND2_STD_ABSDISP(CODE, WEIGHT, NAME, SRC, PREFIX, DSTLIST, NIB1, NIB2) \ 634ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, DSTLIST, TO_POSTINC, NIB1, NIB2, E}}}, \ 635ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, DSTLIST, TO_POSTDEC, NIB1, NIB2, E}}}, \ 636ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, DSTLIST, TO_PREINC, NIB1, NIB2, E}}}, \ 637ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, DSTLIST, TO_PREDEC, NIB1, NIB2, E}}}, \ 638ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, DSTLIST, TO_DISP2, NIB1, NIB2, E}}}, \ 639ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, DSTLIST, TO_DISP16, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 640ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, DSTLIST, TO_DISP32, NIB1, NIB2, DSTDISP32LIST, E}}}, \ 641ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, DSTLIST, TO_DISP16B, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 642ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, DSTLIST, TO_DISP16W, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 643ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, DSTLIST, TO_DISP16L, NIB1, NIB2, DSTDISP16LIST, E}}}, \ 644ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, DSTLIST, TO_DISP32B, NIB1, NIB2, DSTDISP32LIST, E}}}, \ 645ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, DSTLIST, TO_DISP32W, NIB1, NIB2, DSTDISP32LIST, E}}}, \ 646ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, DSTLIST, TO_DISP32L, NIB1, NIB2, DSTDISP32LIST, E}}} 647ed0d50c3Schristos 648ed0d50c3Schristos /* Expansion from ind source to "standard" destinations. */ 649ed0d50c3Schristos #define EXPAND2_STD_IND(CODE, WEIGHT, NAME, OPCODE, BIT) \ 650ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTINC, OPCODE, IGNORE, E}}}, \ 651ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPOSTDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_POSTDEC, OPCODE, IGNORE, E}}}, \ 652ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREINC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREINC, OPCODE, IGNORE, E}}}, \ 653ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RDPREDEC, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_PREDEC, OPCODE, IGNORE, E}}}, \ 654ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP2DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP2, OPCODE, IGNORE, E}}}, \ 655ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP16DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ 656ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, DISP32DST, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \ 657ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16B, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ 658ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16W, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ 659ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL16D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP16L, OPCODE, IGNORE, DSTDISP16LIST, E}}}, \ 660ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXB32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32B, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \ 661ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXW32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32W, OPCODE, IGNORE, DSTDISP32LIST, E}}}, \ 662ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, INDEXL32D, E}}, {{0x7, 0xc, BIT | RSIND, 0x5, TO_DISP32L, OPCODE, IGNORE, DSTDISP32LIST, E}}} 663ed0d50c3Schristos 664ed0d50c3Schristos /* Expansion macros for three word (plus data) instructions. */ 665ed0d50c3Schristos 666ed0d50c3Schristos #define EXPAND3_STD_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE) \ 667ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX, 8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \ 668ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \ 669ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, INFIX, 9, RDPREINC, OPCODE, B30 | IGNORE, E}}}, \ 670ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, INFIX, 11, RDPREDEC, OPCODE, B30 | IGNORE, E}}}, \ 671ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \ 672ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 673ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 674ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 675ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 676ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 677ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 678ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 679ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}} 680ed0d50c3Schristos 681ed0d50c3Schristos #define EXPAND3_L_SRC(CODE, WEIGHT, NAME, SRC, PREFIX, INFIX, OPCODE) \ 682ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDIND, E}}, {{PREFIX, INFIX, 0, RDIND, OPCODE, B30 | IGNORE, E}}}, \ 683ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTINC, E}}, {{PREFIX, INFIX, 8, RDPOSTINC, OPCODE, B30 | IGNORE, E}}}, \ 684ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPOSTDEC, E}}, {{PREFIX, INFIX, 10, RDPOSTDEC, OPCODE, B30 | IGNORE, E}}}, \ 685ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREINC, E}}, {{PREFIX, INFIX, 9, RDPREINC, OPCODE, B30 | IGNORE, E}}}, \ 686ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, RDPREDEC, E}}, {{PREFIX, INFIX, 11, RDPREDEC, OPCODE, B30 | IGNORE, E}}}, \ 687ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP2DST, E}}, {{PREFIX, INFIX, B30 | B20 | DISP2DST, DSTDISPREG, OPCODE, B30 | IGNORE, E}}}, \ 688ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP16DST, E}}, {{PREFIX, INFIX, 12, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 689ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, DISP32DST, E}}, {{PREFIX, INFIX, 12, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 690ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB16D, E}}, {{PREFIX, INFIX, 13, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 691ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW16D, E}}, {{PREFIX, INFIX, 14, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 692ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL16D, E}}, {{PREFIX, INFIX, 15, B30 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP16LIST, E}}}, \ 693ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXB32D, E}}, {{PREFIX, INFIX, 13, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 694ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXW32D, E}}, {{PREFIX, INFIX, 14, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 695ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, INDEXL32D, E}}, {{PREFIX, INFIX, 15, B31 | DSTDISPREG, OPCODE, B30 | IGNORE, DSTDISP32LIST, E}}}, \ 696ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS16DST, E}}, {{PREFIX, INFIX, 4, B30 | IGNORE, OPCODE, B30 | IGNORE, DSTABS16LIST, E}}}, \ 697ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{SRC, ABS32DST, E}}, {{PREFIX, INFIX, 4, B31 | IGNORE, OPCODE, B30 | IGNORE, DSTABS32LIST, E}}} 698ed0d50c3Schristos 699ed0d50c3Schristos 700ed0d50c3Schristos #define EXPAND_STD_MATRIX_L(CODE, NAME, OPCODE) \ 701ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, RSIND, PREFIX_0104, TFROM_IND, OPCODE), \ 702ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTINC, PREFIX_0104, TFROM_POSTINC, OPCODE), \ 703ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, RSPOSTDEC, PREFIX_0106, TFROM_POSTDEC, OPCODE), \ 704ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, RSPREINC, PREFIX_0105, TFROM_PREINC, OPCODE), \ 705ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, RSPREDEC, PREFIX_0107, TFROM_PREDEC, OPCODE), \ 706ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, DISP2SRC, PREFIX_010_D2, TFROM_DISP2, OPCODE), \ 707ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, DISP16SRC, PREFIX_0104, TFROM_DISP16, OPCODE), \ 708ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, DISP32SRC, PREFIX_78R4, TFROM_DISP32, OPCODE), \ 709ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, INDEXB16, PREFIX_0105, TFROM_DISP16B, OPCODE), \ 710ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, INDEXW16, PREFIX_0106, TFROM_DISP16W, OPCODE), \ 711ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, INDEXL16, PREFIX_0107, TFROM_DISP16L, OPCODE), \ 712ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, INDEXB32, PREFIX_78R5, TFROM_DISP32B, OPCODE), \ 713ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, INDEXW32, PREFIX_78R6, TFROM_DISP32W, OPCODE), \ 714ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, INDEXL32, PREFIX_78R7, TFROM_DISP32L, OPCODE), \ 715ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, ABS16SRC, PREFIX_0104, TFROM_ABS16, OPCODE), \ 716ed0d50c3Schristos EXPAND3_L_SRC (CODE, 6, NAME, ABS32SRC, PREFIX_0104, TFROM_ABS32, OPCODE) 717ed0d50c3Schristos 718ed0d50c3Schristos 719ed0d50c3Schristos #define EXPAND_STD_MATRIX_W(CODE, NAME, OPCODE) \ 720ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0154, TFROM_POSTINC, OPCODE), \ 721ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0156, TFROM_POSTDEC, OPCODE), \ 722ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC, PREFIX_0155, TFROM_PREINC, OPCODE), \ 723ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC, PREFIX_0157, TFROM_PREDEC, OPCODE), \ 724ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC, PREFIX_015_D2, TFROM_DISP2, OPCODE), \ 725ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0154, TFROM_DISP16, OPCODE), \ 726ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W, TFROM_DISP32, OPCODE), \ 727ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16, PREFIX_0155, TFROM_DISP16B, OPCODE), \ 728ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16, PREFIX_0156, TFROM_DISP16W, OPCODE), \ 729ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16, PREFIX_0157, TFROM_DISP16L, OPCODE), \ 730ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32, PREFIX_78R5W, TFROM_DISP32B, OPCODE), \ 731ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32, PREFIX_78R6W, TFROM_DISP32W, OPCODE), \ 732ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32, PREFIX_78R7W, TFROM_DISP32L, OPCODE) 733ed0d50c3Schristos 734ed0d50c3Schristos #define EXPAND_STD_MATRIX_B(CODE, NAME, OPCODE) \ 735ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTINC, PREFIX_0174, TFROM_POSTINC_B, OPCODE), \ 736ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPOSTDEC, PREFIX_0176, TFROM_POSTDEC_B, OPCODE), \ 737ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPREINC, PREFIX_0175, TFROM_PREINC_B, OPCODE), \ 738ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, RSPREDEC, PREFIX_0177, TFROM_PREDEC_B, OPCODE), \ 739ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, DISP2SRC, PREFIX_017_D2S, TFROM_DISP2_B, OPCODE), \ 740ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, DISP16SRC, PREFIX_0174, TFROM_DISP16_B, OPCODE), \ 741ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, DISP32SRC, PREFIX_78R4W, TFROM_DISP32_B, OPCODE), \ 742ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXB16, PREFIX_0175, TFROM_DISP16B_B, OPCODE), \ 743ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXW16, PREFIX_0176, TFROM_DISP16W_B, OPCODE), \ 744ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXL16, PREFIX_0177, TFROM_DISP16L_B, OPCODE), \ 745ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXB32, PREFIX_78R5W, TFROM_DISP32B_B, OPCODE), \ 746ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXW32, PREFIX_78R6W, TFROM_DISP32W_B, OPCODE), \ 747ed0d50c3Schristos EXPAND3_L_SRC (CODE, 4, NAME, INDEXL32, PREFIX_78R7W, TFROM_DISP32L_B, OPCODE) 748ed0d50c3Schristos 749ed0d50c3Schristos 750ed0d50c3Schristos /* Use the expansion macros to fill out the opcode table. */ 751ed0d50c3Schristos 752ed0d50c3Schristos #define EXPAND_FROM_REG8(CODE, NAME, OP1, OP2, OP3) \ 753ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, OP1, OP2, RS8, IGNORE, E}}}, \ 754ed0d50c3Schristos EXPAND2_STD_SRC (CODE, 2, NAME, RS8, PREFIX_0179, OP3, RS8), \ 755ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS8, ABS8DST, E}}, {{0x7, 0xf, DSTABS8LIST, OP1, OP2, RS8, IGNORE, E}}}, \ 756ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS8, ABS16DST, E}}, {{0x6, 0xa, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS8, IGNORE, E}}}, \ 757ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS8, ABS32DST, E}}, {{0x6, 0xa, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS8, IGNORE, E}}} 758ed0d50c3Schristos 759ed0d50c3Schristos #define EXPAND_TO_REG8(CODE, NAME, OP1, OP2, OP3) \ 760ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, OP1, OP2, IGNORE, RD8, E}}}, \ 761ed0d50c3Schristos EXPAND2_STD_DST (CODE, 2, NAME, RD8, PREFIX_017A, OP3, RD8), \ 762ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS8SRC, RD8, E}}, {{0x7, 0xe, ABS8LIST, OP1, OP2, IGNORE, RD8, E}}}, \ 763ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD8, E}}, {{0x6, 0xa, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD8, E}}}, \ 764ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD8, E}}, {{0x6, 0xa, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD8, E}}} 765ed0d50c3Schristos 766ed0d50c3Schristos #define EXPAND_FROM_IND8(CODE, NAME, OPCODE) \ 767ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \ 768ed0d50c3Schristos EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B30), \ 769ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ 770ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B30 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} 771ed0d50c3Schristos 772ed0d50c3Schristos #define EXPAND_FROM_ABS16_B(CODE, NAME, OPCODE) \ 773ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND, E}}, {{PREFIX_6A15, ABS16LIST, TO_IND, OPCODE, IGNORE, E}}}, \ 774ed0d50c3Schristos EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6A15, ABS16LIST, OPCODE, IGNORE), \ 775ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ 776ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6A15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} 777ed0d50c3Schristos 778ed0d50c3Schristos #define EXPAND_FROM_ABS32_B(CODE, NAME, OPCODE) \ 779ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND, E}}, {{PREFIX_6A35, ABS32LIST, TO_IND, OPCODE, IGNORE, E}}}, \ 780ed0d50c3Schristos EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6A35, ABS32LIST, OPCODE, IGNORE), \ 781ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ 782ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6A35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} 783ed0d50c3Schristos 784ed0d50c3Schristos #define EXPAND_FROM_IMM16_W(CODE, NAME, OPCODE) \ 785ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16, RDIND, E}}, {{PREFIX_015E, TO_IND, OPCODE, IGNORE, IMM16LIST, E}}}, \ 786ed0d50c3Schristos EXPAND2_STD_IMM (CODE, 2, NAME, IMM16, PREFIX_015E, OPCODE, IGNORE, IMM16LIST), \ 787ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS16DST, E}}, {{PREFIX_015E, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, IMM16LIST, E}}}, \ 788ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16, ABS32DST, E}}, {{PREFIX_015E, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, IMM16LIST, E}}} 789ed0d50c3Schristos 790ed0d50c3Schristos #define EXPAND_FROM_REG16(CODE, NAME, OP1, OP2, OP3) \ 791ed0d50c3Schristos {CODE, AV_H8, 2, NAME, {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, OP1, OP2, RS16, IGNORE, E}}}, \ 792ed0d50c3Schristos EXPAND2_STD_SRC (CODE, 2, NAME, RS16, PREFIX_0159, OP3, RS16), \ 793ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS16, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, RS16, IGNORE, E}}}, \ 794ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS16, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, RS16, IGNORE, E}}} 795ed0d50c3Schristos 796ed0d50c3Schristos #define EXPAND_TO_REG16(CODE, NAME, OP1, OP2, OP3) \ 797ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, IGNORE, OP1, OP2, IGNORE, RD16, E}}}, \ 798ed0d50c3Schristos EXPAND2_STD_DST (CODE, 2, NAME, RD16, PREFIX_015A, OP3, RD16), \ 799ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD16, E}}, {{0x6, 0xb, 0x1, B30 | IGNORE, ABS16LIST, OP1, OP2, IGNORE, RD16, E}}}, \ 800ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD16, E}}, {{0x6, 0xb, 0x3, B30 | IGNORE, ABS32LIST, OP1, OP2, IGNORE, RD16, E}}} 801ed0d50c3Schristos 802ed0d50c3Schristos #define EXPAND_FROM_IND16(CODE, NAME, OPCODE) \ 803ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RDIND, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_IND, OPCODE, IGNORE, E}}}, \ 804ed0d50c3Schristos EXPAND2_STD_IND (CODE, 2, NAME, OPCODE, B31), \ 805ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS16DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ 806ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, ABS32DST, E}}, {{0x7, 0xc, B31 | RSIND, 0x5, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} 807ed0d50c3Schristos 808ed0d50c3Schristos #define EXPAND_FROM_ABS16_W(CODE, NAME, OPCODE) \ 809ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RDIND, E}}, {{PREFIX_6B15, ABS16LIST, TO_IND, OPCODE, IGNORE, E}}}, \ 810ed0d50c3Schristos EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS16SRC, PREFIX_6B15, ABS16LIST, OPCODE, IGNORE), \ 811ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS16DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ 812ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, ABS32DST, E}}, {{PREFIX_6B15, ABS16LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} 813ed0d50c3Schristos 814ed0d50c3Schristos #define EXPAND_FROM_ABS32_W(CODE, NAME, OPCODE) \ 815ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RDIND, E}}, {{PREFIX_6B35, ABS32LIST, TO_IND, OPCODE, IGNORE, E}}}, \ 816ed0d50c3Schristos EXPAND2_STD_ABSDISP (CODE, 2, NAME, ABS32SRC, PREFIX_6B35, ABS32LIST, OPCODE, IGNORE), \ 817ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS16DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS16, OPCODE, IGNORE, DSTABS16LIST, E}}}, \ 818ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, ABS32DST, E}}, {{PREFIX_6B35, ABS32LIST, TO_ABS32, OPCODE, IGNORE, DSTABS32LIST, E}}} 819ed0d50c3Schristos 820ed0d50c3Schristos #define EXPAND_FROM_IMM16_L(CODE, NAME, OPCODE) \ 821ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RDIND, E}}, {{PREFIX_010E, TO_IND, OPCODE, B30 | IGNORE, IMM16ULIST, E}}}, \ 822ed0d50c3Schristos EXPAND2_STD_IMM (CODE, 2, NAME, IMM16U_NS, PREFIX_010E, OPCODE, B30 | IGNORE, IMM16ULIST), \ 823ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B30 | IGNORE, DSTABS16LIST, IMM16ULIST, E}}}, \ 824ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B30 | IGNORE, DSTABS32LIST, IMM16ULIST, E}}} 825ed0d50c3Schristos 826ed0d50c3Schristos #define EXPAND_FROM_IMM32_L(CODE, NAME, OPCODE) \ 827ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM32, RDIND, E}}, {{PREFIX_010E, TO_IND, OPCODE, B31 | IGNORE, IMM32LIST, E}}}, \ 828ed0d50c3Schristos EXPAND2_STD_IMM (CODE, 2, NAME, IMM32, PREFIX_010E, OPCODE, B31 | IGNORE, IMM32LIST), \ 829ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS16DST, E}}, {{PREFIX_010E, TO_ABS16, OPCODE, B31 | IGNORE, DSTABS16LIST, IMM32LIST, E}}}, \ 830ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM32, ABS32DST, E}}, {{PREFIX_010E, TO_ABS32, OPCODE, B31 | IGNORE, DSTABS32LIST, IMM32LIST, E}}} 831ed0d50c3Schristos 832ed0d50c3Schristos #define EXPAND_FROM_REG32(CODE, NAME, OPCODE) \ 833ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS32, RDIND, E}}, {{PREFIX_0109, TO_IND, OPCODE, B30 | RS32, E}}}, \ 834ed0d50c3Schristos EXPAND2_STD_SRC (CODE, 2, NAME, RS32, PREFIX_0109, OPCODE, B30 | RS32), \ 835ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS32, ABS16DST, E}}, {{PREFIX_0109, TO_ABS16, OPCODE, B30 | RS32, DSTABS16LIST, E}}}, \ 836ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RS32, ABS32DST, E}}, {{PREFIX_0109, TO_ABS32, OPCODE, B30 | RS32, DSTABS32LIST, E}}} 837ed0d50c3Schristos 838ed0d50c3Schristos #define EXPAND_TO_REG32(CODE, NAME, OPCODE) \ 839ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, RD32, E}}, {{PREFIX_010A, FROM_IND, OPCODE, B30 | RD32, E}}}, \ 840ed0d50c3Schristos EXPAND2_STD_DST (CODE, 2, NAME, RD32, PREFIX_010A, OPCODE, B30 | RD32), \ 841ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS16, OPCODE, B30 | RD32, ABS16LIST, E}}}, \ 842ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, RD32, E}}, {{PREFIX_010A, FROM_ABS32, OPCODE, B30 | RD32, ABS32LIST, E}}} 843ed0d50c3Schristos 844ed0d50c3Schristos 845ed0d50c3Schristos #define EXPAND_TWOOP_B(CODE, NAME, OP1, OP2, OP3, OP4, BIT) \ 846ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 847ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTINC, E}}, {{PREFIX_0174, 0x6, 0xc, B30 | RDPOSTINC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 848ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 849ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREINC, E}}, {{PREFIX_0175, 0x6, 0xc, B30 | RDPREINC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 850ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, RDPREDEC, E}}, {{PREFIX_0177, 0x6, 0xc, B30 | RDPREDEC, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 851ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP2DST, E}}, {{PREFIX_017_D2D, 0x6, 0x8, B30 | DSTDISPREG, B31 | B20 | IGNORE, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 852ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP16DST, E}}, {{PREFIX_0174, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 853ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, DISP32DST, E}}, {{PREFIX_78R4WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 854ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB16D, E}}, {{PREFIX_0175, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 855ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW16D, E}}, {{PREFIX_0176, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 856ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL16D, E}}, {{PREFIX_0177, 0x6, 0xe, B30 | DSTDISPREG, B31 | B20 | IGNORE, DSTDISP16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 857ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXB32D, E}}, {{PREFIX_78R5WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 858ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXW32D, E}}, {{PREFIX_78R6WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 859ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, INDEXL32D, E}}, {{PREFIX_78R7WD, 0x6, 0xa, 2, B31 | B20 | IGNORE, DSTDISP32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 860ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS8DST, E}}, {{0x7, 0xf, DSTABS8LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 861ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS16DST, E}}, {{0x6, 0xa, 0x1, B31 | B20 | IGNORE, DSTABS16LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 862ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM8, ABS32DST, E}}, {{0x6, 0xa, 0x3, B31 | B20 | IGNORE, DSTABS32LIST, OP1, BIT | IGNORE, IMM8LIST, E}}}, \ 863ed0d50c3Schristos {CODE, AV_H8, 2, NAME, {{RS8, RD8, E}}, {{OP2, OP3, RS8, RD8, E}}}, \ 864ed0d50c3Schristos EXPAND_FROM_REG8 (CODE, NAME, OP2, OP3, OP4), \ 865ed0d50c3Schristos EXPAND_TO_REG8 (CODE, NAME, OP2, OP3, OP4), \ 866ed0d50c3Schristos EXPAND_FROM_IND8 (CODE, NAME, OP4), \ 867ed0d50c3Schristos EXPAND_STD_MATRIX_B (CODE, NAME, OP4), \ 868ed0d50c3Schristos EXPAND_FROM_ABS16_B (CODE, NAME, OP4), \ 869ed0d50c3Schristos EXPAND_FROM_ABS32_B (CODE, NAME, OP4) 870ed0d50c3Schristos 871ed0d50c3Schristos #define EXPAND_TWOOP_W(CODE, NAME, OP1, OP2, OP3) \ 872ed0d50c3Schristos {CODE, AV_H8H, 6, NAME, {{IMM16, RD16, E}}, {{0x7, 0x9, OP3, RD16, IMM16LIST, E}}}, \ 873ed0d50c3Schristos EXPAND_FROM_IMM16_W (CODE, NAME, OP3), \ 874ed0d50c3Schristos EXPAND_FROM_REG16 (CODE, NAME, OP1, OP2, OP3), \ 875ed0d50c3Schristos EXPAND_TO_REG16 (CODE, NAME, OP1, OP2, OP3), \ 876ed0d50c3Schristos EXPAND_FROM_IND16 (CODE, NAME, OP3), \ 877ed0d50c3Schristos EXPAND_STD_MATRIX_W (CODE, NAME, OP3), \ 878ed0d50c3Schristos EXPAND_FROM_ABS16_W (CODE, NAME, OP3), \ 879ed0d50c3Schristos EXPAND_FROM_ABS32_W (CODE, NAME, OP3) 880ed0d50c3Schristos 881ed0d50c3Schristos #define EXPAND_TWOOP_L(CODE, NAME, OP1) \ 882ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, OP1, B31 | RD32, IMM16ULIST, E}}}, \ 883ed0d50c3Schristos {CODE, AV_H8H, 6, NAME, {{IMM32, RD32, E}}, {{0x7, 0xa, OP1, B30 | RD32, IMM32LIST, E}}}, \ 884ed0d50c3Schristos EXPAND_FROM_IMM16_L (CODE, NAME, OP1), \ 885ed0d50c3Schristos EXPAND_FROM_IMM32_L (CODE, NAME, OP1), \ 886ed0d50c3Schristos EXPAND_FROM_REG32 (CODE, NAME, OP1), \ 887ed0d50c3Schristos EXPAND_TO_REG32 (CODE, NAME, OP1), \ 888ed0d50c3Schristos EXPAND_STD_MATRIX_L (CODE, NAME, OP1) 889ed0d50c3Schristos 890ed0d50c3Schristos 891ed0d50c3Schristos /* Old expanders: */ 892ed0d50c3Schristos 893ed0d50c3Schristos #define BITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ 894ed0d50c3Schristos {code, AV_H8, 2, name, {{imm, RD8, E}}, {{op00, op01, imm, RD8, E}}}, \ 895ed0d50c3Schristos {code, AV_H8, 6, name, {{imm, RDIND, E}}, {{op10, op11, B30 | RDIND, 0, op00, op01, imm, 0, E}}}, \ 896ed0d50c3Schristos {code, AV_H8, 6, name, {{imm, ABS8DST, E}}, {{op20, op21, DSTABS8LIST, op00, op01, imm, 0, E}}}, \ 897ed0d50c3Schristos {code, AV_H8S, 6, name, {{imm, ABS16DST, E}}, {{0x6, 0xa, 0x1, op30, DST | MEMRELAX | ABS16LIST , op00, op01, imm, op4, E}}}, \ 898ed0d50c3Schristos {code, AV_H8S, 6, name, {{imm, ABS32DST, E}}, {{0x6, 0xa, 0x3, op30, DST | MEMRELAX | ABS32LIST , op00, op01, imm, op4, E}}} 899ed0d50c3Schristos 900ed0d50c3Schristos #define BITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ 901ed0d50c3Schristos {code, AV_H8SX, 0, name, {{imm, RDIND, E}}, {{op10, op11, B30 | RDIND, 0, op00, op01, imm, op4, E}}}, \ 902ed0d50c3Schristos {code, AV_H8SX, 0, name, {{imm, ABS8DST, E}}, {{op20, op21, DSTABS8LIST, op00, op01, imm, op4, E}}}, \ 903ed0d50c3Schristos {code, AV_H8SX, 0, name, {{imm, ABS16DST, E}}, {{0x6, 0xa, 0x1, op30, DST | ABS16LIST, op00, op01, imm, op4, E}}}, \ 904ed0d50c3Schristos {code, AV_H8SX, 0, name, {{imm, ABS32DST, E}}, {{0x6, 0xa, 0x3, op30, DST | ABS32LIST, op00, op01, imm, op4, E}}} 905ed0d50c3Schristos 906ed0d50c3Schristos #define EBITOP(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ 907ed0d50c3Schristos BITOP(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \ 908ed0d50c3Schristos BITOP(code, RS8, name, op00, op01, op10, op11, op20, op21, op30, op4) 909ed0d50c3Schristos 910ed0d50c3Schristos #define EBITOP_B(code, imm, name, op00, op01, op10, op11, op20, op21, op30, op4) \ 911ed0d50c3Schristos BITOP_B(code, imm, name, op00+1, op01, op10, op11, op20, op21, op30, op4), \ 912ed0d50c3Schristos BITOP_B(code, RS8, name, op00, op01, op10, op11, op20, op21, op30, op4) 913ed0d50c3Schristos 914ed0d50c3Schristos #define WTWOP(code, name, op1, op2) \ 915ed0d50c3Schristos {code, AV_H8, 2, name, {{RS16, RD16, E}}, {{op1, op2, RS16, RD16, E}}} 916ed0d50c3Schristos 917ed0d50c3Schristos #define BRANCH(code, name, op) \ 918ed0d50c3Schristos {code, AV_H8H, 6, name, {{PCREL16, E}}, {{0x5, 0x8, op, 0x0, PCREL16, DATA3 | B00, E}}}, \ 919ed0d50c3Schristos {code, AV_H8, 4, name, {{PCREL8, E}}, {{0x4, op, PCREL8, DATA | B00, E}}} 920ed0d50c3Schristos 921ed0d50c3Schristos 922ed0d50c3Schristos #define UNOP(code, name, op1, op2) \ 923ed0d50c3Schristos {code, AV_H8, 2, name, {{OR8, E}}, {{op1, op2, 0, OR8, E}}} 924ed0d50c3Schristos 925ed0d50c3Schristos #define EXPAND_UNOP_STD_B(CODE, NAME, PREFIX, OP1, OP2, OP3) \ 926ed0d50c3Schristos {CODE, AV_H8, 2, NAME, {{OR8, E}}, {{ OP1, OP2, OP3, OR8, E}}}, \ 927ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{ 7, 13, B30 | RSIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 928ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 929ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 930ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 12, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 931ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 12, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 932ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 8, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 933ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 934ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 935ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 936ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 937ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 14, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 938ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B30 | DISPREG, 5, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 939ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B30 | DISPREG, 6, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 940ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B30 | DISPREG, 7, 6, 10, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 941ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS8SRC, E}}, {{ 7, 15, ABS8LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 942ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{ 6, 10, 1, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 943ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{ 6, 10, 3, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, IGNORE, E}}} 944ed0d50c3Schristos 945ed0d50c3Schristos #define EXPAND_UNOP_STD_W(CODE, NAME, PREFIX, OP1, OP2, OP3) \ 946ed0d50c3Schristos {CODE, AV_H8H, 2, NAME, {{OR16, E}}, {{ OP1, OP2, OP3, OR16, E}}}, \ 947ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{ 7, 13, B31 | RSIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 948ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 949ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 950ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 951ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 952ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 953ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 954ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B30 | DISPREG, 4, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 955ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 956ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 957ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 958ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B30 | DISPREG, 5, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 959ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B30 | DISPREG, 6, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 960ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B30 | DISPREG, 7, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 961ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{ 6, 11, 1, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 962ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{ 6, 11, 3, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, IGNORE, E}}} 963ed0d50c3Schristos 964ed0d50c3Schristos #define EXPAND_UNOP_STD_L(CODE, NAME, PREFIX, OP1, OP2, OP3) \ 965ed0d50c3Schristos {CODE, AV_H8H, 2, NAME, {{OR32, E}}, {{ OP1, OP2, OP3, B30 | OR32, E}}}, \ 966ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSIND, E}}, {{PREFIX, 4, 6, 9, B30 | RSIND, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 967ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RSPOSTINC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 968ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RSPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 969ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RSPREINC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 970ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{RSPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RSPREDEC, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 971ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP2SRC, E}}, {{PREFIX, B30 | B21 | DISP2SRC, 6, 9, B30 | DISPREG, B31 | IGNORE, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 972ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP16SRC, E}}, {{PREFIX, 4, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 973ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{DISP32SRC, E}}, {{7, 8, B31 | DISPREG, 4, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 974ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB16, E}}, {{PREFIX, 5, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 975ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW16, E}}, {{PREFIX, 6, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 976ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL16, E}}, {{PREFIX, 7, 6, 15, B30 | DISPREG, B31 | IGNORE, DISP16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 977ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXB32, E}}, {{7, 8, B31 | DISPREG, 5, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 978ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXW32, E}}, {{7, 8, B31 | DISPREG, 6, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 979ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{INDEXL32, E}}, {{7, 8, B31 | DISPREG, 7, 6, 11, 2, B31 | IGNORE, DISP32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 980ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS16SRC, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, ABS16LIST, OP1, OP2, OP3, B30 | IGNORE, E}}}, \ 981ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{ABS32SRC, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, ABS32LIST, OP1, OP2, OP3, B30 | IGNORE, E}}} 982ed0d50c3Schristos 983*b88e3e88Schristos #define EXPAND_UNOP_EXTENDED_B(CODE, MODEL, NAME, CONST, PREFIX, OP1, OP2, OP3) \ 984*b88e3e88Schristos {CODE, MODEL, 2, NAME, {{CONST, RD8, E}}, {{ OP1, OP2, OP3, RD8, E}}}, \ 985ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B30 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 986ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 12, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 987ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 12, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 988ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 12, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 989ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 12, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 990ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 8, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 991ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 992ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 993ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 994ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 995ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 14, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 996ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 997ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 998ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 10, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 999ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS8DST, E}}, {{ 7, 15, DSTABS8LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1000ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 10, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1001ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 10, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}} 1002ed0d50c3Schristos 1003*b88e3e88Schristos #define EXPAND_UNOP_EXTENDED_W(CODE, MODEL, NAME, CONST, PREFIX, OP1, OP2, OP3) \ 1004*b88e3e88Schristos {CODE, MODEL, 2, NAME, {{CONST, RD16, E}}, {{ OP1, OP2, OP3, RD16, E}}}, \ 1005ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{ 7, 13, B31 | RDIND, IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 1006ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 1007ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 1008ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 1009ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 1010ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, IGNORE, E}}}, \ 1011ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1012ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B30 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1013ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1014ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1015ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1016ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B30 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1017ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B30 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1018ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B30 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1019ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{ 6, 11, 1, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, IGNORE, E}}}, \ 1020ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{ 6, 11, 3, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, IGNORE, E}}} 1021ed0d50c3Schristos 1022*b88e3e88Schristos #define EXPAND_UNOP_EXTENDED_L(CODE, MODEL, NAME, CONST, PREFIX, OP1, OP2, OP3, BIT) \ 1023*b88e3e88Schristos {CODE, MODEL, 2, NAME, {{CONST, RD32, E}}, {{ OP1, OP2, OP3, BIT | RD32, E}}}, \ 1024ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDIND, E}}, {{PREFIX, 4, 6, 9, B30 | RDIND, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1025ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTINC, E}}, {{PREFIX, 4, 6, 13, B30 | RDPOSTINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1026ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPOSTDEC, E}}, {{PREFIX, 6, 6, 13, B30 | RDPOSTDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1027ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREINC, E}}, {{PREFIX, 5, 6, 13, B30 | RDPREINC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1028ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, RDPREDEC, E}}, {{PREFIX, 7, 6, 13, B30 | RDPREDEC, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1029ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP2DST, E}}, {{PREFIX, B30 | B21 | DISP2DST, 6, 9, B30 | DSTDISPREG, B31 | IGNORE, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1030ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP16DST, E}}, {{PREFIX, 4, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1031ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, DISP32DST, E}}, {{7, 8, B31 | DSTDISPREG, 4, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1032ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB16D, E}}, {{PREFIX, 5, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1033ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW16D, E}}, {{PREFIX, 6, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1034ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL16D, E}}, {{PREFIX, 7, 6, 15, B30 | DSTDISPREG, B31 | IGNORE, DSTDISP16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1035ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXB32D, E}}, {{7, 8, B31 | DSTDISPREG, 5, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1036ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXW32D, E}}, {{7, 8, B31 | DSTDISPREG, 6, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1037ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, INDEXL32D, E}}, {{7, 8, B31 | DSTDISPREG, 7, 6, 11, 2, B31 | IGNORE, DSTDISP32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1038ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS16DST, E}}, {{PREFIX, 4, 6, 11, 0, B31 | IGNORE, DSTABS16LIST, OP1, OP2, OP3, BIT | IGNORE, E}}}, \ 1039ed0d50c3Schristos {CODE, AV_H8SX, 0, NAME, {{CONST, ABS32DST, E}}, {{PREFIX, 4, 6, 11, 2, B31 | IGNORE, DSTABS32LIST, OP1, OP2, OP3, BIT | IGNORE, E}}} 1040ed0d50c3Schristos 1041ed0d50c3Schristos #define PREFIXLDC 0x0, 0x1, 0x4, B30 | CCR_EXR | DST 1042ed0d50c3Schristos #define PREFIXSTC 0x0, 0x1, 0x4, B30 | CCR_EXR | SRC 1043ed0d50c3Schristos 1044ed0d50c3Schristos #define O(op, size) (op * 4 + size) 1045ed0d50c3Schristos #define OP_SIZE(HOW) (HOW % 4) 1046ed0d50c3Schristos #define OP_KIND(HOW) (HOW / 4) 1047ed0d50c3Schristos 1048ed0d50c3Schristos enum h8_asm_codes 1049ed0d50c3Schristos { 1050ed0d50c3Schristos O_RECOMPILE = 0, 1051ed0d50c3Schristos O_ADD, 1052ed0d50c3Schristos O_ADDX, 1053ed0d50c3Schristos O_AND, 1054ed0d50c3Schristos O_BAND, 1055ed0d50c3Schristos O_BRA, 1056ed0d50c3Schristos O_BRAB, 1057ed0d50c3Schristos O_BRAW, 1058ed0d50c3Schristos O_BRAL, 1059ed0d50c3Schristos O_BRAS, 1060ed0d50c3Schristos O_BRABC, 1061ed0d50c3Schristos O_BRABS, 1062ed0d50c3Schristos O_BSRBC, 1063ed0d50c3Schristos O_BSRBS, 1064ed0d50c3Schristos O_BRN, 1065ed0d50c3Schristos O_BHI, 1066ed0d50c3Schristos O_BLS, 1067ed0d50c3Schristos O_BCC, 1068ed0d50c3Schristos O_BCS, 1069ed0d50c3Schristos O_BNE, 1070ed0d50c3Schristos O_BVC, 1071ed0d50c3Schristos O_BVS, 1072ed0d50c3Schristos O_BPL, 1073ed0d50c3Schristos O_BMI, 1074ed0d50c3Schristos O_BGE, 1075ed0d50c3Schristos O_BLT, 1076ed0d50c3Schristos O_BGT, 1077ed0d50c3Schristos O_BLE, 1078ed0d50c3Schristos O_ANDC, 1079ed0d50c3Schristos O_BEQ, 1080ed0d50c3Schristos O_BCLR, 1081ed0d50c3Schristos O_BCLREQ, 1082ed0d50c3Schristos O_BCLRNE, 1083ed0d50c3Schristos O_BSETEQ, 1084ed0d50c3Schristos O_BSETNE, 1085ed0d50c3Schristos O_BFLD, 1086ed0d50c3Schristos O_BFST, 1087ed0d50c3Schristos O_BIAND, 1088ed0d50c3Schristos O_BILD, 1089ed0d50c3Schristos O_BIOR, 1090ed0d50c3Schristos O_BIXOR, 1091ed0d50c3Schristos O_BIST, 1092ed0d50c3Schristos O_BISTZ, 1093ed0d50c3Schristos O_BLD, 1094ed0d50c3Schristos O_BNOT, 1095ed0d50c3Schristos O_BOR, 1096ed0d50c3Schristos O_BSET, 1097ed0d50c3Schristos O_BSR, 1098ed0d50c3Schristos O_BXOR, 1099ed0d50c3Schristos O_CMP, 1100ed0d50c3Schristos O_DAA, 1101ed0d50c3Schristos O_DAS, 1102ed0d50c3Schristos O_DEC, 1103ed0d50c3Schristos O_DIVU, 1104ed0d50c3Schristos O_DIVS, 1105ed0d50c3Schristos O_DIVXU, 1106ed0d50c3Schristos O_DIVXS, 1107ed0d50c3Schristos O_INC, 1108ed0d50c3Schristos O_LDC, 1109ed0d50c3Schristos O_MOV, 1110ed0d50c3Schristos O_MOVAB, 1111ed0d50c3Schristos O_MOVAW, 1112ed0d50c3Schristos O_MOVAL, 1113ed0d50c3Schristos O_MOVMD, 1114ed0d50c3Schristos O_MOVSD, 1115ed0d50c3Schristos O_OR, 1116ed0d50c3Schristos O_ROTL, 1117ed0d50c3Schristos O_ROTR, 1118ed0d50c3Schristos O_ROTXL, 1119ed0d50c3Schristos O_ROTXR, 1120ed0d50c3Schristos O_BPT, 1121ed0d50c3Schristos O_SHAL, 1122ed0d50c3Schristos O_SHAR, 1123ed0d50c3Schristos O_SHLL, 1124ed0d50c3Schristos O_SHLR, 1125ed0d50c3Schristos O_SUB, 1126ed0d50c3Schristos O_SUBS, 1127ed0d50c3Schristos O_TRAPA, 1128ed0d50c3Schristos O_XOR, 1129ed0d50c3Schristos O_XORC, 1130ed0d50c3Schristos O_BST, 1131ed0d50c3Schristos O_BSTZ, 1132ed0d50c3Schristos O_BTST, 1133ed0d50c3Schristos O_EEPMOV, 1134ed0d50c3Schristos O_EXTS, 1135ed0d50c3Schristos O_EXTU, 1136ed0d50c3Schristos O_JMP, 1137ed0d50c3Schristos O_JSR, 1138ed0d50c3Schristos O_MULU, 1139ed0d50c3Schristos O_MULUU, 1140ed0d50c3Schristos O_MULS, 1141ed0d50c3Schristos O_MULSU, 1142ed0d50c3Schristos O_MULXU, 1143ed0d50c3Schristos O_MULXS, 1144ed0d50c3Schristos O_NOP, 1145ed0d50c3Schristos O_NOT, 1146ed0d50c3Schristos O_ORC, 1147ed0d50c3Schristos O_RTE, 1148ed0d50c3Schristos O_RTEL, 1149ed0d50c3Schristos O_STC, 1150ed0d50c3Schristos O_SUBX, 1151ed0d50c3Schristos O_NEG, 1152ed0d50c3Schristos O_RTS, 1153ed0d50c3Schristos O_RTSL, 1154ed0d50c3Schristos O_SLEEP, 1155ed0d50c3Schristos O_ILL, 1156ed0d50c3Schristos O_ADDS, 1157ed0d50c3Schristos O_SYSCALL, 1158ed0d50c3Schristos O_TAS, 1159ed0d50c3Schristos O_CLRMAC, 1160ed0d50c3Schristos O_LDMAC, 1161ed0d50c3Schristos O_MAC, 1162ed0d50c3Schristos O_LDM, 1163ed0d50c3Schristos O_STM, 1164ed0d50c3Schristos O_STMAC, 1165ed0d50c3Schristos O_LAST, 1166ed0d50c3Schristos /* Change made for System Call processing. */ 1167ed0d50c3Schristos O_SYS_CREAT, 1168ed0d50c3Schristos O_SYS_OPEN, 1169ed0d50c3Schristos O_SYS_READ, 1170ed0d50c3Schristos O_SYS_WRITE, 1171ed0d50c3Schristos O_SYS_LSEEK, 1172ed0d50c3Schristos O_SYS_CLOSE, 1173ed0d50c3Schristos O_SYS_STAT, 1174ed0d50c3Schristos O_SYS_FSTAT, 1175ed0d50c3Schristos /* Space reserved for future file I/O system calls. */ 1176ed0d50c3Schristos O_SYS_CMDLINE 1177ed0d50c3Schristos /* End of System Call specific Changes. */ 1178ed0d50c3Schristos }; 1179ed0d50c3Schristos 1180ed0d50c3Schristos enum h8_size 1181ed0d50c3Schristos { 1182ed0d50c3Schristos SB = 0, 1183ed0d50c3Schristos SW = 1, 1184ed0d50c3Schristos SL = 2, 1185ed0d50c3Schristos SN = 3 1186ed0d50c3Schristos }; 1187ed0d50c3Schristos 1188ed0d50c3Schristos 1189ed0d50c3Schristos /* FIXME: Lots of insns have "E, 0, 0, 0, 0" in the nibble code sequences. 1190ed0d50c3Schristos Methinks the zeroes aren't necessary. Once confirmed, nuke 'em. */ 1191ed0d50c3Schristos 1192ed0d50c3Schristos struct h8_opcode h8_opcodes[] = 1193ed0d50c3Schristos { 1194ed0d50c3Schristos {O (O_ADD, SB), AV_H8, 2, "add.b", {{IMM8, RD8, E}}, {{0x8, RD8, IMM8LIST, E}}}, 1195ed0d50c3Schristos EXPAND_TWOOP_B (O (O_ADD, SB), "add.b", 0x8, 0x0, 0x8, 0x1, 0), 1196ed0d50c3Schristos 1197ed0d50c3Schristos {O (O_ADD, SW), AV_H8, 6, "add.w", {{RS16, RD16, E}}, {{0x0, 0x9, RS16, RD16, E}}}, 1198ed0d50c3Schristos {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xa, B30 | IMM3NZ, RD16, E}}}, 1199ed0d50c3Schristos {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 1200ed0d50c3Schristos {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 1201ed0d50c3Schristos {O (O_ADD, SW), AV_H8SX, 0, "add.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x0, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 1202ed0d50c3Schristos EXPAND_TWOOP_W (O (O_ADD, SW), "add.w", 0x0, 0x9, 0x1), 1203ed0d50c3Schristos 1204ed0d50c3Schristos {O (O_ADD, SL), AV_H8H, 6, "add.l", {{RS32, RD32, E}}, {{0x0, 0xa, B31 | RS32, B30 | RD32, E}}}, 1205ed0d50c3Schristos {O (O_ADD, SL), AV_H8SX, 0, "add.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xa, B31 | IMM3NZ, B31 | RD32, E}}}, 1206ed0d50c3Schristos EXPAND_TWOOP_L (O (O_ADD, SL), "add.l", 0x1), 1207ed0d50c3Schristos 1208ed0d50c3Schristos {O (O_ADDS, SL), AV_H8, 2, "adds", {{KBIT, RDP, E}}, {{0x0, 0xB,KBIT, RDP, E}}}, 1209ed0d50c3Schristos 1210ed0d50c3Schristos {O (O_ADDX, SB), AV_H8, 2, "addx", {{IMM8, RD8, E}}, {{0x9, RD8, IMM8LIST, E}}}, 1211ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x9, IGNORE, IMM8LIST, E}}}, 1212ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x9, IGNORE, IMM8LIST, E}}}, 1213ed0d50c3Schristos {O (O_ADDX, SB), AV_H8, 2, "addx", {{RS8, RD8, E}}, {{0x0, 0xe, RS8, RD8, E}}}, 1214ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x0, 0xe, RS8, IGNORE, E}}}, 1215ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RS8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x0, 0xe, RS8, IGNORE, E}}}, 1216ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, 0x0, 0xe, IGNORE, RD8, E}}}, 1217ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RD8, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x0, 0xe, IGNORE, RD8, E}}}, 1218ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSIND, RDIND, E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}}, 1219ed0d50c3Schristos {O (O_ADDX, SB), AV_H8SX, 0, "addx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}}, 1220ed0d50c3Schristos 1221ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RD16, E}}, {{PREFIX_0151, 0x7, 0x9, 0x1, RD16, IMM16LIST, E}}}, 1222ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}}, 1223ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{IMM16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x1, IGNORE, IMM16LIST, E}}}, 1224ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RD16, E}}, {{PREFIX_0151, 0x0, 0x9, RS16, RD16, E}}}, 1225ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}}, 1226ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RS16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0x9, RS16, IGNORE, E}}}, 1227ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}}, 1228ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RD16, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0x9, IGNORE, RD16, E}}}, 1229ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSIND, RDIND, E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}}, 1230ed0d50c3Schristos {O (O_ADDX, SW), AV_H8SX, 0, "addx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}}, 1231ed0d50c3Schristos 1232ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RD32, E}}, {{PREFIX_0101, 0x7, 0xa, 0x1, RD32, IMM32LIST, E}}}, 1233ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}}, 1234ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{IMM32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x1, IGNORE, IMM32LIST, E}}}, 1235ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RD32, E}}, {{PREFIX_0101, 0x0, 0xa, B31 | RS32, B30 | RD32, E}}}, 1236ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}}, 1237ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | RS32, B30 | IGNORE, E}}}, 1238ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND, RD32, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}}, 1239ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x0, 0xa, B31 | IGNORE, B30 | RD32, E}}}, 1240ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSIND, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x1, IGNORE, E}}}, 1241ed0d50c3Schristos {O (O_ADDX, SL), AV_H8SX, 0, "addx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x1, IGNORE, E}}}, 1242ed0d50c3Schristos 1243ed0d50c3Schristos {O (O_AND, SB), AV_H8, 2, "and.b", {{IMM8, RD8, E}}, {{0xe, RD8, IMM8LIST, E}}}, 1244ed0d50c3Schristos EXPAND_TWOOP_B (O (O_AND, SB), "and.b", 0xe, 0x1, 0x6, 0x6, 0), 1245ed0d50c3Schristos 1246ed0d50c3Schristos {O (O_AND, SW), AV_H8, 2, "and.w", {{RS16, RD16, E}}, {{0x6, 0x6, RS16, RD16, E}}}, 1247ed0d50c3Schristos EXPAND_TWOOP_W (O (O_AND, SW), "and.w", 0x6, 0x6, 0x6), 1248ed0d50c3Schristos 1249ed0d50c3Schristos {O (O_AND, SL), AV_H8H, 2, "and.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x6, B30 | RS32, B30 | RD32, E}}}, 1250ed0d50c3Schristos EXPAND_TWOOP_L (O (O_AND, SL), "and.l", 0x6), 1251ed0d50c3Schristos 1252ed0d50c3Schristos {O (O_ANDC, SB), AV_H8, 2, "andc", {{IMM8, CCR | DST, E}}, {{0x0, 0x6, IMM8LIST, E}}}, 1253ed0d50c3Schristos {O (O_ANDC, SB), AV_H8S, 2, "andc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x6, IMM8LIST, E}}}, 1254ed0d50c3Schristos 1255ed0d50c3Schristos BRANCH (O (O_BRA, SB), "bra", 0x0), 1256ed0d50c3Schristos 1257ed0d50c3Schristos {O (O_BRAB, SB), AV_H8SX, 0, "bra", {{LOWREG | L_8, E}}, {{0x5, 0x9, LOWREG | L_8 | B30, 0x5, E}}}, 1258ed0d50c3Schristos {O (O_BRAW, SW), AV_H8SX, 0, "bra", {{LOWREG | L_16, E}}, {{0x5, 0x9, LOWREG | L_16 | B30, 0x6, E}}}, 1259ed0d50c3Schristos {O (O_BRAL, SL), AV_H8SX, 0, "bra", {{RS32, E}}, {{0x5, 0x9, RS32 | B30, 0x7, E}}}, 1260ed0d50c3Schristos 1261ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND, OP3PCREL8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, 1262ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST, OP3PCREL8}}, {{0x7, 0xE, DSTABS8LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, 1263ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, 1264ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x4, B30 | IMM3, OP3PCREL8, DATA, E}}}, 1265ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND, OP3PCREL8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, 1266ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST, OP3PCREL8}}, {{0x7, 0xE, DSTABS8LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, 1267ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, 1268ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x4, B31 | IMM3, OP3PCREL8, DATA, E}}}, 1269ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1270ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1271ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1272ed0d50c3Schristos {O (O_BRABC, SB), AV_H8SX, 0, "bra/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1273ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1274ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1275ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1276ed0d50c3Schristos {O (O_BRABS, SB), AV_H8SX, 0, "bra/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0x8, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1277ed0d50c3Schristos 1278ed0d50c3Schristos {O (O_BRAS, SB), AV_H8SX, 0, "bra/s", {{PCREL8, E}}, {{0x4, 0x0, PCREL8, DATA | B01, E}}}, 1279ed0d50c3Schristos 1280ed0d50c3Schristos {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1281ed0d50c3Schristos {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1282ed0d50c3Schristos {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1283ed0d50c3Schristos {O (O_BSRBC, SB), AV_H8SX, 0, "bsr/bc", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B30 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1284ed0d50c3Schristos {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, RDIND, OP3PCREL16}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1285ed0d50c3Schristos {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS8DST, OP3PCREL16}}, {{0x7, 0xE, DSTABS8LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1286ed0d50c3Schristos {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS16DST, OP3PCREL16}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1287ed0d50c3Schristos {O (O_BSRBS, SB), AV_H8SX, 0, "bsr/bs", {{IMM3, ABS32DST, OP3PCREL16}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0x5, 0xC, B31 | IMM3, 0x0, OP3PCREL16, DATA3, E}}}, 1288ed0d50c3Schristos 1289ed0d50c3Schristos BRANCH (O (O_BRA, SB), "bt", 0x0), 1290ed0d50c3Schristos BRANCH (O (O_BRN, SB), "brn", 0x1), 1291ed0d50c3Schristos BRANCH (O (O_BRN, SB), "bf", 0x1), 1292ed0d50c3Schristos BRANCH (O (O_BHI, SB), "bhi", 0x2), 1293ed0d50c3Schristos BRANCH (O (O_BLS, SB), "bls", 0x3), 1294ed0d50c3Schristos BRANCH (O (O_BCC, SB), "bcc", 0x4), 1295ed0d50c3Schristos BRANCH (O (O_BCC, SB), "bhs", 0x4), 1296ed0d50c3Schristos BRANCH (O (O_BCS, SB), "bcs", 0x5), 1297ed0d50c3Schristos BRANCH (O (O_BCS, SB), "blo", 0x5), 1298ed0d50c3Schristos BRANCH (O (O_BNE, SB), "bne", 0x6), 1299ed0d50c3Schristos BRANCH (O (O_BEQ, SB), "beq", 0x7), 1300ed0d50c3Schristos BRANCH (O (O_BVC, SB), "bvc", 0x8), 1301ed0d50c3Schristos BRANCH (O (O_BVS, SB), "bvs", 0x9), 1302ed0d50c3Schristos BRANCH (O (O_BPL, SB), "bpl", 0xA), 1303ed0d50c3Schristos BRANCH (O (O_BMI, SB), "bmi", 0xB), 1304ed0d50c3Schristos BRANCH (O (O_BGE, SB), "bge", 0xC), 1305ed0d50c3Schristos BRANCH (O (O_BLT, SB), "blt", 0xD), 1306ed0d50c3Schristos BRANCH (O (O_BGT, SB), "bgt", 0xE), 1307ed0d50c3Schristos BRANCH (O (O_BLE, SB), "ble", 0xF), 1308ed0d50c3Schristos 1309ed0d50c3Schristos EBITOP (O (O_BCLR, SB), IMM3 | B30, "bclr", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0), 1310ed0d50c3Schristos BITOP (O (O_BAND, SB), IMM3 | B30, "band", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1311ed0d50c3Schristos BITOP (O (O_BIAND, SB), IMM3 | B31, "biand", 0x7, 0x6, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1312ed0d50c3Schristos BITOP (O (O_BILD, SB), IMM3 | B31, "bild", 0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1313ed0d50c3Schristos BITOP (O (O_BIOR, SB), IMM3 | B31, "bior", 0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1314ed0d50c3Schristos BITOP (O (O_BIST, SB), IMM3 | B31, "bist", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0), 1315ed0d50c3Schristos BITOP (O (O_BIXOR, SB), IMM3 | B31, "bixor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1316ed0d50c3Schristos BITOP (O (O_BLD, SB), IMM3 | B30, "bld", 0x7, 0x7, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1317ed0d50c3Schristos EBITOP (O (O_BNOT, SB), IMM3 | B30, "bnot", 0x6, 0x1, 0x7, 0xD, 0x7, 0xF, 0x8, 0), 1318ed0d50c3Schristos BITOP (O (O_BOR, SB), IMM3 | B30, "bor", 0x7, 0x4, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1319ed0d50c3Schristos EBITOP (O (O_BSET, SB), IMM3 | B30, "bset", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0), 1320ed0d50c3Schristos BITOP (O (O_BST, SB), IMM3 | B30, "bst", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0), 1321ed0d50c3Schristos EBITOP (O (O_BTST, SB), IMM3 | B30, "btst", 0x6, 0x3, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1322ed0d50c3Schristos BITOP (O (O_BXOR, SB), IMM3 | B30, "bxor", 0x7, 0x5, 0x7, 0xC, 0x7, 0xE, 0x0, 0), 1323ed0d50c3Schristos 1324ed0d50c3Schristos EBITOP_B (O (O_BCLREQ, SB), IMM3 | B30, "bclr/eq", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), 1325ed0d50c3Schristos EBITOP_B (O (O_BCLRNE, SB), IMM3 | B30, "bclr/ne", 0x6, 0x2, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6), 1326ed0d50c3Schristos EBITOP_B (O (O_BSETEQ, SB), IMM3 | B30, "bset/eq", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), 1327ed0d50c3Schristos EBITOP_B (O (O_BSETNE, SB), IMM3 | B30, "bset/ne", 0x6, 0x0, 0x7, 0xD, 0x7, 0xF, 0x8, 0x6), 1328ed0d50c3Schristos BITOP_B (O (O_BISTZ, SB), IMM3 | B31, "bistz", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), 1329ed0d50c3Schristos BITOP_B (O (O_BSTZ, SB), IMM3 | B30, "bstz", 0x6, 0x7, 0x7, 0xD, 0x7, 0xF, 0x8, 0x7), 1330ed0d50c3Schristos 1331ed0d50c3Schristos {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, RDIND, R3_8}}, {{0x7, 0xC, B30 | RDIND, 0x0, 0xF, R3_8, IMM8LIST, E}}}, 1332ed0d50c3Schristos {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS8DST, R3_8}}, {{0x7, 0xE, DSTABS8LIST, 0xF, R3_8, IMM8LIST, E}}}, 1333ed0d50c3Schristos {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS16DST, R3_8}}, {{0x6, 0xA, 0x1, 0x0, DSTABS16LIST, 0xF, R3_8, IMM8LIST, E}}}, 1334ed0d50c3Schristos {O (O_BFLD, SB), AV_H8SX, 0, "bfld", {{IMM8, ABS32DST, R3_8}}, {{0x6, 0xA, 0x3, 0x0, DSTABS32LIST, 0xF, R3_8, IMM8LIST, E}}}, 1335ed0d50c3Schristos 1336ed0d50c3Schristos /* Because the assembler treats SRC, DST and OP3 as ordinals, 1337ed0d50c3Schristos I must designate the second argument, an immediate value, as DST. 1338ed0d50c3Schristos May God have mercy on my soul. */ 1339ed0d50c3Schristos {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, R3_IND}}, {{0x7, 0xD, B30 | R3_IND, 0x0, 0xF, RS8, DST | IMM8LIST, E}}}, 1340ed0d50c3Schristos {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS8OP3}}, {{0x7, 0xF, OP3ABS8LIST, 0xF, RS8, DST | IMM8LIST, E}}}, 1341ed0d50c3Schristos {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS16OP3}}, {{0x6, 0xA, 0x1, 0x8, OP3ABS16LIST, 0xF, RS8, DST | IMM8LIST, E}}}, 1342ed0d50c3Schristos {O (O_BFST, SB), AV_H8SX, 0, "bfst", {{RS8, DST | IMM8, ABS32OP3}}, {{0x6, 0xA, 0x3, 0x8, OP3ABS32LIST, 0xF, RS8, DST | IMM8LIST, E}}}, 1343ed0d50c3Schristos 1344ed0d50c3Schristos {O (O_BSR, SB), AV_H8, 6, "bsr", {{PCREL8, E}}, {{0x5, 0x5, PCREL8, DATA, E}}}, 1345ed0d50c3Schristos {O (O_BSR, SB), AV_H8, 6, "bsr", {{PCREL16, E}}, {{0x5, 0xC, 0x0, 0x0, PCREL16, DATA3, E}}}, 1346ed0d50c3Schristos {O (O_BSR, SB), AV_H8SX, 0, "bsr", {{LOWREG | L_8, E}}, {{0x5, 0xd, B30 | LOWREG | L_8, 0x5, E}}}, 1347ed0d50c3Schristos {O (O_BSR, SW), AV_H8SX, 0, "bsr", {{LOWREG | L_16, E}}, {{0x5, 0xd, B30 | LOWREG | L_16, 0x6, E}}}, 1348ed0d50c3Schristos {O (O_BSR, SL), AV_H8SX, 0, "bsr", {{OR32, E}}, {{0x5, 0xd, B30 | OR32, 0x7, E}}}, 1349ed0d50c3Schristos 1350ed0d50c3Schristos {O (O_CMP, SB), AV_H8, 2, "cmp.b", {{IMM8, RD8, E}}, {{0xa, RD8, IMM8LIST, E}}}, 1351ed0d50c3Schristos EXPAND_TWOOP_B (O (O_CMP, SB), "cmp.b", 0xa, 0x1, 0xc, 0x2, B00), 1352ed0d50c3Schristos 1353ed0d50c3Schristos {O (O_CMP, SW), AV_H8, 2, "cmp.w", {{RS16, RD16, E}}, {{0x1, 0xd, RS16, RD16, E}}}, 1354ed0d50c3Schristos {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RD16, E}}, {{0x1, 0xf, B30 | IMM3NZ, RD16, E}}}, 1355ed0d50c3Schristos {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, 1356ed0d50c3Schristos {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, 1357ed0d50c3Schristos {O (O_CMP, SW), AV_H8SX, 0, "cmp.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xf, B30 | IMM3NZ, IGNORE, E}}}, 1358ed0d50c3Schristos EXPAND_TWOOP_W (O (O_CMP, SW), "cmp.w", 0x1, 0xd, 0x2), 1359ed0d50c3Schristos 1360ed0d50c3Schristos {O (O_CMP, SL), AV_H8H, 6, "cmp.l", {{RS32, RD32, E}}, {{0x1, 0xf, B31 | RS32, B30 | RD32, E}}}, 1361ed0d50c3Schristos {O (O_CMP, SL), AV_H8SX, 0, "cmp.l", {{IMM3NZ_NS, RD32, E}}, {{0x1, 0xf, B31 | IMM3NZ, B31 | RD32, E}}}, 1362ed0d50c3Schristos EXPAND_TWOOP_L (O (O_CMP, SL), "cmp.l", 0x2), 1363ed0d50c3Schristos 1364ed0d50c3Schristos UNOP (O (O_DAA, SB), "daa", 0x0, 0xF), 1365ed0d50c3Schristos UNOP (O (O_DAS, SB), "das", 0x1, 0xF), 1366ed0d50c3Schristos UNOP (O (O_DEC, SB), "dec.b", 0x1, 0xA), 1367ed0d50c3Schristos 1368ed0d50c3Schristos {O (O_DEC, SW), AV_H8H, 2, "dec.w", {{DBIT, RD16, E}}, {{0x1, 0xB, 0x5 | DBIT, RD16, E}}}, 1369ed0d50c3Schristos {O (O_DEC, SL), AV_H8H, 2, "dec.l", {{DBIT, RD32, E}}, {{0x1, 0xB, 0x7 | DBIT, RD32 | B30, E}}}, 1370ed0d50c3Schristos 1371ed0d50c3Schristos {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x1, IMM4, RD16, E}}}, 1372ed0d50c3Schristos {O (O_DIVS, SW), AV_H8SX, 0, "divs.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x1, RS16, RD16, E}}}, 1373ed0d50c3Schristos {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0x6, 0x5, 0x3, IMM4, B30 | RD32, E}}}, 1374ed0d50c3Schristos {O (O_DIVS, SL), AV_H8SX, 0, "divs.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0x2, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}}, 1375ed0d50c3Schristos 1376ed0d50c3Schristos {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x1, IMM4, RD16, E}}}, 1377ed0d50c3Schristos {O (O_DIVU, SW), AV_H8SX, 0, "divu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x1, RS16, RD16, E}}}, 1378ed0d50c3Schristos {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xd, 0xe, 0x5, 0x3, IMM4, B30 | RD32, E}}}, 1379ed0d50c3Schristos {O (O_DIVU, SL), AV_H8SX, 0, "divu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xd, 0xa, 0x5, 0x3, B30 | RS32, B30 | RD32, E}}}, 1380ed0d50c3Schristos 1381ed0d50c3Schristos {O (O_DIVXS, SB), AV_H8SX, 0, "divxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x1, IMM4, RD16, E}}}, 1382ed0d50c3Schristos {O (O_DIVXS, SB), AV_H8H, 13, "divxs.b", {{RS8, RD16, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x1, RS8, RD16, E}}}, 1383ed0d50c3Schristos {O (O_DIVXS, SW), AV_H8SX, 0, "divxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0x4, 0x5, 0x3, IMM4, B30 | RD32, E}}}, 1384ed0d50c3Schristos {O (O_DIVXS, SW), AV_H8H, 21, "divxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xD, 0x0, 0x5, 0x3, RS16, B30 | RD32, E}}}, 1385ed0d50c3Schristos 1386ed0d50c3Schristos {O (O_DIVXU, SB), AV_H8SX, 0, "divxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x1, IMM4, RD16, E}}}, 1387ed0d50c3Schristos {O (O_DIVXU, SB), AV_H8, 13, "divxu.b", {{RS8, RD16, E}}, {{0x5, 0x1, RS8, RD16, E}}}, 1388ed0d50c3Schristos {O (O_DIVXU, SW), AV_H8SX, 0, "divxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xD, 0xC, 0x5, 0x3, IMM4, B30 | RD32, E}}}, 1389ed0d50c3Schristos {O (O_DIVXU, SW), AV_H8H, 21, "divxu.w", {{RS16, RD32, E}}, {{0x5, 0x3, RS16, B30 | RD32, E}}}, 1390ed0d50c3Schristos 1391ed0d50c3Schristos {O (O_EEPMOV, SB), AV_H8, 4, "eepmov.b", {{E}}, {{0x7, 0xB, 0x5, 0xC, 0x5, 0x9, 0x8, 0xF, E}}}, 1392ed0d50c3Schristos {O (O_EEPMOV, SW), AV_H8H, 4, "eepmov.w", {{E}}, {{0x7, 0xB, 0xD, 0x4, 0x5, 0x9, 0x8, 0xF, E}}}, 1393ed0d50c3Schristos 1394ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_EXTS, SW), "exts.w", PREFIX_015, 0x1, 0x7, 0xd), 1395ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_EXTS, SL), "exts.l", PREFIX_010, 0x1, 0x7, 0xf), 1396*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_EXTS, SL), AV_H8SX, "exts.l", CONST_2, PREFIX_010, 0x1, 0x7, 0xe, 0), 1397ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_EXTU, SW), "extu.w", PREFIX_015, 0x1, 0x7, 0x5), 1398ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_EXTU, SL), "extu.l", PREFIX_010, 0x1, 0x7, 0x7), 1399*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_EXTU, SL), AV_H8SX, "extu.l", CONST_2, PREFIX_010, 0x1, 0x7, 0x6, 0), 1400ed0d50c3Schristos 1401ed0d50c3Schristos UNOP (O (O_INC, SB), "inc", 0x0, 0xA), 1402ed0d50c3Schristos 1403ed0d50c3Schristos {O (O_INC, SW), AV_H8H, 2, "inc.w", {{DBIT, RD16, E}}, {{0x0, 0xB, 0x5 | DBIT, RD16, E}}}, 1404ed0d50c3Schristos {O (O_INC, SL), AV_H8H, 2, "inc.l", {{DBIT, RD32, E}}, {{0x0, 0xB, 0x7 | DBIT, RD32 | B30, E}}}, 1405ed0d50c3Schristos 1406ed0d50c3Schristos {O (O_JMP, SN), AV_H8, 4, "jmp", {{RSIND, E}}, {{0x5, 0x9, B30 | RSIND, 0x0, E}}}, 1407ed0d50c3Schristos {O (O_JMP, SN), AV_H8, 6, "jmp", {{ABSJMP | L_24, E}}, {{0x5, 0xA, SRC | ABSJMP | L_24, DATA5, E}}}, 1408ed0d50c3Schristos 1409ed0d50c3Schristos {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{ABSJMP | L_32, E}}, {{0x5, 0x9, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}}, 1410ed0d50c3Schristos 1411ed0d50c3Schristos {O (O_JMP, SN), AV_H8, 8, "jmp", {{MEMIND, E}}, {{0x5, 0xB, SRC | MEMIND, DATA, E}}}, 1412ed0d50c3Schristos {O (O_JMP, SN), AV_H8SX, 0, "jmp", {{VECIND, E}}, {{0x5, 0x9, B31 | SRC | VECIND, DATA, E}}}, 1413ed0d50c3Schristos 1414ed0d50c3Schristos {O (O_JSR, SN), AV_H8, 6, "jsr", {{RSIND, E}}, {{0x5, 0xD, B30 | RSIND, 0x0, E}}}, 1415ed0d50c3Schristos {O (O_JSR, SN), AV_H8, 8, "jsr", {{ABSJMP | L_24, E}}, {{0x5, 0xE, SRC | ABSJMP | L_24, DATA5, E}}}, 1416ed0d50c3Schristos 1417ed0d50c3Schristos {O (O_JSR, SN), AV_H8SX, 0, "jsr", {{ABSJMP | L_32, E}}, {{0x5, 0xD, 0x0, 0x8, ABSJMP | L_32, DATA7, E}}}, 1418ed0d50c3Schristos 1419ed0d50c3Schristos {O (O_JSR, SN), AV_H8, 8, "jsr", {{MEMIND, E}}, {{0x5, 0xF, SRC | MEMIND, DATA, E}}}, 1420ed0d50c3Schristos {O (O_JSR, SN), AV_H8SX, 8, "jsr", {{VECIND, E}}, {{0x5, 0xD, SRC | VECIND, DATA, E}}}, 1421ed0d50c3Schristos 1422ed0d50c3Schristos {O (O_LDC, SB), AV_H8, 2, "ldc", {{IMM8, CCR | DST, E}}, {{ 0x0, 0x7, IMM8LIST, E}}}, 1423ed0d50c3Schristos {O (O_LDC, SB), AV_H8S, 2, "ldc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x7, IMM8LIST, E}}}, 1424ed0d50c3Schristos {O (O_LDC, SB), AV_H8, 2, "ldc", {{RS8, CCR | DST, E}}, {{0x0, 0x3, B30 | CCR | DST, RS8, E}}}, 1425ed0d50c3Schristos {O (O_LDC, SB), AV_H8S, 2, "ldc", {{RS8, EXR | DST, E}}, {{0x0, 0x3, B30 | EXR | DST, RS8, E}}}, 1426ed0d50c3Schristos {O (O_LDC, SW), AV_H8H, 2, "ldc", {{RSIND, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND, IGNORE, E}}}, 1427ed0d50c3Schristos {O (O_LDC, SW), AV_H8S, 2, "ldc", {{RSIND, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0x9, B30 | RSIND, IGNORE, E}}}, 1428ed0d50c3Schristos {O (O_LDC, SW), AV_H8H, 2, "ldc", {{RSPOSTINC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}}, 1429ed0d50c3Schristos {O (O_LDC, SW), AV_H8S, 2, "ldc", {{RSPOSTINC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xD, B30 | RSPOSTINC, IGNORE, E}}}, 1430ed0d50c3Schristos {O (O_LDC, SW), AV_H8H, 2, "ldc", {{DISP16SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG, IGNORE, SRC | DISP16LIST, E}}}, 1431ed0d50c3Schristos {O (O_LDC, SW), AV_H8S, 2, "ldc", {{DISP16SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xF, B30 | DISPREG, IGNORE, SRC | DISP16LIST, E}}}, 1432ed0d50c3Schristos {O (O_LDC, SW), AV_H8H, 2, "ldc", {{DISP32SRC, CCR | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}}, 1433ed0d50c3Schristos {O (O_LDC, SW), AV_H8S, 2, "ldc", {{DISP32SRC, EXR | DST, E}}, {{PREFIXLDC, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xB, 0x2, IGNORE, SRC | DISP32LIST, E}}}, 1434ed0d50c3Schristos {O (O_LDC, SW), AV_H8H, 2, "ldc", {{ABS16SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}}, 1435ed0d50c3Schristos {O (O_LDC, SW), AV_H8S, 2, "ldc", {{ABS16SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x0, IGNORE, SRC | ABS16LIST, E}}}, 1436ed0d50c3Schristos {O (O_LDC, SW), AV_H8H, 2, "ldc", {{ABS32SRC, CCR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}}, 1437ed0d50c3Schristos {O (O_LDC, SW), AV_H8S, 2, "ldc", {{ABS32SRC, EXR | DST, E}}, {{PREFIXLDC, 0x6, 0xB, 0x2, IGNORE, SRC | MEMRELAX | ABS32LIST, E}}}, 1438ed0d50c3Schristos 1439ed0d50c3Schristos {O (O_LDC, SL), AV_H8SX, 0, "ldc", {{RS32, B30 | VBR_SBR | DST, E}}, {{0x0, 0x3, B30 | VBR_SBR | DST, RS32, E}}}, 1440ed0d50c3Schristos 1441ed0d50c3Schristos 1442ed0d50c3Schristos {O (O_MOV, SB), AV_H8, 2, "mov.b", {{IMM8, RD8, E}}, {{0xF, RD8, IMM8LIST, E}}}, 1443ed0d50c3Schristos {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xa, 0xd, IMM4, DSTABS16LIST, E}}}, 1444ed0d50c3Schristos {O (O_MOV, SB), AV_H8SX, 0, "mov.b", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xa, 0xf, IMM4, DSTABS32LIST, E}}}, 1445ed0d50c3Schristos MOVFROM_IMM8 (O (O_MOV, SB), PREFIX_017D, "mov.b", IMM8), 1446ed0d50c3Schristos 1447ed0d50c3Schristos {O (O_MOV, SB), AV_H8, 2, "mov.b", {{RS8, RD8, E}}, {{0x0, 0xC, RS8, RD8, E}}}, 1448ed0d50c3Schristos MOVFROM_REG_BW (O (O_MOV, SB), "mov.b", RS8, PREFIX_017, 8, 10, 12, 14, MEMRELAX), 1449ed0d50c3Schristos {O (O_MOV, SB), AV_H8, 4, "mov.b", {{RS8, ABS8DST, E}}, {{0x3, RS8, DSTABS8LIST, E}}}, 1450ed0d50c3Schristos MOVTO_REG_BW (O (O_MOV, SB), "mov.b", RD8, PREFIX_017, 8, 10, 12, 14, MEMRELAX), 1451ed0d50c3Schristos {O (O_MOV, SB), AV_H8, 4, "mov.b", {{ABS8SRC, RD8, E}}, {{0x2, RD8, ABS8LIST, E}}}, 1452ed0d50c3Schristos 1453ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSIND, FROM_IND), 1454ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTINC, FROM_POSTINC), 1455ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPOSTDEC, FROM_POSTDEC), 1456ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREINC, FROM_PREINC), 1457ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", RSPREDEC, FROM_PREDEC), 1458ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP2SRC, FROM_DISP2), 1459ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP16SRC, FROM_DISP16, DISP16LIST), 1460ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", DISP32SRC, FROM_DISP32, DISP32LIST), 1461ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB16, FROM_DISP16B, DISP16LIST), 1462ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW16, FROM_DISP16W, DISP16LIST), 1463ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL16, FROM_DISP16L, DISP16LIST), 1464ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXB32, FROM_DISP32B, DISP32LIST), 1465ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXW32, FROM_DISP32W, DISP32LIST), 1466ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", INDEXL32, FROM_DISP32L, DISP32LIST), 1467ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS16SRC, FROM_ABS16, ABS16LIST), 1468ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SB), PREFIX_0178, "mov.b", ABS32SRC, FROM_ABS32, ABS32LIST), 1469ed0d50c3Schristos 1470ed0d50c3Schristos {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM3NZ_NS, RD16, E}}, {{0x0, 0xf, B30 | IMM3NZ, RD16, E}}}, 1471ed0d50c3Schristos {O (O_MOV, SW), AV_H8, 4, "mov.w", {{IMM16, RD16, E}}, {{0x7, 0x9, 0x0, RD16, IMM16LIST, E}}}, 1472ed0d50c3Schristos {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS, ABS16DST, E}}, {{0x6, 0xb, 0xd, IMM4, DSTABS16LIST, E}}}, 1473ed0d50c3Schristos {O (O_MOV, SW), AV_H8SX, 0, "mov.w", {{IMM4_NS, ABS32DST, E}}, {{0x6, 0xb, 0xf, IMM4, DSTABS32LIST, E}}}, 1474ed0d50c3Schristos 1475ed0d50c3Schristos MOVFROM_IMM8 (O (O_MOV, SW), PREFIX_015D, "mov.w", IMM8U_NS), 1476ed0d50c3Schristos MOVFROM_IMM (O (O_MOV, SW), PREFIX_7974, "mov.w", IMM16, IMM16LIST), 1477ed0d50c3Schristos 1478ed0d50c3Schristos {O (O_MOV, SW), AV_H8, 2, "mov.w", {{RS16, RD16, E}}, {{0x0, 0xD, RS16, RD16, E}}}, 1479ed0d50c3Schristos MOVFROM_REG_BW (O (O_MOV, SW), "mov.w", RS16, PREFIX_015, 9, 11, 13, 15, 0), 1480ed0d50c3Schristos MOVTO_REG_BW (O (O_MOV, SW), "mov.w", RD16, PREFIX_015, 9, 11, 13, 15, 0), 1481ed0d50c3Schristos 1482ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSIND, FROM_IND), 1483ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTINC, FROM_POSTINC), 1484ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPOSTDEC, FROM_POSTDEC), 1485ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREINC, FROM_PREINC), 1486ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", RSPREDEC, FROM_PREDEC), 1487ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP2SRC, FROM_DISP2), 1488ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP16SRC, FROM_DISP16, DISP16LIST), 1489ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", DISP32SRC, FROM_DISP32, DISP32LIST), 1490ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB16, FROM_DISP16B, DISP16LIST), 1491ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW16, FROM_DISP16W, DISP16LIST), 1492ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL16, FROM_DISP16L, DISP16LIST), 1493ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXB32, FROM_DISP32B, DISP32LIST), 1494ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXW32, FROM_DISP32W, DISP32LIST), 1495ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", INDEXL32, FROM_DISP32L, DISP32LIST), 1496ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS16SRC, FROM_ABS16, ABS16LIST), 1497ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SW), PREFIX_0158, "mov.w", ABS32SRC, FROM_ABS32, ABS32LIST), 1498ed0d50c3Schristos 1499ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM3NZ_NS, RD32, E}}, {{0x0, 0xf, B31 | IMM3NZ, B31 | RD32, E}}}, 1500ed0d50c3Schristos 1501ed0d50c3Schristos MOVFROM_IMM8 (O (O_MOV, SL), PREFIX_010D, "mov.l", IMM8U_NS), 1502ed0d50c3Schristos MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A7C, "mov.l", IMM16U_NS, IMM16ULIST), 1503ed0d50c3Schristos 1504ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{IMM16U_NS, RD32, E}}, {{0x7, 0xa, 0x0, B31 | RD32, IMM16ULIST, E}}}, 1505ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 4, "mov.l", {{IMM32, RD32, E}}, {{0x7, 0xa, 0x0, B30 | RD32, IMM32LIST, E}}}, 1506ed0d50c3Schristos 1507ed0d50c3Schristos MOVFROM_IMM (O (O_MOV, SL), PREFIX_7A74, "mov.l", IMM32, IMM32LIST), 1508ed0d50c3Schristos 1509ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 2, "mov.l", {{RS32, RD32, E}}, {{0x0, 0xf, B31 | RS32, B30 | RD32, E}}}, 1510ed0d50c3Schristos 1511ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, RDIND, E}}, {{PREFIX_0100, 0x6, 0x9, B31 | RDIND, B30 | RS32, E}}}, 1512ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTINC, E}}, {{PREFIX_0103, 0x6, 0xd, B31 | RDPOSTINC, RS32, E}}}, 1513ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0101, 0x6, 0xd, B31 | RDPOSTDEC, RS32, E}}}, 1514ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, RDPREINC, E}}, {{PREFIX_0102, 0x6, 0xd, B31 | RDPREINC, RS32, E}}}, 1515ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, RDPREDEC, E}}, {{PREFIX_0100, 0x6, 0xd, B31 | RDPREDEC, RS32, E}}}, 1516ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, DISP2DST, E}}, {{PREFIX_010, B30 | B20 | DISP2DST, 0x6, 0x9, B31 | DSTDISPREG, RS32, E}}}, 1517ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP16DST, E}}, {{PREFIX_0100, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, 1518ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{RS32, DISP32DST, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, 1519ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100, 0x7, 0x8, B31 | DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTDISP32LIST, E}}}, 1520ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, DISP32DST, E}}, {{PREFIX_0100, 0x7, 0x8, DSTDISPREG, 0x0, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTDISP32LIST, E}}}, 1521ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB16D, E}}, {{PREFIX_0101, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, 1522ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW16D, E}}, {{PREFIX_0102, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, 1523ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL16D, E}}, {{PREFIX_0103, 0x6, 0xf, B31 | DSTDISPREG, RS32, DSTDISP16LIST, E}}}, 1524ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXB32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x1, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, 1525ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXW32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x2, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, 1526ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RS32, INDEXL32D, E}}, {{0x7, 0x8, B31 | DSTDISPREG, 0x3, 0x6, 0xb, 0xa, RS32, DSTDISP32LIST, E}}}, 1527ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, ABS16DST, E}}, {{PREFIX_0100, 0x6, 0xb, 0x8, RS32, DSTABS16LIST, E}}}, 1528ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RS32, ABS32DST, E}}, {{PREFIX_0100, 0x6, 0xb, 0xa, RS32, MEMRELAX | DSTABS32LIST, E}}}, 1529ed0d50c3Schristos 1530ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 4, "mov.l", {{RSIND, RD32, E}}, {{PREFIX_0100, 0x6, 0x9, B30 | RSIND, RD32, E}}}, 1531ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{RSPOSTINC, RD32, E}}, {{PREFIX_0100, 0x6, 0xd, B30 | RSPOSTINC, RD32, E}}}, 1532ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0102, 0x6, 0xd, B30 | RSPOSTDEC, RD32, E}}}, 1533ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREINC, RD32, E}}, {{PREFIX_0101, 0x6, 0xd, B30 | RSPREINC, RD32, E}}}, 1534ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{RSPREDEC, RD32, E}}, {{PREFIX_0103, 0x6, 0xd, B30 | RSPREDEC, RD32, E}}}, 1535ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{DISP2SRC, RD32, E}}, {{PREFIX_010, B30 | B20 | DISP2SRC, 0x6, 0x9, B30 | DISPREG, RD32, E}}}, 1536ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP16SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, 1537ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, 1538ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{DISP32SRC, RD32, E}}, {{PREFIX_0100, 0x7, 0x8, B30 | DISPREG, 0x0, 0x6, 0xb, 0x2, RD32, MEMRELAX | SRC | DISP32LIST, E}}}, 1539ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB16, RD32, E}}, {{PREFIX_0101, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, 1540ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW16, RD32, E}}, {{PREFIX_0102, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, 1541ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL16, RD32, E}}, {{PREFIX_0103, 0x6, 0xf, B30 | DISPREG, RD32, SRC | DISP16LIST, E}}}, 1542ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXB32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x1, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, 1543ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXW32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x2, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, 1544ed0d50c3Schristos {O (O_MOV, SL), AV_H8SX, 0, "mov.l", {{INDEXL32, RD32, E}}, {{0x7, 0x8, B31 | DISPREG, 0x3, 0x6, 0xb, 0x2, RD32, SRC | DISP32LIST, E}}}, 1545ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{ABS16SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xb, 0x0, RD32, SRC | ABS16LIST, E}}}, 1546ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "mov.l", {{ABS32SRC, RD32, E}}, {{PREFIX_0100, 0x6, 0xb, 0x2, RD32, SRC | MEMRELAX | ABS32LIST, E}}}, 1547ed0d50c3Schristos 1548ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSIND, FROM_IND), 1549ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTINC, FROM_POSTINC), 1550ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPOSTDEC, FROM_POSTDEC), 1551ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREINC, FROM_PREINC), 1552ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", RSPREDEC, FROM_PREDEC), 1553ed0d50c3Schristos MOVFROM_STD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP2SRC, FROM_DISP2), 1554ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP16SRC, FROM_DISP16, DISP16LIST), 1555ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", DISP32SRC, FROM_DISP32, DISP32LIST), 1556ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB16, FROM_DISP16B, DISP16LIST), 1557ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW16, FROM_DISP16W, DISP16LIST), 1558ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL16, FROM_DISP16L, DISP16LIST), 1559ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXB32, FROM_DISP32B, DISP32LIST), 1560ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXW32, FROM_DISP32W, DISP32LIST), 1561ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", INDEXL32, FROM_DISP32L, DISP32LIST), 1562ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS16SRC, FROM_ABS16, ABS16LIST), 1563ed0d50c3Schristos MOVFROM_AD (O (O_MOV, SL), PREFIX_0108, "mov.l", ABS32SRC, FROM_ABS32, ABS32LIST), 1564ed0d50c3Schristos 1565ed0d50c3Schristos #define DO_MOVA1(TYPE, OP0, OP1) \ 1566ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ 1567ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ 1568ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ 1569ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ 1570ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ 1571ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, MEMRELAX | DISP16LIST, E}}}, \ 1572ed0d50c3Schristos \ 1573ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ 1574ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ 1575ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ 1576ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ 1577ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, MEMRELAX | DISP32LIST, E}}}, \ 1578ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, MEMRELAX | DISP32LIST, E}}} 1579ed0d50c3Schristos 1580ed0d50c3Schristos #define DO_MOVA2(TYPE, OP0, OP1, OP2) \ 1581ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ 1582ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ 1583ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ 1584ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ 1585ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ 1586ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B30 | R3_32, OP2, MEMRELAX | DISP16LIST, E}}}, \ 1587ed0d50c3Schristos \ 1588ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0x8, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ 1589ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0x9, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ 1590ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xA, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ 1591ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xB, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ 1592ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, TYPE, R3_32}}, {{PREFIX_017F, OP0, OP1, 0xC, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}}, \ 1593ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, TYPE, R3_32}}, {{PREFIX_015F, OP0, OP1, 0xD, B31 | R3_32, OP2, MEMRELAX | DISP32LIST, E}}} 1594ed0d50c3Schristos 1595ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, E}}, {{0x7, 0xA, 0x8, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, 1596ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, E}}, {{0x7, 0xA, 0x9, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, 1597ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xA, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, 1598ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xB, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, 1599ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, E}}, {{0x7, 0xA, 0xC, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, 1600ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, E}}, {{0x7, 0xA, 0xD, B31 | DISPREG, MEMRELAX | DISP16LIST, E}}}, 1601ed0d50c3Schristos 1602ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, E}}, {{0x7, 0xA, 0x8, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, 1603ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, E}}, {{0x7, 0xA, 0x9, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, 1604ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xA, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, 1605ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xB, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, 1606ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, E}}, {{0x7, 0xA, 0xC, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, 1607ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, E}}, {{0x7, 0xA, 0xD, B30 | DISPREG, MEMRELAX | DISP32LIST, E}}}, 1608ed0d50c3Schristos 1609ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0x8, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, 1610ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, 1611ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xA, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, 1612ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, 1613ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB16, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xC, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, 1614ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW16, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B31 | R3_32, MEMRELAX | DISP16LIST, E}}}, 1615ed0d50c3Schristos 1616ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0x8, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, 1617ed0d50c3Schristos {O (O_MOVAB, SL), AV_H8SX, 0, "mova/b.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0x9, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, 1618ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xA, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, 1619ed0d50c3Schristos {O (O_MOVAW, SL), AV_H8SX, 0, "mova/w.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xB, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, 1620ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXB32, RD8, R3_32}}, {{0x7, 0x8, RD8, 0x8, 0x7, 0xA, 0xC, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, 1621ed0d50c3Schristos {O (O_MOVAL, SL), AV_H8SX, 0, "mova/l.l", {{INDEXW32, RD16, R3_32}}, {{0x7, 0x8, RD16, 0x9, 0x7, 0xA, 0xD, B30 | R3_32, MEMRELAX | DISP32LIST, E}}}, 1622ed0d50c3Schristos 1623ed0d50c3Schristos DO_MOVA1 (RDIND, 0x0, B30 | RDIND), 1624ed0d50c3Schristos DO_MOVA1 (RDPOSTINC, 0x8, B30 | RDPOSTINC), 1625ed0d50c3Schristos DO_MOVA1 (RDPOSTDEC, 0xA, B30 | RDPOSTDEC), 1626ed0d50c3Schristos DO_MOVA1 (RDPREINC, 0x9, B30 | RDPREINC), 1627ed0d50c3Schristos DO_MOVA1 (RDPREDEC, 0xB, B30 | RDPREDEC), 1628ed0d50c3Schristos DO_MOVA1 (DISP2DST, B30 | B20 | DISP2DST, B30 | DSTDISPREG), 1629ed0d50c3Schristos DO_MOVA2 (DISP16DST, 0xC, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), 1630ed0d50c3Schristos DO_MOVA2 (DISP32DST, 0xC, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), 1631ed0d50c3Schristos DO_MOVA2 (INDEXB16D, 0xD, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), 1632ed0d50c3Schristos DO_MOVA2 (INDEXW16D, 0xE, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), 1633ed0d50c3Schristos DO_MOVA2 (INDEXL16D, 0xF, B30 | DSTDISPREG, MEMRELAX | DSTDISP16LIST), 1634ed0d50c3Schristos DO_MOVA2 (INDEXB32D, 0xD, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), 1635ed0d50c3Schristos DO_MOVA2 (INDEXW32D, 0xE, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), 1636ed0d50c3Schristos DO_MOVA2 (INDEXL32D, 0xF, B31 | DSTDISPREG, MEMRELAX | DSTDISP32LIST), 1637ed0d50c3Schristos DO_MOVA2 (ABS16DST, 0x4, 0x0, MEMRELAX | DSTABS16LIST), 1638ed0d50c3Schristos DO_MOVA2 (ABS32DST, 0x4, 0x8, MEMRELAX | DSTABS32LIST), 1639ed0d50c3Schristos 1640ed0d50c3Schristos {O (O_MOV, SB), AV_H8, 10, "movfpe", {{ABS16SRC, RD8, E}}, {{0x6, 0xA, 0x4, RD8, ABS16SRC, DATA3, E}}}, 1641ed0d50c3Schristos {O (O_MOV, SB), AV_H8, 10, "movtpe", {{RS8, ABS16DST, E}}, {{0x6, 0xA, 0xC, RS8, ABS16DST, DATA3, E}}}, 1642ed0d50c3Schristos 1643ed0d50c3Schristos {O (O_MOVMD, SB), AV_H8SX, 0, "movmd.b", {{E}}, {{0x7, 0xb, 0x9, 0x4, E}}}, 1644ed0d50c3Schristos {O (O_MOVMD, SW), AV_H8SX, 0, "movmd.w", {{E}}, {{0x7, 0xb, 0xa, 0x4, E}}}, 1645ed0d50c3Schristos {O (O_MOVMD, SL), AV_H8SX, 0, "movmd.l", {{E}}, {{0x7, 0xb, 0xb, 0x4, E}}}, 1646ed0d50c3Schristos {O (O_MOVSD, SB), AV_H8SX, 0, "movsd.b", {{PCREL16, E}}, {{0x7, 0xb, 0x8, 0x4, PCREL16, DATA3, E}}}, 1647ed0d50c3Schristos 1648ed0d50c3Schristos {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x0, IMM4, RD16, E}}}, 1649ed0d50c3Schristos {O (O_MULS, SW), AV_H8SX, 0, "muls.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x0, RS16, RD16, E}}}, 1650ed0d50c3Schristos {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x6, 0x5, 0x2, IMM4, B30 | RD32, E}}}, 1651ed0d50c3Schristos {O (O_MULS, SL), AV_H8SX, 0, "muls.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x2, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, 1652ed0d50c3Schristos 1653ed0d50c3Schristos {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x0, IMM4, RD16, E}}}, 1654ed0d50c3Schristos {O (O_MULU, SW), AV_H8SX, 0, "mulu.w", {{RS16, RD16, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x0, RS16, RD16, E}}}, 1655ed0d50c3Schristos {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xe, 0x5, 0x2, IMM4, B30 | RD32, E}}}, 1656ed0d50c3Schristos {O (O_MULU, SL), AV_H8SX, 0, "mulu.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xa, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, 1657ed0d50c3Schristos 1658ed0d50c3Schristos {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x7, 0x5, 0x2, IMM4, B30 | RD32, E}}}, 1659ed0d50c3Schristos {O (O_MULSU, SL), AV_H8SX, 0, "muls/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0x3, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, 1660ed0d50c3Schristos {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xf, 0x5, 0x2, IMM4, B30 | RD32, E}}}, 1661ed0d50c3Schristos {O (O_MULUU, SL), AV_H8SX, 0, "mulu/u.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xc, 0xb, 0x5, 0x2, B30 | RS32, B30 | RD32, E}}}, 1662ed0d50c3Schristos 1663ed0d50c3Schristos {O (O_MULXS, SB), AV_H8SX, 0, "mulxs.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x0, IMM4, RD16, E}}}, 1664ed0d50c3Schristos {O (O_MULXS, SB), AV_H8H, 20, "mulxs.b", {{RS8, RD16, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x0, RS8, RD16, E}}}, 1665ed0d50c3Schristos {O (O_MULXS, SW), AV_H8SX, 0, "mulxs.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0x4, 0x5, 0x2, IMM4, B30 | RD32, E}}}, 1666ed0d50c3Schristos {O (O_MULXS, SW), AV_H8H, 20, "mulxs.w", {{RS16, RD32, E}}, {{0x0, 0x1, 0xc, 0x0, 0x5, 0x2, RS16, B30 | RD32, E}}}, 1667ed0d50c3Schristos 1668ed0d50c3Schristos {O (O_MULXU, SB), AV_H8SX, 0, "mulxu.b", {{IMM4, RD16, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x0, IMM4, RD16, E}}}, 1669ed0d50c3Schristos {O (O_MULXU, SB), AV_H8, 14, "mulxu.b", {{RS8, RD16, E}}, {{0x5, 0x0, RS8, RD16, E}}}, 1670ed0d50c3Schristos {O (O_MULXU, SW), AV_H8SX, 0, "mulxu.w", {{IMM4, RD32, E}}, {{0x0, 0x1, 0xc, 0xc, 0x5, 0x2, IMM4, B30 | RD32, E}}}, 1671ed0d50c3Schristos {O (O_MULXU, SW), AV_H8H, 14, "mulxu.w", {{RS16, RD32, E}}, {{0x5, 0x2, RS16, B30 | RD32, E}}}, 1672ed0d50c3Schristos 1673ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_NEG, SB), "neg.b", PREFIX_017, 0x1, 0x7, 0x8), 1674ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_NEG, SW), "neg.w", PREFIX_015, 0x1, 0x7, 0x9), 1675ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_NEG, SL), "neg.l", PREFIX_010, 0x1, 0x7, 0xb), 1676ed0d50c3Schristos 1677ed0d50c3Schristos {O (O_NOP, SN), AV_H8, 2, "nop", {{E}}, {{0x0, 0x0, 0x0, 0x0, E}}}, 1678ed0d50c3Schristos 1679ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_NOT, SB), "not.b", PREFIX_017, 0x1, 0x7, 0x0), 1680ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_NOT, SW), "not.w", PREFIX_015, 0x1, 0x7, 0x1), 1681ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_NOT, SL), "not.l", PREFIX_010, 0x1, 0x7, 0x3), 1682ed0d50c3Schristos 1683ed0d50c3Schristos {O (O_OR, SB), AV_H8, 2, "or.b", {{IMM8, RD8, E}}, {{0xc, RD8, IMM8LIST, E}}}, 1684ed0d50c3Schristos EXPAND_TWOOP_B (O (O_OR, SB), "or.b", 0xc, 0x1, 0x4, 0x4, 0), 1685ed0d50c3Schristos 1686ed0d50c3Schristos {O (O_OR, SW), AV_H8, 2, "or.w", {{RS16, RD16, E}}, {{0x6, 0x4, RS16, RD16, E}}}, 1687ed0d50c3Schristos EXPAND_TWOOP_W (O (O_OR, SW), "or.w", 0x6, 0x4, 0x4), 1688ed0d50c3Schristos 1689ed0d50c3Schristos {O (O_OR, SL), AV_H8H, 2, "or.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x4, B30 | RS32, B30 | RD32, E}}}, 1690ed0d50c3Schristos EXPAND_TWOOP_L (O (O_OR, SL), "or.l", 0x4), 1691ed0d50c3Schristos 1692ed0d50c3Schristos {O (O_ORC, SB), AV_H8, 2, "orc", {{IMM8, CCR | DST, E}}, {{0x0, 0x4, IMM8LIST, E}}}, 1693ed0d50c3Schristos {O (O_ORC, SB), AV_H8S, 2, "orc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x4, IMM8LIST, E}}}, 1694ed0d50c3Schristos 1695ed0d50c3Schristos {O (O_MOV, SW), AV_H8, 6, "pop.w", {{OR16, E}}, {{0x6, 0xD, 0x7, OR16, E}}}, 1696ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "pop.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0x7, OR32 | B30, E}}}, 1697ed0d50c3Schristos {O (O_MOV, SW), AV_H8, 6, "push.w", {{OR16, E}}, {{0x6, 0xD, 0xF, OR16, E}}}, 1698ed0d50c3Schristos {O (O_MOV, SL), AV_H8H, 6, "push.l", {{OR32, E}}, {{PREFIX_0100, 0x6, 0xD, 0xF, OR32 | B30, E}}}, 1699ed0d50c3Schristos 1700ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_ROTL, SB), "rotl.b", PREFIX_017, 0x1, 0x2, 0x8), 1701*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_ROTL, SB), AV_H8S, "rotl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0xc), 1702ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_ROTL, SW), "rotl.w", PREFIX_015, 0x1, 0x2, 0x9), 1703*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_ROTL, SW), AV_H8S, "rotl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0xd), 1704ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_ROTL, SL), "rotl.l", PREFIX_010, 0x1, 0x2, 0xb), 1705*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_ROTL, SL), AV_H8S, "rotl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0xf, B30), 1706ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_ROTR, SB), "rotr.b", PREFIX_017, 0x1, 0x3, 0x8), 1707*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_ROTR, SB), AV_H8S, "rotr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0xc), 1708ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_ROTR, SW), "rotr.w", PREFIX_015, 0x1, 0x3, 0x9), 1709*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_ROTR, SW), AV_H8S, "rotr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0xd), 1710ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_ROTR, SL), "rotr.l", PREFIX_010, 0x1, 0x3, 0xb), 1711*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_ROTR, SL), AV_H8S, "rotr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0xf, B30), 1712ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_ROTXL, SB), "rotxl.b", PREFIX_017, 0x1, 0x2, 0x0), 1713*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_ROTXL, SB), AV_H8S, "rotxl.b", CONST_2, PREFIX_017, 0x1, 0x2, 0x4), 1714ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_ROTXL, SW), "rotxl.w", PREFIX_015, 0x1, 0x2, 0x1), 1715*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_ROTXL, SW), AV_H8S, "rotxl.w", CONST_2, PREFIX_015, 0x1, 0x2, 0x5), 1716ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_ROTXL, SL), "rotxl.l", PREFIX_010, 0x1, 0x2, 0x3), 1717*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_ROTXL, SL), AV_H8S, "rotxl.l", CONST_2, PREFIX_010, 0x1, 0x2, 0x7, B30), 1718ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_ROTXR, SB), "rotxr.b", PREFIX_017, 0x1, 0x3, 0x0), 1719*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_ROTXR, SB), AV_H8S, "rotxr.b", CONST_2, PREFIX_017, 0x1, 0x3, 0x4), 1720ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_ROTXR, SW), "rotxr.w", PREFIX_015, 0x1, 0x3, 0x1), 1721*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_ROTXR, SW), AV_H8S, "rotxr.w", CONST_2, PREFIX_015, 0x1, 0x3, 0x5), 1722ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_ROTXR, SL), "rotxr.l", PREFIX_010, 0x1, 0x3, 0x3), 1723*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_ROTXR, SL), AV_H8S, "rotxr.l", CONST_2, PREFIX_010, 0x1, 0x3, 0x7, B30), 1724ed0d50c3Schristos 1725ed0d50c3Schristos 1726ed0d50c3Schristos {O (O_BPT, SN), AV_H8, 10, "bpt", {{E}}, {{0x7, 0xA, 0xF, 0xF, E}}}, 1727ed0d50c3Schristos {O (O_RTE, SN), AV_H8, 10, "rte", {{E}}, {{0x5, 0x6, 0x7, 0x0, E}}}, 1728ed0d50c3Schristos {O (O_RTS, SN), AV_H8, 8, "rts", {{E}}, {{0x5, 0x4, 0x7, 0x0, E}}}, 1729ed0d50c3Schristos {O (O_RTEL, SN), AV_H8SX, 0, "rte/l", {{RS32, RD32, E}}, {{0x5, 0x6, RS32 | B30, RD32 | B30, E}}}, 1730ed0d50c3Schristos {O (O_RTSL, SN), AV_H8SX, 0, "rts/l", {{RS32, RD32, E}}, {{0x5, 0x4, RS32 | B30, RD32 | B30, E}}}, 1731ed0d50c3Schristos 1732ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_SHAL, SB), "shal.b", PREFIX_017, 0x1, 0x0, 0x8), 1733*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_SHAL, SB), AV_H8S, "shal.b", CONST_2, PREFIX_017, 0x1, 0x0, 0xc), 1734ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_SHAL, SW), "shal.w", PREFIX_015, 0x1, 0x0, 0x9), 1735*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHAL, SW), AV_H8S, "shal.w", CONST_2, PREFIX_015, 0x1, 0x0, 0xd), 1736ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_SHAL, SL), "shal.l", PREFIX_010, 0x1, 0x0, 0xb), 1737*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHAL, SL), AV_H8S, "shal.l", CONST_2, PREFIX_010, 0x1, 0x0, 0xf, B30), 1738ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_SHAR, SB), "shar.b", PREFIX_017, 0x1, 0x1, 0x8), 1739*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_SHAR, SB), AV_H8S, "shar.b", CONST_2, PREFIX_017, 0x1, 0x1, 0xc), 1740ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_SHAR, SW), "shar.w", PREFIX_015, 0x1, 0x1, 0x9), 1741*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHAR, SW), AV_H8S, "shar.w", CONST_2, PREFIX_015, 0x1, 0x1, 0xd), 1742ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_SHAR, SL), "shar.l", PREFIX_010, 0x1, 0x1, 0xb), 1743*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHAR, SL), AV_H8S, "shar.l", CONST_2, PREFIX_010, 0x1, 0x1, 0xf, B30), 1744ed0d50c3Schristos 1745ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_SHLL, SB), "shll.b", PREFIX_017, 0x1, 0x0, 0x0), 1746ed0d50c3Schristos 1747ed0d50c3Schristos {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x0, RD8, E}}}, 1748ed0d50c3Schristos 1749*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), AV_H8S, "shll.b", CONST_2, PREFIX_017, 0x1, 0x0, 0x4), 1750*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_SHLL, SB), AV_H8SX, "shll.b", CONST_4, PREFIX_017, 0x1, 0x0, 0xa), 1751ed0d50c3Schristos {O (O_SHLL, SB), AV_H8SX, 0, "shll.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x0, RD8, E}}}, 1752ed0d50c3Schristos 1753ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_SHLL, SW), "shll.w", PREFIX_015, 0x1, 0x0, 0x1), 1754ed0d50c3Schristos 1755ed0d50c3Schristos {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x1, RD16, E}}}, 1756ed0d50c3Schristos 1757*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), AV_H8S, "shll.w", CONST_2, PREFIX_015, 0x1, 0x0, 0x5), 1758*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), AV_H8SX, "shll.w", CONST_4, PREFIX_015, 0x1, 0x0, 0x2), 1759*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHLL, SW), AV_H8SX, "shll.w", CONST_8, PREFIX_015, 0x1, 0x0, 0x6), 1760ed0d50c3Schristos {O (O_SHLL, SW), AV_H8SX, 0, "shll.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x1, RD16, E}}}, 1761ed0d50c3Schristos 1762ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_SHLL, SL), "shll.l", PREFIX_010, 0x1, 0x0, 0x3), 1763ed0d50c3Schristos 1764ed0d50c3Schristos {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x0, 0x3, B30 | RD32, E}}}, 1765ed0d50c3Schristos 1766*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8S, "shll.l", CONST_2, PREFIX_010, 0x1, 0x0, 0x7, B30), 1767*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8SX, "shll.l", CONST_4, PREFIX_010, 0x1, 0x0, 0x3, B31), 1768*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8SX, "shll.l", CONST_8, PREFIX_010, 0x1, 0x0, 0x7, B31), 1769*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLL, SL), AV_H8SX, "shll.l", CONST_16, PREFIX_010, 0x1, 0x0, 0xf, B31), 1770ed0d50c3Schristos {O (O_SHLL, SL), AV_H8SX, 0, "shll.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x0, 0x3, B30 | RD32, E}}}, 1771ed0d50c3Schristos 1772ed0d50c3Schristos EXPAND_UNOP_STD_B (O (O_SHLR, SB), "shlr.b", PREFIX_017, 0x1, 0x1, 0x0), 1773ed0d50c3Schristos 1774ed0d50c3Schristos {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{RS8, RD8, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x0, RD8, E}}}, 1775ed0d50c3Schristos 1776*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), AV_H8S, "shlr.b", CONST_2, PREFIX_017, 0x1, 0x1, 0x4), 1777*b88e3e88Schristos EXPAND_UNOP_EXTENDED_B (O (O_SHLR, SB), AV_H8SX, "shlr.b", CONST_4, PREFIX_017, 0x1, 0x1, 0xa), 1778ed0d50c3Schristos {O (O_SHLR, SB), AV_H8SX, 0, "shlr.b", {{IMM5, RD8, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x0, RD8, E}}}, 1779ed0d50c3Schristos 1780ed0d50c3Schristos EXPAND_UNOP_STD_W (O (O_SHLR, SW), "shlr.w", PREFIX_015, 0x1, 0x1, 0x1), 1781ed0d50c3Schristos 1782ed0d50c3Schristos {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{RS8, RD16, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x1, RD16, E}}}, 1783ed0d50c3Schristos 1784*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), AV_H8S, "shlr.w", CONST_2, PREFIX_015, 0x1, 0x1, 0x5), 1785*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), AV_H8SX, "shlr.w", CONST_4, PREFIX_015, 0x1, 0x1, 0x2), 1786*b88e3e88Schristos EXPAND_UNOP_EXTENDED_W (O (O_SHLR, SW), AV_H8SX, "shlr.w", CONST_8, PREFIX_015, 0x1, 0x1, 0x6), 1787ed0d50c3Schristos {O (O_SHLR, SW), AV_H8SX, 0, "shlr.w", {{IMM5, RD16, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x1, RD16, E}}}, 1788ed0d50c3Schristos 1789ed0d50c3Schristos EXPAND_UNOP_STD_L (O (O_SHLR, SL), "shlr.l", PREFIX_010, 0x1, 0x1, 0x3), 1790ed0d50c3Schristos 1791ed0d50c3Schristos {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{RS8, RD32, E}}, {{0x7, 0x8, RS8, 0x8, 0x1, 0x1, 0x3, B30 | RD32, E}}}, 1792ed0d50c3Schristos 1793*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8S, "shlr.l", CONST_2, PREFIX_010, 0x1, 0x1, 0x7, B30), 1794*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8SX, "shlr.l", CONST_4, PREFIX_010, 0x1, 0x1, 0x3, B31), 1795*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8SX, "shlr.l", CONST_8, PREFIX_010, 0x1, 0x1, 0x7, B31), 1796*b88e3e88Schristos EXPAND_UNOP_EXTENDED_L (O (O_SHLR, SL), AV_H8SX, "shlr.l", CONST_16, PREFIX_010, 0x1, 0x1, 0xf, B31), 1797ed0d50c3Schristos {O (O_SHLR, SL), AV_H8SX, 0, "shlr.l", {{IMM5, RD32, E}}, {{0x0, 0x3, B31 | IMM5, DATA, 0x1, 0x1, 0x3, B30 | RD32, E}}}, 1798ed0d50c3Schristos 1799ed0d50c3Schristos {O (O_SLEEP, SN), AV_H8, 2, "sleep", {{E}}, {{0x0, 0x1, 0x8, 0x0, E}}}, 1800ed0d50c3Schristos 1801ed0d50c3Schristos {O (O_STC, SB), AV_H8, 2, "stc", {{CCR | SRC, RD8, E}}, {{0x0, 0x2, B30 | CCR | SRC, RD8, E}}}, 1802ed0d50c3Schristos {O (O_STC, SB), AV_H8S, 2, "stc", {{EXR | SRC, RD8, E}}, {{0x0, 0x2, B30 | EXR | SRC, RD8, E}}}, 1803ed0d50c3Schristos {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, RDIND, E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND, IGNORE, E}}}, 1804ed0d50c3Schristos {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, RDIND, E}}, {{PREFIXSTC, 0x6, 0x9, B31 | RDIND, IGNORE, E}}}, 1805ed0d50c3Schristos {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, RDPREDEC, E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}}, 1806ed0d50c3Schristos {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, RDPREDEC, E}}, {{PREFIXSTC, 0x6, 0xD, B31 | RDPREDEC, IGNORE, E}}}, 1807ed0d50c3Schristos {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, DISP16DST, E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG, IGNORE, DSTDISP16LIST, E}}}, 1808ed0d50c3Schristos {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, DISP16DST, E}}, {{PREFIXSTC, 0x6, 0xF, B31 | DSTDISPREG, IGNORE, DSTDISP16LIST, E}}}, 1809ed0d50c3Schristos {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, DISP32DST, E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}}, 1810ed0d50c3Schristos {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, DISP32DST, E}}, {{PREFIXSTC, 0x7, 0x8, B30 | DSTDISPREG, 0, 0x6, 0xB, 0xA, IGNORE, DSTDISP32LIST, E}}}, 1811ed0d50c3Schristos {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, ABS16DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}}, 1812ed0d50c3Schristos {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, ABS16DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0x8, IGNORE, DST | ABS16LIST, E}}}, 1813ed0d50c3Schristos {O (O_STC, SW), AV_H8H, 2, "stc", {{CCR | SRC, ABS32DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}}, 1814ed0d50c3Schristos {O (O_STC, SW), AV_H8S, 2, "stc", {{EXR | SRC, ABS32DST, E}}, {{PREFIXSTC, 0x6, 0xB, 0xA, IGNORE, DST | MEMRELAX | ABS32LIST, E}}}, 1815ed0d50c3Schristos {O (O_STC, SL), AV_H8SX, 0, "stc", {{B30 | VBR_SBR | SRC, RD32, E}}, {{0x0, 0x2, B30 | VBR_SBR | SRC, RD32, E}}}, 1816ed0d50c3Schristos 1817ed0d50c3Schristos 1818ed0d50c3Schristos EXPAND_TWOOP_B (O (O_SUB, SB), "sub.b", 0xa, 0x1, 0x8, 0x3, B01), 1819ed0d50c3Schristos 1820ed0d50c3Schristos {O (O_SUB, SW), AV_H8, 2, "sub.w", {{RS16, RD16, E}}, {{0x1, 0x9, RS16, RD16, E}}}, 1821ed0d50c3Schristos {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RD16, E}}, {{0x1, 0xa, B30 | IMM3NZ, RD16, E}}}, 1822ed0d50c3Schristos {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, IGNORE, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 1823ed0d50c3Schristos {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS16DST, E}}, {{0x6, 0xb, 0x1, B31 | IGNORE, DSTABS16LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 1824ed0d50c3Schristos {O (O_SUB, SW), AV_H8SX, 0, "sub.w", {{IMM3NZ_NS, ABS32DST, E}}, {{0x6, 0xb, 0x3, B31 | IGNORE, DSTABS32LIST, 0x1, 0xa, B30 | IMM3NZ, IGNORE, E}}}, 1825ed0d50c3Schristos EXPAND_TWOOP_W (O (O_SUB, SW), "sub.w", 0x1, 0x9, 0x3), 1826ed0d50c3Schristos 1827ed0d50c3Schristos {O (O_SUB, SL), AV_H8H, 6, "sub.l", {{RS32, RD32, E}}, {{0x1, 0xa, B31 | RS32, B30 | RD32, E}}}, 1828ed0d50c3Schristos {O (O_SUB, SL), AV_H8SX, 0, "sub.l", {{IMM3NZ_NS, RD32, E}}, {{0x1, 0xa, B31 | IMM3NZ, B31 | RD32, E}}}, 1829ed0d50c3Schristos EXPAND_TWOOP_L (O (O_SUB, SL), "sub.l", 0x3), 1830ed0d50c3Schristos 1831ed0d50c3Schristos {O (O_SUBS, SL), AV_H8, 2, "subs", {{KBIT, RDP, E}}, {{0x1, 0xB,KBIT, RDP, E}}}, 1832ed0d50c3Schristos 1833ed0d50c3Schristos {O (O_SUBX, SB), AV_H8, 2, "subx", {{IMM8, RD8, E}}, {{0xb, RD8, IMM8LIST, E}}}, 1834ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0xb, IGNORE, IMM8LIST, E}}}, 1835ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{IMM8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0xb, IGNORE, IMM8LIST, E}}}, 1836ed0d50c3Schristos {O (O_SUBX, SB), AV_H8, 2, "subx", {{RS8, RD8, E}}, {{0x1, 0xe, RS8, RD8, E}}}, 1837ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8, RDIND, E}}, {{0x7, 0xd, B30 | RDIND, IGNORE, 0x1, 0xe, RS8, IGNORE, E}}}, 1838ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RS8, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RDPOSTDEC, B31 | IGNORE, 0x1, 0xe, RS8, IGNORE, E}}}, 1839ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND, RD8, E}}, {{0x7, 0xc, B30 | RSIND, IGNORE, 0x1, 0xe, IGNORE, RD8, E}}}, 1840ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RD8, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, B30 | B20 | IGNORE, 0x1, 0xe, IGNORE, RD8, E}}}, 1841ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSIND, RDIND, E}}, {{PREFIX_0174, 0x6, 0x8, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}}, 1842ed0d50c3Schristos {O (O_SUBX, SB), AV_H8SX, 0, "subx.b", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0176, 0x6, 0xc, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}}, 1843ed0d50c3Schristos 1844ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RD16, E}}, {{PREFIX_0151, 0x7, 0x9, 0x3, RD16, IMM16LIST, E}}}, 1845ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}}, 1846ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{IMM16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0x9, 0x3, IGNORE, IMM16LIST, E}}}, 1847ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RD16, E}}, {{PREFIX_0151, 0x1, 0x9, RS16, RD16, E}}}, 1848ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RDIND, E}}, {{0x7, 0xd, B31 | RDIND, B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}}, 1849ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RS16, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0x9, RS16, IGNORE, E}}}, 1850ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND, RD16, E}}, {{0x7, 0xc, B31 | RSIND, B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}}, 1851ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RD16, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0x9, IGNORE, RD16, E}}}, 1852ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSIND, RDIND, E}}, {{PREFIX_0154, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}}, 1853ed0d50c3Schristos {O (O_SUBX, SW), AV_H8SX, 0, "subx.w", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0156, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}}, 1854ed0d50c3Schristos 1855ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RD32, E}}, {{PREFIX_0101, 0x7, 0xa, 0x3, RD32, IMM32LIST, E}}}, 1856ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}}, 1857ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{IMM32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x7, 0xa, 0x3, IGNORE, IMM32LIST, E}}}, 1858ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RD32, E}}, {{PREFIX_0101, 0x1, 0xa, B31 | RS32, B30 | RD32, E}}}, 1859ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RDIND, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}}, 1860ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RS32, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RDPOSTDEC, B31 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | RS32, B30 | IGNORE, E}}}, 1861ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND, RD32, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}}, 1862ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RD32, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, B30 | B20 | B01 | IGNORE, 0x1, 0xa, B31 | IGNORE, B30 | RD32, E}}}, 1863ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSIND, RDIND, E}}, {{PREFIX_0104, 0x6, 0x9, B30 | RSIND, 0xd, 0x0, RDIND, 0x3, IGNORE, E}}}, 1864ed0d50c3Schristos {O (O_SUBX, SL), AV_H8SX, 0, "subx.l", {{RSPOSTDEC, RDPOSTDEC, E}}, {{PREFIX_0106, 0x6, 0xd, B30 | RSPOSTDEC, 0xd, 0xa, RDPOSTDEC, 0x3, IGNORE, E}}}, 1865ed0d50c3Schristos 1866ed0d50c3Schristos {O (O_TRAPA, SB), AV_H8H, 2, "trapa", {{IMM2, E}}, {{0x5, 0x7, IMM2, IGNORE, E}}}, 1867*b88e3e88Schristos {O (O_TAS, SB), AV_H8S, 2, "tas", {{RSIND, E}}, {{0x0, 0x1, 0xe, 0x0, 0x7, 0xb, B30 | RSIND, 0xc, E}}}, 1868ed0d50c3Schristos 1869ed0d50c3Schristos {O (O_XOR, SB), AV_H8, 2, "xor.b", {{IMM8, RD8, E}}, {{0xd, RD8, IMM8LIST, E}}}, 1870ed0d50c3Schristos EXPAND_TWOOP_B (O (O_XOR, SB), "xor.b", 0xd, 0x1, 0x5, 0x5, 0), 1871ed0d50c3Schristos 1872ed0d50c3Schristos {O (O_XOR, SW), AV_H8, 2, "xor.w", {{RS16, RD16, E}}, {{0x6, 0x5, RS16, RD16, E}}}, 1873ed0d50c3Schristos EXPAND_TWOOP_W (O (O_XOR, SW), "xor.w", 0x6, 0x5, 0x5), 1874ed0d50c3Schristos 1875ed0d50c3Schristos {O (O_XOR, SL), AV_H8H, 2, "xor.l", {{RS32, RD32, E}}, {{0x0, 0x1, 0xF, 0x0, 0x6, 0x5, B30 | RS32, B30 | RD32, E}}}, 1876ed0d50c3Schristos EXPAND_TWOOP_L (O (O_XOR, SL), "xor.l", 0x5), 1877ed0d50c3Schristos 1878ed0d50c3Schristos {O (O_XORC, SB), AV_H8, 2, "xorc", {{IMM8, CCR | DST, E}}, {{0x0, 0x5, IMM8LIST, E}}}, 1879ed0d50c3Schristos {O (O_XORC, SB), AV_H8S, 2, "xorc", {{IMM8, EXR | DST, E}}, {{0x0, 0x1, 0x4, EXR | DST, 0x0, 0x5, IMM8LIST, E}}}, 1880ed0d50c3Schristos 1881ed0d50c3Schristos {O (O_CLRMAC, SN), AV_H8S, 2, "clrmac", {{E}}, {{0x0, 0x1, 0xa, 0x0, E}}}, 1882ed0d50c3Schristos {O (O_MAC, SW), AV_H8S, 2, "mac", {{RSPOSTINC, RDPOSTINC, E}}, {{0x0, 0x1, 0x6, 0x0, 0x6, 0xd, B30 | RSPOSTINC, B30 | RDPOSTINC, E}}}, 1883ed0d50c3Schristos {O (O_LDMAC, SL), AV_H8S, 2, "ldmac", {{RS32, MD32, E}}, {{0x0, 0x3, MD32, RS32, E}}}, 1884ed0d50c3Schristos {O (O_STMAC, SL), AV_H8S, 2, "stmac", {{MS32, RD32, E}}, {{0x0, 0x2, MS32, RD32, E}}}, 1885*b88e3e88Schristos {O (O_LDM, SL), AV_H8S, 6, "ldm.l", {{RSPOSTINC, RD32, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0x7, B30 | RD32, E}}}, 1886*b88e3e88Schristos {O (O_STM, SL), AV_H8S, 6, "stm.l", {{RS32, RDPREDEC, E}}, {{0x0, 0x1, DATA, 0x0, 0x6, 0xD, 0xF, B30 | RS32, E}}}, 1887ed0d50c3Schristos {0, 0, 0, NULL, {{0, 0, 0}}, {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}} 1888ed0d50c3Schristos }; 1889ed0d50c3Schristos #else 1890ed0d50c3Schristos extern const struct h8_opcode h8_opcodes[]; 1891ed0d50c3Schristos #endif 1892ed0d50c3Schristos 1893