diff options
Diffstat (limited to 'opcodes/arc-dis.h')
-rw-r--r-- | opcodes/arc-dis.h | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/opcodes/arc-dis.h b/opcodes/arc-dis.h index dc73322..bcb88e5 100644 --- a/opcodes/arc-dis.h +++ b/opcodes/arc-dis.h @@ -1,6 +1,7 @@ /* Disassembler structures definitions for the ARC. Copyright (C) 1994-2015 Free Software Foundation, Inc. - Contributed by Doug Evans (dje@cygnus.com). + + Contributed by Claudiu Zissulescu (claziss@synopsys.com) This file is part of libopcodes. @@ -21,11 +22,15 @@ #ifndef ARCDIS_H #define ARCDIS_H -enum +enum ARC_Debugger_OperandType { - BR_exec_when_no_jump, - BR_exec_always, - BR_exec_when_jump + ARC_UNDEFINED, + ARC_LIMM, + ARC_SHIMM, + ARC_REGISTER, + ARCOMPACT_REGISTER /* Valid only for the + registers allowed in + 16 bit mode. */ }; enum Flow @@ -38,7 +43,13 @@ enum Flow invalid_instr }; -enum { no_reg = 99 }; +enum NullifyMode +{ + BR_exec_when_no_jump, + BR_exec_always, + BR_exec_when_jump +}; + enum { allOperandsSize = 256 }; struct arcDisState @@ -53,10 +64,21 @@ struct arcDisState unsigned char* instruction; unsigned index; - const char *comm[6]; /* instr name, cond, NOP, 3 operands */ + const char *comm[6]; /* Instr name, cond, NOP, 3 operands. */ + + union + { + unsigned int registerNum; + unsigned int shortimm; + unsigned int longimm; + } source_operand; + enum ARC_Debugger_OperandType sourceType; + int opWidth; int targets[4]; - int addresses[4]; + /* START ARC LOCAL. */ + unsigned int addresses[4]; + /* END ARC LOCAL. */ /* Set as a side-effect of calling the disassembler. Used only by the debugger. */ enum Flow flow; @@ -68,15 +90,16 @@ struct arcDisState char instrBuffer[40]; char operandBuffer[allOperandsSize]; char _ea_present; + char _addrWriteBack; /* Address writeback. */ char _mem_load; char _load_len; - char nullifyMode; + enum NullifyMode nullifyMode; unsigned char commNum; unsigned char isBranch; unsigned char tcnt; unsigned char acnt; }; -#define __TRANSLATION_REQUIRED(state) ((state).acnt != 0) - +struct arcDisState +arcAnalyzeInstr (bfd_vma memaddr, struct disassemble_info *); #endif |