LLVM 22.0.0git
MipsDisassembler.cpp File Reference
#include "MCTargetDesc/MipsMCTargetDesc.h"
#include "TargetInfo/MipsTargetInfo.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDecoder.h"
#include "llvm/MC/MCDecoderOps.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
#include "MipsGenDisassemblerTables.inc"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "mips-disassembler"

Functions

static MCDisassemblercreateMipsDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
static MCDisassemblercreateMipselDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeMipsDisassembler ()
static unsigned getReg (const MCDisassembler *D, unsigned RC, unsigned RegNo)
static DecodeStatus DecodeHWRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeAFGR64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeACC64DSPRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeHI32DSPRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeLO32DSPRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSA128BRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSA128HRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSA128WRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSA128DRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSACtrlRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCOP0RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCOP2RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeRegListOperand (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeRegListOperand16 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeINSVE_DF (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeDAHIDATIMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeDAHIDATI (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeAddiGroupBranch (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodePOP35GroupBranchMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeDaddiGroupBranch (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodePOP37GroupBranchMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodePOP65GroupBranchMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodePOP75GroupBranchMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeBlezlGroupBranch (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeBgtzlGroupBranch (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeBgtzGroupBranch (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeBlezGroupBranch (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeDEXT (MCInst &MI, InsnType Insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeDINS (MCInst &MI, InsnType Insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeCRC (MCInst &MI, InsnType Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCPU16RegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPR64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPRMM16RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPRMM16ZeroRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPRMM16MovePRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPR32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePtrRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeDSPRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFGR64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFGR32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCCRRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFCCRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFGRCCRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMem (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemEVA (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeLoadByte15 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCacheOp (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCacheOpMM (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePrefeOpMM (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeCacheeOp_CacheOpR6 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSyncI (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSyncI_MM (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSynciR6 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMSA128Mem (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMImm4 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMSPImm5Lsl2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMGPImm7Lsl2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMReglistImm4Lsl2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMImm9 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMImm12 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMemMMImm16 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMem (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMemMMR2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMem2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMem3 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMemCop2R6 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFMemCop2MMR6 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSpecial3LlSc (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget1SImm16 (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeJumpTarget (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget21 (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget21MM (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget26 (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget7MM (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget10MM (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTargetMM (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeBranchTarget26MM (MCInst &Inst, unsigned Offset, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeJumpTargetMM (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeJumpTargetXMM (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeAddiur2Simm7 (MCInst &Inst, unsigned Value, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeLi16Imm (MCInst &Inst, unsigned Value, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodePOOL16BEncodedField (MCInst &Inst, unsigned Value, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned Bits, int Offset, int Scale>
static DecodeStatus DecodeUImmWithOffsetAndScale (MCInst &Inst, unsigned Value, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned Bits, int Offset = 0, int ScaleBy = 1>
static DecodeStatus DecodeSImmWithOffsetAndScale (MCInst &Inst, unsigned Value, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned Bits, int Offset>
static DecodeStatus DecodeUImmWithOffset (MCInst &Inst, unsigned Value, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeInsSize (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSimm19Lsl2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSimm18Lsl3 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSimm9SP (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeANDI16Imm (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMovePRegPair (MCInst &Inst, unsigned RegPair, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeMovePOperands (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSimm23Lsl2 (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeBgtzGroupBranchMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
template<typename InsnType>
static DecodeStatus DecodeBlezGroupBranchMMR6 (MCInst &MI, InsnType insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFIXMEInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus readInstruction16 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint32_t &Insn, bool IsBigEndian)
 Read two bytes from the ArrayRef and return 16 bit halfword sorted according to the given endianness.
static DecodeStatus readInstruction32 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint32_t &Insn, bool IsBigEndian, bool IsMicroMips)
 Read four bytes from the ArrayRef and return 32 bit word sorted according to the given endianness.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mips-disassembler"

Definition at line 35 of file MipsDisassembler.cpp.

Function Documentation

◆ createMipsDisassembler()

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

Definition at line 81 of file MipsDisassembler.cpp.

References T.

Referenced by LLVMInitializeMipsDisassembler().

◆ createMipselDisassembler()

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

Definition at line 87 of file MipsDisassembler.cpp.

References T.

Referenced by LLVMInitializeMipsDisassembler().

◆ DecodeACC64DSPRegisterClass()

DecodeStatus DecodeACC64DSPRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeAddiGroupBranch()

template<typename InsnType>
DecodeStatus DecodeAddiGroupBranch ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeAddiur2Simm7()

DecodeStatus DecodeAddiur2Simm7 ( MCInst & Inst,
unsigned Value,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeAFGR64RegisterClass()

DecodeStatus DecodeAFGR64RegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeANDI16Imm()

DecodeStatus DecodeANDI16Imm ( MCInst & Inst,
unsigned Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBgtzGroupBranch()

template<typename InsnType>
DecodeStatus DecodeBgtzGroupBranch ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBgtzGroupBranchMMR6()

template<typename InsnType>
DecodeStatus DecodeBgtzGroupBranchMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBgtzlGroupBranch()

template<typename InsnType>
DecodeStatus DecodeBgtzlGroupBranch ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBlezGroupBranch()

template<typename InsnType>
DecodeStatus DecodeBlezGroupBranch ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBlezGroupBranchMMR6()

template<typename InsnType>
DecodeStatus DecodeBlezGroupBranchMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBlezlGroupBranch()

template<typename InsnType>
DecodeStatus DecodeBlezlGroupBranch ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget()

DecodeStatus DecodeBranchTarget ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget10MM()

DecodeStatus DecodeBranchTarget10MM ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget1SImm16()

DecodeStatus DecodeBranchTarget1SImm16 ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget21()

DecodeStatus DecodeBranchTarget21 ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget21MM()

DecodeStatus DecodeBranchTarget21MM ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget26()

DecodeStatus DecodeBranchTarget26 ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget26MM()

DecodeStatus DecodeBranchTarget26MM ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTarget7MM()

DecodeStatus DecodeBranchTarget7MM ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeBranchTargetMM()

DecodeStatus DecodeBranchTargetMM ( MCInst & Inst,
unsigned Offset,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeCacheeOp_CacheOpR6()

◆ DecodeCacheOp()

◆ DecodeCacheOpMM()

◆ DecodeCCRRegisterClass()

DecodeStatus DecodeCCRRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeCOP0RegisterClass()

DecodeStatus DecodeCOP0RegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeCOP2RegisterClass()

DecodeStatus DecodeCOP2RegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeCPU16RegsRegisterClass()

DecodeStatus DecodeCPU16RegsRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 873 of file MipsDisassembler.cpp.

References llvm::MCDisassembler::Fail.

◆ DecodeCRC()

template<typename InsnType>
DecodeStatus DecodeCRC ( MCInst & MI,
InsnType Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDaddiGroupBranch()

template<typename InsnType>
DecodeStatus DecodeDaddiGroupBranch ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDAHIDATI()

template<typename InsnType>
DecodeStatus DecodeDAHIDATI ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDAHIDATIMMR6()

template<typename InsnType>
DecodeStatus DecodeDAHIDATIMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDEXT()

template<typename InsnType>
DecodeStatus DecodeDEXT ( MCInst & MI,
InsnType Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDINS()

template<typename InsnType>
DecodeStatus DecodeDINS ( MCInst & MI,
InsnType Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDSPRRegisterClass()

DecodeStatus DecodeDSPRRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 938 of file MipsDisassembler.cpp.

References DecodeGPR32RegisterClass().

◆ DecodeFCCRegisterClass()

DecodeStatus DecodeFCCRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeFGR32RegisterClass()

DecodeStatus DecodeFGR32RegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeFGR64RegisterClass()

DecodeStatus DecodeFGR64RegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeFGRCCRegisterClass()

DecodeStatus DecodeFGRCCRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeFIXMEInstruction()

DecodeStatus DecodeFIXMEInstruction ( MCInst & Inst,
unsigned Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 1884 of file MipsDisassembler.cpp.

References llvm::MCDisassembler::Fail.

◆ DecodeFMem()

◆ DecodeFMem2()

◆ DecodeFMem3()

◆ DecodeFMemCop2MMR6()

◆ DecodeFMemCop2R6()

◆ DecodeFMemMMR2()

◆ DecodeGPR32RegisterClass()

◆ DecodeGPR64RegisterClass()

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

◆ DecodeGPRMM16MovePRegisterClass()

DecodeStatus DecodeGPRMM16MovePRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeGPRMM16RegisterClass()

DecodeStatus DecodeGPRMM16RegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeGPRMM16ZeroRegisterClass()

DecodeStatus DecodeGPRMM16ZeroRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeHI32DSPRegisterClass()

DecodeStatus DecodeHI32DSPRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeHWRegsRegisterClass()

DecodeStatus DecodeHWRegsRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeInsSize()

◆ DecodeINSVE_DF()

◆ DecodeJumpTarget()

◆ DecodeJumpTargetMM()

◆ DecodeJumpTargetXMM()

◆ DecodeLi16Imm()

DecodeStatus DecodeLi16Imm ( MCInst & Inst,
unsigned Value,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeLO32DSPRegisterClass()

DecodeStatus DecodeLO32DSPRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeLoadByte15()

◆ DecodeMem()

◆ DecodeMemEVA()

◆ DecodeMemMMGPImm7Lsl2()

◆ DecodeMemMMImm12()

◆ DecodeMemMMImm16()

◆ DecodeMemMMImm4()

◆ DecodeMemMMImm9()

◆ DecodeMemMMReglistImm4Lsl2()

◆ DecodeMemMMSPImm5Lsl2()

◆ DecodeMovePOperands()

◆ DecodeMovePRegPair()

DecodeStatus DecodeMovePRegPair ( MCInst & Inst,
unsigned RegPair,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeMSA128BRegisterClass()

DecodeStatus DecodeMSA128BRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeMSA128DRegisterClass()

DecodeStatus DecodeMSA128DRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeMSA128HRegisterClass()

DecodeStatus DecodeMSA128HRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeMSA128Mem()

◆ DecodeMSA128WRegisterClass()

DecodeStatus DecodeMSA128WRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeMSACtrlRegisterClass()

DecodeStatus DecodeMSACtrlRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodePOOL16BEncodedField()

DecodeStatus DecodePOOL16BEncodedField ( MCInst & Inst,
unsigned Value,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodePOP35GroupBranchMMR6()

template<typename InsnType>
DecodeStatus DecodePOP35GroupBranchMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodePOP37GroupBranchMMR6()

template<typename InsnType>
DecodeStatus DecodePOP37GroupBranchMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodePOP65GroupBranchMMR6()

template<typename InsnType>
DecodeStatus DecodePOP65GroupBranchMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodePOP75GroupBranchMMR6()

template<typename InsnType>
DecodeStatus DecodePOP75GroupBranchMMR6 ( MCInst & MI,
InsnType insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodePrefeOpMM()

◆ DecodePtrRegisterClass()

DecodeStatus DecodePtrRegisterClass ( MCInst & Inst,
unsigned RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 929 of file MipsDisassembler.cpp.

References DecodeGPR32RegisterClass(), and DecodeGPR64RegisterClass().

◆ DecodeRegListOperand()

◆ DecodeRegListOperand16()

◆ DecodeSimm18Lsl3()

DecodeStatus DecodeSimm18Lsl3 ( MCInst & Inst,
unsigned Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeSimm19Lsl2()

DecodeStatus DecodeSimm19Lsl2 ( MCInst & Inst,
unsigned Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeSimm23Lsl2()

DecodeStatus DecodeSimm23Lsl2 ( MCInst & Inst,
unsigned Insn,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeSimm9SP()

◆ DecodeSImmWithOffsetAndScale()

template<unsigned Bits, int Offset = 0, int ScaleBy = 1>
DecodeStatus DecodeSImmWithOffsetAndScale ( MCInst & Inst,
unsigned Value,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeSpecial3LlSc()

◆ DecodeSyncI()

◆ DecodeSyncI_MM()

◆ DecodeSynciR6()

◆ DecodeUImmWithOffset()

template<unsigned Bits, int Offset>
DecodeStatus DecodeUImmWithOffset ( MCInst & Inst,
unsigned Value,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 1656 of file MipsDisassembler.cpp.

References DecodeUImmWithOffsetAndScale().

◆ DecodeUImmWithOffsetAndScale()

template<unsigned Bits, int Offset, int Scale>
DecodeStatus DecodeUImmWithOffsetAndScale ( MCInst & Inst,
unsigned Value,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ getReg()

unsigned getReg ( const MCDisassembler * D,
unsigned RC,
unsigned RegNo )
static

Definition at line 106 of file MipsDisassembler.cpp.

References D().

Referenced by AddNodeIDCustom(), llvm::CombinerHelper::applyFoldBinOpIntoSelect(), llvm::CombinerHelper::applyShiftOfShiftedLogic(), buildCopyToRegs(), llvm::CSEMIRBuilder::buildInstr(), buildReadLane(), llvm::LegalizerHelper::buildVariableShiftPart(), llvm::PPCInstrInfo::canInsertSelect(), llvm::HexagonPacketizerList::canPromoteToNewValueStore(), llvm::GISelValueTracking::computeKnownBitsImpl(), DecodeACC64DSPRegisterClass(), DecodeAddiGroupBranch(), DecodeAFGR64RegisterClass(), DecodeBgtzGroupBranch(), DecodeBgtzGroupBranchMMR6(), DecodeBgtzlGroupBranch(), DecodeBlezGroupBranch(), DecodeBlezGroupBranchMMR6(), DecodeBlezlGroupBranch(), DecodeCacheeOp_CacheOpR6(), DecodeCacheOp(), DecodeCacheOpMM(), DecodeCCRRegisterClass(), DecodeCOP0RegisterClass(), DecodeCOP2RegisterClass(), DecodeCRC(), DecodeDaddiGroupBranch(), DecodeDAHIDATI(), DecodeDAHIDATIMMR6(), DecodeDEXT(), DecodeDINS(), DecodeFCCRegisterClass(), DecodeFGR32RegisterClass(), DecodeFGR64RegisterClass(), DecodeFGRCCRegisterClass(), DecodeFMem(), DecodeFMem2(), DecodeFMem3(), DecodeFMemCop2MMR6(), DecodeFMemCop2R6(), DecodeFMemMMR2(), DecodeGPR32RegisterClass(), DecodeGPR64RegisterClass(), DecodeGPRMM16MovePRegisterClass(), DecodeGPRMM16RegisterClass(), DecodeGPRMM16ZeroRegisterClass(), DecodeHI32DSPRegisterClass(), DecodeLO32DSPRegisterClass(), DecodeLoadByte15(), DecodeMem(), DecodeMemEVA(), DecodeMemMMGPImm7Lsl2(), DecodeMemMMImm12(), DecodeMemMMImm16(), DecodeMemMMImm9(), DecodeMemMMSPImm5Lsl2(), DecodeMSA128BRegisterClass(), DecodeMSA128DRegisterClass(), DecodeMSA128HRegisterClass(), DecodeMSA128Mem(), DecodeMSA128WRegisterClass(), DecodeMSACtrlRegisterClass(), DecodePOP35GroupBranchMMR6(), DecodePOP37GroupBranchMMR6(), DecodePOP65GroupBranchMMR6(), DecodePOP75GroupBranchMMR6(), DecodePrefeOpMM(), DecodeSpecial3LlSc(), DecodeSyncI(), DecodeSyncI_MM(), DecodeSynciR6(), llvm::SIInstrInfo::expandMovDPP64(), llvm::LegalizerHelper::fewerElementsVectorReductions(), findRenameRegForSameLdStRegPair(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::MachineInstr::getFirst2LLTs(), llvm::MachineInstr::getFirst2Regs(), llvm::MachineInstr::getFirst3LLTs(), llvm::MachineInstr::getFirst3Regs(), llvm::MachineInstr::getFirst4LLTs(), llvm::MachineInstr::getFirst4Regs(), llvm::MachineInstr::getFirst5LLTs(), llvm::MachineInstr::getFirst5Regs(), getMaxCalleeSavedReg(), getUnderlyingArgRegs(), INITIALIZE_PASS(), llvm::HexagonInstrInfo::insertBranch(), llvm::PPCInstrInfo::insertBranch(), llvm::XCoreInstrInfo::insertBranch(), llvm::XtensaInstrInfo::insertBranchAtInst(), llvm::XtensaInstrInfo::insertConstBranchAtInst(), llvm::AArch64InstrInfo::insertSelect(), llvm::PPCInstrInfo::insertSelect(), llvm::MachineInstr::isConstantValuePHI(), llvm::AMDGPULegalizerInfo::legalizeAddrSpaceCast(), llvm::AMDGPULegalizerInfo::legalizeAtomicCmpXChg(), llvm::AMDGPULegalizerInfo::legalizeCTLZ_ZERO_UNDEF(), llvm::AArch64LegalizerInfo::legalizeIntrinsic(), llvm::AMDGPULegalizerInfo::legalizeIsAddrSpace(), llvm::LegalizerHelper::lowerFunnelShiftWithInverse(), llvm::AArch64CallLowering::lowerReturn(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), mayCombineMisaligned(), llvm::ARMBaseInstrInfo::PredicateInstruction(), llvm::PPCInstrInfo::PredicateInstruction(), llvm::R600InstrInfo::PredicateInstruction(), llvm::TargetInstrInfo::PredicateInstruction(), llvm::RegisterBankInfo::OperandsMapper::print(), llvm::ARMInstPrinter::printModImmOperand(), llvm::BitTracker::RegisterRef::RegisterRef(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::PPCInstrInfo::reverseBranchCondition(), llvm::RISCVDAGToDAGISel::selectVLOp(), llvm::SGPRSpillBuilder::SGPRSpillBuilder(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), and llvm::PPCInstrInfo::SubsumesPredicate().

◆ LLVMInitializeMipsDisassembler()

◆ readInstruction16()

DecodeStatus readInstruction16 ( ArrayRef< uint8_t > Bytes,
uint64_t Address,
uint64_t & Size,
uint32_t & Insn,
bool IsBigEndian )
static

Read two bytes from the ArrayRef and return 16 bit halfword sorted according to the given endianness.

Definition at line 1894 of file MipsDisassembler.cpp.

References llvm::MCDisassembler::Fail, Size, llvm::ArrayRef< T >::size(), and llvm::MCDisassembler::Success.

◆ readInstruction32()

DecodeStatus readInstruction32 ( ArrayRef< uint8_t > Bytes,
uint64_t Address,
uint64_t & Size,
uint32_t & Insn,
bool IsBigEndian,
bool IsMicroMips )
static

Read four bytes from the ArrayRef and return 32 bit word sorted according to the given endianness.

Definition at line 1914 of file MipsDisassembler.cpp.

References llvm::MCDisassembler::Fail, Size, llvm::ArrayRef< T >::size(), and llvm::MCDisassembler::Success.