1 /* Disassembler structures definitions for the ARC.
2 Copyright (C) 1994-2016 Free Software Foundation, Inc.
4 Contributed by Claudiu Zissulescu (claziss@synopsys.com)
6 This file is part of libopcodes.
8 This library is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3, or (at your option)
13 It is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software Foundation,
20 Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
25 enum ARC_Debugger_OperandType
31 ARCOMPACT_REGISTER /* Valid only for the
53 enum { allOperandsSize = 256 };
59 void (*err)(void*, const char*);
60 const char *(*coreRegName)(void*, int);
61 const char *(*auxRegName)(void*, int);
62 const char *(*condCodeName)(void*, int);
63 const char *(*instName)(void*, int, int, int*);
65 unsigned char* instruction;
67 const char *comm[6]; /* Instr name, cond, NOP, 3 operands. */
71 unsigned int registerNum;
72 unsigned int shortimm;
75 enum ARC_Debugger_OperandType sourceType;
79 /* START ARC LOCAL. */
80 unsigned int addresses[4];
82 /* Set as a side-effect of calling the disassembler.
83 Used only by the debugger. */
85 int register_for_indirect_jump;
86 int ea_reg1, ea_reg2, _offset;
88 unsigned long words[2];
91 char operandBuffer[allOperandsSize];
93 char _addrWriteBack; /* Address writeback. */
96 enum NullifyMode nullifyMode;
97 unsigned char commNum;
98 unsigned char isBranch;
104 arcAnalyzeInstr (bfd_vma memaddr, struct disassemble_info *);