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<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)
static DecodeStatus DecodeZK (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 DecodeZPR4Mul4RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
template<unsigned NumBitsForTile>
static DecodeStatus DecodeMatrixTile (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMatrixTileListRegisterClass (MCInst &Inst, unsigned RegMask, 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 Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFixedPointScaleImm64 (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePCRelLabel16 (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePCRelLabel19 (MCInst &Inst, unsigned Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePCRelLabel9 (MCInst &Inst, unsigned Imm, uint64_t Address, 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 DecodeThreeAddrSRegInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMoveImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeUnsignedLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSignedLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeExclusiveLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePairLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeAuthLoadInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeAddSubERegInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeLogicalImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeModImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeModImmTiedInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeAdrInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeAddSubImmShift (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeUnconditionalBranch (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSystemPStateImm0_15Instruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSystemPStateImm0_1Instruction (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeTestAndBranch (MCInst &Inst, uint32_t insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMOVLaneInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
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 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 Address, const MCDisassembler *Decoder)
template
static DecodeStatus DecodeSImm (MCInst &Inst, uint64_t Imm, uint64_t Address, 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 DecodePRFMRegInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, 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_EXTERNAL_VISIBILITY void LLVMInitializeAArch64Disassembler ()
static DecodeStatus DecodeVecShiftRImm (MCInst &Inst, unsigned Imm, unsigned Add)
static DecodeStatus DecodeVecShiftLImm (MCInst &Inst, unsigned Imm, unsigned Add)
static bool isInvalidPState (uint64_t Op1, uint64_t Op2)
static DecodeStatus DecodeGPRSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegClassID, unsigned RegNo, uint64_t Addr, const MCDisassembler *Decoder)

DEBUG_TYPE

#define DEBUG_TYPE "aarch64-disassembler"

Fail

#define Fail MCDisassembler::Fail

SoftFail

#define SoftFail MCDisassembler::SoftFail

Success

#define Success MCDisassembler::Success

DecodeStatus

createAArch64Disassembler()

createAArch64ExternalSymbolizer()

DecodeAddSubERegInstruction()

DecodeAddSubImmShift()

DecodeAdrInstruction()

DecodeAuthLoadInstruction()

DecodeCPYMemOpInstruction()

DecodeExclusiveLdStInstruction()

DecodeFixedPointScaleImm32()

DecodeFixedPointScaleImm64()

DecodeFMOVLaneInstruction()

DecodeGPR64x8ClassRegisterClass()

DecodeGPRSeqPairsClassRegisterClass()

DecodeImm8OptLsl()

template

DecodeLogicalImmInstruction()

DecodeMatrixTile()

DecodeMatrixTileListRegisterClass()

DecodeMemExtend()

DecodeModImmInstruction()

DecodeModImmTiedInstruction()

DecodeMoveImmInstruction()

DecodeMRSSystemRegister()

DecodeMSRSystemRegister()

DecodePairLdStInstruction()

DecodePCRelLabel16()

DecodePCRelLabel19()

DecodePCRelLabel9()

DecodePPR2Mul2RegisterClass()

DecodePRFMRegInstruction()

DecodeSETMemOpInstruction()

DecodeSignedLdStInstruction()

DecodeSImm()

DecodeSimpleRegisterClass()

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()

DecodeZK()

DecodeZPR2Mul2RegisterClass()

DecodeZPR4Mul4RegisterClass()

DecodeZPRMul2_MinMax()

isInvalidPState()

LLVMInitializeAArch64Disassembler()

MatrixZATileDecoderTable

Initial value:

= {

{AArch64::ZAB0},

{AArch64::ZAH0, AArch64::ZAH1},

{AArch64::ZAS0, AArch64::ZAS1, AArch64::ZAS2, AArch64::ZAS3},

{AArch64::ZAD0, AArch64::ZAD1, AArch64::ZAD2, AArch64::ZAD3, AArch64::ZAD4,

AArch64::ZAD5, AArch64::ZAD6, AArch64::ZAD7},

{AArch64::ZAQ0, AArch64::ZAQ1, AArch64::ZAQ2, AArch64::ZAQ3, AArch64::ZAQ4,

AArch64::ZAQ5, AArch64::ZAQ6, AArch64::ZAQ7, AArch64::ZAQ8, AArch64::ZAQ9,

AArch64::ZAQ10, AArch64::ZAQ11, AArch64::ZAQ12, AArch64::ZAQ13,

AArch64::ZAQ14, AArch64::ZAQ15}}

Definition at line 424 of file AArch64Disassembler.cpp.

Referenced by DecodeMatrixTile().