LLVM 22.0.0git
llvm::MCD Namespace Reference

Enumerations

enum  DecoderOps {
  OPC_Scope = 1 , OPC_ExtractField , OPC_FilterValueOrSkip , OPC_FilterValue ,
  OPC_CheckField , OPC_CheckPredicate , OPC_Decode , OPC_TryDecode ,
  OPC_SoftFail
}

Functions

bool Check (MCDisassembler::DecodeStatus &Out, MCDisassembler::DecodeStatus In)
template<typename IntType>
std::enable_if_t< std::is_integral_v< IntType >, IntType > fieldFromInstruction (const IntType &Insn, unsigned StartBit, unsigned NumBits)
template<typename InsnType>
std::enable_if_t<!std::is_integral_v< InsnType >, uint64_tfieldFromInstruction (const InsnType &Insn, unsigned StartBit, unsigned NumBits)
template<size_t N>
uint64_t fieldFromInstruction (const std::bitset< N > &Insn, unsigned StartBit, unsigned NumBits)
template<typename IntType>
static std::enable_if_t< std::is_integral_v< IntType >, void > insertBits (IntType &field, IntType bits, unsigned startBit, unsigned numBits)

Enumeration Type Documentation

◆ DecoderOps

Enumerator
OPC_Scope 
OPC_ExtractField 
OPC_FilterValueOrSkip 
OPC_FilterValue 
OPC_CheckField 
OPC_CheckPredicate 
OPC_Decode 
OPC_TryDecode 
OPC_SoftFail 

Definition at line 18 of file MCDecoderOps.h.

Function Documentation

◆ Check()

bool llvm::MCD::Check ( MCDisassembler::DecodeStatus & Out,
MCDisassembler::DecodeStatus In )
inline

Definition at line 24 of file MCDecoder.h.

References Check(), and llvm::MCDisassembler::Fail.

Referenced by Check().

◆ fieldFromInstruction() [1/3]

template<typename InsnType>
std::enable_if_t<!std::is_integral_v< InsnType >, uint64_t > llvm::MCD::fieldFromInstruction ( const InsnType & Insn,
unsigned StartBit,
unsigned NumBits )
inline

Definition at line 47 of file MCDecoder.h.

◆ fieldFromInstruction() [2/3]

template<typename IntType>
std::enable_if_t< std::is_integral_v< IntType >, IntType > llvm::MCD::fieldFromInstruction ( const IntType & Insn,
unsigned StartBit,
unsigned NumBits )
inline

Definition at line 37 of file MCDecoder.h.

References assert().

Referenced by Decode2OpInstruction(), Decode2OpInstructionFail(), Decode3OpInstruction(), DecodeAddiGroupBranch(), DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeAddrMode5FP16Operand(), DecodeAddrMode5Operand(), DecodeAddrMode6Operand(), DecodeAddrModeImm12Operand(), DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeAdrInstruction(), decodeAField(), DecodeArmMOVTWInstruction(), DecodeAS(), DecodeASX(), DecodeAuthLoadInstruction(), DecodeBankedReg(), decodeBField(), DecodeBgtzGroupBranch(), DecodeBgtzGroupBranchMMR6(), DecodeBgtzlGroupBranch(), DecodeBitfieldMaskOperand(), DecodeBlezGroupBranch(), DecodeBlezGroupBranchMMR6(), DecodeBlezlGroupBranch(), DecodeBranchCondition(), DecodeBranchImmInstruction(), DecodeCacheeOp_CacheOpR6(), DecodeCacheOp(), DecodeCacheOpMM(), DecodeCall(), DecodeCAS(), DecodeCCRU6Instruction(), decodeCField(), DecodeCopMemInstruction(), DecodeCPSInstruction(), DecodeCPYMemOpInstruction(), DecodeCRC(), decodeCSSPushPopchk(), DecodeDaddiGroupBranch(), DecodeDAHIDATI(), DecodeDAHIDATIMMR6(), DecodeDEXT(), DecodeDINS(), DecodeDoubleRegLoad(), DecodeDoubleRegStore(), DecodeDPRRegListOperand(), DecodeDstAddrMode(), DecodeExclusiveLdStInstruction(), DecodeFMem(), DecodeFMem2(), DecodeFMem3(), DecodeFMemCop2MMR6(), DecodeFMemCop2R6(), DecodeFMemMMR2(), DecodeFMOVLaneInstruction(), DecodeForVMRSandVMSR(), DecodeHINTInstruction(), DecodeINSVE_DF(), DecodeIT(), DecodeJumpTarget(), DecodeJumpTargetMM(), DecodeJumpTargetXMM(), DecodeL2OpInstructionFail(), DecodeL2RInstruction(), DecodeL2RUSBitpInstruction(), DecodeL2RUSInstruction(), DecodeL3RInstruction(), DecodeL3RSrcDstInstruction(), DecodeL4RSrcDstInstruction(), DecodeL4RSrcDstSrcDstInstruction(), DecodeL5RInstruction(), DecodeL5RInstructionFail(), DecodeL6RInstruction(), DecodeLazyLoadStoreMul(), DecodeLDR(), DecodeLDRPreImm(), DecodeLDRPreReg(), DecodeLoadByte15(), DecodeLogicalImmInstruction(), DecodeLOLoop(), DecodeLR2RInstruction(), DecodeMem(), DecodeMem(), DecodeMemAS(), DecodeMemEVA(), DecodeMemMMGPImm7Lsl2(), DecodeMemMMImm12(), DecodeMemMMImm16(), DecodeMemMMImm4(), DecodeMemMMImm9(), DecodeMemMMReglistImm4Lsl2(), DecodeMemMMSPImm5Lsl2(), DecodeMemMultipleWritebackInstruction(), DecodeModImmInstruction(), DecodeModImmTiedInstruction(), DecodeMoveHRegInstruction(), DecodeMoveImmInstruction(), DecodeMovePOperands(), DecodeMSA128Mem(), DecodeMSRMask(), DecodeMVE_MEM_1_pre(), DecodeMVE_MEM_2_pre(), DecodeMVE_MEM_3_pre(), DecodeMVE_MEM_pre(), DecodeMveAddrModeQ(), DecodeMveAddrModeRQ(), DecodeMVEModImmInstruction(), DecodeMVEOverlappingLongShift(), DecodeMVEVADCInstruction(), DecodeMVEVCMP(), DecodeMveVCTP(), DecodeMVEVCVTt1fp(), DecodeMVEVMOVDRegtoQ(), DecodeMVEVMOVQtoDReg(), DecodeNEONComplexLane64Instruction(), DecodePairLdStInstruction(), DecodePOP35GroupBranchMMR6(), DecodePOP37GroupBranchMMR6(), DecodePOP65GroupBranchMMR6(), DecodePOP75GroupBranchMMR6(), DecodePostIdxReg(), DecodePrefeOpMM(), DecodePRFMRegInstruction(), DecodeQADDInstruction(), DecodeRegListOperand(), DecodeRegListOperand16(), DecodeRFEInstruction(), DecoderForMRRC2AndMCRR2(), DecodeSETMemOpInstruction(), DecodeSETPANInstruction(), DecodeSignedLdStInstruction(), DecodeSMESpillFillInstruction(), DecodeSMLAInstruction(), DecodeSOPwithRS12(), DecodeSOPwithRU6(), DecodeSORegImmOperand(), DecodeSORegMemOperand(), DecodeSORegRegOperand(), DecodeSpecial3LlSc(), DecodeSPRRegListOperand(), DecodeSrcAddrModeI(), DecodeSrcAddrModeII(), DecodeSTRPreImm(), DecodeSTRPreReg(), DecodeSVELogicalImmInstruction(), DecodeSwap(), DecodeSyncI(), DecodeSyncI_MM(), DecodeSynciR6(), DecodeSyspXzrInstruction(), DecodeSystemPStateImm0_15Instruction(), DecodeSystemPStateImm0_1Instruction(), DecodeT2AddrModeImm0_1020s4(), DecodeT2AddrModeImm12(), DecodeT2AddrModeImm7(), DecodeT2AddrModeImm7s4(), DecodeT2AddrModeImm8(), DecodeT2AddrModeImm8s4(), DecodeT2AddrModeSOReg(), DecodeT2AddSubSPImm(), DecodeT2Adr(), DecodeT2BInstruction(), DecodeT2CPSInstruction(), DecodeT2HintSpaceInstruction(), DecodeT2LDRDPreInstruction(), DecodeT2LdStPre(), DecodeT2LoadImm12(), DecodeT2LoadImm8(), DecodeT2LoadLabel(), DecodeT2LoadShift(), DecodeT2LoadT(), DecodeT2MOVTWInstruction(), DecodeT2SOImm(), DecodeT2STRDPreInstruction(), DecodeTAddrModeImm7(), DecodeTBLInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), DecodeThumb2BCCInstruction(), DecodeThumbAddrModeIS(), DecodeThumbAddrModeRR(), DecodeThumbAddSpecialReg(), DecodeThumbAddSPImm(), DecodeThumbAddSPReg(), DecodeThumbCPS(), DecodeThumbTableBranch(), DecodeTSTInstruction(), DecodeUnconditionalBranch(), DecodeUnsignedLdStInstruction(), DecodeVCVTD(), DecodeVCVTQ(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3DupInstruction(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDInstruction(), DecodeVLDST1Instruction(), DecodeVLDST2Instruction(), DecodeVLDST3Instruction(), DecodeVLDST4Instruction(), DecodeVMOVModImmInstruction(), DecodeVMOVRRS(), DecodeVMOVSRR(), DecodeVSCCLRM(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), DecodeVSTInstruction(), DecodeVSTRVLDR_SYSREG(), and decodeXTHeadMemPair().

◆ fieldFromInstruction() [3/3]

template<size_t N>
uint64_t llvm::MCD::fieldFromInstruction ( const std::bitset< N > & Insn,
unsigned StartBit,
unsigned NumBits )

Definition at line 53 of file MCDecoder.h.

◆ insertBits()

template<typename IntType>
std::enable_if_t< std::is_integral_v< IntType >, void > llvm::MCD::insertBits ( IntType & field,
IntType bits,
unsigned startBit,
unsigned numBits )
static

Definition at line 65 of file MCDecoder.h.