LLDB mainline
DisassemblerLLVMC::MCDisasmInstance Class Reference

Public Member Functions

 ~MCDisasmInstance ()=default
bool GetMCInst (const uint8_t *opcode_data, size_t opcode_data_len, lldb::addr_t pc, llvm::MCInst &mc_inst, uint64_t &size) const
void PrintMCInst (llvm::MCInst &mc_inst, lldb::addr_t pc, std::string &inst_string, std::string &comments_string)
void SetStyle (bool use_hex_immed, HexImmediateStyle hex_style)
void SetUseColor (bool use_color)
bool GetUseColor () const
bool CanBranch (llvm::MCInst &mc_inst) const
bool HasDelaySlot (llvm::MCInst &mc_inst) const
bool IsCall (llvm::MCInst &mc_inst) const
bool IsLoad (llvm::MCInst &mc_inst) const
bool IsAuthenticated (llvm::MCInst &mc_inst) const

Static Public Member Functions

static std::unique_ptr< MCDisasmInstanceCreate (const char *triple, const char *cpu, const char *features_str, unsigned flavor, DisassemblerLLVMC &owner)

Private Member Functions

 MCDisasmInstance (std::unique_ptr< llvm::MCInstrInfo > &&instr_info_up, std::unique_ptr< llvm::MCRegisterInfo > &&reg_info_up, std::unique_ptr< llvm::MCSubtargetInfo > &&subtarget_info_up, std::unique_ptr< llvm::MCAsmInfo > &&asm_info_up, std::unique_ptr< llvm::MCContext > &&context_up, std::unique_ptr< llvm::MCDisassembler > &&disasm_up, std::unique_ptr< llvm::MCInstPrinter > &&instr_printer_up, std::unique_ptr< llvm::MCInstrAnalysis > &&instr_analysis_up)

Private Attributes

std::unique_ptr< llvm::MCInstrInfo > m_instr_info_up
std::unique_ptr< llvm::MCRegisterInfo > m_reg_info_up
std::unique_ptr< llvm::MCSubtargetInfo > m_subtarget_info_up
std::unique_ptr< llvm::MCAsmInfo > m_asm_info_up
std::unique_ptr< llvm::MCContext > m_context_up
std::unique_ptr< llvm::MCDisassembler > m_disasm_up
std::unique_ptr< llvm::MCInstPrinter > m_instr_printer_up
std::unique_ptr< llvm::MCInstrAnalysis > m_instr_analysis_up

Detailed Description

Definition at line 54 of file DisassemblerLLVMC.cpp.

Constructor & Destructor Documentation

◆ ~MCDisasmInstance()

DisassemblerLLVMC::MCDisasmInstance::~MCDisasmInstance ( )
default

◆ MCDisasmInstance()

DisassemblerLLVMC::MCDisasmInstance::MCDisasmInstance ( std::unique_ptr< llvm::MCInstrInfo > && instr_info_up,
std::unique_ptr< llvm::MCRegisterInfo > && reg_info_up,
std::unique_ptr< llvm::MCSubtargetInfo > && subtarget_info_up,
std::unique_ptr< llvm::MCAsmInfo > && asm_info_up,
std::unique_ptr< llvm::MCContext > && context_up,
std::unique_ptr< llvm::MCDisassembler > && disasm_up,
std::unique_ptr< llvm::MCInstPrinter > && instr_printer_up,
std::unique_ptr< llvm::MCInstrAnalysis > && instr_analysis_up )
private

Member Function Documentation

◆ CanBranch()

bool DisassemblerLLVMC::MCDisasmInstance::CanBranch ( llvm::MCInst & mc_inst) const

◆ Create()

std::unique_ptr< DisassemblerLLVMC::MCDisasmInstance > DisassemblerLLVMC::MCDisasmInstance::Create ( const char * triple,
const char * cpu,
const char * features_str,
unsigned flavor,
DisassemblerLLVMC & owner )
static

◆ GetMCInst()

bool DisassemblerLLVMC::MCDisasmInstance::GetMCInst ( const uint8_t * opcode_data,
size_t opcode_data_len,
lldb::addr_t pc,
llvm::MCInst & mc_inst,
uint64_t & size ) const

◆ GetUseColor()

bool DisassemblerLLVMC::MCDisasmInstance::GetUseColor ( ) const

◆ HasDelaySlot()

bool DisassemblerLLVMC::MCDisasmInstance::HasDelaySlot ( llvm::MCInst & mc_inst) const

Definition at line 1420 of file DisassemblerLLVMC.cpp.

References m_instr_info_up.

Referenced by InstructionLLVMC::VisitInstruction(), and ~MCDisasmInstance().

◆ IsAuthenticated()

bool DisassemblerLLVMC::MCDisasmInstance::IsAuthenticated ( llvm::MCInst & mc_inst) const

Definition at line 1435 of file DisassemblerLLVMC.cpp.

References m_instr_info_up.

Referenced by InstructionLLVMC::VisitInstruction(), and ~MCDisasmInstance().

◆ IsCall()

bool DisassemblerLLVMC::MCDisasmInstance::IsCall ( llvm::MCInst & mc_inst) const

◆ IsLoad()

bool DisassemblerLLVMC::MCDisasmInstance::IsLoad ( llvm::MCInst & mc_inst) const

Definition at line 1431 of file DisassemblerLLVMC.cpp.

References m_instr_info_up.

Referenced by InstructionLLVMC::VisitInstruction(), and ~MCDisasmInstance().

◆ PrintMCInst()

void DisassemblerLLVMC::MCDisasmInstance::PrintMCInst ( llvm::MCInst & mc_inst,
lldb::addr_t pc,
std::string & inst_string,
std::string & comments_string )

◆ SetStyle()

void DisassemblerLLVMC::MCDisasmInstance::SetStyle ( bool use_hex_immed,
HexImmediateStyle hex_style )

◆ SetUseColor()

void DisassemblerLLVMC::MCDisasmInstance::SetUseColor ( bool use_color)

Member Data Documentation

◆ m_asm_info_up

std::unique_ptr<llvm::MCAsmInfo> DisassemblerLLVMC::MCDisasmInstance::m_asm_info_up
private

Definition at line 88 of file DisassemblerLLVMC.cpp.

Referenced by MCDisasmInstance().

◆ m_context_up

std::unique_ptr<llvm::MCContext> DisassemblerLLVMC::MCDisasmInstance::m_context_up
private

Definition at line 89 of file DisassemblerLLVMC.cpp.

Referenced by MCDisasmInstance().

◆ m_disasm_up

std::unique_ptr<llvm::MCDisassembler> DisassemblerLLVMC::MCDisasmInstance::m_disasm_up
private

Definition at line 90 of file DisassemblerLLVMC.cpp.

Referenced by GetMCInst(), and MCDisasmInstance().

◆ m_instr_analysis_up

std::unique_ptr<llvm::MCInstrAnalysis> DisassemblerLLVMC::MCDisasmInstance::m_instr_analysis_up
private

Definition at line 92 of file DisassemblerLLVMC.cpp.

Referenced by CanBranch(), IsCall(), and MCDisasmInstance().

◆ m_instr_info_up

std::unique_ptr<llvm::MCInstrInfo> DisassemblerLLVMC::MCDisasmInstance::m_instr_info_up
private

◆ m_instr_printer_up

std::unique_ptr<llvm::MCInstPrinter> DisassemblerLLVMC::MCDisasmInstance::m_instr_printer_up
private

◆ m_reg_info_up

std::unique_ptr<llvm::MCRegisterInfo> DisassemblerLLVMC::MCDisasmInstance::m_reg_info_up
private

Definition at line 86 of file DisassemblerLLVMC.cpp.

Referenced by CanBranch(), and MCDisasmInstance().

◆ m_subtarget_info_up

std::unique_ptr<llvm::MCSubtargetInfo> DisassemblerLLVMC::MCDisasmInstance::m_subtarget_info_up
private

Definition at line 87 of file DisassemblerLLVMC.cpp.

Referenced by MCDisasmInstance(), and PrintMCInst().


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