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. */
29 enum ARC_Debugger_OperandType
35 ARCOMPACT_REGISTER
/* Valid only for the
57 enum { allOperandsSize
= 256 };
63 void (*err
)(void*, const char*);
64 const char *(*coreRegName
)(void*, int);
65 const char *(*auxRegName
)(void*, int);
66 const char *(*condCodeName
)(void*, int);
67 const char *(*instName
)(void*, int, int, int*);
69 unsigned char* instruction
;
71 const char *comm
[6]; /* Instr name, cond, NOP, 3 operands. */
75 unsigned int registerNum
;
76 unsigned int shortimm
;
79 enum ARC_Debugger_OperandType sourceType
;
83 /* START ARC LOCAL. */
84 unsigned int addresses
[4];
86 /* Set as a side-effect of calling the disassembler.
87 Used only by the debugger. */
89 int register_for_indirect_jump
;
90 int ea_reg1
, ea_reg2
, _offset
;
92 unsigned long words
[2];
95 char operandBuffer
[allOperandsSize
];
97 char _addrWriteBack
; /* Address writeback. */
100 enum NullifyMode nullifyMode
;
101 unsigned char commNum
;
102 unsigned char isBranch
;
108 arcAnalyzeInstr (bfd_vma memaddr
, struct disassemble_info
*);