1 /* Disassembler structures definitions for the ARC.
2 Copyright (C) 1994-2015 Free Software Foundation, Inc.
3 Contributed by Doug Evans (dje@cygnus.com).
5 This file is part of libopcodes.
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software Foundation,
19 Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
42 enum { allOperandsSize = 256 };
48 void (*err)(void*, const char*);
49 const char *(*coreRegName)(void*, int);
50 const char *(*auxRegName)(void*, int);
51 const char *(*condCodeName)(void*, int);
52 const char *(*instName)(void*, int, int, int*);
54 unsigned char* instruction;
56 const char *comm[6]; /* instr name, cond, NOP, 3 operands */
60 /* Set as a side-effect of calling the disassembler.
61 Used only by the debugger. */
63 int register_for_indirect_jump;
64 int ea_reg1, ea_reg2, _offset;
66 unsigned long words[2];
69 char operandBuffer[allOperandsSize];
74 unsigned char commNum;
75 unsigned char isBranch;
80 #define __TRANSLATION_REQUIRED(state) ((state).acnt != 0)