LLVM  13.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/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/TargetRegistry.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 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)
 
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 (llvm::MCInst &Inst, uint32_t insn, uint64_t Address, const void *Decoder)
 
template<int Bits>
static DecodeStatus DecodeSImm (llvm::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 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 DecodeVectorRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Addr, const void *Decoder)
 
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 unsigned FPR128DecoderTable []
 
static const unsigned FPR64DecoderTable []
 
static const unsigned FPR32DecoderTable []
 
static const unsigned FPR16DecoderTable []
 
static const unsigned FPR8DecoderTable []
 
static const unsigned GPR64DecoderTable []
 
static const unsigned GPR64x8DecoderTable []
 
static const unsigned GPR32DecoderTable []
 
static const unsigned ZPRDecoderTable []
 
static const unsigned ZZDecoderTable []
 
static const unsigned ZZZDecoderTable []
 
static const unsigned ZZZZDecoderTable []
 
static const unsigned PPRDecoderTable []
 
static const unsigned VectorDecoderTable []
 
static const unsigned QQDecoderTable []
 
static const unsigned QQQDecoderTable []
 
static const unsigned QQQQDecoderTable []
 
static const unsigned DDDecoderTable []
 
static const unsigned DDDDecoderTable []
 
static const unsigned DDDDDecoderTable []
 

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 249 of file AArch64Disassembler.cpp.

◆ SoftFail

#define SoftFail   MCDisassembler::SoftFail

Definition at line 250 of file AArch64Disassembler.cpp.

◆ Success

#define Success   MCDisassembler::Success

Definition at line 248 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 252 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 287 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 340 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

◆ 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 662 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 ( llvm::MCInst Inst,
uint64_t  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 ( llvm::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 967 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftL32Imm()

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

Definition at line 962 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftL64Imm()

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

Definition at line 957 of file AArch64Disassembler.cpp.

References DecodeVecShiftLImm().

◆ DecodeVecShiftL8Imm()

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

Definition at line 972 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 941 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR16ImmNarrow()

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

Definition at line 946 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR32Imm()

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

Definition at line 930 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR32ImmNarrow()

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

Definition at line 935 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR64Imm()

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

Definition at line 919 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR64ImmNarrow()

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

Definition at line 924 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftR8Imm()

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

Definition at line 952 of file AArch64Disassembler.cpp.

References DecodeVecShiftRImm().

◆ DecodeVecShiftRImm()

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

◆ DecodeVectorRegisterClass()

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

◆ DecodeWSeqPairsClassRegisterClass()

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

Definition at line 1866 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 1875 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 568 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 560 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

◆ DDDDDecoderTable

const unsigned DDDDDecoderTable[]
static
Initial value:
= {
AArch64::D0_D1_D2_D3, AArch64::D1_D2_D3_D4, AArch64::D2_D3_D4_D5,
AArch64::D3_D4_D5_D6, AArch64::D4_D5_D6_D7, AArch64::D5_D6_D7_D8,
AArch64::D6_D7_D8_D9, AArch64::D7_D8_D9_D10, AArch64::D8_D9_D10_D11,
AArch64::D9_D10_D11_D12, AArch64::D10_D11_D12_D13, AArch64::D11_D12_D13_D14,
AArch64::D12_D13_D14_D15, AArch64::D13_D14_D15_D16, AArch64::D14_D15_D16_D17,
AArch64::D15_D16_D17_D18, AArch64::D16_D17_D18_D19, AArch64::D17_D18_D19_D20,
AArch64::D18_D19_D20_D21, AArch64::D19_D20_D21_D22, AArch64::D20_D21_D22_D23,
AArch64::D21_D22_D23_D24, AArch64::D22_D23_D24_D25, AArch64::D23_D24_D25_D26,
AArch64::D24_D25_D26_D27, AArch64::D25_D26_D27_D28, AArch64::D26_D27_D28_D29,
AArch64::D27_D28_D29_D30, AArch64::D28_D29_D30_D31, AArch64::D29_D30_D31_D0,
AArch64::D30_D31_D0_D1, AArch64::D31_D0_D1_D2
}

Definition at line 803 of file AArch64Disassembler.cpp.

Referenced by DecodeDDDDRegisterClass().

◆ DDDDecoderTable

const unsigned DDDDecoderTable[]
static
Initial value:
= {
AArch64::D0_D1_D2, AArch64::D1_D2_D3, AArch64::D2_D3_D4,
AArch64::D3_D4_D5, AArch64::D4_D5_D6, AArch64::D5_D6_D7,
AArch64::D6_D7_D8, AArch64::D7_D8_D9, AArch64::D8_D9_D10,
AArch64::D9_D10_D11, AArch64::D10_D11_D12, AArch64::D11_D12_D13,
AArch64::D12_D13_D14, AArch64::D13_D14_D15, AArch64::D14_D15_D16,
AArch64::D15_D16_D17, AArch64::D16_D17_D18, AArch64::D17_D18_D19,
AArch64::D18_D19_D20, AArch64::D19_D20_D21, AArch64::D20_D21_D22,
AArch64::D21_D22_D23, AArch64::D22_D23_D24, AArch64::D23_D24_D25,
AArch64::D24_D25_D26, AArch64::D25_D26_D27, AArch64::D26_D27_D28,
AArch64::D27_D28_D29, AArch64::D28_D29_D30, AArch64::D29_D30_D31,
AArch64::D30_D31_D0, AArch64::D31_D0_D1
}

Definition at line 780 of file AArch64Disassembler.cpp.

Referenced by DecodeDDDRegisterClass().

◆ DDDecoderTable

const unsigned DDDecoderTable[]
static
Initial value:
= {
AArch64::D0_D1, AArch64::D1_D2, AArch64::D2_D3, AArch64::D3_D4,
AArch64::D4_D5, AArch64::D5_D6, AArch64::D6_D7, AArch64::D7_D8,
AArch64::D8_D9, AArch64::D9_D10, AArch64::D10_D11, AArch64::D11_D12,
AArch64::D12_D13, AArch64::D13_D14, AArch64::D14_D15, AArch64::D15_D16,
AArch64::D16_D17, AArch64::D17_D18, AArch64::D18_D19, AArch64::D19_D20,
AArch64::D20_D21, AArch64::D21_D22, AArch64::D22_D23, AArch64::D23_D24,
AArch64::D24_D25, AArch64::D25_D26, AArch64::D26_D27, AArch64::D27_D28,
AArch64::D28_D29, AArch64::D29_D30, AArch64::D30_D31, AArch64::D31_D0
}

Definition at line 760 of file AArch64Disassembler.cpp.

Referenced by DecodeDDRegisterClass().

◆ FPR128DecoderTable

const unsigned FPR128DecoderTable[]
static
Initial value:
= {
AArch64::Q0, AArch64::Q1, AArch64::Q2, AArch64::Q3, AArch64::Q4,
AArch64::Q5, AArch64::Q6, AArch64::Q7, AArch64::Q8, AArch64::Q9,
AArch64::Q10, AArch64::Q11, AArch64::Q12, AArch64::Q13, AArch64::Q14,
AArch64::Q15, AArch64::Q16, AArch64::Q17, AArch64::Q18, AArch64::Q19,
AArch64::Q20, AArch64::Q21, AArch64::Q22, AArch64::Q23, AArch64::Q24,
AArch64::Q25, AArch64::Q26, AArch64::Q27, AArch64::Q28, AArch64::Q29,
AArch64::Q30, AArch64::Q31
}

Definition at line 319 of file AArch64Disassembler.cpp.

Referenced by DecodeFPR128RegisterClass().

◆ FPR16DecoderTable

const unsigned FPR16DecoderTable[]
static
Initial value:
= {
AArch64::H0, AArch64::H1, AArch64::H2, AArch64::H3, AArch64::H4,
AArch64::H5, AArch64::H6, AArch64::H7, AArch64::H8, AArch64::H9,
AArch64::H10, AArch64::H11, AArch64::H12, AArch64::H13, AArch64::H14,
AArch64::H15, AArch64::H16, AArch64::H17, AArch64::H18, AArch64::H19,
AArch64::H20, AArch64::H21, AArch64::H22, AArch64::H23, AArch64::H24,
AArch64::H25, AArch64::H26, AArch64::H27, AArch64::H28, AArch64::H29,
AArch64::H30, AArch64::H31
}

Definition at line 390 of file AArch64Disassembler.cpp.

Referenced by DecodeFPR16RegisterClass().

◆ FPR32DecoderTable

const unsigned FPR32DecoderTable[]
static
Initial value:
= {
AArch64::S0, AArch64::S1, AArch64::S2, AArch64::S3, AArch64::S4,
AArch64::S5, AArch64::S6, AArch64::S7, AArch64::S8, AArch64::S9,
AArch64::S10, AArch64::S11, AArch64::S12, AArch64::S13, AArch64::S14,
AArch64::S15, AArch64::S16, AArch64::S17, AArch64::S18, AArch64::S19,
AArch64::S20, AArch64::S21, AArch64::S22, AArch64::S23, AArch64::S24,
AArch64::S25, AArch64::S26, AArch64::S27, AArch64::S28, AArch64::S29,
AArch64::S30, AArch64::S31
}

Definition at line 369 of file AArch64Disassembler.cpp.

Referenced by DecodeFPR32RegisterClass().

◆ FPR64DecoderTable

const unsigned FPR64DecoderTable[]
static
Initial value:
= {
AArch64::D0, AArch64::D1, AArch64::D2, AArch64::D3, AArch64::D4,
AArch64::D5, AArch64::D6, AArch64::D7, AArch64::D8, AArch64::D9,
AArch64::D10, AArch64::D11, AArch64::D12, AArch64::D13, AArch64::D14,
AArch64::D15, AArch64::D16, AArch64::D17, AArch64::D18, AArch64::D19,
AArch64::D20, AArch64::D21, AArch64::D22, AArch64::D23, AArch64::D24,
AArch64::D25, AArch64::D26, AArch64::D27, AArch64::D28, AArch64::D29,
AArch64::D30, AArch64::D31
}

Definition at line 348 of file AArch64Disassembler.cpp.

Referenced by DecodeFPR64RegisterClass().

◆ FPR8DecoderTable

const unsigned FPR8DecoderTable[]
static
Initial value:
= {
AArch64::B0, AArch64::B1, AArch64::B2, AArch64::B3, AArch64::B4,
AArch64::B5, AArch64::B6, AArch64::B7, AArch64::B8, AArch64::B9,
AArch64::B10, AArch64::B11, AArch64::B12, AArch64::B13, AArch64::B14,
AArch64::B15, AArch64::B16, AArch64::B17, AArch64::B18, AArch64::B19,
AArch64::B20, AArch64::B21, AArch64::B22, AArch64::B23, AArch64::B24,
AArch64::B25, AArch64::B26, AArch64::B27, AArch64::B28, AArch64::B29,
AArch64::B30, AArch64::B31
}

Definition at line 411 of file AArch64Disassembler.cpp.

Referenced by DecodeFPR8RegisterClass().

◆ GPR32DecoderTable

const unsigned GPR32DecoderTable[]
static
Initial value:
= {
AArch64::W0, AArch64::W1, AArch64::W2, AArch64::W3, AArch64::W4,
AArch64::W5, AArch64::W6, AArch64::W7, AArch64::W8, AArch64::W9,
AArch64::W10, AArch64::W11, AArch64::W12, AArch64::W13, AArch64::W14,
AArch64::W15, AArch64::W16, AArch64::W17, AArch64::W18, AArch64::W19,
AArch64::W20, AArch64::W21, AArch64::W22, AArch64::W23, AArch64::W24,
AArch64::W25, AArch64::W26, AArch64::W27, AArch64::W28, AArch64::W29,
AArch64::W30, AArch64::WZR
}

Definition at line 505 of file AArch64Disassembler.cpp.

Referenced by DecodeGPR32RegisterClass(), and DecodeGPR32spRegisterClass().

◆ GPR64DecoderTable

const unsigned GPR64DecoderTable[]
static
Initial value:
= {
AArch64::X0, AArch64::X1, AArch64::X2, AArch64::X3, AArch64::X4,
AArch64::X5, AArch64::X6, AArch64::X7, AArch64::X8, AArch64::X9,
AArch64::X10, AArch64::X11, AArch64::X12, AArch64::X13, AArch64::X14,
AArch64::X15, AArch64::X16, AArch64::X17, AArch64::X18, AArch64::X19,
AArch64::X20, AArch64::X21, AArch64::X22, AArch64::X23, AArch64::X24,
AArch64::X25, AArch64::X26, AArch64::X27, AArch64::X28, AArch64::FP,
AArch64::LR, AArch64::XZR
}

Definition at line 432 of file AArch64Disassembler.cpp.

Referenced by DecodeGPR64commonRegisterClass(), DecodeGPR64RegisterClass(), and DecodeGPR64spRegisterClass().

◆ GPR64x8DecoderTable

const unsigned GPR64x8DecoderTable[]
static
Initial value:
= {
AArch64::X0_X1_X2_X3_X4_X5_X6_X7,
AArch64::X2_X3_X4_X5_X6_X7_X8_X9,
AArch64::X4_X5_X6_X7_X8_X9_X10_X11,
AArch64::X6_X7_X8_X9_X10_X11_X12_X13,
AArch64::X8_X9_X10_X11_X12_X13_X14_X15,
AArch64::X10_X11_X12_X13_X14_X15_X16_X17,
AArch64::X12_X13_X14_X15_X16_X17_X18_X19,
AArch64::X14_X15_X16_X17_X18_X19_X20_X21,
AArch64::X16_X17_X18_X19_X20_X21_X22_X23,
AArch64::X18_X19_X20_X21_X22_X23_X24_X25,
AArch64::X20_X21_X22_X23_X24_X25_X26_X27,
AArch64::X22_X23_X24_X25_X26_X27_X28_FP,
}

Definition at line 464 of file AArch64Disassembler.cpp.

Referenced by DecodeGPR64x8ClassRegisterClass().

◆ PPRDecoderTable

const unsigned PPRDecoderTable[]
static
Initial value:
= {
AArch64::P0, AArch64::P1, AArch64::P2, AArch64::P3,
AArch64::P4, AArch64::P5, AArch64::P6, AArch64::P7,
AArch64::P8, AArch64::P9, AArch64::P10, AArch64::P11,
AArch64::P12, AArch64::P13, AArch64::P14, AArch64::P15
}

Definition at line 645 of file AArch64Disassembler.cpp.

Referenced by DecodePPRRegisterClass().

◆ QQDecoderTable

const unsigned QQDecoderTable[]
static
Initial value:
= {
AArch64::Q0_Q1, AArch64::Q1_Q2, AArch64::Q2_Q3, AArch64::Q3_Q4,
AArch64::Q4_Q5, AArch64::Q5_Q6, AArch64::Q6_Q7, AArch64::Q7_Q8,
AArch64::Q8_Q9, AArch64::Q9_Q10, AArch64::Q10_Q11, AArch64::Q11_Q12,
AArch64::Q12_Q13, AArch64::Q13_Q14, AArch64::Q14_Q15, AArch64::Q15_Q16,
AArch64::Q16_Q17, AArch64::Q17_Q18, AArch64::Q18_Q19, AArch64::Q19_Q20,
AArch64::Q20_Q21, AArch64::Q21_Q22, AArch64::Q22_Q23, AArch64::Q23_Q24,
AArch64::Q24_Q25, AArch64::Q25_Q26, AArch64::Q26_Q27, AArch64::Q27_Q28,
AArch64::Q28_Q29, AArch64::Q29_Q30, AArch64::Q30_Q31, AArch64::Q31_Q0
}

Definition at line 693 of file AArch64Disassembler.cpp.

Referenced by DecodeQQRegisterClass().

◆ QQQDecoderTable

const unsigned QQQDecoderTable[]
static
Initial value:
= {
AArch64::Q0_Q1_Q2, AArch64::Q1_Q2_Q3, AArch64::Q2_Q3_Q4,
AArch64::Q3_Q4_Q5, AArch64::Q4_Q5_Q6, AArch64::Q5_Q6_Q7,
AArch64::Q6_Q7_Q8, AArch64::Q7_Q8_Q9, AArch64::Q8_Q9_Q10,
AArch64::Q9_Q10_Q11, AArch64::Q10_Q11_Q12, AArch64::Q11_Q12_Q13,
AArch64::Q12_Q13_Q14, AArch64::Q13_Q14_Q15, AArch64::Q14_Q15_Q16,
AArch64::Q15_Q16_Q17, AArch64::Q16_Q17_Q18, AArch64::Q17_Q18_Q19,
AArch64::Q18_Q19_Q20, AArch64::Q19_Q20_Q21, AArch64::Q20_Q21_Q22,
AArch64::Q21_Q22_Q23, AArch64::Q22_Q23_Q24, AArch64::Q23_Q24_Q25,
AArch64::Q24_Q25_Q26, AArch64::Q25_Q26_Q27, AArch64::Q26_Q27_Q28,
AArch64::Q27_Q28_Q29, AArch64::Q28_Q29_Q30, AArch64::Q29_Q30_Q31,
AArch64::Q30_Q31_Q0, AArch64::Q31_Q0_Q1
}

Definition at line 713 of file AArch64Disassembler.cpp.

Referenced by DecodeQQQRegisterClass().

◆ QQQQDecoderTable

const unsigned QQQQDecoderTable[]
static
Initial value:
= {
AArch64::Q0_Q1_Q2_Q3, AArch64::Q1_Q2_Q3_Q4, AArch64::Q2_Q3_Q4_Q5,
AArch64::Q3_Q4_Q5_Q6, AArch64::Q4_Q5_Q6_Q7, AArch64::Q5_Q6_Q7_Q8,
AArch64::Q6_Q7_Q8_Q9, AArch64::Q7_Q8_Q9_Q10, AArch64::Q8_Q9_Q10_Q11,
AArch64::Q9_Q10_Q11_Q12, AArch64::Q10_Q11_Q12_Q13, AArch64::Q11_Q12_Q13_Q14,
AArch64::Q12_Q13_Q14_Q15, AArch64::Q13_Q14_Q15_Q16, AArch64::Q14_Q15_Q16_Q17,
AArch64::Q15_Q16_Q17_Q18, AArch64::Q16_Q17_Q18_Q19, AArch64::Q17_Q18_Q19_Q20,
AArch64::Q18_Q19_Q20_Q21, AArch64::Q19_Q20_Q21_Q22, AArch64::Q20_Q21_Q22_Q23,
AArch64::Q21_Q22_Q23_Q24, AArch64::Q22_Q23_Q24_Q25, AArch64::Q23_Q24_Q25_Q26,
AArch64::Q24_Q25_Q26_Q27, AArch64::Q25_Q26_Q27_Q28, AArch64::Q26_Q27_Q28_Q29,
AArch64::Q27_Q28_Q29_Q30, AArch64::Q28_Q29_Q30_Q31, AArch64::Q29_Q30_Q31_Q0,
AArch64::Q30_Q31_Q0_Q1, AArch64::Q31_Q0_Q1_Q2
}

Definition at line 736 of file AArch64Disassembler.cpp.

Referenced by DecodeQQQQRegisterClass().

◆ VectorDecoderTable

const unsigned VectorDecoderTable[]
static
Initial value:
= {
AArch64::Q0, AArch64::Q1, AArch64::Q2, AArch64::Q3, AArch64::Q4,
AArch64::Q5, AArch64::Q6, AArch64::Q7, AArch64::Q8, AArch64::Q9,
AArch64::Q10, AArch64::Q11, AArch64::Q12, AArch64::Q13, AArch64::Q14,
AArch64::Q15, AArch64::Q16, AArch64::Q17, AArch64::Q18, AArch64::Q19,
AArch64::Q20, AArch64::Q21, AArch64::Q22, AArch64::Q23, AArch64::Q24,
AArch64::Q25, AArch64::Q26, AArch64::Q27, AArch64::Q28, AArch64::Q29,
AArch64::Q30, AArch64::Q31
}

Definition at line 672 of file AArch64Disassembler.cpp.

Referenced by DecodeVectorRegisterClass().

◆ ZPRDecoderTable

const unsigned ZPRDecoderTable[]
static
Initial value:
= {
AArch64::Z0, AArch64::Z1, AArch64::Z2, AArch64::Z3,
AArch64::Z4, AArch64::Z5, AArch64::Z6, AArch64::Z7,
AArch64::Z8, AArch64::Z9, AArch64::Z10, AArch64::Z11,
AArch64::Z12, AArch64::Z13, AArch64::Z14, AArch64::Z15,
AArch64::Z16, AArch64::Z17, AArch64::Z18, AArch64::Z19,
AArch64::Z20, AArch64::Z21, AArch64::Z22, AArch64::Z23,
AArch64::Z24, AArch64::Z25, AArch64::Z26, AArch64::Z27,
AArch64::Z28, AArch64::Z29, AArch64::Z30, AArch64::Z31
}

Definition at line 538 of file AArch64Disassembler.cpp.

Referenced by DecodeZPRRegisterClass().

◆ ZZDecoderTable

const unsigned ZZDecoderTable[]
static
Initial value:
= {
AArch64::Z0_Z1, AArch64::Z1_Z2, AArch64::Z2_Z3, AArch64::Z3_Z4,
AArch64::Z4_Z5, AArch64::Z5_Z6, AArch64::Z6_Z7, AArch64::Z7_Z8,
AArch64::Z8_Z9, AArch64::Z9_Z10, AArch64::Z10_Z11, AArch64::Z11_Z12,
AArch64::Z12_Z13, AArch64::Z13_Z14, AArch64::Z14_Z15, AArch64::Z15_Z16,
AArch64::Z16_Z17, AArch64::Z17_Z18, AArch64::Z18_Z19, AArch64::Z19_Z20,
AArch64::Z20_Z21, AArch64::Z21_Z22, AArch64::Z22_Z23, AArch64::Z23_Z24,
AArch64::Z24_Z25, AArch64::Z25_Z26, AArch64::Z26_Z27, AArch64::Z27_Z28,
AArch64::Z28_Z29, AArch64::Z29_Z30, AArch64::Z30_Z31, AArch64::Z31_Z0
}

Definition at line 576 of file AArch64Disassembler.cpp.

Referenced by DecodeZPR2RegisterClass().

◆ ZZZDecoderTable

const unsigned ZZZDecoderTable[]
static
Initial value:
= {
AArch64::Z0_Z1_Z2, AArch64::Z1_Z2_Z3, AArch64::Z2_Z3_Z4,
AArch64::Z3_Z4_Z5, AArch64::Z4_Z5_Z6, AArch64::Z5_Z6_Z7,
AArch64::Z6_Z7_Z8, AArch64::Z7_Z8_Z9, AArch64::Z8_Z9_Z10,
AArch64::Z9_Z10_Z11, AArch64::Z10_Z11_Z12, AArch64::Z11_Z12_Z13,
AArch64::Z12_Z13_Z14, AArch64::Z13_Z14_Z15, AArch64::Z14_Z15_Z16,
AArch64::Z15_Z16_Z17, AArch64::Z16_Z17_Z18, AArch64::Z17_Z18_Z19,
AArch64::Z18_Z19_Z20, AArch64::Z19_Z20_Z21, AArch64::Z20_Z21_Z22,
AArch64::Z21_Z22_Z23, AArch64::Z22_Z23_Z24, AArch64::Z23_Z24_Z25,
AArch64::Z24_Z25_Z26, AArch64::Z25_Z26_Z27, AArch64::Z26_Z27_Z28,
AArch64::Z27_Z28_Z29, AArch64::Z28_Z29_Z30, AArch64::Z29_Z30_Z31,
AArch64::Z30_Z31_Z0, AArch64::Z31_Z0_Z1
}

Definition at line 597 of file AArch64Disassembler.cpp.

Referenced by DecodeZPR3RegisterClass().

◆ ZZZZDecoderTable

const unsigned ZZZZDecoderTable[]
static
Initial value:
= {
AArch64::Z0_Z1_Z2_Z3, AArch64::Z1_Z2_Z3_Z4, AArch64::Z2_Z3_Z4_Z5,
AArch64::Z3_Z4_Z5_Z6, AArch64::Z4_Z5_Z6_Z7, AArch64::Z5_Z6_Z7_Z8,
AArch64::Z6_Z7_Z8_Z9, AArch64::Z7_Z8_Z9_Z10, AArch64::Z8_Z9_Z10_Z11,
AArch64::Z9_Z10_Z11_Z12, AArch64::Z10_Z11_Z12_Z13, AArch64::Z11_Z12_Z13_Z14,
AArch64::Z12_Z13_Z14_Z15, AArch64::Z13_Z14_Z15_Z16, AArch64::Z14_Z15_Z16_Z17,
AArch64::Z15_Z16_Z17_Z18, AArch64::Z16_Z17_Z18_Z19, AArch64::Z17_Z18_Z19_Z20,
AArch64::Z18_Z19_Z20_Z21, AArch64::Z19_Z20_Z21_Z22, AArch64::Z20_Z21_Z22_Z23,
AArch64::Z21_Z22_Z23_Z24, AArch64::Z22_Z23_Z24_Z25, AArch64::Z23_Z24_Z25_Z26,
AArch64::Z24_Z25_Z26_Z27, AArch64::Z25_Z26_Z27_Z28, AArch64::Z26_Z27_Z28_Z29,
AArch64::Z27_Z28_Z29_Z30, AArch64::Z28_Z29_Z30_Z31, AArch64::Z29_Z30_Z31_Z0,
AArch64::Z30_Z31_Z0_Z1, AArch64::Z31_Z0_Z1_Z2
}

Definition at line 621 of file AArch64Disassembler.cpp.

Referenced by DecodeZPR4RegisterClass().

P2
This might compile to this xmm1 xorps xmm0 movss xmm0 ret Now consider if the code caused xmm1 to get spilled This might produce this xmm1 movaps xmm0 movaps xmm1 movss xmm0 ret since the reload is only used by these we could fold it into the producing something like xmm1 movaps xmm0 ret saving two instructions The basic idea is that a reload from a spill if only one byte chunk is bring in zeros the one element instead of elements This can be used to simplify a variety of shuffle where the elements are fixed zeros This code generates ugly probably due to costs being off or< 4 x float > * P2
Definition: README-SSE.txt:278