LLDB mainline
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Private Attributes | List of all members
EmulateInstructionMIPS Class Reference

#include <EmulateInstructionMIPS.h>

Inheritance diagram for EmulateInstructionMIPS:
Inheritance graph
[legend]

Classes

struct  MipsOpcode
 

Public Member Functions

llvm::StringRef GetPluginName () override
 
bool SetTargetTriple (const lldb_private::ArchSpec &arch) override
 
 EmulateInstructionMIPS (const lldb_private::ArchSpec &arch)
 
bool SupportsEmulatingInstructionsOfType (lldb_private::InstructionType inst_type) override
 
bool ReadInstruction () override
 
bool EvaluateInstruction (uint32_t evaluate_options) override
 
bool SetInstruction (const lldb_private::Opcode &insn_opcode, const lldb_private::Address &inst_addr, lldb_private::Target *target) override
 
bool TestEmulation (lldb_private::Stream &out_stream, lldb_private::ArchSpec &arch, lldb_private::OptionValueDictionary *test_data) override
 
std::optional< lldb_private::RegisterInfoGetRegisterInfo (lldb::RegisterKind reg_kind, uint32_t reg_num) override
 
bool CreateFunctionEntryUnwind (lldb_private::UnwindPlan &unwind_plan) override
 
- Public Member Functions inherited from lldb_private::EmulateInstruction
 EmulateInstruction (const ArchSpec &arch)
 
 ~EmulateInstruction () override=default
 
virtual bool SupportsEmulatingInstructionsOfType (InstructionType inst_type)=0
 
virtual bool SetTargetTriple (const ArchSpec &arch)=0
 
virtual bool ReadInstruction ()=0
 
virtual std::optional< uint32_t > GetLastInstrSize ()
 
virtual bool EvaluateInstruction (uint32_t evaluate_options)=0
 
virtual InstructionCondition GetInstructionCondition ()
 
virtual bool TestEmulation (Stream &out_stream, ArchSpec &arch, OptionValueDictionary *test_data)=0
 
virtual std::optional< RegisterInfoGetRegisterInfo (lldb::RegisterKind reg_kind, uint32_t reg_num)=0
 
virtual bool SetInstruction (const Opcode &insn_opcode, const Address &inst_addr, Target *target)
 
virtual bool CreateFunctionEntryUnwind (UnwindPlan &unwind_plan)
 
std::optional< RegisterValueReadRegister (const RegisterInfo &reg_info)
 
uint64_t ReadRegisterUnsigned (const RegisterInfo &reg_info, uint64_t fail_value, bool *success_ptr)
 
bool WriteRegister (const Context &context, const RegisterInfo &ref_info, const RegisterValue &reg_value)
 
bool WriteRegisterUnsigned (const Context &context, const RegisterInfo &reg_info, uint64_t reg_value)
 
bool ReadRegister (lldb::RegisterKind reg_kind, uint32_t reg_num, RegisterValue &reg_value)
 
bool WriteRegister (const Context &context, lldb::RegisterKind reg_kind, uint32_t reg_num, const RegisterValue &reg_value)
 
uint64_t ReadRegisterUnsigned (lldb::RegisterKind reg_kind, uint32_t reg_num, uint64_t fail_value, bool *success_ptr)
 
bool WriteRegisterUnsigned (const Context &context, lldb::RegisterKind reg_kind, uint32_t reg_num, uint64_t reg_value)
 
size_t ReadMemory (const Context &context, lldb::addr_t addr, void *dst, size_t dst_len)
 
uint64_t ReadMemoryUnsigned (const Context &context, lldb::addr_t addr, size_t byte_size, uint64_t fail_value, bool *success_ptr)
 
bool WriteMemory (const Context &context, lldb::addr_t addr, const void *src, size_t src_len)
 
bool WriteMemoryUnsigned (const Context &context, lldb::addr_t addr, uint64_t uval, size_t uval_byte_size)
 
uint32_t GetAddressByteSize () const
 
lldb::ByteOrder GetByteOrder () const
 
const OpcodeGetOpcode () const
 
lldb::addr_t GetAddress () const
 
const ArchSpecGetArchitecture () const
 
void SetBaton (void *baton)
 
void SetCallbacks (ReadMemoryCallback read_mem_callback, WriteMemoryCallback write_mem_callback, ReadRegisterCallback read_reg_callback, WriteRegisterCallback write_reg_callback)
 
void SetReadMemCallback (ReadMemoryCallback read_mem_callback)
 
void SetWriteMemCallback (WriteMemoryCallback write_mem_callback)
 
void SetReadRegCallback (ReadRegisterCallback read_reg_callback)
 
void SetWriteRegCallback (WriteRegisterCallback write_reg_callback)
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
virtual llvm::StringRef GetPluginName ()=0
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 
static llvm::StringRef GetPluginNameStatic ()
 
static llvm::StringRef GetPluginDescriptionStatic ()
 
static lldb_private::EmulateInstructionCreateInstance (const lldb_private::ArchSpec &arch, lldb_private::InstructionType inst_type)
 
static bool SupportsEmulatingInstructionsOfTypeStatic (lldb_private::InstructionType inst_type)
 
- Static Public Member Functions inherited from lldb_private::EmulateInstruction
static EmulateInstructionFindPlugin (const ArchSpec &arch, InstructionType supported_inst_type, const char *plugin_name)
 
static const char * TranslateRegister (lldb::RegisterKind reg_kind, uint32_t reg_num, std::string &reg_name)
 
static size_t ReadMemoryFrame (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t length)
 
static size_t WriteMemoryFrame (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *dst, size_t length)
 
static bool ReadRegisterFrame (EmulateInstruction *instruction, void *baton, const RegisterInfo *reg_info, RegisterValue &reg_value)
 
static bool WriteRegisterFrame (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue &reg_value)
 
static size_t ReadMemoryDefault (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t length)
 
static size_t WriteMemoryDefault (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *dst, size_t length)
 
static bool ReadRegisterDefault (EmulateInstruction *instruction, void *baton, const RegisterInfo *reg_info, RegisterValue &reg_value)
 
static bool WriteRegisterDefault (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue &reg_value)
 
static bool GetBestRegisterKindAndNumber (const RegisterInfo *reg_info, lldb::RegisterKind &reg_kind, uint32_t &reg_num)
 
static uint32_t GetInternalRegisterNumber (RegisterContext *reg_ctx, const RegisterInfo &reg_info)
 

Protected Member Functions

uint32_t GetSizeOfInstruction (lldb_private::DataExtractor &data, uint64_t inst_addr)
 
bool Emulate_ADDiu (llvm::MCInst &insn)
 
bool Emulate_SUBU_ADDU (llvm::MCInst &insn)
 
bool Emulate_LUI (llvm::MCInst &insn)
 
bool Emulate_SW (llvm::MCInst &insn)
 
bool Emulate_LW (llvm::MCInst &insn)
 
bool Emulate_ADDIUSP (llvm::MCInst &insn)
 
bool Emulate_ADDIUS5 (llvm::MCInst &insn)
 
bool Emulate_SWSP (llvm::MCInst &insn)
 
bool Emulate_SWM16_32 (llvm::MCInst &insn)
 
bool Emulate_LWSP (llvm::MCInst &insn)
 
bool Emulate_LWM16_32 (llvm::MCInst &insn)
 
bool Emulate_JRADDIUSP (llvm::MCInst &insn)
 
bool Emulate_LDST_Imm (llvm::MCInst &insn)
 
bool Emulate_LDST_Reg (llvm::MCInst &insn)
 
bool Emulate_BXX_3ops (llvm::MCInst &insn)
 
bool Emulate_BXX_3ops_C (llvm::MCInst &insn)
 
bool Emulate_BXX_2ops (llvm::MCInst &insn)
 
bool Emulate_BXX_2ops_C (llvm::MCInst &insn)
 
bool Emulate_Bcond_Link_C (llvm::MCInst &insn)
 
bool Emulate_Bcond_Link (llvm::MCInst &insn)
 
bool Emulate_FP_branch (llvm::MCInst &insn)
 
bool Emulate_3D_branch (llvm::MCInst &insn)
 
bool Emulate_BAL (llvm::MCInst &insn)
 
bool Emulate_BALC (llvm::MCInst &insn)
 
bool Emulate_BC (llvm::MCInst &insn)
 
bool Emulate_J (llvm::MCInst &insn)
 
bool Emulate_JAL (llvm::MCInst &insn)
 
bool Emulate_JALR (llvm::MCInst &insn)
 
bool Emulate_JIALC (llvm::MCInst &insn)
 
bool Emulate_JIC (llvm::MCInst &insn)
 
bool Emulate_JR (llvm::MCInst &insn)
 
bool Emulate_BC1EQZ (llvm::MCInst &insn)
 
bool Emulate_BC1NEZ (llvm::MCInst &insn)
 
bool Emulate_BNZB (llvm::MCInst &insn)
 
bool Emulate_BNZH (llvm::MCInst &insn)
 
bool Emulate_BNZW (llvm::MCInst &insn)
 
bool Emulate_BNZD (llvm::MCInst &insn)
 
bool Emulate_BZB (llvm::MCInst &insn)
 
bool Emulate_BZH (llvm::MCInst &insn)
 
bool Emulate_BZW (llvm::MCInst &insn)
 
bool Emulate_BZD (llvm::MCInst &insn)
 
bool Emulate_MSA_Branch_DF (llvm::MCInst &insn, int element_byte_size, bool bnz)
 
bool Emulate_BNZV (llvm::MCInst &insn)
 
bool Emulate_BZV (llvm::MCInst &insn)
 
bool Emulate_MSA_Branch_V (llvm::MCInst &insn, bool bnz)
 
bool Emulate_B16_MM (llvm::MCInst &insn)
 
bool Emulate_Branch_MM (llvm::MCInst &insn)
 
bool Emulate_JALRx16_MM (llvm::MCInst &insn)
 
bool Emulate_JALx (llvm::MCInst &insn)
 
bool Emulate_JALRS (llvm::MCInst &insn)
 
bool nonvolatile_reg_p (uint32_t regnum)
 
const char * GetRegisterName (unsigned reg_num, bool alternate_name)
 

Static Protected Member Functions

static MipsOpcodeGetOpcodeForInstruction (llvm::StringRef name)
 

Private Attributes

std::unique_ptr< llvm::MCDisassembler > m_disasm
 
std::unique_ptr< llvm::MCDisassembler > m_alt_disasm
 
std::unique_ptr< llvm::MCSubtargetInfo > m_subtype_info
 
std::unique_ptr< llvm::MCSubtargetInfo > m_alt_subtype_info
 
std::unique_ptr< llvm::MCRegisterInfo > m_reg_info
 
std::unique_ptr< llvm::MCAsmInfo > m_asm_info
 
std::unique_ptr< llvm::MCContext > m_context
 
std::unique_ptr< llvm::MCInstrInfo > m_insn_info
 
uint32_t m_next_inst_size
 
bool m_use_alt_disaasm
 

Additional Inherited Members

- Public Types inherited from lldb_private::EmulateInstruction
enum  ContextType {
  eContextInvalid = 0 , eContextReadOpcode , eContextImmediate , eContextPushRegisterOnStack ,
  eContextPopRegisterOffStack , eContextAdjustStackPointer , eContextSetFramePointer , eContextRestoreStackPointer ,
  eContextAdjustBaseRegister , eContextAdjustPC , eContextRegisterPlusOffset , eContextRegisterStore ,
  eContextRegisterLoad , eContextRelativeBranchImmediate , eContextAbsoluteBranchRegister , eContextSupervisorCall ,
  eContextTableBranchReadMemory , eContextWriteRegisterRandomBits , eContextWriteMemoryRandomBits , eContextArithmetic ,
  eContextAdvancePC , eContextReturnFromException
}
 
enum  InfoType {
  eInfoTypeRegisterPlusOffset , eInfoTypeRegisterPlusIndirectOffset , eInfoTypeRegisterToRegisterPlusOffset , eInfoTypeRegisterToRegisterPlusIndirectOffset ,
  eInfoTypeRegisterRegisterOperands , eInfoTypeOffset , eInfoTypeRegister , eInfoTypeImmediate ,
  eInfoTypeImmediateSigned , eInfoTypeAddress , eInfoTypeISAAndImmediate , eInfoTypeISAAndImmediateSigned ,
  eInfoTypeISA , eInfoTypeNoArgs
}
 
typedef size_t(* ReadMemoryCallback) (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, void *dst, size_t length)
 
typedef size_t(* WriteMemoryCallback) (EmulateInstruction *instruction, void *baton, const Context &context, lldb::addr_t addr, const void *dst, size_t length)
 
typedef bool(* ReadRegisterCallback) (EmulateInstruction *instruction, void *baton, const RegisterInfo *reg_info, RegisterValue &reg_value)
 
typedef bool(* WriteRegisterCallback) (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue &reg_value)
 
typedef uint32_t InstructionCondition
 
- Static Public Attributes inherited from lldb_private::EmulateInstruction
static const InstructionCondition UnconditionalCondition = UINT32_MAX
 
- Protected Attributes inherited from lldb_private::EmulateInstruction
ArchSpec m_arch
 
void * m_baton = nullptr
 
ReadMemoryCallback m_read_mem_callback = &ReadMemoryDefault
 
WriteMemoryCallback m_write_mem_callback = &WriteMemoryDefault
 
ReadRegisterCallback m_read_reg_callback = &ReadRegisterDefault
 
WriteRegisterCallback m_write_reg_callback = &WriteRegisterDefault
 
lldb::addr_t m_addr = LLDB_INVALID_ADDRESS
 
Opcode m_opcode
 

Detailed Description

Definition at line 31 of file EmulateInstructionMIPS.h.

Constructor & Destructor Documentation

◆ EmulateInstructionMIPS()

EmulateInstructionMIPS::EmulateInstructionMIPS ( const lldb_private::ArchSpec arch)

Member Function Documentation

◆ CreateFunctionEntryUnwind()

bool EmulateInstructionMIPS::CreateFunctionEntryUnwind ( lldb_private::UnwindPlan unwind_plan)
overridevirtual

◆ CreateInstance()

EmulateInstruction * EmulateInstructionMIPS::CreateInstance ( const lldb_private::ArchSpec arch,
lldb_private::InstructionType  inst_type 
)
static

◆ Emulate_3D_branch()

bool EmulateInstructionMIPS::Emulate_3D_branch ( llvm::MCInst &  insn)
protected

◆ Emulate_ADDiu()

bool EmulateInstructionMIPS::Emulate_ADDiu ( llvm::MCInst &  insn)
protected

◆ Emulate_ADDIUS5()

bool EmulateInstructionMIPS::Emulate_ADDIUS5 ( llvm::MCInst &  insn)
protected

◆ Emulate_ADDIUSP()

bool EmulateInstructionMIPS::Emulate_ADDIUSP ( llvm::MCInst &  insn)
protected

◆ Emulate_B16_MM()

bool EmulateInstructionMIPS::Emulate_B16_MM ( llvm::MCInst &  insn)
protected

◆ Emulate_BAL()

bool EmulateInstructionMIPS::Emulate_BAL ( llvm::MCInst &  insn)
protected

◆ Emulate_BALC()

bool EmulateInstructionMIPS::Emulate_BALC ( llvm::MCInst &  insn)
protected

◆ Emulate_BC()

bool EmulateInstructionMIPS::Emulate_BC ( llvm::MCInst &  insn)
protected

◆ Emulate_BC1EQZ()

bool EmulateInstructionMIPS::Emulate_BC1EQZ ( llvm::MCInst &  insn)
protected

◆ Emulate_BC1NEZ()

bool EmulateInstructionMIPS::Emulate_BC1NEZ ( llvm::MCInst &  insn)
protected

◆ Emulate_Bcond_Link()

bool EmulateInstructionMIPS::Emulate_Bcond_Link ( llvm::MCInst &  insn)
protected

◆ Emulate_Bcond_Link_C()

bool EmulateInstructionMIPS::Emulate_Bcond_Link_C ( llvm::MCInst &  insn)
protected

◆ Emulate_BNZB()

bool EmulateInstructionMIPS::Emulate_BNZB ( llvm::MCInst &  insn)
protected

Definition at line 2839 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BNZD()

bool EmulateInstructionMIPS::Emulate_BNZD ( llvm::MCInst &  insn)
protected

Definition at line 2851 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BNZH()

bool EmulateInstructionMIPS::Emulate_BNZH ( llvm::MCInst &  insn)
protected

Definition at line 2843 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BNZV()

bool EmulateInstructionMIPS::Emulate_BNZV ( llvm::MCInst &  insn)
protected

Definition at line 2931 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_V().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BNZW()

bool EmulateInstructionMIPS::Emulate_BNZW ( llvm::MCInst &  insn)
protected

Definition at line 2847 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_Branch_MM()

bool EmulateInstructionMIPS::Emulate_Branch_MM ( llvm::MCInst &  insn)
protected

◆ Emulate_BXX_2ops()

bool EmulateInstructionMIPS::Emulate_BXX_2ops ( llvm::MCInst &  insn)
protected

◆ Emulate_BXX_2ops_C()

bool EmulateInstructionMIPS::Emulate_BXX_2ops_C ( llvm::MCInst &  insn)
protected

◆ Emulate_BXX_3ops()

bool EmulateInstructionMIPS::Emulate_BXX_3ops ( llvm::MCInst &  insn)
protected

◆ Emulate_BXX_3ops_C()

bool EmulateInstructionMIPS::Emulate_BXX_3ops_C ( llvm::MCInst &  insn)
protected

◆ Emulate_BZB()

bool EmulateInstructionMIPS::Emulate_BZB ( llvm::MCInst &  insn)
protected

Definition at line 2855 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BZD()

bool EmulateInstructionMIPS::Emulate_BZD ( llvm::MCInst &  insn)
protected

Definition at line 2867 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BZH()

bool EmulateInstructionMIPS::Emulate_BZH ( llvm::MCInst &  insn)
protected

Definition at line 2859 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BZV()

bool EmulateInstructionMIPS::Emulate_BZV ( llvm::MCInst &  insn)
protected

Definition at line 2935 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_V().

Referenced by GetOpcodeForInstruction().

◆ Emulate_BZW()

bool EmulateInstructionMIPS::Emulate_BZW ( llvm::MCInst &  insn)
protected

Definition at line 2863 of file EmulateInstructionMIPS.cpp.

References Emulate_MSA_Branch_DF().

Referenced by GetOpcodeForInstruction().

◆ Emulate_FP_branch()

bool EmulateInstructionMIPS::Emulate_FP_branch ( llvm::MCInst &  insn)
protected

◆ Emulate_J()

bool EmulateInstructionMIPS::Emulate_J ( llvm::MCInst &  insn)
protected

◆ Emulate_JAL()

bool EmulateInstructionMIPS::Emulate_JAL ( llvm::MCInst &  insn)
protected

◆ Emulate_JALR()

bool EmulateInstructionMIPS::Emulate_JALR ( llvm::MCInst &  insn)
protected

◆ Emulate_JALRS()

bool EmulateInstructionMIPS::Emulate_JALRS ( llvm::MCInst &  insn)
protected

◆ Emulate_JALRx16_MM()

bool EmulateInstructionMIPS::Emulate_JALRx16_MM ( llvm::MCInst &  insn)
protected

◆ Emulate_JALx()

bool EmulateInstructionMIPS::Emulate_JALx ( llvm::MCInst &  insn)
protected

◆ Emulate_JIALC()

bool EmulateInstructionMIPS::Emulate_JIALC ( llvm::MCInst &  insn)
protected

◆ Emulate_JIC()

bool EmulateInstructionMIPS::Emulate_JIC ( llvm::MCInst &  insn)
protected

◆ Emulate_JR()

bool EmulateInstructionMIPS::Emulate_JR ( llvm::MCInst &  insn)
protected

◆ Emulate_JRADDIUSP()

bool EmulateInstructionMIPS::Emulate_JRADDIUSP ( llvm::MCInst &  insn)
protected

◆ Emulate_LDST_Imm()

bool EmulateInstructionMIPS::Emulate_LDST_Imm ( llvm::MCInst &  insn)
protected

◆ Emulate_LDST_Reg()

bool EmulateInstructionMIPS::Emulate_LDST_Reg ( llvm::MCInst &  insn)
protected

◆ Emulate_LUI()

bool EmulateInstructionMIPS::Emulate_LUI ( llvm::MCInst &  insn)
protected

◆ Emulate_LW()

bool EmulateInstructionMIPS::Emulate_LW ( llvm::MCInst &  insn)
protected

◆ Emulate_LWM16_32()

bool EmulateInstructionMIPS::Emulate_LWM16_32 ( llvm::MCInst &  insn)
protected

◆ Emulate_LWSP()

bool EmulateInstructionMIPS::Emulate_LWSP ( llvm::MCInst &  insn)
protected

◆ Emulate_MSA_Branch_DF()

bool EmulateInstructionMIPS::Emulate_MSA_Branch_DF ( llvm::MCInst &  insn,
int  element_byte_size,
bool  bnz 
)
protected

◆ Emulate_MSA_Branch_V()

bool EmulateInstructionMIPS::Emulate_MSA_Branch_V ( llvm::MCInst &  insn,
bool  bnz 
)
protected

◆ Emulate_SUBU_ADDU()

bool EmulateInstructionMIPS::Emulate_SUBU_ADDU ( llvm::MCInst &  insn)
protected

◆ Emulate_SW()

bool EmulateInstructionMIPS::Emulate_SW ( llvm::MCInst &  insn)
protected

◆ Emulate_SWM16_32()

bool EmulateInstructionMIPS::Emulate_SWM16_32 ( llvm::MCInst &  insn)
protected

◆ Emulate_SWSP()

bool EmulateInstructionMIPS::Emulate_SWSP ( llvm::MCInst &  insn)
protected

◆ EvaluateInstruction()

bool EmulateInstructionMIPS::EvaluateInstruction ( uint32_t  evaluate_options)
overridevirtual

◆ GetOpcodeForInstruction()

EmulateInstructionMIPS::MipsOpcode * EmulateInstructionMIPS::GetOpcodeForInstruction ( llvm::StringRef  name)
staticprotected

◆ GetPluginDescriptionStatic()

llvm::StringRef EmulateInstructionMIPS::GetPluginDescriptionStatic ( )
static

Definition at line 197 of file EmulateInstructionMIPS.cpp.

Referenced by Initialize().

◆ GetPluginName()

llvm::StringRef EmulateInstructionMIPS::GetPluginName ( )
inlineoverridevirtual

Implements lldb_private::PluginInterface.

Definition at line 59 of file EmulateInstructionMIPS.h.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

static llvm::StringRef EmulateInstructionMIPS::GetPluginNameStatic ( )
inlinestatic

Definition at line 37 of file EmulateInstructionMIPS.h.

Referenced by GetPluginName(), and Initialize().

◆ GetRegisterInfo()

std::optional< RegisterInfo > EmulateInstructionMIPS::GetRegisterInfo ( lldb::RegisterKind  reg_kind,
uint32_t  reg_num 
)
overridevirtual

◆ GetRegisterName()

const char * EmulateInstructionMIPS::GetRegisterName ( unsigned  reg_num,
bool  alternate_name 
)
protected

Definition at line 220 of file EmulateInstructionMIPS.cpp.

References dwarf_bad_mips, dwarf_cause_mips, dwarf_config5_mips, dwarf_f0_mips, dwarf_f10_mips, dwarf_f11_mips, dwarf_f12_mips, dwarf_f13_mips, dwarf_f14_mips, dwarf_f15_mips, dwarf_f16_mips, dwarf_f17_mips, dwarf_f18_mips, dwarf_f19_mips, dwarf_f1_mips, dwarf_f20_mips, dwarf_f21_mips, dwarf_f22_mips, dwarf_f23_mips, dwarf_f24_mips, dwarf_f25_mips, dwarf_f26_mips, dwarf_f27_mips, dwarf_f28_mips, dwarf_f29_mips, dwarf_f2_mips, dwarf_f30_mips, dwarf_f31_mips, dwarf_f3_mips, dwarf_f4_mips, dwarf_f5_mips, dwarf_f6_mips, dwarf_f7_mips, dwarf_f8_mips, dwarf_f9_mips, dwarf_fcsr_mips, dwarf_fir_mips, dwarf_gp_mips, dwarf_hi_mips, dwarf_lo_mips, dwarf_mcsr_mips, dwarf_mir_mips, dwarf_pc_mips, dwarf_r10_mips, dwarf_r11_mips, dwarf_r12_mips, dwarf_r13_mips, dwarf_r14_mips, dwarf_r15_mips, dwarf_r16_mips, dwarf_r17_mips, dwarf_r18_mips, dwarf_r19_mips, dwarf_r1_mips, dwarf_r20_mips, dwarf_r21_mips, dwarf_r22_mips, dwarf_r23_mips, dwarf_r24_mips, dwarf_r25_mips, dwarf_r26_mips, dwarf_r27_mips, dwarf_r2_mips, dwarf_r30_mips, dwarf_r3_mips, dwarf_r4_mips, dwarf_r5_mips, dwarf_r6_mips, dwarf_r7_mips, dwarf_r8_mips, dwarf_r9_mips, dwarf_ra_mips, dwarf_sp_mips, dwarf_sr_mips, dwarf_w0_mips, dwarf_w10_mips, dwarf_w11_mips, dwarf_w12_mips, dwarf_w13_mips, dwarf_w14_mips, dwarf_w15_mips, dwarf_w16_mips, dwarf_w17_mips, dwarf_w18_mips, dwarf_w19_mips, dwarf_w1_mips, dwarf_w20_mips, dwarf_w21_mips, dwarf_w22_mips, dwarf_w23_mips, dwarf_w24_mips, dwarf_w25_mips, dwarf_w26_mips, dwarf_w27_mips, dwarf_w28_mips, dwarf_w29_mips, dwarf_w2_mips, dwarf_w30_mips, dwarf_w31_mips, dwarf_w3_mips, dwarf_w4_mips, dwarf_w5_mips, dwarf_w6_mips, dwarf_w7_mips, dwarf_w8_mips, dwarf_w9_mips, and dwarf_zero_mips.

Referenced by GetRegisterInfo().

◆ GetSizeOfInstruction()

uint32_t EmulateInstructionMIPS::GetSizeOfInstruction ( lldb_private::DataExtractor data,
uint64_t  inst_addr 
)
protected

◆ Initialize()

void EmulateInstructionMIPS::Initialize ( )
static

◆ nonvolatile_reg_p()

bool EmulateInstructionMIPS::nonvolatile_reg_p ( uint32_t  regnum)
protected

◆ ReadInstruction()

bool EmulateInstructionMIPS::ReadInstruction ( )
overridevirtual

◆ SetInstruction()

bool EmulateInstructionMIPS::SetInstruction ( const lldb_private::Opcode insn_opcode,
const lldb_private::Address inst_addr,
lldb_private::Target target 
)
overridevirtual

◆ SetTargetTriple()

bool EmulateInstructionMIPS::SetTargetTriple ( const lldb_private::ArchSpec arch)
overridevirtual

◆ SupportsEmulatingInstructionsOfType()

bool EmulateInstructionMIPS::SupportsEmulatingInstructionsOfType ( lldb_private::InstructionType  inst_type)
inlineoverridevirtual

◆ SupportsEmulatingInstructionsOfTypeStatic()

static bool EmulateInstructionMIPS::SupportsEmulatingInstructionsOfTypeStatic ( lldb_private::InstructionType  inst_type)
inlinestatic

◆ Terminate()

void EmulateInstructionMIPS::Terminate ( )
static

◆ TestEmulation()

bool EmulateInstructionMIPS::TestEmulation ( lldb_private::Stream out_stream,
lldb_private::ArchSpec arch,
lldb_private::OptionValueDictionary test_data 
)
inlineoverridevirtual

Implements lldb_private::EmulateInstruction.

Definition at line 78 of file EmulateInstructionMIPS.h.

Member Data Documentation

◆ m_alt_disasm

std::unique_ptr<llvm::MCDisassembler> EmulateInstructionMIPS::m_alt_disasm
private

◆ m_alt_subtype_info

std::unique_ptr<llvm::MCSubtargetInfo> EmulateInstructionMIPS::m_alt_subtype_info
private

Definition at line 211 of file EmulateInstructionMIPS.h.

Referenced by EmulateInstructionMIPS().

◆ m_asm_info

std::unique_ptr<llvm::MCAsmInfo> EmulateInstructionMIPS::m_asm_info
private

Definition at line 213 of file EmulateInstructionMIPS.h.

Referenced by EmulateInstructionMIPS().

◆ m_context

std::unique_ptr<llvm::MCContext> EmulateInstructionMIPS::m_context
private

Definition at line 214 of file EmulateInstructionMIPS.h.

Referenced by EmulateInstructionMIPS().

◆ m_disasm

std::unique_ptr<llvm::MCDisassembler> EmulateInstructionMIPS::m_disasm
private

◆ m_insn_info

std::unique_ptr<llvm::MCInstrInfo> EmulateInstructionMIPS::m_insn_info
private

◆ m_next_inst_size

uint32_t EmulateInstructionMIPS::m_next_inst_size
private

◆ m_reg_info

std::unique_ptr<llvm::MCRegisterInfo> EmulateInstructionMIPS::m_reg_info
private

◆ m_subtype_info

std::unique_ptr<llvm::MCSubtargetInfo> EmulateInstructionMIPS::m_subtype_info
private

Definition at line 210 of file EmulateInstructionMIPS.h.

Referenced by EmulateInstructionMIPS().

◆ m_use_alt_disaasm

bool EmulateInstructionMIPS::m_use_alt_disaasm
private

The documentation for this class was generated from the following files: