LLVM  14.0.0git
Macros | Typedefs | Functions | Variables
AArch64Disassembler.cpp File Reference
#include "AArch64Disassembler.h"
#include "AArch64ExternalSymbolizer.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "TargetInfo/AArch64TargetInfo.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm-c/Disassembler.h"
#include "llvm/MC/MCDisassembler/MCRelocationInfo.h"
#include "llvm/MC/MCFixedLenDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include <algorithm>
#include <memory>
#include "AArch64GenDisassemblerTables.inc"
#include "AArch64GenInstrInfo.inc"
Include dependency graph for AArch64Disassembler.cpp:

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
 

Typedefs

using DecodeStatus = MCDisassembler::DecodeStatus
 

Functions

static DecodeStatus DecodeFPR128RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFPR128_loRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFPR64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFPR32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFPR16RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFPR8RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPR64commonRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPR64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPR64x8ClassRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPR64spRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMatrixIndexGPR32_12_15RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPR32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPR32spRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQQRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQQQRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQQQQRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDDRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDDDRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDDDDRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeZPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeZPR_4bRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeZPR_3bRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeZPR2RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeZPR3RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeZPR4RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
template<unsigned NumBitsForTile>
static DecodeStatus DecodeMatrixTile (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMatrixTileListRegisterClass (MCInst &Inst, unsigned RegMask, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePPR_3bRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFixedPointScaleImm32 (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFixedPointScaleImm64 (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePCRelLabel19 (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMemExtend (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMRSSystemRegister (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMSRSystemRegister (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThreeAddrSRegInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMoveImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeUnsignedLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSignedLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeExclusiveLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePairLdStInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAuthLoadInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddSubERegInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeLogicalImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeModImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeModImmTiedInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAdrInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddSubImmShift (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeUnconditionalBranch (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSystemPStateInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeTestAndBranch (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeFMOVLaneInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR64Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR64ImmNarrow (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR32Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR32ImmNarrow (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR16Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR16ImmNarrow (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftR8Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftL64Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftL32Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftL16Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeVecShiftL8Imm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeWSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeXSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeSVELogicalImmInstruction (MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
template<int Bits>
static DecodeStatus DecodeSImm (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder)
 
template<int ElementWidth>
static DecodeStatus DecodeImm8OptLsl (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeSVEIncDecImm (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus DecodeSVCROp (MCInst &Inst, unsigned Imm, uint64_t Address, const void *Decoder)
 
static bool Check (DecodeStatus &Out, DecodeStatus In)
 
static MCDisassemblercreateAArch64Disassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
 
static MCSymbolizercreateAArch64ExternalSymbolizer (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 DecodeStatus DecodeGPRSeqPairsClassRegisterClass (MCInst &Inst, unsigned RegClassID, unsigned RegNo, uint64_t Addr, const void *Decoder)
 

Variables

static const SmallVector< SmallVector< unsigned, 16 >, 5 > MatrixZATileDecoderTable
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-disassembler"

Definition at line 33 of file AArch64Disassembler.cpp.

◆ Fail

#define Fail   MCDisassembler::Fail

Definition at line 261 of file AArch64Disassembler.cpp.

◆ SoftFail

#define SoftFail   MCDisassembler::SoftFail

Definition at line 262 of file AArch64Disassembler.cpp.

◆ Success

#define Success   MCDisassembler::Success

Definition at line 260 of file AArch64Disassembler.cpp.

Typedef Documentation

◆ DecodeStatus

Definition at line 36 of file AArch64Disassembler.cpp.

Function Documentation

◆ Check()

static bool Check ( DecodeStatus Out,
DecodeStatus  In 
)
static

◆ createAArch64Disassembler()

static MCDisassembler* createAArch64Disassembler ( const Target T,
const MCSubtargetInfo STI,
MCContext Ctx 
)
static

Definition at line 264 of file AArch64Disassembler.cpp.

Referenced by LLVMInitializeAArch64Disassembler().

◆ createAArch64ExternalSymbolizer()

static MCSymbolizer* createAArch64ExternalSymbolizer ( const Triple TT,
LLVMOpInfoCallback  GetOpInfo,
LLVMSymbolLookupCallback  SymbolLookUp,
void *  DisInfo,
MCContext Ctx,
std::unique_ptr< MCRelocationInfo > &&  RelInfo 
)
static

Definition at line 363 of file AArch64Disassembler.cpp.

References move.

Referenced by LLVMInitializeAArch64Disassembler().

◆ DecodeAddSubERegInstruction()

static DecodeStatus DecodeAddSubERegInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeAddSubImmShift()

static DecodeStatus DecodeAddSubImmShift ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeAdrInstruction()

static DecodeStatus DecodeAdrInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeAuthLoadInstruction()

static DecodeStatus DecodeAuthLoadInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeDDDDRegisterClass()

static DecodeStatus DecodeDDDDRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeDDDRegisterClass()

static DecodeStatus DecodeDDDRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeDDRegisterClass()

static DecodeStatus DecodeDDRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeExclusiveLdStInstruction()

static DecodeStatus DecodeExclusiveLdStInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFixedPointScaleImm32()

static DecodeStatus DecodeFixedPointScaleImm32 ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFixedPointScaleImm64()

static DecodeStatus DecodeFixedPointScaleImm64 ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFMOVLaneInstruction()

static DecodeStatus DecodeFMOVLaneInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFPR128_loRegisterClass()

static DecodeStatus DecodeFPR128_loRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 407 of file AArch64Disassembler.cpp.

References Addr, DecodeFPR128RegisterClass(), and Fail.

◆ DecodeFPR128RegisterClass()

static DecodeStatus DecodeFPR128RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFPR16RegisterClass()

static DecodeStatus DecodeFPR16RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFPR32RegisterClass()

static DecodeStatus DecodeFPR32RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFPR64RegisterClass()

static DecodeStatus DecodeFPR64RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeFPR8RegisterClass()

static DecodeStatus DecodeFPR8RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPR32RegisterClass()

static DecodeStatus DecodeGPR32RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPR32spRegisterClass()

static DecodeStatus DecodeGPR32spRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPR64commonRegisterClass()

static DecodeStatus DecodeGPR64commonRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPR64RegisterClass()

static DecodeStatus DecodeGPR64RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPR64spRegisterClass()

static DecodeStatus DecodeGPR64spRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPR64x8ClassRegisterClass()

static DecodeStatus DecodeGPR64x8ClassRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPRSeqPairsClassRegisterClass()

static DecodeStatus DecodeGPRSeqPairsClassRegisterClass ( MCInst Inst,
unsigned  RegClassID,
unsigned  RegNo,
uint64_t  Addr,
const void *  Decoder 
)
static

◆ DecodeImm8OptLsl()

template<int ElementWidth>
static DecodeStatus DecodeImm8OptLsl ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

◆ DecodeLogicalImmInstruction()

static DecodeStatus DecodeLogicalImmInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMatrixIndexGPR32_12_15RegisterClass()

static DecodeStatus DecodeMatrixIndexGPR32_12_15RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMatrixTile()

template<unsigned NumBitsForTile>
static DecodeStatus DecodeMatrixTile ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMatrixTileListRegisterClass()

static DecodeStatus DecodeMatrixTileListRegisterClass ( MCInst Inst,
unsigned  RegMask,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMemExtend()

static DecodeStatus DecodeMemExtend ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeModImmInstruction()

static DecodeStatus DecodeModImmInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeModImmTiedInstruction()

static DecodeStatus DecodeModImmTiedInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMoveImmInstruction()

static DecodeStatus DecodeMoveImmInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMRSSystemRegister()

static DecodeStatus DecodeMRSSystemRegister ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMSRSystemRegister()

static DecodeStatus DecodeMSRSystemRegister ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodePairLdStInstruction()

static DecodeStatus DecodePairLdStInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodePCRelLabel19()

static DecodeStatus DecodePCRelLabel19 ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodePPR_3bRegisterClass()

static DecodeStatus DecodePPR_3bRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 658 of file AArch64Disassembler.cpp.

References Addr, DecodePPRRegisterClass(), and Fail.

◆ DecodePPRRegisterClass()

static DecodeStatus DecodePPRRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeQQQQRegisterClass()

static DecodeStatus DecodeQQQQRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeQQQRegisterClass()

static DecodeStatus DecodeQQQRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeQQRegisterClass()

static DecodeStatus DecodeQQRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSignedLdStInstruction()

static DecodeStatus DecodeSignedLdStInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSImm()

template<int Bits>
static DecodeStatus DecodeSImm ( MCInst Inst,
uint64_t  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSVCROp()

static DecodeStatus DecodeSVCROp ( MCInst Inst,
unsigned  Imm,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSVEIncDecImm()

static DecodeStatus DecodeSVEIncDecImm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

◆ DecodeSVELogicalImmInstruction()

static DecodeStatus DecodeSVELogicalImmInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSystemPStateInstruction()

static DecodeStatus DecodeSystemPStateInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeTestAndBranch()

static DecodeStatus DecodeTestAndBranch ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThreeAddrSRegInstruction()

static DecodeStatus DecodeThreeAddrSRegInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeUnconditionalBranch()

static DecodeStatus DecodeUnconditionalBranch ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeUnsignedLdStInstruction()

static DecodeStatus DecodeUnsignedLdStInstruction ( MCInst Inst,
uint32_t  insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVecShiftL16Imm()

static DecodeStatus DecodeVecShiftL16Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 870 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftL32Imm()

static DecodeStatus DecodeVecShiftL32Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 865 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftL64Imm()

static DecodeStatus DecodeVecShiftL64Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 860 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftL8Imm()

static DecodeStatus DecodeVecShiftL8Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 875 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftLImm()

static DecodeStatus DecodeVecShiftLImm ( MCInst Inst,
unsigned  Imm,
unsigned  Add 
)
static

◆ DecodeVecShiftR16Imm()

static DecodeStatus DecodeVecShiftR16Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 844 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR16ImmNarrow()

static DecodeStatus DecodeVecShiftR16ImmNarrow ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 849 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR32Imm()

static DecodeStatus DecodeVecShiftR32Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 833 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR32ImmNarrow()

static DecodeStatus DecodeVecShiftR32ImmNarrow ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 838 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR64Imm()

static DecodeStatus DecodeVecShiftR64Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 822 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR64ImmNarrow()

static DecodeStatus DecodeVecShiftR64ImmNarrow ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 827 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR8Imm()

static DecodeStatus DecodeVecShiftR8Imm ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 855 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftRImm()

static DecodeStatus DecodeVecShiftRImm ( MCInst Inst,
unsigned  Imm,
unsigned  Add 
)
static

◆ DecodeWSeqPairsClassRegisterClass()

static DecodeStatus DecodeWSeqPairsClassRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 1769 of file AArch64Disassembler.cpp.

References Addr, and DecodeGPRSeqPairsClassRegisterClass().

◆ DecodeXSeqPairsClassRegisterClass()

static DecodeStatus DecodeXSeqPairsClassRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 1778 of file AArch64Disassembler.cpp.

References Addr, and DecodeGPRSeqPairsClassRegisterClass().

◆ DecodeZPR2RegisterClass()

static DecodeStatus DecodeZPR2RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeZPR3RegisterClass()

static DecodeStatus DecodeZPR3RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeZPR4RegisterClass()

static DecodeStatus DecodeZPR4RegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeZPR_3bRegisterClass()

static DecodeStatus DecodeZPR_3bRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 573 of file AArch64Disassembler.cpp.

References llvm::Address, DecodeZPRRegisterClass(), and Fail.

◆ DecodeZPR_4bRegisterClass()

static DecodeStatus DecodeZPR_4bRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 565 of file AArch64Disassembler.cpp.

References llvm::Address, DecodeZPRRegisterClass(), and Fail.

◆ DecodeZPRRegisterClass()

static DecodeStatus DecodeZPRRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

◆ LLVMInitializeAArch64Disassembler()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64Disassembler ( )

Variable Documentation

◆ MatrixZATileDecoderTable

const SmallVector<SmallVector<unsigned, 16>, 5> MatrixZATileDecoderTable
static
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 625 of file AArch64Disassembler.cpp.

Referenced by DecodeMatrixTile().