2011-03-16 Kai Tietz <ktietz@redhat.com>
[deliverable/binutils-gdb.git] / opcodes / arc-dis.h
CommitLineData
0d2bcfaf 1/* Disassembler structures definitions for the ARC.
aa820537 2 Copyright 1994, 1995, 1997, 1998, 2000, 2001, 2005, 2007
060d22b0 3 Free Software Foundation, Inc.
0d2bcfaf
NC
4 Contributed by Doug Evans (dje@cygnus.com).
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
25enum
26{
27 BR_exec_when_no_jump,
28 BR_exec_always,
29 BR_exec_when_jump
30};
31
32enum Flow
33{
34 noflow,
35 direct_jump,
36 direct_call,
37 indirect_jump,
38 indirect_call,
39 invalid_instr
40};
41
42enum { no_reg = 99 };
43enum { allOperandsSize = 256 };
44
45struct arcDisState
46{
47 void *_this;
48 int instructionLen;
49 void (*err)(void*, const char*);
50 const char *(*coreRegName)(void*, int);
51 const char *(*auxRegName)(void*, int);
52 const char *(*condCodeName)(void*, int);
53 const char *(*instName)(void*, int, int, int*);
54
55 unsigned char* instruction;
56 unsigned index;
57 const char *comm[6]; /* instr name, cond, NOP, 3 operands */
58 int opWidth;
59 int targets[4];
60 int addresses[4];
61 /* Set as a side-effect of calling the disassembler.
62 Used only by the debugger. */
63 enum Flow flow;
64 int register_for_indirect_jump;
65 int ea_reg1, ea_reg2, _offset;
66 int _cond, _opcode;
67 unsigned long words[2];
68 char *commentBuffer;
69 char instrBuffer[40];
70 char operandBuffer[allOperandsSize];
71 char _ea_present;
72 char _mem_load;
73 char _load_len;
74 char nullifyMode;
75 unsigned char commNum;
76 unsigned char isBranch;
77 unsigned char tcnt;
78 unsigned char acnt;
79};
80
81#define __TRANSLATION_REQUIRED(state) ((state).acnt != 0)
82
83#endif
This page took 0.45268 seconds and 4 git commands to generate.