LLVM  10.0.0svn
Namespaces | Macros | Typedefs | Functions | Variables
ARMDisassembler.cpp File Reference
#include "ARMBaseInstrInfo.h"
#include "MCTargetDesc/ARMAddressingModes.h"
#include "MCTargetDesc/ARMBaseInfo.h"
#include "MCTargetDesc/ARMMCTargetDesc.h"
#include "TargetInfo/ARMTargetInfo.h"
#include "Utils/ARMBaseInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.h"
#include "llvm/MC/MCFixedLenDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/SubtargetFeature.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <vector>
#include "ARMGenDisassemblerTables.inc"
Include dependency graph for ARMDisassembler.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Macros

#define DEBUG_TYPE   "arm-disassembler"
 

Typedefs

using DecodeStatus = MCDisassembler::DecodeStatus
 
typedef DecodeStatus OperandDecoder(MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 

Functions

static bool Check (DecodeStatus &Out, DecodeStatus In)
 
static DecodeStatus DecodeGPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCLRMGPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodetGPROddRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodetGPREvenRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRnopcRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRwithAPSRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRwithZRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRwithZRnospRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodetGPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodetcGPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecoderGPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRPairRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeHPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDPR_8RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSPR_8RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDPR_VFP2RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMQPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQQPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQQQQPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDPairRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDPairSpacedRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePredicateOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCCOutOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeRegListOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSPRRegListOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDPRRegListOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeBitfieldMaskOperand (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCopMemInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrMode2IdxInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSORegMemOperand (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrMode3Instruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSORegImmOperand (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSORegRegOperand (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMemMultipleWritebackInstruction (MCInst &Inst, unsigned Insn, uint64_t Adddress, const void *Decoder)
 
static DecodeStatus DecodeT2MOVTWInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeArmMOVTWInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSMLAInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeHINTInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCPSInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeTSTInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSETPANInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2CPSInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrModeImm12Operand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrMode5Operand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrMode5FP16Operand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrMode7Operand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2BInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeBranchImmInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeAddrMode6Operand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLDST1Instruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLDST2Instruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLDST3Instruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLDST4Instruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLDInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVSTInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD1DupInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD2DupInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD3DupInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD4DupInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeNEONModImmInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMVEModImmInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMVEVADCInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVSHLMaxInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeShiftRight8Imm (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeShiftRight16Imm (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeShiftRight32Imm (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeShiftRight64Imm (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeTBLInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePostIdxReg (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMveAddrModeRQ (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeMveAddrModeQ (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCoprocessor (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMemBarrierOption (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeInstSyncBarrierOption (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMSRMask (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeBankedReg (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDoubleRegLoad (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeDoubleRegStore (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeLDRPreImm (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeLDRPreReg (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSTRPreImm (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSTRPreReg (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD1LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD2LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD3LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVLD4LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVST1LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVST2LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVST3LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVST4LN (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVMOVSRR (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVMOVRRS (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSwap (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVCVTD (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVCVTQ (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVCVTImmOperand (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeNEONComplexLane64Instruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddSpecialReg (MCInst &Inst, uint16_t Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbBROperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2BROperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbCmpBROperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddrModeRR (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddrModeIS (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddrModePC (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddrModeSP (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2AddrModeSOReg (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LoadShift (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LoadImm8 (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LoadImm12 (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LoadT (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LoadLabel (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2Imm8S4 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2Imm7S4 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2AddrModeImm8s4 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2AddrModeImm7s4 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2AddrModeImm0_1020s4 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2Imm8 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeT2Imm7 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2AddrModeImm8 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeTAddrModeImm7 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<int shift, int WriteBack>
static DecodeStatus DecodeT2AddrModeImm7 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddSPImm (MCInst &Inst, uint16_t Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbAddSPReg (MCInst &Inst, uint16_t Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbCPS (MCInst &Inst, uint16_t Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQADDInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbBLXOffset (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2AddrModeImm12 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbTableBranch (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumb2BCCInstruction (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2SOImm (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbBCCTargetOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeThumbBLTargetOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeIT (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LDRDPreInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2STRDPreInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2Adr (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2LdStPre (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2ShifterImmOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeLDR (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecoderForMRRC2AndMCRR2 (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeForVMRSandVMSR (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<bool isSigned, bool isNeg, bool zeroPermitted, int size>
static DecodeStatus DecodeBFLabelOperand (MCInst &Inst, unsigned val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeBFAfterTargetOperand (MCInst &Inst, unsigned val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodePredNoALOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeLOLoop (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeLongShiftOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVSCCLRM (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVPTMaskOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVpredROperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeRestrictedIPredicateOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeRestrictedSPredicateOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeRestrictedUPredicateOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeRestrictedFPPredicateOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<bool Writeback>
static DecodeStatus DecodeVSTRVLDR_SYSREG (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeMVE_MEM_1_pre (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeMVE_MEM_2_pre (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeMVE_MEM_3_pre (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<unsigned MinLog, unsigned MaxLog>
static DecodeStatus DecodePowerTwoOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<int shift>
static DecodeStatus DecodeExpandedImmOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
template<unsigned start>
static DecodeStatus DecodeMVEPairVectorIndexOperand (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMVEVMOVQtoDReg (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMVEVMOVDRegtoQ (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMVEVCVTt1fp (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
template<bool scalar, OperandDecoder predicate_decoder>
static DecodeStatus DecodeMVEVCMP (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMveVCTP (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeMVEOverlappingLongShift (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static MCDisassemblercreateARMDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
 
static DecodeStatus checkDecodedInstruction (MCInst &MI, uint64_t &Size, uint64_t Address, raw_ostream &OS, raw_ostream &CS, uint32_t Insn, DecodeStatus Result)
 
static bool tryAddingSymbolicOperand (uint64_t Address, int32_t Value, bool isBranch, uint64_t InstSize, MCInst &MI, const void *Decoder)
 tryAddingSymbolicOperand - trys to add a symbolic operand in place of the immediate Value in the MCInst. More...
 
static void tryAddingPcLoadReferenceComment (uint64_t Address, int Value, const void *Decoder)
 tryAddingPcLoadReferenceComment - trys to add a comment as to what is being referenced by a load instruction with the base register that is the Pc. More...
 
static void AddThumb1SBit (MCInst &MI, bool InITBlock)
 
static bool isVectorPredicable (unsigned Opcode)
 
void LLVMInitializeARMDisassembler ()
 
static DecodeStatus DecodeRFEInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2Adr (MCInst &Inst, uint32_t Insn, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeT2ShifterImmOperand (MCInst &Inst, uint32_t Val, uint64_t Address, const void *Decoder)
 
static unsigned FixedRegForVSTRVLDR_SYSREG (unsigned Opcode)
 
static DecodeStatus DecodeMVE_MEM_pre (MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder, unsigned Rn, OperandDecoder RnDecoder, OperandDecoder AddrDecoder)
 

Variables

static const uint16_t GPRDecoderTable []
 
static const uint16_t CLRMGPRDecoderTable []
 
static const uint16_t GPRPairDecoderTable []
 
static const uint16_t SPRDecoderTable []
 
static const uint16_t DPRDecoderTable []
 
static const uint16_t QPRDecoderTable []
 
static const uint16_t DPairDecoderTable []
 
static const uint16_t DPairSpacedDecoderTable []
 
static const uint16_t QQPRDecoderTable []
 
static const uint16_t QQQQPRDecoderTable []
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "arm-disassembler"

Definition at line 34 of file ARMDisassembler.cpp.

Typedef Documentation

◆ DecodeStatus

Definition at line 36 of file ARMDisassembler.cpp.

◆ OperandDecoder

typedef DecodeStatus OperandDecoder(MCInst &Inst, unsigned Val, uint64_t Address, const void *Decoder)

Definition at line 557 of file ARMDisassembler.cpp.

Function Documentation

◆ AddThumb1SBit()

static void AddThumb1SBit ( MCInst MI,
bool  InITBlock 
)
static

◆ Check()

static bool Check ( DecodeStatus Out,
DecodeStatus  In 
)
static

Definition at line 163 of file ARMDisassembler.cpp.

References llvm::Address, DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeAddrMode5FP16Operand(), DecodeAddrMode5Operand(), DecodeAddrMode6Operand(), DecodeAddrMode7Operand(), DecodeAddrModeImm12Operand(), DecodeArmMOVTWInstruction(), DecodeBankedReg(), DecodeBFAfterTargetOperand(), DecodeBFLabelOperand(), DecodeBitfieldMaskOperand(), DecodeBranchImmInstruction(), DecodeCCOutOperand(), DecodeCLRMGPRRegisterClass(), DecodeCopMemInstruction(), DecodeCoprocessor(), DecodeCPSInstruction(), DecodeDoubleRegLoad(), DecodeDoubleRegStore(), DecodeDPairRegisterClass(), DecodeDPairSpacedRegisterClass(), DecodeDPR_8RegisterClass(), DecodeDPR_VFP2RegisterClass(), DecodeDPRRegisterClass(), DecodeDPRRegListOperand(), DecodeExpandedImmOperand(), DecodeForVMRSandVMSR(), DecodeGPRnopcRegisterClass(), DecodeGPRPairRegisterClass(), DecodeGPRRegisterClass(), DecodeGPRwithAPSRRegisterClass(), DecodeGPRwithZRnospRegisterClass(), DecodeGPRwithZRRegisterClass(), DecodeHINTInstruction(), DecodeHPRRegisterClass(), DecodeInstSyncBarrierOption(), DecodeIT(), DecodeLDR(), DecodeLDRPreImm(), DecodeLDRPreReg(), DecodeLOLoop(), DecodeLongShiftOperand(), DecodeMemBarrierOption(), DecodeMemMultipleWritebackInstruction(), DecodeMQPRRegisterClass(), DecodeMSRMask(), DecodeMVE_MEM_1_pre(), DecodeMVE_MEM_2_pre(), DecodeMVE_MEM_3_pre(), DecodeMveAddrModeQ(), DecodeMveAddrModeRQ(), DecodeMVEModImmInstruction(), DecodeMVEPairVectorIndexOperand(), DecodeMVEVADCInstruction(), DecodeMVEVCVTt1fp(), DecodeMVEVMOVDRegtoQ(), DecodeMVEVMOVQtoDReg(), DecodeNEONComplexLane64Instruction(), DecodeNEONModImmInstruction(), DecodePostIdxReg(), DecodePowerTwoOperand(), DecodePredicateOperand(), DecodePredNoALOperand(), DecodeQADDInstruction(), DecodeQPRRegisterClass(), DecodeQQPRRegisterClass(), DecodeQQQQPRRegisterClass(), DecodeRegListOperand(), DecodeRestrictedFPPredicateOperand(), DecodeRestrictedIPredicateOperand(), DecodeRestrictedSPredicateOperand(), DecodeRestrictedUPredicateOperand(), DecoderForMRRC2AndMCRR2(), DecoderGPRRegisterClass(), DecodeSETPANInstruction(), DecodeShiftRight16Imm(), DecodeShiftRight32Imm(), DecodeShiftRight64Imm(), DecodeShiftRight8Imm(), DecodeSMLAInstruction(), DecodeSORegImmOperand(), DecodeSORegMemOperand(), DecodeSORegRegOperand(), DecodeSPR_8RegisterClass(), DecodeSPRRegisterClass(), DecodeSPRRegListOperand(), DecodeSTRPreImm(), DecodeSTRPreReg(), DecodeSwap(), DecodeT2AddrModeImm0_1020s4(), DecodeT2AddrModeImm12(), DecodeT2AddrModeImm7(), DecodeT2AddrModeImm7s4(), DecodeT2AddrModeImm8(), DecodeT2AddrModeImm8s4(), DecodeT2AddrModeSOReg(), DecodeT2Adr(), DecodeT2BInstruction(), DecodeT2BROperand(), DecodeT2CPSInstruction(), DecodeT2Imm7(), DecodeT2Imm7S4(), DecodeT2Imm8(), DecodeT2Imm8S4(), DecodeT2LDRDPreInstruction(), DecodeT2LdStPre(), DecodeT2LoadImm12(), DecodeT2LoadImm8(), DecodeT2LoadLabel(), DecodeT2LoadShift(), DecodeT2LoadT(), DecodeT2MOVTWInstruction(), DecodeT2ShifterImmOperand(), DecodeT2SOImm(), DecodeT2STRDPreInstruction(), DecodeTAddrModeImm7(), DecodeTBLInstruction(), DecodetcGPRRegisterClass(), DecodetGPREvenRegisterClass(), DecodetGPROddRegisterClass(), DecodetGPRRegisterClass(), DecodeThumb2BCCInstruction(), DecodeThumbAddrModeIS(), DecodeThumbAddrModePC(), DecodeThumbAddrModeRR(), DecodeThumbAddrModeSP(), DecodeThumbAddSpecialReg(), DecodeThumbAddSPImm(), DecodeThumbAddSPReg(), DecodeThumbBCCTargetOperand(), DecodeThumbBLTargetOperand(), DecodeThumbBLXOffset(), DecodeThumbBROperand(), DecodeThumbCmpBROperand(), DecodeThumbCPS(), DecodeThumbTableBranch(), DecodeTSTInstruction(), DecodeVCVTD(), DecodeVCVTImmOperand(), DecodeVCVTQ(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3DupInstruction(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDInstruction(), DecodeVLDST1Instruction(), DecodeVLDST2Instruction(), DecodeVLDST3Instruction(), DecodeVLDST4Instruction(), DecodeVMOVRRS(), DecodeVMOVSRR(), DecodeVpredROperand(), DecodeVPTMaskOperand(), DecodeVSCCLRM(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), DecodeVSTInstruction(), DecodeVSTRVLDR_SYSREG(), llvm::MCDisassembler::Fail, llvm::tgtok::In, llvm_unreachable, llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.

Referenced by DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeAddrMode5FP16Operand(), DecodeAddrMode5Operand(), DecodeAddrMode6Operand(), DecodeAddrModeImm12Operand(), DecodeArmMOVTWInstruction(), DecodeBitfieldMaskOperand(), DecodeBranchImmInstruction(), DecodeCopMemInstruction(), DecodeDoubleRegLoad(), DecodeDoubleRegStore(), DecodeDPRRegListOperand(), DecodeForVMRSandVMSR(), DecodeGPRnopcRegisterClass(), DecodeGPRwithAPSRRegisterClass(), DecodeGPRwithZRnospRegisterClass(), DecodeGPRwithZRRegisterClass(), DecodeHINTInstruction(), DecodeLDRPreImm(), DecodeLDRPreReg(), DecodeLOLoop(), DecodeMemMultipleWritebackInstruction(), DecodeMVE_MEM_pre(), DecodeMveAddrModeQ(), DecodeMveAddrModeRQ(), DecodeMVEModImmInstruction(), DecodeMVEOverlappingLongShift(), DecodeMVEVADCInstruction(), DecodeMVEVCMP(), DecodeMveVCTP(), DecodeMVEVCVTt1fp(), DecodeMVEVMOVDRegtoQ(), DecodeMVEVMOVQtoDReg(), DecodeNEONComplexLane64Instruction(), DecodeNEONModImmInstruction(), DecodePostIdxReg(), DecodePredicateOperand(), DecodeQADDInstruction(), DecodeRegListOperand(), DecodeRFEInstruction(), DecoderForMRRC2AndMCRR2(), DecoderGPRRegisterClass(), DecodeSMLAInstruction(), DecodeSORegImmOperand(), DecodeSORegMemOperand(), DecodeSORegRegOperand(), DecodeSPRRegListOperand(), DecodeSTRPreImm(), DecodeSTRPreReg(), DecodeSwap(), DecodeT2AddrModeImm0_1020s4(), DecodeT2AddrModeImm12(), DecodeT2AddrModeImm7(), DecodeT2AddrModeImm7s4(), DecodeT2AddrModeImm8(), DecodeT2AddrModeImm8s4(), DecodeT2AddrModeSOReg(), DecodeT2LDRDPreInstruction(), DecodeT2LdStPre(), DecodeT2LoadImm12(), DecodeT2LoadImm8(), DecodeT2LoadLabel(), DecodeT2LoadShift(), DecodeT2LoadT(), DecodeT2MOVTWInstruction(), DecodeT2STRDPreInstruction(), DecodeTAddrModeImm7(), DecodeTBLInstruction(), DecodeThumb2BCCInstruction(), DecodeThumbAddrModeIS(), DecodeThumbAddrModeRR(), DecodeThumbAddSpecialReg(), DecodeThumbAddSPReg(), DecodeThumbTableBranch(), DecodeTSTInstruction(), DecodeVCVTD(), DecodeVCVTQ(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3DupInstruction(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDInstruction(), DecodeVMOVRRS(), DecodeVMOVSRR(), DecodeVSCCLRM(), DecodeVSHLMaxInstruction(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), DecodeVSTInstruction(), DecodeVSTRVLDR_SYSREG(), and isVectorPredicable().

◆ checkDecodedInstruction()

static DecodeStatus checkDecodedInstruction ( MCInst MI,
uint64_t &  Size,
uint64_t  Address,
raw_ostream OS,
raw_ostream CS,
uint32_t  Insn,
DecodeStatus  Result 
)
static

Definition at line 576 of file ARMDisassembler.cpp.

References llvm::MCInst::getOpcode().

Referenced by isVectorPredicable().

◆ createARMDisassembler()

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

Definition at line 569 of file ARMDisassembler.cpp.

Referenced by LLVMInitializeARMDisassembler().

◆ DecodeAddrMode2IdxInstruction()

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

◆ DecodeAddrMode3Instruction()

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

◆ DecodeAddrMode5FP16Operand()

static DecodeStatus DecodeAddrMode5FP16Operand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeAddrMode5Operand()

static DecodeStatus DecodeAddrMode5Operand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeAddrMode6Operand()

static DecodeStatus DecodeAddrMode6Operand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeAddrMode7Operand()

static DecodeStatus DecodeAddrMode7Operand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 2593 of file ARMDisassembler.cpp.

References DecodeGPRRegisterClass().

Referenced by Check().

◆ DecodeAddrModeImm12Operand()

static DecodeStatus DecodeAddrModeImm12Operand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeArmMOVTWInstruction()

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

◆ DecodeBankedReg()

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

◆ DecodeBFAfterTargetOperand()

static DecodeStatus DecodeBFAfterTargetOperand ( MCInst Inst,
unsigned  val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeBFLabelOperand()

template<bool isSigned, bool isNeg, bool zeroPermitted, int size>
static DecodeStatus DecodeBFLabelOperand ( MCInst Inst,
unsigned  val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeBitfieldMaskOperand()

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

◆ DecodeBranchImmInstruction()

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

◆ DecodeCCOutOperand()

static DecodeStatus DecodeCCOutOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeCLRMGPRRegisterClass()

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

◆ DecodeCopMemInstruction()

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

◆ DecodeCoprocessor()

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

◆ DecodeCPSInstruction()

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

◆ DecodeDoubleRegLoad()

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

◆ DecodeDoubleRegStore()

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

◆ DecodeDPairRegisterClass()

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

◆ DecodeDPairSpacedRegisterClass()

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

◆ DecodeDPR_8RegisterClass()

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

Definition at line 1328 of file ARMDisassembler.cpp.

References DecodeDPRRegisterClass(), and llvm::MCDisassembler::Fail.

Referenced by Check().

◆ DecodeDPR_VFP2RegisterClass()

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

Definition at line 1343 of file ARMDisassembler.cpp.

References DecodeDPRRegisterClass(), and llvm::MCDisassembler::Fail.

Referenced by Check().

◆ DecodeDPRRegisterClass()

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

◆ DecodeDPRRegListOperand()

static DecodeStatus DecodeDPRRegListOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeExpandedImmOperand()

template<int shift>
static DecodeStatus DecodeExpandedImmOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeForVMRSandVMSR()

static DecodeStatus DecodeForVMRSandVMSR ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeGPRnopcRegisterClass()

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

◆ DecodeGPRPairRegisterClass()

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

◆ DecodeGPRRegisterClass()

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

Definition at line 1125 of file ARMDisassembler.cpp.

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

Referenced by Check(), DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeAddrMode5FP16Operand(), DecodeAddrMode5Operand(), DecodeAddrMode6Operand(), DecodeAddrMode7Operand(), DecodeAddrModeImm12Operand(), DecodeCopMemInstruction(), DecodeDoubleRegLoad(), DecodeDoubleRegStore(), DecodeForVMRSandVMSR(), DecodeGPRnopcRegisterClass(), DecodeGPRwithAPSRRegisterClass(), DecodeGPRwithZRRegisterClass(), DecodeLDRPreImm(), DecodeLDRPreReg(), DecodeMemMultipleWritebackInstruction(), DecodeMVEVMOVDRegtoQ(), DecodeMVEVMOVQtoDReg(), DecodeRegListOperand(), DecodeRFEInstruction(), DecoderGPRRegisterClass(), DecodeSORegMemOperand(), DecodeSTRPreImm(), DecodeSTRPreReg(), DecodeT2AddrModeImm12(), DecodeT2AddrModeImm8(), DecodeT2AddrModeImm8s4(), DecodeT2AddrModeSOReg(), DecodeT2LdStPre(), DecodeT2LoadImm12(), DecodeT2LoadImm8(), DecodeT2LoadLabel(), DecodeT2LoadShift(), DecodetGPRRegisterClass(), DecodeThumbAddSPReg(), DecodeThumbTableBranch(), DecodeTSTInstruction(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3DupInstruction(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDInstruction(), DecodeVMOVRRS(), DecodeVMOVSRR(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), and DecodeVSTInstruction().

◆ DecodeGPRwithAPSRRegisterClass()

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

◆ DecodeGPRwithZRnospRegisterClass()

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

◆ DecodeGPRwithZRRegisterClass()

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

◆ DecodeHINTInstruction()

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

◆ DecodeHPRRegisterClass()

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

Definition at line 1297 of file ARMDisassembler.cpp.

References DecodeSPRRegisterClass().

Referenced by Check().

◆ DecodeInstSyncBarrierOption()

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

◆ DecodeIT()

static DecodeStatus DecodeIT ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeLDR()

static DecodeStatus DecodeLDR ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 5788 of file ARMDisassembler.cpp.

References llvm::MCDisassembler::Success.

Referenced by Check().

◆ DecodeLDRPreImm()

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

◆ DecodeLDRPreReg()

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

◆ DecodeLOLoop()

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

◆ DecodeLongShiftOperand()

static DecodeStatus DecodeLongShiftOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMemBarrierOption()

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

◆ DecodeMemMultipleWritebackInstruction()

static DecodeStatus DecodeMemMultipleWritebackInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Adddress,
const void *  Decoder 
)
static

◆ DecodeMQPRRegisterClass()

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

◆ DecodeMSRMask()

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

◆ DecodeMVE_MEM_1_pre()

template<int shift>
static DecodeStatus DecodeMVE_MEM_1_pre ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 6335 of file ARMDisassembler.cpp.

References DecodeMVE_MEM_pre(), and DecodetGPRRegisterClass().

Referenced by Check().

◆ DecodeMVE_MEM_2_pre()

template<int shift>
static DecodeStatus DecodeMVE_MEM_2_pre ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 6344 of file ARMDisassembler.cpp.

References DecodeMVE_MEM_pre(), and DecoderGPRRegisterClass().

Referenced by Check().

◆ DecodeMVE_MEM_3_pre()

template<int shift>
static DecodeStatus DecodeMVE_MEM_3_pre ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 6353 of file ARMDisassembler.cpp.

References DecodeMQPRRegisterClass(), and DecodeMVE_MEM_pre().

Referenced by Check().

◆ DecodeMVE_MEM_pre()

static DecodeStatus DecodeMVE_MEM_pre ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder,
unsigned  Rn,
OperandDecoder  RnDecoder,
OperandDecoder  AddrDecoder 
)
inlinestatic

◆ DecodeMveAddrModeQ()

template<int shift>
static DecodeStatus DecodeMveAddrModeQ ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMveAddrModeRQ()

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

◆ DecodeMVEModImmInstruction()

static DecodeStatus DecodeMVEModImmInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMVEOverlappingLongShift()

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

◆ DecodeMVEPairVectorIndexOperand()

template<unsigned start>
static DecodeStatus DecodeMVEPairVectorIndexOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMVEVADCInstruction()

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

◆ DecodeMVEVCMP()

template<bool scalar, OperandDecoder predicate_decoder>
static DecodeStatus DecodeMVEVCMP ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeMveVCTP()

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

◆ DecodeMVEVCVTt1fp()

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

◆ DecodeMVEVMOVDRegtoQ()

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

◆ DecodeMVEVMOVQtoDReg()

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

◆ DecodeNEONComplexLane64Instruction()

static DecodeStatus DecodeNEONComplexLane64Instruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeNEONModImmInstruction()

static DecodeStatus DecodeNEONModImmInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodePostIdxReg()

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

◆ DecodePowerTwoOperand()

template<unsigned MinLog, unsigned MaxLog>
static DecodeStatus DecodePowerTwoOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodePredicateOperand()

static DecodeStatus DecodePredicateOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodePredNoALOperand()

static DecodeStatus DecodePredNoALOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeQADDInstruction()

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

◆ DecodeQPRRegisterClass()

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

◆ DecodeQQPRRegisterClass()

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

◆ DecodeQQQQPRRegisterClass()

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

◆ DecodeRegListOperand()

static DecodeStatus DecodeRegListOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeRestrictedFPPredicateOperand()

static DecodeStatus DecodeRestrictedFPPredicateOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeRestrictedIPredicateOperand()

static DecodeStatus DecodeRestrictedIPredicateOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeRestrictedSPredicateOperand()

static DecodeStatus DecodeRestrictedSPredicateOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeRestrictedUPredicateOperand()

static DecodeStatus DecodeRestrictedUPredicateOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeRFEInstruction()

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

◆ DecoderForMRRC2AndMCRR2()

static DecodeStatus DecoderForMRRC2AndMCRR2 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecoderGPRRegisterClass()

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

◆ DecodeSETPANInstruction()

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

◆ DecodeShiftRight16Imm()

static DecodeStatus DecodeShiftRight16Imm ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeShiftRight32Imm()

static DecodeStatus DecodeShiftRight32Imm ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeShiftRight64Imm()

static DecodeStatus DecodeShiftRight64Imm ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeShiftRight8Imm()

static DecodeStatus DecodeShiftRight8Imm ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSMLAInstruction()

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

◆ DecodeSORegImmOperand()

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

◆ DecodeSORegMemOperand()

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

◆ DecodeSORegRegOperand()

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

◆ DecodeSPR_8RegisterClass()

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

Definition at line 1335 of file ARMDisassembler.cpp.

References DecodeSPRRegisterClass(), and llvm::MCDisassembler::Fail.

Referenced by Check().

◆ DecodeSPRRegisterClass()

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

◆ DecodeSPRRegListOperand()

static DecodeStatus DecodeSPRRegListOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSTRPreImm()

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

◆ DecodeSTRPreReg()

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

◆ DecodeSwap()

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

◆ DecodeT2AddrModeImm0_1020s4()

static DecodeStatus DecodeT2AddrModeImm0_1020s4 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2AddrModeImm12()

static DecodeStatus DecodeT2AddrModeImm12 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2AddrModeImm7()

template<int shift, int WriteBack>
static DecodeStatus DecodeT2AddrModeImm7 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2AddrModeImm7s4()

static DecodeStatus DecodeT2AddrModeImm7s4 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2AddrModeImm8()

static DecodeStatus DecodeT2AddrModeImm8 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2AddrModeImm8s4()

static DecodeStatus DecodeT2AddrModeImm8s4 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2AddrModeSOReg()

static DecodeStatus DecodeT2AddrModeSOReg ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2Adr() [1/2]

static DecodeStatus DecodeT2Adr ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Referenced by Check().

◆ DecodeT2Adr() [2/2]

static DecodeStatus DecodeT2Adr ( MCInst Inst,
uint32_t  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2BInstruction()

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

◆ DecodeT2BROperand()

static DecodeStatus DecodeT2BROperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2CPSInstruction()

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

◆ DecodeT2Imm7()

template<int shift>
static DecodeStatus DecodeT2Imm7 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2Imm7S4()

static DecodeStatus DecodeT2Imm7S4 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2Imm8()

static DecodeStatus DecodeT2Imm8 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2Imm8S4()

static DecodeStatus DecodeT2Imm8S4 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2LDRDPreInstruction()

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

◆ DecodeT2LdStPre()

static DecodeStatus DecodeT2LdStPre ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2LoadImm12()

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

◆ DecodeT2LoadImm8()

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

◆ DecodeT2LoadLabel()

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

◆ DecodeT2LoadShift()

static DecodeStatus DecodeT2LoadShift ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2LoadT()

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

◆ DecodeT2MOVTWInstruction()

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

◆ DecodeT2ShifterImmOperand() [1/2]

static DecodeStatus DecodeT2ShifterImmOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Referenced by Check().

◆ DecodeT2ShifterImmOperand() [2/2]

static DecodeStatus DecodeT2ShifterImmOperand ( MCInst Inst,
uint32_t  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2SOImm()

static DecodeStatus DecodeT2SOImm ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeT2STRDPreInstruction()

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

◆ DecodeTAddrModeImm7()

template<int shift>
static DecodeStatus DecodeTAddrModeImm7 ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeTBLInstruction()

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

◆ DecodetcGPRRegisterClass()

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

◆ DecodetGPREvenRegisterClass()

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

◆ DecodetGPROddRegisterClass()

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

◆ DecodetGPRRegisterClass()

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

◆ DecodeThumb2BCCInstruction()

static DecodeStatus DecodeThumb2BCCInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddrModeIS()

static DecodeStatus DecodeThumbAddrModeIS ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddrModePC()

static DecodeStatus DecodeThumbAddrModePC ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddrModeRR()

static DecodeStatus DecodeThumbAddrModeRR ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddrModeSP()

static DecodeStatus DecodeThumbAddrModeSP ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddSpecialReg()

static DecodeStatus DecodeThumbAddSpecialReg ( MCInst Inst,
uint16_t  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddSPImm()

static DecodeStatus DecodeThumbAddSPImm ( MCInst Inst,
uint16_t  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbAddSPReg()

static DecodeStatus DecodeThumbAddSPReg ( MCInst Inst,
uint16_t  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbBCCTargetOperand()

static DecodeStatus DecodeThumbBCCTargetOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbBLTargetOperand()

static DecodeStatus DecodeThumbBLTargetOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbBLXOffset()

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

◆ DecodeThumbBROperand()

static DecodeStatus DecodeThumbBROperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbCmpBROperand()

static DecodeStatus DecodeThumbCmpBROperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbCPS()

static DecodeStatus DecodeThumbCPS ( MCInst Inst,
uint16_t  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeThumbTableBranch()

static DecodeStatus DecodeThumbTableBranch ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeTSTInstruction()

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

◆ DecodeVCVTD()

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

◆ DecodeVCVTImmOperand()

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

◆ DecodeVCVTQ()

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

◆ DecodeVLD1DupInstruction()

static DecodeStatus DecodeVLD1DupInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLD1LN()

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

◆ DecodeVLD2DupInstruction()

static DecodeStatus DecodeVLD2DupInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLD2LN()

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

◆ DecodeVLD3DupInstruction()

static DecodeStatus DecodeVLD3DupInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLD3LN()

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

◆ DecodeVLD4DupInstruction()

static DecodeStatus DecodeVLD4DupInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLD4LN()

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

◆ DecodeVLDInstruction()

static DecodeStatus DecodeVLDInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLDST1Instruction()

static DecodeStatus DecodeVLDST1Instruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 2944 of file ARMDisassembler.cpp.

References DecodeVLDInstruction(), DecodeVSTInstruction(), and llvm::MCDisassembler::Fail.

Referenced by Check().

◆ DecodeVLDST2Instruction()

static DecodeStatus DecodeVLDST2Instruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLDST3Instruction()

static DecodeStatus DecodeVLDST3Instruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVLDST4Instruction()

static DecodeStatus DecodeVLDST4Instruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVMOVRRS()

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

◆ DecodeVMOVSRR()

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

◆ DecodeVpredROperand()

static DecodeStatus DecodeVpredROperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 6147 of file ARMDisassembler.cpp.

References llvm::MCDisassembler::Success.

Referenced by Check().

◆ DecodeVPTMaskOperand()

static DecodeStatus DecodeVPTMaskOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVSCCLRM()

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

◆ DecodeVSHLMaxInstruction()

static DecodeStatus DecodeVSHLMaxInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVST1LN()

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

◆ DecodeVST2LN()

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

◆ DecodeVST3LN()

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

◆ DecodeVST4LN()

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

◆ DecodeVSTInstruction()

static DecodeStatus DecodeVSTInstruction ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVSTRVLDR_SYSREG()

template<bool Writeback>
static DecodeStatus DecodeVSTRVLDR_SYSREG ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const void *  Decoder 
)
static

◆ FixedRegForVSTRVLDR_SYSREG()

static unsigned FixedRegForVSTRVLDR_SYSREG ( unsigned  Opcode)
static

Definition at line 6257 of file ARMDisassembler.cpp.

Referenced by DecodeVSTRVLDR_SYSREG().

◆ isVectorPredicable()

static bool isVectorPredicable ( unsigned  Opcode)
static

◆ LLVMInitializeARMDisassembler()

void LLVMInitializeARMDisassembler ( )

◆ tryAddingPcLoadReferenceComment()

static void tryAddingPcLoadReferenceComment ( uint64_t  Address,
int  Value,
const void *  Decoder 
)
static

tryAddingPcLoadReferenceComment - trys to add a comment as to what is being referenced by a load instruction with the base register that is the Pc.

These can often be values in a literal pool near the Address of the instruction. The Address of the instruction and its immediate Value are used as a possible literal pool entry. The SymbolLookUp call back will return the name of a symbol referenced by the literal pool's entry if the referenced address is that of a symbol. Or it will return a pointer to a literal 'C' string if the referenced address of the literal pool's entry is an address into a section with 'C' string literals.

Definition at line 717 of file ARMDisassembler.cpp.

References llvm::MCDisassembler::tryAddingPcLoadReferenceComment().

Referenced by DecodeAddrModeImm12Operand(), and DecodeThumbAddrModePC().

◆ tryAddingSymbolicOperand()

static bool tryAddingSymbolicOperand ( uint64_t  Address,
int32_t  Value,
bool  isBranch,
uint64_t  InstSize,
MCInst MI,
const void *  Decoder 
)
static

tryAddingSymbolicOperand - trys to add a symbolic operand in place of the immediate Value in the MCInst.

The immediate Value has had any PC adjustment made by the caller. If the instruction is a branch instruction then isBranch is true, else false. If the getOpInfo() function was set as part of the setupForSymbolicDisassembly() call then that function is called to get any symbolic information at the Address for this instruction. If that returns non-zero then the symbolic information it returns is used to create an MCExpr and that is added as an operand to the MCInst. If getOpInfo() returns zero and isBranch is true then a symbol look up for Value is done and if a symbol is found an MCExpr is created with that, else an MCExpr with Value is created. This function returns true if it adds an operand to the MCInst and false otherwise.

Definition at line 699 of file ARMDisassembler.cpp.

References llvm::MCDisassembler::tryAddingSymbolicOperand().

Referenced by DecodeArmMOVTWInstruction(), DecodeBFAfterTargetOperand(), DecodeBFLabelOperand(), DecodeBranchImmInstruction(), DecodeT2BInstruction(), DecodeT2BROperand(), DecodeT2MOVTWInstruction(), DecodeThumbBCCTargetOperand(), DecodeThumbBLTargetOperand(), DecodeThumbBLXOffset(), DecodeThumbBROperand(), and DecodeThumbCmpBROperand().

Variable Documentation

◆ CLRMGPRDecoderTable

const uint16_t CLRMGPRDecoderTable[]
static
Initial value:
= {
ARM::R0, ARM::R1, ARM::R2, ARM::R3,
ARM::R4, ARM::R5, ARM::R6, ARM::R7,
ARM::R8, ARM::R9, ARM::R10, ARM::R11,
ARM::R12, 0, ARM::LR, ARM::APSR
}
#define R4(n)
#define R2(n)
#define R6(n)

Definition at line 1118 of file ARMDisassembler.cpp.

Referenced by DecodeCLRMGPRRegisterClass().

◆ DPairDecoderTable

const uint16_t DPairDecoderTable[]
static
Initial value:
= {
ARM::Q0, ARM::D1_D2, ARM::Q1, ARM::D3_D4, ARM::Q2, ARM::D5_D6,
ARM::Q3, ARM::D7_D8, ARM::Q4, ARM::D9_D10, ARM::Q5, ARM::D11_D12,
ARM::Q6, ARM::D13_D14, ARM::Q7, ARM::D15_D16, ARM::Q8, ARM::D17_D18,
ARM::Q9, ARM::D19_D20, ARM::Q10, ARM::D21_D22, ARM::Q11, ARM::D23_D24,
ARM::Q12, ARM::D25_D26, ARM::Q13, ARM::D27_D28, ARM::Q14, ARM::D29_D30,
ARM::Q15
}

Definition at line 1368 of file ARMDisassembler.cpp.

Referenced by DecodeDPairRegisterClass().

◆ DPairSpacedDecoderTable

const uint16_t DPairSpacedDecoderTable[]
static
Initial value:
= {
ARM::D0_D2, ARM::D1_D3, ARM::D2_D4, ARM::D3_D5,
ARM::D4_D6, ARM::D5_D7, ARM::D6_D8, ARM::D7_D9,
ARM::D8_D10, ARM::D9_D11, ARM::D10_D12, ARM::D11_D13,
ARM::D12_D14, ARM::D13_D15, ARM::D14_D16, ARM::D15_D17,
ARM::D16_D18, ARM::D17_D19, ARM::D18_D20, ARM::D19_D21,
ARM::D20_D22, ARM::D21_D23, ARM::D22_D24, ARM::D23_D25,
ARM::D24_D26, ARM::D25_D27, ARM::D26_D28, ARM::D27_D29,
ARM::D28_D30, ARM::D29_D31
}

Definition at line 1387 of file ARMDisassembler.cpp.

Referenced by DecodeDPairSpacedRegisterClass().

◆ DPRDecoderTable

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

Definition at line 1302 of file ARMDisassembler.cpp.

Referenced by DecodeDPRRegisterClass().

◆ GPRDecoderTable

const uint16_t GPRDecoderTable[]
static
Initial value:
= {
ARM::R0, ARM::R1, ARM::R2, ARM::R3,
ARM::R4, ARM::R5, ARM::R6, ARM::R7,
ARM::R8, ARM::R9, ARM::R10, ARM::R11,
ARM::R12, ARM::SP, ARM::LR, ARM::PC
}
#define R4(n)
#define R2(n)
#define R6(n)

Definition at line 1111 of file ARMDisassembler.cpp.

Referenced by DecodeGPRRegisterClass(), DecodetGPREvenRegisterClass(), and DecodetGPROddRegisterClass().

◆ GPRPairDecoderTable

const uint16_t GPRPairDecoderTable[]
static
Initial value:
= {
ARM::R0_R1, ARM::R2_R3, ARM::R4_R5, ARM::R6_R7,
ARM::R8_R9, ARM::R10_R11, ARM::R12_SP
}

Definition at line 1212 of file ARMDisassembler.cpp.

Referenced by DecodeGPRPairRegisterClass().

◆ QPRDecoderTable

const uint16_t QPRDecoderTable[]
static
Initial value:
= {
ARM::Q0, ARM::Q1, ARM::Q2, ARM::Q3,
ARM::Q4, ARM::Q5, ARM::Q6, ARM::Q7,
ARM::Q8, ARM::Q9, ARM::Q10, ARM::Q11,
ARM::Q12, ARM::Q13, ARM::Q14, ARM::Q15
}

Definition at line 1350 of file ARMDisassembler.cpp.

Referenced by DecodeMQPRRegisterClass(), and DecodeQPRRegisterClass().

◆ QQPRDecoderTable

const uint16_t QQPRDecoderTable[]
static
Initial value:
= {
ARM::Q0_Q1, ARM::Q1_Q2, ARM::Q2_Q3, ARM::Q3_Q4,
ARM::Q4_Q5, ARM::Q5_Q6, ARM::Q6_Q7
}

Definition at line 6084 of file ARMDisassembler.cpp.

Referenced by DecodeQQPRRegisterClass().

◆ QQQQPRDecoderTable

const uint16_t QQQQPRDecoderTable[]
static
Initial value:
= {
ARM::Q0_Q1_Q2_Q3, ARM::Q1_Q2_Q3_Q4, ARM::Q2_Q3_Q4_Q5,
ARM::Q3_Q4_Q5_Q6, ARM::Q4_Q5_Q6_Q7
}

Definition at line 6100 of file ARMDisassembler.cpp.

Referenced by DecodeQQQQPRRegisterClass().

◆ SPRDecoderTable

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

Definition at line 1276 of file ARMDisassembler.cpp.

Referenced by DecodeSPRRegisterClass().