]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/MC/MCDisassembler/EDInfo.h
Upgrade our copy of llvm/clang to r130700, from upstream's trunk.
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / MC / MCDisassembler / EDInfo.h
1 //===-- EDInfo.h - LLVM Enhanced Disassembler -------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 // 
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLVM_EDINFO_H
11 #define LLVM_EDINFO_H
12
13 enum {
14   EDIS_MAX_OPERANDS = 13,
15   EDIS_MAX_SYNTAXES = 2
16 };
17
18 enum 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   kOperandTypeARMAddrMode7,
39   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,
55   kOperandTypeThumb2AddrModeImm8s4Offset,
56   kOperandTypeThumb2AddrModeReg
57 };
58
59 enum OperandFlags {
60   kOperandFlagSource = 0x1,
61   kOperandFlagTarget = 0x2
62 };
63
64 enum InstructionTypes {
65   kInstructionTypeNone,
66   kInstructionTypeMove,
67   kInstructionTypeBranch,
68   kInstructionTypePush,
69   kInstructionTypePop,
70   kInstructionTypeCall,
71   kInstructionTypeReturn
72 };
73
74
75 #endif