blob: 627c06641dbc1357e0c04204eda860cef647dbb3 [file] [log] [blame]
Chris Lattner6f0414a2010-07-20 19:43:19 +00001//===-- EDInfo.h - LLVM Enhanced Disassembler -------------------*- C++ -*-===//
Chris Lattnera4f15d62010-07-20 18:59:58 +00002//
Chris Lattner6f0414a2010-07-20 19:43:19 +00003// The LLVM Compiler Infrastructure
Chris Lattnera4f15d62010-07-20 18:59:58 +00004//
Chris Lattner6f0414a2010-07-20 19:43:19 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
Chris Lattnera4f15d62010-07-20 18:59:58 +00008//===----------------------------------------------------------------------===//
9
Chris Lattner6f0414a2010-07-20 19:43:19 +000010#ifndef LLVM_EDINFO_H
11#define LLVM_EDINFO_H
Chris Lattnera4f15d62010-07-20 18:59:58 +000012
Chris Lattner6f0414a2010-07-20 19:43:19 +000013enum {
14 EDIS_MAX_OPERANDS = 13,
15 EDIS_MAX_SYNTAXES = 2
16};
Chris Lattnera4f15d62010-07-20 18:59:58 +000017
18enum OperandTypes {
19 kOperandTypeNone,
20 kOperandTypeImmediate,
21 kOperandTypeRegister,
22 kOperandTypeX86Memory,
23 kOperandTypeX86EffectiveAddress,
24 kOperandTypeX86PCRelative,
25 kOperandTypeARMBranchTarget,
26 kOperandTypeARMSoReg,
27 kOperandTypeARMSoImm,
28 kOperandTypeARMSoImm2Part,
29 kOperandTypeARMPredicate,
30 kOperandTypeARMAddrMode2,
31 kOperandTypeARMAddrMode2Offset,
32 kOperandTypeARMAddrMode3,
33 kOperandTypeARMAddrMode3Offset,
34 kOperandTypeARMAddrMode4,
35 kOperandTypeARMAddrMode5,
36 kOperandTypeARMAddrMode6,
37 kOperandTypeARMAddrMode6Offset,
38 kOperandTypeARMAddrModePC,
39 kOperandTypeARMRegisterList,
40 kOperandTypeARMTBAddrMode,
41 kOperandTypeThumbITMask,
42 kOperandTypeThumbAddrModeS1,
43 kOperandTypeThumbAddrModeS2,
44 kOperandTypeThumbAddrModeS4,
45 kOperandTypeThumbAddrModeRR,
46 kOperandTypeThumbAddrModeSP,
47 kOperandTypeThumb2SoReg,
48 kOperandTypeThumb2SoImm,
49 kOperandTypeThumb2AddrModeImm8,
50 kOperandTypeThumb2AddrModeImm8Offset,
51 kOperandTypeThumb2AddrModeImm12,
52 kOperandTypeThumb2AddrModeSoReg,
53 kOperandTypeThumb2AddrModeImm8s4,
54 kOperandTypeThumb2AddrModeImm8s4Offset
55};
56
57enum OperandFlags {
58 kOperandFlagSource = 0x1,
59 kOperandFlagTarget = 0x2
60};
61
62enum InstructionTypes {
63 kInstructionTypeNone,
64 kInstructionTypeMove,
65 kInstructionTypeBranch,
66 kInstructionTypePush,
67 kInstructionTypePop,
68 kInstructionTypeCall,
69 kInstructionTypeReturn
70};
71
72
73#endif