LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
llvm::MCInst Class Reference

#include <MCInst.h>

Inheritance diagram for llvm::MCInst:
Inheritance graph
[legend]

Public Types

typedef SmallVectorImpl
< MCOperand >::iterator 
iterator
 

Public Member Functions

 MCInst ()
 
void setOpcode (unsigned Op)
 
unsigned getOpcode () const
 
void setLoc (SMLoc loc)
 
SMLoc getLoc () const
 
const MCOperandgetOperand (unsigned i) const
 
MCOperandgetOperand (unsigned i)
 
unsigned getNumOperands () const
 
void addOperand (const MCOperand &Op)
 
void clear ()
 
size_t size ()
 
iterator begin ()
 
iterator end ()
 
iterator insert (iterator I, const MCOperand &Op)
 
void print (raw_ostream &OS, const MCAsmInfo *MAI) const
 
void dump () const
 
void dump_pretty (raw_ostream &OS, const MCAsmInfo *MAI=0, const MCInstPrinter *Printer=0, StringRef Separator=" ") const
 Dump the MCInst as prettily as possible using the additional MC structures, if given. Operators are separated by the Separator string. More...
 

Detailed Description

MCInst - Instances of this class represent a single low-level machine instruction.

Definition at line 150 of file MCInst.h.

Member Typedef Documentation

Definition at line 174 of file MCInst.h.

Constructor & Destructor Documentation

llvm::MCInst::MCInst ( )
inline

Definition at line 155 of file MCInst.h.

Member Function Documentation

void llvm::MCInst::addOperand ( const MCOperand Op)
inline

Definition at line 167 of file MCInst.h.

Referenced by llvm::MCInstBuilder::addExpr(), llvm::MCInstBuilder::addFPImm(), llvm::MCInstBuilder::addImm(), llvm::MCInstBuilder::addInst(), llvm::MCInstBuilder::addReg(), convertToSExti8(), Decode2RImmInstruction(), Decode2RUSInstruction(), Decode32BitShiftOperand(), Decode3RImmInstruction(), DecodeACC64DSPRegisterClass(), DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeAddrMode5Operand(), DecodeAddrMode6Operand(), DecodeAddrModeImm12Operand(), DecodeAddrRegExtendOperand(), DecodeAFGR64RegisterClass(), DecodeArmMOVTWInstruction(), decodeBDAddr12Operand(), decodeBDAddr20Operand(), decodeBDLAddr12Len8Operand(), decodeBDXAddr12Operand(), decodeBDXAddr20Operand(), DecodeBitfield32ImmOperand(), DecodeBitfieldInstruction(), DecodeBitfieldMaskOperand(), DecodeBitpOperand(), DecodeBranchImmInstruction(), DecodeBranchTarget(), DecodeBranchTargetMM(), DecodeCCOutOperand(), DecodeCCRRegisterClass(), DecodeCopMemInstruction(), DecodeCoprocessor(), DecodeCPSInstruction(), DecodeCVT32FixedPosOperand(), DecodeDPairRegisterClass(), DecodeDPairSpacedRegisterClass(), DecodeDPRRegisterClass(), DecodeExtSize(), DecodeFCCRegisterClass(), DecodeFGR32RegisterClass(), DecodeFGR64RegisterClass(), DecodeFGRH32RegisterClass(), DecodeFMem(), DecodeFMOVLaneInstruction(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeFPZeroOperand(), DecodeGPR32RegisterClass(), DecodeGPR32wspRegisterClass(), DecodeGPR64noxzrRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64xspRegisterClass(), DecodeGPRPairRegisterClass(), DecodeGPRRegisterClass(), DecodeGPRwithAPSRRegisterClass(), DecodeGRRegsRegisterClass(), DecodeHI32DSPRegisterClass(), DecodeHWRegsRegisterClass(), DecodeInsSize(), DecodeInstSyncBarrierOption(), DecodeIT(), DecodeJumpTarget(), DecodeJumpTargetMM(), DecodeL2RUSInstruction(), DecodeLDSTPairInstruction(), DecodeLO32DSPRegisterClass(), DecodeLogicalImmOperand(), DecodeLSAImm(), DecodeMem(), DecodeMemBarrierOption(), DecodeMemMMImm12(), DecodeMemMMImm16(), DecodeMemMultipleWritebackInstruction(), DecodeMoveWideImmOperand(), DecodeMRRC2(), DecodeMSA128BRegisterClass(), DecodeMSA128DRegisterClass(), DecodeMSA128HRegisterClass(), DecodeMSA128Mem(), DecodeMSA128WRegisterClass(), DecodeMSACtrlRegisterClass(), DecodeMSRMask(), DecodeNamedImmOperand(), DecodeNegImmOperand(), DecodeNEONModImmInstruction(), DecodeNeonMovImmShiftOperand(), decodePCDBLOperand(), DecodePostIdxReg(), DecodePredicateOperand(), DecodeQPRRegisterClass(), DecodeRegExtendOperand(), decodeRegisterClass(), DecodeRegisterClassByID(), DecodeRFEInstruction(), DecodeRRegsRegisterClass(), DecodeRUSInstruction(), DecodeShiftLeftImm16(), DecodeShiftLeftImm32(), DecodeShiftLeftImm64(), DecodeShiftLeftImm8(), DecodeShiftRight16Imm(), DecodeShiftRight32Imm(), DecodeShiftRight64Imm(), DecodeShiftRight8Imm(), DecodeShiftRightImm16(), DecodeShiftRightImm32(), DecodeShiftRightImm64(), DecodeShiftRightImm8(), DecodeSimm16(), decodeSImmOperand(), DecodeSingleIndexedInstruction(), DecodeSOImmOperand(), DecodeSORegImmOperand(), DecodeSORegMemOperand(), DecodeSORegRegOperand(), DecodeSPRRegisterClass(), DecodeSysRegOperand(), DecodeT2AddrModeImm0_1020s4(), DecodeT2AddrModeImm12(), DecodeT2AddrModeSOReg(), DecodeT2Adr(), DecodeT2BInstruction(), DecodeT2BROperand(), DecodeT2CPSInstruction(), DecodeT2Imm8(), DecodeT2Imm8S4(), DecodeT2LoadLabel(), DecodeT2MOVTWInstruction(), DecodeT2ShifterImmOperand(), DecodeT2SOImm(), DecodetcGPRRegisterClass(), DecodeThumbAddrModeIS(), DecodeThumbAddrModePC(), DecodeThumbAddrModeSP(), DecodeThumbAddSpecialReg(), DecodeThumbAddSPImm(), DecodeThumbAddSPReg(), DecodeThumbBCCTargetOperand(), DecodeThumbBLTargetOperand(), DecodeThumbBROperand(), DecodeThumbCmpBROperand(), DecodeThumbCPS(), decodeUImmOperand(), DecodeVCVTD(), DecodeVCVTQ(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3DupInstruction(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDInstruction(), DecodeVLDSTLanePostInstruction(), DecodeVLDSTPostInstruction(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), DecodeVSTInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::Thumb1InstrInfo::getNoopForMachoTarget(), llvm::Thumb2InstrInfo::getNoopForMachoTarget(), llvm::ARMInstrInfo::getNoopForMachoTarget(), llvm::HexagonLowerToMC(), llvm::AMDGPUMCInstLower::lower(), llvm::SystemZMCInstLower::lower(), llvm::XCoreMCInstLower::Lower(), llvm::MipsMCInstLower::Lower(), llvm::MSP430MCInstLower::Lower(), llvm::LowerAArch64MachineInstrToMCInst(), llvm::LowerARMMachineInstrToMCInst(), llvm::LowerPPCMachineInstrToMCInst(), LowerTlsAddr(), LowerUnaryToTwoAddr(), llvm::ARMInstPrinter::printInst(), SimplifyShortImmForm(), SimplifyShortMoveForm(), translateFPRegister(), translateImmediate(), translateRegister(), translateRMMemory(), llvm::MCExternalSymbolizer::tryAddingSymbolicOperand(), and llvm::MCObjectSymbolizer::tryAddingSymbolicOperand().

iterator llvm::MCInst::begin ( )
inline

Definition at line 175 of file MCInst.h.

Referenced by AddThumb1SBit().

void llvm::MCInst::clear ( )
inline

Definition at line 171 of file MCInst.h.

Referenced by DecodeL5RInstructionFail().

void MCInst::dump ( ) const

Definition at line 68 of file MCInst.cpp.

References llvm::dbgs(), and print().

void MCInst::dump_pretty ( raw_ostream OS,
const MCAsmInfo MAI = 0,
const MCInstPrinter Printer = 0,
StringRef  Separator = " " 
) const

Dump the MCInst as prettily as possible using the additional MC structures, if given. Operators are separated by the Separator string.

Definition at line 51 of file MCInst.cpp.

References getNumOperands(), getOpcode(), llvm::MCInstPrinter::getOpcodeName(), getOperand(), and llvm::MCOperand::print().

Referenced by llvm::MCFragment::dump().

iterator llvm::MCInst::end ( )
inline

Definition at line 176 of file MCInst.h.

Referenced by AddThumb1SBit(), and DecodeRegListOperand().

SMLoc llvm::MCInst::getLoc ( ) const
inline

Definition at line 161 of file MCInst.h.

Referenced by getBranchTargetOpValue().

unsigned llvm::MCInst::getNumOperands ( ) const
inline
unsigned llvm::MCInst::getOpcode ( ) const
inline

Definition at line 158 of file MCInst.h.

Referenced by AddThumb1SBit(), DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeArmMOVTWInstruction(), DecodeCopMemInstruction(), DecodeMem(), DecodeMemMultipleWritebackInstruction(), DecodeNEONModImmInstruction(), DecodePredicateOperand(), DecodeRegListOperand(), DecodeT2AddrModeImm12(), DecodeT2AddrModeImm8(), DecodeT2AddrModeSOReg(), DecodeT2LdStPre(), DecodeT2LoadImm12(), DecodeT2LoadImm8(), DecodeT2LoadLabel(), DecodeT2LoadShift(), DecodeT2LoadT(), DecodeT2MOVTWInstruction(), DecodeTBLInstruction(), DecodeThumbAddSpecialReg(), DecodeThumbAddSPReg(), DecodeVLD1DupInstruction(), DecodeVLD2DupInstruction(), DecodeVLDInstruction(), DecodeVLDSTLanePostInstruction(), DecodeVSTInstruction(), dump_pretty(), llvm::EmitAnyX86InstComments(), llvm::AsmPrinter::EmitFunctionBody(), llvm::MCInstrAnalysis::evaluateBranch(), getItineraryLatency(), getLatency(), instIsBreakpoint(), llvm::MCInstrAnalysis::isBranch(), llvm::MCInstrAnalysis::isCall(), llvm::MCInstrAnalysis::isConditionalBranch(), llvm::MCInstrAnalysis::isIndirectBranch(), llvm::MCInstrAnalysis::isReturn(), llvm::MCInstrAnalysis::isTerminator(), llvm::MCInstrAnalysis::isUnconditionalBranch(), LowerDextDins(), LowerLargeShift(), print(), llvm::ARMInstPrinter::printInst(), llvm::X86ATTInstPrinter::printInst(), llvm::HexagonInstPrinter::printInst(), llvm::X86IntelInstPrinter::printInst(), llvm::PPCInstPrinter::printInst(), llvm::MipsInstPrinter::printInst(), llvm::AArch64InstPrinter::printInst(), llvm::ARMInstPrinter::printMSRMaskOperand(), SimplifyMOVSX(), translateImmediate(), translateInstruction(), and translateRMMemory().

const MCOperand& llvm::MCInst::getOperand ( unsigned  i) const
inline

Definition at line 163 of file MCInst.h.

Referenced by checkLowRegisterList(), convert16i16to16ri8(), convert32i32to32ri8(), convert64i32to64ri8(), convertToSExti8(), DecodeInsSize(), DecodeRegListOperand(), DetermineREXPrefix(), dump_pretty(), llvm::EmitAnyX86InstComments(), llvm::MCObjectStreamer::EmitInstruction(), llvm::MCInstrAnalysis::evaluateBranch(), getBranchTargetOpValue(), getITDeprecationInfo(), getMCRDeprecationInfo(), llvm::HexagonMCInst::getNewValue(), HasConditionalBranch(), llvm::MCInstrDesc::hasDefOfPhysReg(), Is16BitMemOperand(), Is32BitMemOperand(), Is64BitMemOperand(), llvm::HexagonMCInst::isConstExtended(), isReg(), listContainsReg(), LowerDextDins(), LowerLargeShift(), LowerUnaryToTwoAddr(), llvm::MCInstrDesc::mayAffectControlFlow(), print(), llvm::PPCInstPrinter::printAbsBranchOperand(), llvm::ARMInstPrinter::printAddrMode2OffsetOperand(), llvm::ARMInstPrinter::printAddrMode2Operand(), llvm::ARMInstPrinter::printAddrMode3OffsetOperand(), llvm::ARMInstPrinter::printAddrMode3Operand(), llvm::ARMInstPrinter::printAddrMode5Operand(), llvm::ARMInstPrinter::printAddrMode6OffsetOperand(), llvm::ARMInstPrinter::printAddrMode6Operand(), llvm::ARMInstPrinter::printAddrMode7Operand(), llvm::ARMInstPrinter::printAddrModeImm12Operand(), llvm::ARMInstPrinter::printAddrModeTBB(), llvm::ARMInstPrinter::printAddrModeTBH(), llvm::AArch64InstPrinter::printAddrRegExtendOperand(), llvm::AArch64InstPrinter::printAddSubImmLSL0Operand(), llvm::ARMInstPrinter::printAdrLabelOperand(), llvm::ARMInstPrinter::printAM2PreOrOffsetIndexOp(), llvm::ARMInstPrinter::printAM3PostIndexOp(), llvm::ARMInstPrinter::printAM3PreOrOffsetIndexOp(), llvm::X86IntelInstPrinter::printAVXCC(), llvm::X86ATTInstPrinter::printAVXCC(), llvm::AArch64InstPrinter::printBareImmOperand(), llvm::AArch64InstPrinter::printBFILSBOperand(), llvm::AArch64InstPrinter::printBFIWidthOperand(), llvm::AArch64InstPrinter::printBFXWidthOperand(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::PPCInstPrinter::printBranchOperand(), llvm::MSP430InstPrinter::printCCOperand(), llvm::ARMInstPrinter::printCImmediate(), llvm::NVPTXInstPrinter::printCmpMode(), llvm::AArch64InstPrinter::printCondCodeOperand(), llvm::HexagonInstPrinter::printConstantPool(), llvm::ARMInstPrinter::printCoprocOptionImm(), llvm::ARMInstPrinter::printCPSIFlag(), llvm::ARMInstPrinter::printCPSIMod(), llvm::PPCInstPrinter::printcrbitm(), llvm::AArch64InstPrinter::printCRxOperand(), llvm::AArch64InstPrinter::printCVTFixedPosOperand(), llvm::NVPTXInstPrinter::printCvtMode(), llvm::ARMInstPrinter::printFBits16(), llvm::ARMInstPrinter::printFBits32(), llvm::AArch64InstPrinter::printFPImmOperand(), llvm::ARMInstPrinter::printFPImmOperand(), llvm::HexagonInstPrinter::printFrameIndexOperand(), llvm::HexagonInstPrinter::printGlobalOperand(), llvm::ARMInstPrinter::printGPRPairOperand(), llvm::HexagonInstPrinter::printImmOperand(), llvm::ARMInstPrinter::printImmPlusOneOperand(), llvm::ARMInstPrinter::printInst(), llvm::PPCInstPrinter::printInst(), llvm::AArch64InstPrinter::printInst(), llvm::ARMInstPrinter::printInstSyncBOption(), llvm::HexagonInstPrinter::printJumpTable(), llvm::AArch64InstPrinter::printLabelOperand(), llvm::NVPTXInstPrinter::printLdStCode(), llvm::ARMInstPrinter::printLdStmModeOperand(), llvm::AArch64InstPrinter::printLogicalImmOperand(), llvm::ARMInstPrinter::printMandatoryPredicateOperand(), llvm::ARMInstPrinter::printMemBOption(), llvm::X86IntelInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::NVPTXInstPrinter::printMemOperand(), llvm::X86IntelInstPrinter::printMemReference(), llvm::X86ATTInstPrinter::printMemReference(), llvm::PPCInstPrinter::printMemRegImm(), llvm::PPCInstPrinter::printMemRegReg(), llvm::HexagonInstPrinter::printMEMriOperand(), llvm::AArch64InstPrinter::printMoveWideImmOperand(), llvm::ARMInstPrinter::printMSRMaskOperand(), llvm::AArch64InstPrinter::printNamedImmOperand(), llvm::HexagonInstPrinter::printNegImmOperand(), llvm::ARMInstPrinter::printNEONModImmOperand(), llvm::AArch64InstPrinter::printNeonMovImmShiftOperand(), llvm::AArch64InstPrinter::printNeonUImm64MaskOperand(), llvm::ARMInstPrinter::printNoHashImmediate(), llvm::AArch64InstPrinter::printOffsetSImm9Operand(), llvm::AArch64InstPrinter::printOffsetUImm12Operand(), llvm::MSP430InstPrinter::printOperand(), llvm::ARMInstPrinter::printOperand(), llvm::X86IntelInstPrinter::printOperand(), llvm::HexagonInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::PPCInstPrinter::printOperand(), llvm::AArch64InstPrinter::printOperand(), llvm::X86IntelInstPrinter::printPCRelImm(), llvm::X86ATTInstPrinter::printPCRelImm(), llvm::MSP430InstPrinter::printPCRelImmOperand(), llvm::ARMInstPrinter::printPImmediate(), llvm::ARMInstPrinter::printPKHASRShiftImm(), llvm::ARMInstPrinter::printPKHLSLShiftImm(), llvm::ARMInstPrinter::printPostIdxImm8Operand(), llvm::ARMInstPrinter::printPostIdxImm8s4Operand(), llvm::ARMInstPrinter::printPostIdxRegOperand(), llvm::PPCInstPrinter::printPredicateOperand(), llvm::ARMInstPrinter::printPredicateOperand(), llvm::NVPTXInstPrinter::printProtoIdent(), llvm::AArch64InstPrinter::printRegExtendOperand(), llvm::ARMInstPrinter::printRegisterList(), llvm::ARMInstPrinter::printRotImmOperand(), llvm::PPCInstPrinter::printS16ImmOperand(), llvm::PPCInstPrinter::printS5ImmOperand(), llvm::ARMInstPrinter::printSBitModifierOperand(), llvm::ARMInstPrinter::printSetendOperand(), llvm::ARMInstPrinter::printShiftImmOperand(), llvm::AArch64InstPrinter::printShiftOperand(), llvm::AArch64InstPrinter::printSImm7ScaledOperand(), llvm::ARMInstPrinter::printSORegImmOperand(), llvm::ARMInstPrinter::printSORegRegOperand(), llvm::MSP430InstPrinter::printSrcMemOperand(), llvm::X86IntelInstPrinter::printSSECC(), llvm::X86ATTInstPrinter::printSSECC(), llvm::HexagonInstPrinter::printSymbol(), llvm::AArch64InstPrinter::printSysRegOperand(), llvm::ARMInstPrinter::printT2AddrModeImm0_1020s4Operand(), llvm::ARMInstPrinter::printT2AddrModeImm8OffsetOperand(), llvm::ARMInstPrinter::printT2AddrModeImm8Operand(), llvm::ARMInstPrinter::printT2AddrModeImm8s4OffsetOperand(), llvm::ARMInstPrinter::printT2AddrModeImm8s4Operand(), llvm::ARMInstPrinter::printT2AddrModeSoRegOperand(), llvm::ARMInstPrinter::printT2SOOperand(), llvm::ARMInstPrinter::printThumbAddrModeImm5SOperand(), llvm::ARMInstPrinter::printThumbAddrModeRROperand(), llvm::ARMInstPrinter::printThumbITMask(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), llvm::ARMInstPrinter::printThumbS4ImmOperand(), llvm::ARMInstPrinter::printThumbSRImm(), llvm::PPCInstPrinter::printU16ImmOperand(), llvm::PPCInstPrinter::printU5ImmOperand(), llvm::PPCInstPrinter::printU6ImmOperand(), llvm::AArch64InstPrinter::printUImmBareOperand(), llvm::AArch64InstPrinter::printUImmHexOperand(), llvm::HexagonInstPrinter::printUnsignedImmOperand(), llvm::ARMInstPrinter::printVectorIndex(), llvm::AArch64InstPrinter::printVectorList(), llvm::ARMInstPrinter::printVectorListFour(), llvm::ARMInstPrinter::printVectorListFourAllLanes(), llvm::ARMInstPrinter::printVectorListFourSpaced(), llvm::ARMInstPrinter::printVectorListFourSpacedAllLanes(), llvm::ARMInstPrinter::printVectorListOne(), llvm::ARMInstPrinter::printVectorListOneAllLanes(), llvm::ARMInstPrinter::printVectorListThree(), llvm::ARMInstPrinter::printVectorListThreeAllLanes(), llvm::ARMInstPrinter::printVectorListThreeSpaced(), llvm::ARMInstPrinter::printVectorListThreeSpacedAllLanes(), llvm::ARMInstPrinter::printVectorListTwo(), llvm::ARMInstPrinter::printVectorListTwoAllLanes(), llvm::ARMInstPrinter::printVectorListTwoSpaced(), llvm::ARMInstPrinter::printVectorListTwoSpacedAllLanes(), llvm::AArch64InstPrinter::printVPRRegister(), SimplifyMOVSX(), SimplifyShortImmForm(), and SimplifyShortMoveForm().

MCOperand& llvm::MCInst::getOperand ( unsigned  i)
inline

Definition at line 164 of file MCInst.h.

iterator llvm::MCInst::insert ( iterator  I,
const MCOperand Op 
)
inline

Definition at line 177 of file MCInst.h.

Referenced by AddThumb1SBit().

void MCInst::print ( raw_ostream OS,
const MCAsmInfo MAI 
) const

Definition at line 42 of file MCInst.cpp.

References getNumOperands(), getOpcode(), getOperand(), and llvm::MCOperand::print().

Referenced by dump(), and llvm::operator<<().

void llvm::MCInst::setLoc ( SMLoc  loc)
inline

Definition at line 160 of file MCInst.h.

void llvm::MCInst::setOpcode ( unsigned  Op)
inline
size_t llvm::MCInst::size ( )
inline

Definition at line 172 of file MCInst.h.


The documentation for this class was generated from the following files: