Chris Lattner | 6f0414a | 2010-07-20 19:43:19 +0000 | [diff] [blame] | 1 | //===-- EDInfo.h - LLVM Enhanced Disassembler -------------------*- C++ -*-===// |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 2 | // |
Chris Lattner | 6f0414a | 2010-07-20 19:43:19 +0000 | [diff] [blame] | 3 | // The LLVM Compiler Infrastructure |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 4 | // |
Chris Lattner | 6f0414a | 2010-07-20 19:43:19 +0000 | [diff] [blame] | 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 8 | //===----------------------------------------------------------------------===// |
| 9 | |
Chris Lattner | 6f0414a | 2010-07-20 19:43:19 +0000 | [diff] [blame] | 10 | #ifndef LLVM_EDINFO_H |
| 11 | #define LLVM_EDINFO_H |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 12 | |
Chris Lattner | 6f0414a | 2010-07-20 19:43:19 +0000 | [diff] [blame] | 13 | enum { |
| 14 | EDIS_MAX_OPERANDS = 13, |
| 15 | EDIS_MAX_SYNTAXES = 2 |
| 16 | }; |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 17 | |
| 18 | enum OperandTypes { |
| 19 | kOperandTypeNone, |
| 20 | kOperandTypeImmediate, |
| 21 | kOperandTypeRegister, |
| 22 | kOperandTypeX86Memory, |
| 23 | kOperandTypeX86EffectiveAddress, |
| 24 | kOperandTypeX86PCRelative, |
| 25 | kOperandTypeARMBranchTarget, |
| 26 | kOperandTypeARMSoReg, |
| 27 | kOperandTypeARMSoImm, |
Shantonu Sen | 7ae0df4 | 2011-07-11 17:57:30 +0000 | [diff] [blame] | 28 | kOperandTypeARMRotImm, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 29 | kOperandTypeARMSoImm2Part, |
| 30 | kOperandTypeARMPredicate, |
Shantonu Sen | 7ae0df4 | 2011-07-11 17:57:30 +0000 | [diff] [blame] | 31 | kOperandTypeAddrModeImm12, |
| 32 | kOperandTypeLdStSOReg, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 33 | kOperandTypeARMAddrMode2, |
| 34 | kOperandTypeARMAddrMode2Offset, |
| 35 | kOperandTypeARMAddrMode3, |
| 36 | kOperandTypeARMAddrMode3Offset, |
| 37 | kOperandTypeARMAddrMode4, |
| 38 | kOperandTypeARMAddrMode5, |
| 39 | kOperandTypeARMAddrMode6, |
| 40 | kOperandTypeARMAddrMode6Offset, |
Bruno Cardoso Lopes | 505f3cd | 2011-03-24 21:04:58 +0000 | [diff] [blame] | 41 | kOperandTypeARMAddrMode7, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 42 | kOperandTypeARMAddrModePC, |
| 43 | kOperandTypeARMRegisterList, |
Shantonu Sen | 7ae0df4 | 2011-07-11 17:57:30 +0000 | [diff] [blame] | 44 | kOperandTypeARMDPRRegisterList, |
| 45 | kOperandTypeARMSPRRegisterList, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 46 | kOperandTypeARMTBAddrMode, |
| 47 | kOperandTypeThumbITMask, |
Shantonu Sen | 7ae0df4 | 2011-07-11 17:57:30 +0000 | [diff] [blame] | 48 | kOperandTypeThumbAddrModeRegS1, |
| 49 | kOperandTypeThumbAddrModeRegS2, |
| 50 | kOperandTypeThumbAddrModeRegS4, |
| 51 | kOperandTypeThumbAddrModeImmS1, |
| 52 | kOperandTypeThumbAddrModeImmS2, |
| 53 | kOperandTypeThumbAddrModeImmS4, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 54 | kOperandTypeThumbAddrModeRR, |
| 55 | kOperandTypeThumbAddrModeSP, |
Shantonu Sen | 7ae0df4 | 2011-07-11 17:57:30 +0000 | [diff] [blame] | 56 | kOperandTypeThumbAddrModePC, |
| 57 | kOperandTypeThumb2AddrModeReg, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 58 | kOperandTypeThumb2SoReg, |
| 59 | kOperandTypeThumb2SoImm, |
| 60 | kOperandTypeThumb2AddrModeImm8, |
| 61 | kOperandTypeThumb2AddrModeImm8Offset, |
| 62 | kOperandTypeThumb2AddrModeImm12, |
| 63 | kOperandTypeThumb2AddrModeSoReg, |
| 64 | kOperandTypeThumb2AddrModeImm8s4, |
Shantonu Sen | 7ae0df4 | 2011-07-11 17:57:30 +0000 | [diff] [blame] | 65 | kOperandTypeThumb2AddrModeImm8s4Offset |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 66 | }; |
| 67 | |
| 68 | enum OperandFlags { |
| 69 | kOperandFlagSource = 0x1, |
| 70 | kOperandFlagTarget = 0x2 |
| 71 | }; |
| 72 | |
| 73 | enum InstructionTypes { |
| 74 | kInstructionTypeNone, |
| 75 | kInstructionTypeMove, |
| 76 | kInstructionTypeBranch, |
| 77 | kInstructionTypePush, |
| 78 | kInstructionTypePop, |
| 79 | kInstructionTypeCall, |
| 80 | kInstructionTypeReturn |
| 81 | }; |
| 82 | |
| 83 | |
| 84 | #endif |