Fixup gdb.python/py-value.exp for bare-metal aarch64-elf
[deliverable/binutils-gdb.git] / opcodes / arc-dis.h
1 /* Disassembler structures definitions for the ARC.
2 Copyright (C) 1994-2016 Free Software Foundation, Inc.
3
4 Contributed by Claudiu Zissulescu (claziss@synopsys.com)
5
6 This file is part of libopcodes.
7
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)
11 any later version.
12
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.
17
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. */
21
22 #ifndef ARCDIS_H
23 #define ARCDIS_H
24
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28
29 enum ARC_Debugger_OperandType
30 {
31 ARC_UNDEFINED,
32 ARC_LIMM,
33 ARC_SHIMM,
34 ARC_REGISTER,
35 ARCOMPACT_REGISTER /* Valid only for the
36 registers allowed in
37 16 bit mode. */
38 };
39
40 enum Flow
41 {
42 noflow,
43 direct_jump,
44 direct_call,
45 indirect_jump,
46 indirect_call,
47 invalid_instr
48 };
49
50 enum NullifyMode
51 {
52 BR_exec_when_no_jump,
53 BR_exec_always,
54 BR_exec_when_jump
55 };
56
57 enum { allOperandsSize = 256 };
58
59 struct arcDisState
60 {
61 void *_this;
62 int instructionLen;
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*);
68
69 unsigned char* instruction;
70 unsigned index;
71 const char *comm[6]; /* Instr name, cond, NOP, 3 operands. */
72
73 union
74 {
75 unsigned int registerNum;
76 unsigned int shortimm;
77 unsigned int longimm;
78 } source_operand;
79 enum ARC_Debugger_OperandType sourceType;
80
81 int opWidth;
82 int targets[4];
83 /* START ARC LOCAL. */
84 unsigned int addresses[4];
85 /* END ARC LOCAL. */
86 /* Set as a side-effect of calling the disassembler.
87 Used only by the debugger. */
88 enum Flow flow;
89 int register_for_indirect_jump;
90 int ea_reg1, ea_reg2, _offset;
91 int _cond, _opcode;
92 unsigned long words[2];
93 char *commentBuffer;
94 char instrBuffer[40];
95 char operandBuffer[allOperandsSize];
96 char _ea_present;
97 char _addrWriteBack; /* Address writeback. */
98 char _mem_load;
99 char _load_len;
100 enum NullifyMode nullifyMode;
101 unsigned char commNum;
102 unsigned char isBranch;
103 unsigned char tcnt;
104 unsigned char acnt;
105 };
106
107 struct arcDisState
108 arcAnalyzeInstr (bfd_vma memaddr, struct disassemble_info *);
109
110 #ifdef __cplusplus
111 }
112 #endif
113
114 #endif
This page took 0.032845 seconds and 4 git commands to generate.