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, |
| 28 | kOperandTypeARMSoImm2Part, |
| 29 | kOperandTypeARMPredicate, |
| 30 | kOperandTypeARMAddrMode2, |
| 31 | kOperandTypeARMAddrMode2Offset, |
| 32 | kOperandTypeARMAddrMode3, |
| 33 | kOperandTypeARMAddrMode3Offset, |
| 34 | kOperandTypeARMAddrMode4, |
| 35 | kOperandTypeARMAddrMode5, |
| 36 | kOperandTypeARMAddrMode6, |
| 37 | kOperandTypeARMAddrMode6Offset, |
Bruno Cardoso Lopes | 505f3cd | 2011-03-24 21:04:58 +0000 | [diff] [blame^] | 38 | kOperandTypeARMAddrMode7, |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 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, |
Bruno Cardoso Lopes | 505f3cd | 2011-03-24 21:04:58 +0000 | [diff] [blame^] | 55 | kOperandTypeThumb2AddrModeImm8s4Offset, |
| 56 | kOperandTypeThumb2AddrModeReg |
Chris Lattner | a4f15d6 | 2010-07-20 18:59:58 +0000 | [diff] [blame] | 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 |