[BZ 21005] Add support for Intel 64 rdrand and rdseed record/replay
[deliverable/binutils-gdb.git] / opcodes / arc-dis.h
CommitLineData
0d2bcfaf 1/* Disassembler structures definitions for the ARC.
2571583a 2 Copyright (C) 1994-2017 Free Software Foundation, Inc.
886a2506
NC
3
4 Contributed by Claudiu Zissulescu (claziss@synopsys.com)
0d2bcfaf 5
9b201bb5
NC
6 This file is part of libopcodes.
7
8 This library is free software; you can redistribute it and/or modify
0d2bcfaf 9 it under the terms of the GNU General Public License as published by
9b201bb5
NC
10 the Free Software Foundation; either version 3, or (at your option)
11 any later version.
0d2bcfaf 12
9b201bb5
NC
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.
0d2bcfaf
NC
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,
f4321104 20 Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
0d2bcfaf
NC
21
22#ifndef ARCDIS_H
23#define ARCDIS_H
24
ab548d2d
AK
25#ifdef __cplusplus
26extern "C" {
27#endif
28
886a2506 29enum ARC_Debugger_OperandType
0d2bcfaf 30{
886a2506
NC
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. */
0d2bcfaf
NC
38};
39
43e65147 40enum Flow
0d2bcfaf
NC
41{
42 noflow,
43 direct_jump,
44 direct_call,
45 indirect_jump,
46 indirect_call,
47 invalid_instr
48};
49
886a2506
NC
50enum NullifyMode
51{
52 BR_exec_when_no_jump,
53 BR_exec_always,
54 BR_exec_when_jump
55};
56
0d2bcfaf
NC
57enum { allOperandsSize = 256 };
58
43e65147 59struct arcDisState
0d2bcfaf
NC
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*);
43e65147 68
0d2bcfaf
NC
69 unsigned char* instruction;
70 unsigned index;
886a2506
NC
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
0d2bcfaf
NC
81 int opWidth;
82 int targets[4];
886a2506
NC
83 /* START ARC LOCAL. */
84 unsigned int addresses[4];
85 /* END ARC LOCAL. */
0d2bcfaf
NC
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;
886a2506 97 char _addrWriteBack; /* Address writeback. */
0d2bcfaf
NC
98 char _mem_load;
99 char _load_len;
886a2506 100 enum NullifyMode nullifyMode;
0d2bcfaf
NC
101 unsigned char commNum;
102 unsigned char isBranch;
103 unsigned char tcnt;
104 unsigned char acnt;
105};
106
886a2506
NC
107struct arcDisState
108arcAnalyzeInstr (bfd_vma memaddr, struct disassemble_info *);
ab548d2d
AK
109
110#ifdef __cplusplus
111}
112#endif
113
0d2bcfaf 114#endif
This page took 0.660928 seconds and 4 git commands to generate.