LLVM
8.0.1
|
#include "AArch64Disassembler.h"
#include "AArch64ExternalSymbolizer.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
#include "MCTargetDesc/AArch64MCTargetDesc.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"
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 | 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 | 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 DecodeStatus | DecodeLoadAllocTagArrayInstruction (MCInst &Inst, uint32_t insn, uint64_t address, const void *Decoder) |
static bool | Check (DecodeStatus &Out, DecodeStatus In) |
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) |
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 | 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 [] |
#define DEBUG_TYPE "aarch64-disassembler" |
Definition at line 33 of file AArch64Disassembler.cpp.
#define Fail MCDisassembler::Fail |
Definition at line 247 of file AArch64Disassembler.cpp.
Referenced by adjustDuplex(), DecodeL4RSrcDstSrcDstInstruction(), DecodeMoveHRegInstruction(), llvm::GVNExpression::Expression::dump(), getDecoderTable(), getDPPOp(), logger(), mapBinOpcode(), llvm::sys::RetryAfterSignal(), SafeToMergeTerminators(), and sinkLastInstruction().
#define SoftFail MCDisassembler::SoftFail |
Definition at line 248 of file AArch64Disassembler.cpp.
Referenced by AddThumb1SBit().
#define Success MCDisassembler::Success |
Definition at line 246 of file AArch64Disassembler.cpp.
Referenced by AddThumb1SBit(), adjustDuplex(), CC_MipsO32_FP64(), llvm::CodeViewDebug::CodeViewDebug(), computeValueLLTs(), createOrdering(), DecodeMoveHRegInstruction(), llvm::AMDGPUAsmPrinter::EmitEndOfAsmFile(), FindAllMemoryUses(), getCompoundInsn(), getCondCode(), llvm::ConstantRange::getEquivalentICmp(), getOffsetFromIndices(), GetRMWLibcall(), getShiftAmountTyForConstant(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), isCopyFeedingInvariantStore(), isLocalCopy(), LLVMInitializeHexagonDisassembler(), logger(), LowerCMP_SWAP(), llvm::SystemZTargetLowering::LowerOperationWrapper(), llvm::AArch64CallLowering::lowerReturn(), makeCombineInst(), operator<<(), performMaskedAtomicOp(), llvm::SymbolRemappingReader::read(), llvm::X86TargetLowering::ReplaceNodeResults(), s29_3ImmDecoder(), s30_2ImmDecoder(), s31_1ImmDecoder(), s3_0ImmDecoder(), s4_0ImmDecoder(), s4_1ImmDecoder(), s4_2ImmDecoder(), s4_3ImmDecoder(), s6_0ImmDecoder(), s6_3ImmDecoder(), s8_0ImmDecoder(), llvm::LiveDebugVariables::splitRegister(), llvm::DWARFContext::verify(), and llvm::raw_fd_ostream::~raw_fd_ostream().
Definition at line 36 of file AArch64Disassembler.cpp.
|
static |
Definition at line 228 of file AArch64Disassembler.cpp.
References llvm::MCDisassembler::Fail, llvm::tgtok::In, llvm_unreachable, llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), expandBounds(), llvm::SCEVExpander::expandUnionPredicate(), llvm::FileCheckString::FileCheckString(), llvm::LoopVersioning::getNonVersionedLoop(), isLoadConditional(), llvm::LoopVersioning::prepareNoAliasMetadata(), llvm::RuntimePointerChecking::printChecks(), and llvm::LoopPredicationPass::run().
|
static |
Definition at line 250 of file AArch64Disassembler.cpp.
Referenced by LLVMInitializeAArch64Disassembler().
|
static |
Definition at line 278 of file AArch64Disassembler.cpp.
Referenced by LLVMInitializeAArch64Disassembler().
|
static |
Definition at line 1502 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 1666 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 1647 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR64RegisterClass(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 771 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 748 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 725 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1285 of file AArch64Disassembler.cpp.
References DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), LLVM_FALLTHROUGH, llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 781 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 790 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 838 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeGPR64RegisterClass(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 323 of file AArch64Disassembler.cpp.
References DecodeFPR128RegisterClass(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 312 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeFMOVLaneInstruction(), DecodeFPR128_loRegisterClass(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 383 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 362 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 341 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeModImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 404 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 469 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeExclusiveLdStInstruction(), DecodeLogicalImmInstruction(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 480 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), and DecodeLogicalImmInstruction().
|
static |
Definition at line 425 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 436 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeAdrInstruction(), DecodeExclusiveLdStInstruction(), DecodeFMOVLaneInstruction(), DecodeLoadAllocTagArrayInstruction(), DecodeLogicalImmInstruction(), DecodeMoveImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), DecodeTestAndBranch(), DecodeThreeAddrSRegInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 447 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeAddSubERegInstruction(), DecodeAddSubImmShift(), DecodeExclusiveLdStInstruction(), DecodeLoadAllocTagArrayInstruction(), DecodeLogicalImmInstruction(), DecodePairLdStInstruction(), DecodeSignedLdStInstruction(), and DecodeUnsignedLdStInstruction().
|
static |
Definition at line 1773 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
Referenced by DecodeWSeqPairsClassRegisterClass(), and DecodeXSeqPairsClassRegisterClass().
|
static |
Definition at line 1838 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1856 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1559 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR32spRegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), llvm::AArch64_AM::isValidDecodeLogicalImmediate(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 813 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 1590 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR64RegisterClass(), DecodeVectorRegisterClass(), llvm::MCInst::getOpcode(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 1629 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeVectorRegisterClass(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 993 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 820 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 830 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 1368 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), LLVM_FALLTHROUGH, llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 797 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCInst::getOpcode(), llvm::MCDisassembler::Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 616 of file AArch64Disassembler.cpp.
References DecodePPRRegisterClass(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 606 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodePPR_3bRegisterClass().
|
static |
Definition at line 704 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 681 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 658 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1087 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1823 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::tgtok::Bits, llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1850 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
|
static |
Definition at line 1719 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCDisassembler::getSubtargetInfo(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 1749 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), llvm::MCDisassembler::Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 931 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), LLVM_FALLTHROUGH, and llvm::MCDisassembler::Success.
|
static |
Definition at line 1702 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 1026 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeFPR128RegisterClass(), DecodeFPR16RegisterClass(), DecodeFPR32RegisterClass(), DecodeFPR64RegisterClass(), DecodeFPR8RegisterClass(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPR64spRegisterClass(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), llvm::MCDisassembler::Success, and llvm::MCDisassembler::tryAddingSymbolicOperand().
|
static |
Definition at line 921 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 916 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 911 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 926 of file AArch64Disassembler.cpp.
References DecodeVecShiftLImm().
|
static |
Definition at line 867 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
Referenced by DecodeVecShiftL16Imm(), DecodeVecShiftL32Imm(), DecodeVecShiftL64Imm(), and DecodeVecShiftL8Imm().
|
static |
Definition at line 895 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 900 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 884 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 889 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 873 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 878 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 906 of file AArch64Disassembler.cpp.
References DecodeVecShiftRImm().
|
static |
Definition at line 861 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
Referenced by DecodeVecShiftR16Imm(), DecodeVecShiftR16ImmNarrow(), DecodeVecShiftR32Imm(), DecodeVecShiftR32ImmNarrow(), DecodeVecShiftR64Imm(), DecodeVecShiftR64ImmNarrow(), and DecodeVecShiftR8Imm().
|
static |
Definition at line 636 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeModImmInstruction(), and DecodeModImmTiedInstruction().
|
static |
Definition at line 1787 of file AArch64Disassembler.cpp.
References DecodeGPRSeqPairsClassRegisterClass().
|
static |
Definition at line 1796 of file AArch64Disassembler.cpp.
References DecodeGPRSeqPairsClassRegisterClass().
|
static |
Definition at line 541 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 565 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 589 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 522 of file AArch64Disassembler.cpp.
References DecodeZPRRegisterClass(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 514 of file AArch64Disassembler.cpp.
References DecodeZPRRegisterClass(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 503 of file AArch64Disassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
Referenced by DecodeSVELogicalImmInstruction(), DecodeZPR_3bRegisterClass(), and DecodeZPR_4bRegisterClass().
void LLVMInitializeAArch64Disassembler | ( | ) |
Definition at line 286 of file AArch64Disassembler.cpp.
References createAArch64Disassembler(), createAArch64ExternalSymbolizer(), llvm::getTheAArch64beTarget(), llvm::getTheAArch64leTarget(), llvm::getTheARM64Target(), llvm::TargetRegistry::RegisterMCDisassembler(), and llvm::TargetRegistry::RegisterMCSymbolizer().
Definition at line 757 of file AArch64Disassembler.cpp.
Definition at line 734 of file AArch64Disassembler.cpp.
Definition at line 714 of file AArch64Disassembler.cpp.
Definition at line 302 of file AArch64Disassembler.cpp.
Definition at line 373 of file AArch64Disassembler.cpp.
Definition at line 352 of file AArch64Disassembler.cpp.
Definition at line 331 of file AArch64Disassembler.cpp.
Definition at line 394 of file AArch64Disassembler.cpp.
Definition at line 459 of file AArch64Disassembler.cpp.
Definition at line 415 of file AArch64Disassembler.cpp.
Definition at line 599 of file AArch64Disassembler.cpp.
Definition at line 647 of file AArch64Disassembler.cpp.
Definition at line 667 of file AArch64Disassembler.cpp.
Definition at line 690 of file AArch64Disassembler.cpp.
Definition at line 626 of file AArch64Disassembler.cpp.
Definition at line 492 of file AArch64Disassembler.cpp.
Definition at line 530 of file AArch64Disassembler.cpp.
Definition at line 551 of file AArch64Disassembler.cpp.
Definition at line 575 of file AArch64Disassembler.cpp.