blob: e43ad1635246dd1c04ece7b49806b2b5a88a5f7d [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,
Shantonu Sen7ae0df42011-07-11 17:57:30 +000028 kOperandTypeARMRotImm,
Chris Lattnera4f15d62010-07-20 18:59:58 +000029 kOperandTypeARMSoImm2Part,
30 kOperandTypeARMPredicate,
Shantonu Sen7ae0df42011-07-11 17:57:30 +000031 kOperandTypeAddrModeImm12,
32 kOperandTypeLdStSOReg,
Chris Lattnera4f15d62010-07-20 18:59:58 +000033 kOperandTypeARMAddrMode2,
34 kOperandTypeARMAddrMode2Offset,
35 kOperandTypeARMAddrMode3,
36 kOperandTypeARMAddrMode3Offset,
37 kOperandTypeARMAddrMode4,
38 kOperandTypeARMAddrMode5,
39 kOperandTypeARMAddrMode6,
40 kOperandTypeARMAddrMode6Offset,
Bruno Cardoso Lopes505f3cd2011-03-24 21:04:58 +000041 kOperandTypeARMAddrMode7,
Chris Lattnera4f15d62010-07-20 18:59:58 +000042 kOperandTypeARMAddrModePC,
43 kOperandTypeARMRegisterList,
Shantonu Sen7ae0df42011-07-11 17:57:30 +000044 kOperandTypeARMDPRRegisterList,
45 kOperandTypeARMSPRRegisterList,
Chris Lattnera4f15d62010-07-20 18:59:58 +000046 kOperandTypeARMTBAddrMode,
47 kOperandTypeThumbITMask,
Shantonu Sen7ae0df42011-07-11 17:57:30 +000048 kOperandTypeThumbAddrModeRegS1,
49 kOperandTypeThumbAddrModeRegS2,
50 kOperandTypeThumbAddrModeRegS4,
51 kOperandTypeThumbAddrModeImmS1,
52 kOperandTypeThumbAddrModeImmS2,
53 kOperandTypeThumbAddrModeImmS4,
Chris Lattnera4f15d62010-07-20 18:59:58 +000054 kOperandTypeThumbAddrModeRR,
55 kOperandTypeThumbAddrModeSP,
Shantonu Sen7ae0df42011-07-11 17:57:30 +000056 kOperandTypeThumbAddrModePC,
57 kOperandTypeThumb2AddrModeReg,
Chris Lattnera4f15d62010-07-20 18:59:58 +000058 kOperandTypeThumb2SoReg,
59 kOperandTypeThumb2SoImm,
60 kOperandTypeThumb2AddrModeImm8,
61 kOperandTypeThumb2AddrModeImm8Offset,
62 kOperandTypeThumb2AddrModeImm12,
63 kOperandTypeThumb2AddrModeSoReg,
64 kOperandTypeThumb2AddrModeImm8s4,
Shantonu Sen7ae0df42011-07-11 17:57:30 +000065 kOperandTypeThumb2AddrModeImm8s4Offset
Chris Lattnera4f15d62010-07-20 18:59:58 +000066};
67
68enum OperandFlags {
69 kOperandFlagSource = 0x1,
70 kOperandFlagTarget = 0x2
71};
72
73enum InstructionTypes {
74 kInstructionTypeNone,
75 kInstructionTypeMove,
76 kInstructionTypeBranch,
77 kInstructionTypePush,
78 kInstructionTypePop,
79 kInstructionTypeCall,
80 kInstructionTypeReturn
81};
82
83
84#endif