blob: ad572826313373bfbbc501da2291e986b8f8ddeb [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,
Bruno Cardoso Lopes505f3cd2011-03-24 21:04:58 +000038 kOperandTypeARMAddrMode7,
Chris Lattnera4f15d62010-07-20 18:59:58 +000039 kOperandTypeARMAddrModePC,
40 kOperandTypeARMRegisterList,
41 kOperandTypeARMTBAddrMode,
42 kOperandTypeThumbITMask,
43 kOperandTypeThumbAddrModeS1,
44 kOperandTypeThumbAddrModeS2,
45 kOperandTypeThumbAddrModeS4,
46 kOperandTypeThumbAddrModeRR,
47 kOperandTypeThumbAddrModeSP,
48 kOperandTypeThumb2SoReg,
49 kOperandTypeThumb2SoImm,
50 kOperandTypeThumb2AddrModeImm8,
51 kOperandTypeThumb2AddrModeImm8Offset,
52 kOperandTypeThumb2AddrModeImm12,
53 kOperandTypeThumb2AddrModeSoReg,
54 kOperandTypeThumb2AddrModeImm8s4,
Bruno Cardoso Lopes505f3cd2011-03-24 21:04:58 +000055 kOperandTypeThumb2AddrModeImm8s4Offset,
56 kOperandTypeThumb2AddrModeReg
Chris Lattnera4f15d62010-07-20 18:59:58 +000057};
58
59enum OperandFlags {
60 kOperandFlagSource = 0x1,
61 kOperandFlagTarget = 0x2
62};
63
64enum InstructionTypes {
65 kInstructionTypeNone,
66 kInstructionTypeMove,
67 kInstructionTypeBranch,
68 kInstructionTypePush,
69 kInstructionTypePop,
70 kInstructionTypeCall,
71 kInstructionTypeReturn
72};
73
74
75#endif