OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [opcodes/] [arc-dis.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
/* Disassembler structures definitions for the ARC.
2
   Copyright 1994, 1995, 1997, 1998, 2000, 2001
3
   Free Software Foundation, Inc.
4
   Contributed by Doug Evans (dje@cygnus.com).
5
 
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License as published by
8
   the Free Software Foundation; either version 2 of the License, or
9
   (at your option) any later version.
10
 
11
   This program is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   GNU General Public License for more details.
15
 
16
   You should have received a copy of the GNU General Public License
17
   along with this program; if not, write to the Free Software Foundation,
18
   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
19
 
20
#ifndef ARCDIS_H
21
#define ARCDIS_H
22
 
23
enum
24
{
25
  BR_exec_when_no_jump,
26
  BR_exec_always,
27
  BR_exec_when_jump
28
};
29
 
30
enum Flow
31
{
32
  noflow,
33
  direct_jump,
34
  direct_call,
35
  indirect_jump,
36
  indirect_call,
37
  invalid_instr
38
};
39
 
40
enum { no_reg = 99 };
41
enum { allOperandsSize = 256 };
42
 
43
struct arcDisState
44
{
45
  void *_this;
46
  int instructionLen;
47
  void (*err)(void*, const char*);
48
  const char *(*coreRegName)(void*, int);
49
  const char *(*auxRegName)(void*, int);
50
  const char *(*condCodeName)(void*, int);
51
  const char *(*instName)(void*, int, int, int*);
52
 
53
  unsigned char* instruction;
54
  unsigned index;
55
  const char *comm[6]; /* instr name, cond, NOP, 3 operands  */
56
  int opWidth;
57
  int targets[4];
58
  int addresses[4];
59
  /* Set as a side-effect of calling the disassembler.
60
     Used only by the debugger.  */
61
  enum Flow flow;
62
  int register_for_indirect_jump;
63
  int ea_reg1, ea_reg2, _offset;
64
  int _cond, _opcode;
65
  unsigned long words[2];
66
  char *commentBuffer;
67
  char instrBuffer[40];
68
  char operandBuffer[allOperandsSize];
69
  char _ea_present;
70
  char _mem_load;
71
  char _load_len;
72
  char nullifyMode;
73
  unsigned char commNum;
74
  unsigned char isBranch;
75
  unsigned char tcnt;
76
  unsigned char acnt;
77
};
78
 
79
#define __TRANSLATION_REQUIRED(state) ((state).acnt != 0)
80
 
81
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.