LLVM: lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "aarch64-disassembler"
#define Success MCDisassembler::Success
#define Fail MCDisassembler::Fail
#define SoftFail MCDisassembler::SoftFail
Functions
template
static DecodeStatus DecodeSImm (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned RegClassID, unsigned FirstReg, unsigned NumRegsInClass>
static DecodeStatus DecodeSimpleRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPR64x8ClassRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned Min, unsigned Max>
static DecodeStatus DecodeZPRMul2_MinMax (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned Min, unsigned Max>
static DecodeStatus DecodeZPR2Mul2RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeZK (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeZPR4Mul4RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeMatrixTileListRegisterClass (MCInst &Inst, unsigned RegMask, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeZTRRegisterClass (MCInst &Inst, const MCDisassembler *Decoder)
static DecodeStatus DecodeMPRRegisterClass (MCInst &Inst, const MCDisassembler *Decoder)
static DecodeStatus DecodeMPR8RegisterClass (MCInst &Inst, const MCDisassembler *Decoder)
static DecodeStatus DecodeMPR16RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMPR32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMPR64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMPR128RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePPR2Mul2RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeFixedPointScaleImm32 (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeFixedPointScaleImm64 (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodePCRelLabel16 (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodePCRelLabel19 (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodePCRelLabel9 (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemExtend (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMRSSystemRegister (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSRSystemRegister (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMOVLaneInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftRImm (MCInst &Inst, unsigned Imm, unsigned Add)
static DecodeStatus DecodeVecShiftLImm (MCInst &Inst, unsigned Imm, unsigned Add)
static DecodeStatus DecodeVecShiftR64Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftR64ImmNarrow (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftR32Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftR32ImmNarrow (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftR16Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftR16ImmNarrow (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftR8Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftL64Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftL32Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftL16Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeVecShiftL8Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeThreeAddrSRegInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeMoveImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeUnsignedLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSignedLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeExclusiveLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodePairLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeAuthLoadInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeAddSubERegInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeLogicalImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeModImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeModImmTiedInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeAdrInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeAddSubImmShift (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeUnconditionalBranch (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static bool isInvalidPState (uint64_t Op1, uint64_t Op2)
static DecodeStatus DecodeSystemPStateImm0_15Instruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSystemPStateImm0_1Instruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeTestAndBranch (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPRSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegClassID, unsigned RegNo, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeWSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeXSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSyspXzrInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSVELogicalImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeZeroImm (MCInst &Inst, const MCDisassembler *Decoder)
template
static DecodeStatus DecodeImm8OptLsl (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSVEIncDecImm (MCInst &Inst, unsigned Imm, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSVCROp (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCPYMemOpInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSETMemOpInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSETMemGoOpInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodePRFMRegInstruction (MCInst &Inst, uint32_t insn, uint64_t Addr, const MCDisassembler *Decoder)
static DecodeStatus DecodeSMESpillFillInstruction (MCInst &Inst, uint32_t Bits, uint64_t Addr, const MCDisassembler *Decoder)
static MCDisassembler * createAArch64Disassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
static MCSymbolizer * createAArch64ExternalSymbolizer (const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo)
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64Disassembler ()

DEBUG_TYPE

#define DEBUG_TYPE "aarch64-disassembler"

Fail

#define Fail MCDisassembler::Fail

Definition at line 43 of file AArch64Disassembler.cpp.

Referenced by checkedGetHex(), DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeAdrInstruction(), DecodeAuthLoadInstruction(), DecodeExclusiveLdStInstruction(), DecodeGPR64x8ClassRegisterClass(), DecodeGPRSeqPairsClassRegisterClass(), DecodeImm8OptLsl(), DecodeLogicalImmInstruction(), DecodeMatrixTileListRegisterClass(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodePCRelLabel16(), DecodePPR2Mul2RegisterClass(), DecodePRFMRegInstruction(), DecodeSignedLdStInstruction(), DecodeSImm(), DecodeSimpleRegisterClass(), DecodeSVCROp(), DecodeSVELogicalImmInstruction(), DecodeSyspXzrInstruction(), DecodeSystemPStateImm0_15Instruction(), DecodeSystemPStateImm0_1Instruction(), DecodeThreeAddrSRegInstruction(), DecodeUnsignedLdStInstruction(), DecodeZK(), DecodeZPR2Mul2RegisterClass(), DecodeZPR4Mul4RegisterClass(), DecodeZPRMul2_MinMax(), llvm::object::MachOObjectFile::getChainedFixupsSegments(), parseThunkName(), NodeArray::printAsString(), llvm::sys::RetryAfterSignal(), safeToMergeTerminators(), and llvm::BTFParser::symbolize().

SoftFail

#define SoftFail MCDisassembler::SoftFail

Success

#define Success MCDisassembler::Success

Definition at line 42 of file AArch64Disassembler.cpp.

Referenced by canRenameUntilSecondLoad(), collectMetadataInfo(), combineIRFlags(), computeLabelDiff(), createAtomicLibcall(), createCmpXchgInstFun(), DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeAdrInstruction(), DecodeAuthLoadInstruction(), DecodeExclusiveLdStInstruction(), DecodeFixedPointScaleImm32(), DecodeFixedPointScaleImm64(), DecodeFMOVLaneInstruction(), DecodeGPR64x8ClassRegisterClass(), DecodeGPRSeqPairsClassRegisterClass(), DecodeImm8OptLsl(), DecodeLogicalImmInstruction(), DecodeMatrixTileListRegisterClass(), DecodeMemExtend(), DecodeModImmInstruction(), DecodeModImmTiedInstruction(), DecodeMoveImmInstruction(), DecodeMPR128RegisterClass(), DecodeMPR16RegisterClass(), DecodeMPR32RegisterClass(), DecodeMPR64RegisterClass(), DecodeMPR8RegisterClass(), DecodeMPRRegisterClass(), DecodeMRSSystemRegister(), DecodeMSRSystemRegister(), DecodePairLdStInstruction(), DecodePCRelLabel16(), DecodePCRelLabel19(), DecodePCRelLabel9(), DecodePPR2Mul2RegisterClass(), DecodePRFMRegInstruction(), DecodeSignedLdStInstruction(), DecodeSImm(), DecodeSimpleRegisterClass(), DecodeSMESpillFillInstruction(), DecodeSVCROp(), DecodeSVEIncDecImm(), DecodeSVELogicalImmInstruction(), DecodeSyspXzrInstruction(), DecodeSystemPStateImm0_15Instruction(), DecodeSystemPStateImm0_1Instruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), DecodeUnconditionalBranch(), DecodeUnsignedLdStInstruction(), DecodeVecShiftLImm(), DecodeVecShiftRImm(), DecodeZeroImm(), DecodeZK(), DecodeZPR2Mul2RegisterClass(), DecodeZPR4Mul4RegisterClass(), DecodeZPRMul2_MinMax(), DecodeZTRRegisterClass(), emitLoad(), emitStore(), getCompoundInsn(), LowerCMP_SWAP(), mergeCompatibleInvokesImpl(), and sinkLastInstruction().

DecodeStatus

createAArch64Disassembler()

createAArch64ExternalSymbolizer()

DecodeAddSubERegInstruction()

DecodeAddSubImmShift()

DecodeAdrInstruction()

DecodeAuthLoadInstruction()

DecodeCPYMemOpInstruction()

DecodeExclusiveLdStInstruction()

DecodeFixedPointScaleImm32()

DecodeFixedPointScaleImm64()

DecodeFMOVLaneInstruction()

DecodeGPR64x8ClassRegisterClass()

DecodeGPRSeqPairsClassRegisterClass()

DecodeImm8OptLsl()

template

DecodeLogicalImmInstruction()

DecodeMatrixTileListRegisterClass()

DecodeMemExtend()

DecodeModImmInstruction()

DecodeModImmTiedInstruction()

DecodeMoveImmInstruction()

DecodeMPR128RegisterClass()

DecodeMPR16RegisterClass()

DecodeMPR32RegisterClass()

DecodeMPR64RegisterClass()

DecodeMPR8RegisterClass()

DecodeMPRRegisterClass()

DecodeMRSSystemRegister()

DecodeMSRSystemRegister()

DecodePairLdStInstruction()

DecodePCRelLabel16()

DecodePCRelLabel19()

DecodePCRelLabel9()

DecodePPR2Mul2RegisterClass()

DecodePRFMRegInstruction()

DecodeSETMemGoOpInstruction()

DecodeSETMemOpInstruction()

DecodeSignedLdStInstruction()

DecodeSImm()

DecodeSimpleRegisterClass()

Definition at line 47 of file AArch64Disassembler.cpp.

References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), Fail, and Success.

Referenced by DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeAdrInstruction(), DecodeAuthLoadInstruction(), DecodeCPYMemOpInstruction(), DecodeExclusiveLdStInstruction(), DecodeFMOVLaneInstruction(), DecodeLogicalImmInstruction(), DecodeModImmInstruction(), DecodeModImmTiedInstruction(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodePRFMRegInstruction(), DecodeSETMemGoOpInstruction(), DecodeSETMemOpInstruction(), DecodeSignedLdStInstruction(), DecodeSMESpillFillInstruction(), DecodeSVELogicalImmInstruction(), DecodeSyspXzrInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), and DecodeUnsignedLdStInstruction().

DecodeSMESpillFillInstruction()

DecodeSVCROp()

DecodeSVEIncDecImm()

DecodeSVELogicalImmInstruction()

DecodeSyspXzrInstruction()

DecodeSystemPStateImm0_15Instruction()

DecodeSystemPStateImm0_1Instruction()

DecodeTestAndBranch()

DecodeThreeAddrSRegInstruction()

DecodeUnconditionalBranch()

DecodeUnsignedLdStInstruction()

DecodeVecShiftL16Imm()

DecodeVecShiftL32Imm()

DecodeVecShiftL64Imm()

DecodeVecShiftL8Imm()

DecodeVecShiftLImm()

DecodeVecShiftR16Imm()

DecodeVecShiftR16ImmNarrow()

DecodeVecShiftR32Imm()

DecodeVecShiftR32ImmNarrow()

DecodeVecShiftR64Imm()

DecodeVecShiftR64ImmNarrow()

DecodeVecShiftR8Imm()

DecodeVecShiftRImm()

DecodeWSeqPairsClassRegisterClass()

DecodeXSeqPairsClassRegisterClass()

DecodeZeroImm()

DecodeZK()

DecodeZPR2Mul2RegisterClass()

DecodeZPR4Mul4RegisterClass()

DecodeZPRMul2_MinMax()

DecodeZTRRegisterClass()

isInvalidPState()

LLVMInitializeAArch64Disassembler()