LLDB mainline
|
#include <EmulateInstructionARM64.h>
Classes | |
struct | Opcode |
struct | ProcState |
Public Member Functions | |
EmulateInstructionARM64 (const lldb_private::ArchSpec &arch) | |
llvm::StringRef | GetPluginName () override |
bool | SetTargetTriple (const lldb_private::ArchSpec &arch) override |
bool | SupportsEmulatingInstructionsOfType (lldb_private::InstructionType inst_type) override |
bool | ReadInstruction () override |
bool | EvaluateInstruction (uint32_t evaluate_options) override |
bool | TestEmulation (lldb_private::Stream &out_stream, lldb_private::ArchSpec &arch, lldb_private::OptionValueDictionary *test_data) override |
std::optional< lldb_private::RegisterInfo > | GetRegisterInfo (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< RegisterInfo > | GetRegisterInfo (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< RegisterValue > | ReadRegister (const RegisterInfo ®_info) |
uint64_t | ReadRegisterUnsigned (const RegisterInfo ®_info, uint64_t fail_value, bool *success_ptr) |
bool | WriteRegister (const Context &context, const RegisterInfo &ref_info, const RegisterValue ®_value) |
bool | WriteRegisterUnsigned (const Context &context, const RegisterInfo ®_info, uint64_t reg_value) |
bool | ReadRegister (lldb::RegisterKind reg_kind, uint32_t reg_num, RegisterValue ®_value) |
bool | WriteRegister (const Context &context, lldb::RegisterKind reg_kind, uint32_t reg_num, const RegisterValue ®_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 Opcode & | GetOpcode () const |
lldb::addr_t | GetAddress () const |
const ArchSpec & | GetArchitecture () 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 | |
PluginInterface & | operator= (const PluginInterface &)=delete |
Static Public Member Functions | |
static void | Initialize () |
static void | Terminate () |
static llvm::StringRef | GetPluginNameStatic () |
static llvm::StringRef | GetPluginDescriptionStatic () |
static lldb_private::EmulateInstruction * | CreateInstance (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 EmulateInstruction * | FindPlugin (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 ®_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 ®_value) |
static bool | WriteRegisterFrame (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue ®_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 ®_value) |
static bool | WriteRegisterDefault (EmulateInstruction *instruction, void *baton, const Context &context, const RegisterInfo *reg_info, const RegisterValue ®_value) |
static bool | GetBestRegisterKindAndNumber (const RegisterInfo *reg_info, lldb::RegisterKind ®_kind, uint32_t ®_num) |
static uint32_t | GetInternalRegisterNumber (RegisterContext *reg_ctx, const RegisterInfo ®_info) |
Protected Member Functions | |
uint32_t | GetFramePointerRegisterNumber () const |
bool | BranchTo (const Context &context, uint32_t N, lldb::addr_t target) |
bool | ConditionHolds (const uint32_t cond) |
bool | UsingAArch32 () |
bool | EmulateADDSUBImm (const uint32_t opcode) |
template<AddrMode a_mode> | |
bool | EmulateLDPSTP (const uint32_t opcode) |
template<AddrMode a_mode> | |
bool | EmulateLDRSTRImm (const uint32_t opcode) |
bool | EmulateB (const uint32_t opcode) |
bool | EmulateBcond (const uint32_t opcode) |
bool | EmulateCBZ (const uint32_t opcode) |
bool | EmulateTBZ (const uint32_t opcode) |
Static Protected Member Functions | |
static uint64_t | AddWithCarry (uint32_t N, uint64_t x, uint64_t y, bool carry_in, EmulateInstructionARM64::ProcState &proc_state) |
static Opcode * | GetOpcodeForInstruction (const uint32_t opcode) |
Protected Attributes | |
ProcState | m_opcode_pstate |
ProcState | m_emulated_pstate |
bool | m_ignore_conditions |
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 |
Additional Inherited Members | |
Static Public Attributes inherited from lldb_private::EmulateInstruction | |
static const InstructionCondition | UnconditionalCondition = UINT32_MAX |
Definition at line 18 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
AccType_NORMAL | |
AccType_UNPRIV | |
AccType_STREAM | |
AccType_ALIGNED | |
AccType_ORDERED |
Definition at line 125 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
AddrMode_OFF | |
AddrMode_PRE | |
AddrMode_POST |
Definition at line 75 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
BitwiseOp_NOT | |
BitwiseOp_RBIT |
Definition at line 89 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
BranchType_CALL | |
BranchType_ERET | |
BranchType_DRET | |
BranchType_RET | |
BranchType_JMP |
Definition at line 77 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
Constraint_NONE | |
Constraint_UNKNOWN | |
Constraint_SUPPRESSWB | |
Constraint_NOP |
Definition at line 118 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
CountOp_CLZ | |
CountOp_CLS | |
CountOp_CNT |
Definition at line 85 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
EL0 | |
EL1 | |
EL2 | |
EL3 |
Definition at line 91 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
ExtendType_SXTB | |
ExtendType_SXTH | |
ExtendType_SXTW | |
ExtendType_SXTX | |
ExtendType_UXTB | |
ExtendType_UXTH | |
ExtendType_UXTW | |
ExtendType_UXTX |
Definition at line 93 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
ExtractType_LEFT | |
ExtractType_RIGHT |
Definition at line 104 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
LogicalOp_AND | |
LogicalOp_EOR | |
LogicalOp_ORR |
Definition at line 106 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
MemOp_LOAD | |
MemOp_STORE | |
MemOp_PREFETCH | |
MemOp_NOP |
Definition at line 108 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
MoveWideOp_N | |
MoveWideOp_Z | |
MoveWideOp_K |
Definition at line 110 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
RevOp_RBIT | |
RevOp_REV16 | |
RevOp_REV32 | |
RevOp_REV64 |
Definition at line 87 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
ShiftType_LSL | |
ShiftType_LSR | |
ShiftType_ASR | |
ShiftType_ROR |
Definition at line 112 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
SP0 | |
SPx |
Definition at line 114 of file EmulateInstructionARM64.h.
Enumerator | |
---|---|
Unpredictable_WBOVERLAP | |
Unpredictable_LDPOVERLAP |
Definition at line 116 of file EmulateInstructionARM64.h.
|
inline |
Definition at line 20 of file EmulateInstructionARM64.h.
|
staticprotected |
Definition at line 562 of file EmulateInstructionARM64.cpp.
References lldb_private::Bit64(), lldb_private::Bits64(), EmulateInstructionARM64::ProcState::C, IsZero(), EmulateInstructionARM64::ProcState::N, SInt, UInt, EmulateInstructionARM64::ProcState::V, and EmulateInstructionARM64::ProcState::Z.
Referenced by EmulateADDSUBImm().
|
protected |
Definition at line 473 of file EmulateInstructionARM64.cpp.
References lldb_private::bits(), BranchTo(), EL0, EL1, EL2, EL3, lldb::eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, UsingAArch32(), and lldb_private::EmulateInstruction::WriteRegisterUnsigned().
Referenced by BranchTo(), EmulateB(), EmulateBcond(), EmulateCBZ(), and EmulateTBZ().
|
protected |
Definition at line 521 of file EmulateInstructionARM64.cpp.
References EmulateInstructionARM64::ProcState::C, m_ignore_conditions, m_opcode_pstate, EmulateInstructionARM64::ProcState::N, lldb_private::UnsignedBits(), EmulateInstructionARM64::ProcState::V, and EmulateInstructionARM64::ProcState::Z.
Referenced by EmulateBcond().
|
overridevirtual |
Reimplemented from lldb_private::EmulateInstruction.
Definition at line 438 of file EmulateInstructionARM64.cpp.
References lldb_private::UnwindPlan::AppendRow(), lldb_private::UnwindPlan::Clear(), lldb_private::eLazyBoolNo, lldb_private::eLazyBoolYes, lldb::eRegisterKindLLDB, lldb_private::gpr_fp_arm64, lldb_private::gpr_lr_arm64, lldb_private::gpr_sp_arm64, lldb_private::UnwindPlan::SetRegisterKind(), lldb_private::UnwindPlan::SetReturnAddressRegister(), lldb_private::UnwindPlan::SetSourcedFromCompiler(), lldb_private::UnwindPlan::SetSourceName(), lldb_private::UnwindPlan::SetUnwindPlanForSignalTrap(), and lldb_private::UnwindPlan::SetUnwindPlanValidAtAllInstructions().
|
static |
Definition at line 125 of file EmulateInstructionARM64.cpp.
References lldb_private::ArchSpec::GetTriple(), and SupportsEmulatingInstructionsOfTypeStatic().
Referenced by Initialize(), and Terminate().
|
protected |
Definition at line 580 of file EmulateInstructionARM64.cpp.
References AddWithCarry(), bit, lldb_private::Bit32(), lldb_private::Bits32(), EmulateInstructionARM64::ProcState::C, lldb_private::EmulateInstruction::eContextAdjustStackPointer, lldb_private::EmulateInstruction::eContextImmediate, lldb_private::EmulateInstruction::eContextRestoreStackPointer, lldb_private::EmulateInstruction::eContextSetFramePointer, lldb::eRegisterKindLLDB, GetFramePointerRegisterNumber(), GetRegisterInfo(), lldb_private::gpr_sp_arm64, lldb_private::gpr_x0_arm64, m_emulated_pstate, EmulateInstructionARM64::ProcState::N, NOT(), lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetRegisterPlusOffset(), lldb_private::EmulateInstruction::Context::type, UInt, EmulateInstructionARM64::ProcState::V, lldb_private::EmulateInstruction::WriteRegisterUnsigned(), and EmulateInstructionARM64::ProcState::Z.
Referenced by GetOpcodeForInstruction().
|
protected |
Definition at line 1064 of file EmulateInstructionARM64.cpp.
References lldb_private::Bit32(), lldb_private::Bits32(), BranchTo(), BranchType_CALL, BranchType_JMP, lldb_private::EmulateInstruction::eContextRelativeBranchImmediate, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb_private::gpr_lr_arm64, LLDB_REGNUM_GENERIC_PC, pc, lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetImmediateSigned(), lldb_private::EmulateInstruction::Context::type, and lldb_private::EmulateInstruction::WriteRegisterUnsigned().
Referenced by GetOpcodeForInstruction().
|
protected |
Definition at line 1100 of file EmulateInstructionARM64.cpp.
References lldb_private::bits(), lldb_private::Bits32(), BranchTo(), BranchType_JMP, ConditionHolds(), lldb_private::EmulateInstruction::eContextRelativeBranchImmediate, lldb::eRegisterKindGeneric, LLDB_REGNUM_GENERIC_PC, pc, lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetImmediateSigned(), and lldb_private::EmulateInstruction::Context::type.
Referenced by GetOpcodeForInstruction().
|
protected |
Definition at line 1129 of file EmulateInstructionARM64.cpp.
References lldb_private::Bit32(), lldb_private::bits(), lldb_private::Bits32(), BranchTo(), BranchType_JMP, lldb_private::EmulateInstruction::eContextRelativeBranchImmediate, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb_private::gpr_x0_arm64, integer, IsZero(), LLDB_REGNUM_GENERIC_PC, m_ignore_conditions, pc, lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetImmediateSigned(), lldb_private::EmulateInstruction::Context::type, and UInt.
Referenced by GetOpcodeForInstruction().
|
protected |
Definition at line 696 of file EmulateInstructionARM64.cpp.
References AddrMode_OFF, AddrMode_POST, lldb_private::Bit32(), lldb_private::Bits32(), Constraint_NONE, Constraint_NOP, Constraint_SUPPRESSWB, Constraint_UNKNOWN, ConstrainUnpredictable(), lldb::eByteOrderLittle, lldb_private::EmulateInstruction::eContextAdjustBaseRegister, lldb_private::EmulateInstruction::eContextAdjustStackPointer, lldb_private::EmulateInstruction::eContextPopRegisterOffStack, lldb_private::EmulateInstruction::eContextPushRegisterOnStack, lldb_private::EmulateInstruction::eContextRegisterLoad, lldb_private::EmulateInstruction::eContextRegisterStore, lldb::eRegisterKindLLDB, error(), lldb_private::fpu_d0_arm64, GetFramePointerRegisterNumber(), GetRegisterInfo(), lldb_private::gpr_sp_arm64, lldb_private::gpr_x0_arm64, integer, LLDB_INVALID_ADDRESS, LSL(), MemOp_LOAD, MemOp_NOP, MemOp_STORE, lldb_private::EmulateInstruction::ReadMemory(), lldb_private::EmulateInstruction::ReadRegister(), lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetAddress(), lldb_private::RegisterValue::SetFromMemoryData(), lldb_private::EmulateInstruction::Context::SetImmediateSigned(), lldb_private::EmulateInstruction::Context::SetRegisterToRegisterPlusOffset(), lldb_private::RegisterValue::SignExtend(), lldb_private::EmulateInstruction::Context::type, UInt, Unpredictable_LDPOVERLAP, Unpredictable_WBOVERLAP, lldb_private::EmulateInstruction::WriteMemory(), lldb_private::EmulateInstruction::WriteRegister(), and lldb_private::EmulateInstruction::WriteRegisterUnsigned().
|
protected |
Definition at line 930 of file EmulateInstructionARM64.cpp.
References AddrMode_OFF, AddrMode_POST, AddrMode_PRE, lldb_private::Bit32(), lldb_private::Bits32(), lldb::eByteOrderLittle, lldb_private::EmulateInstruction::eContextAdjustBaseRegister, lldb_private::EmulateInstruction::eContextAdjustStackPointer, lldb_private::EmulateInstruction::eContextPopRegisterOffStack, lldb_private::EmulateInstruction::eContextPushRegisterOnStack, lldb_private::EmulateInstruction::eContextRegisterLoad, lldb_private::EmulateInstruction::eContextRegisterStore, lldb::eRegisterKindLLDB, error(), GetFramePointerRegisterNumber(), GetRegisterInfo(), lldb_private::gpr_sp_arm64, lldb_private::gpr_x0_arm64, LSL(), MemOp_LOAD, MemOp_STORE, lldb_private::EmulateInstruction::ReadMemory(), lldb_private::EmulateInstruction::ReadRegister(), lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetAddress(), lldb_private::RegisterValue::SetFromMemoryData(), lldb_private::EmulateInstruction::Context::SetImmediateSigned(), lldb_private::EmulateInstruction::Context::SetRegisterToRegisterPlusOffset(), lldb_private::EmulateInstruction::Context::type, lldb_private::EmulateInstruction::WriteMemory(), lldb_private::EmulateInstruction::WriteRegister(), and lldb_private::EmulateInstruction::WriteRegisterUnsigned().
|
protected |
Definition at line 1167 of file EmulateInstructionARM64.cpp.
References bit, lldb_private::Bit32(), lldb_private::bits(), lldb_private::Bits32(), BranchTo(), lldb_private::EmulateInstruction::eContextRelativeBranchImmediate, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb_private::gpr_x0_arm64, integer, LLDB_REGNUM_GENERIC_PC, m_ignore_conditions, pc, lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetImmediateSigned(), lldb_private::EmulateInstruction::Context::type, and UInt.
Referenced by GetOpcodeForInstruction().
|
overridevirtual |
Implements lldb_private::EmulateInstruction.
Definition at line 389 of file EmulateInstructionARM64.cpp.
References EmulateInstructionARM64::Opcode::callback, lldb_private::EmulateInstruction::eContextAdvancePC, lldb::eRegisterKindLLDB, GetOpcodeForInstruction(), lldb_private::gpr_pc_arm64, m_ignore_conditions, lldb_private::EmulateInstruction::m_opcode, lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetNoArgs(), lldb_private::EmulateInstruction::Context::type, and lldb_private::EmulateInstruction::WriteRegisterUnsigned().
|
protected |
Definition at line 459 of file EmulateInstructionARM64.cpp.
References lldb_private::ArchSpec::GetTriple(), lldb_private::gpr_fp_arm64, LLDB_INVALID_REGNUM, and lldb_private::EmulateInstruction::m_arch.
Referenced by EmulateADDSUBImm(), EmulateLDPSTP(), and EmulateLDRSTRImm().
|
staticprotected |
Definition at line 184 of file EmulateInstructionARM64.cpp.
References EmulateADDSUBImm(), EmulateB(), EmulateBcond(), EmulateCBZ(), EmulateTBZ(), and No_VFP.
Referenced by EvaluateInstruction().
|
static |
Definition at line 120 of file EmulateInstructionARM64.cpp.
Referenced by Initialize().
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 50 of file EmulateInstructionARM64.h.
References GetPluginNameStatic().
|
inlinestatic |
Definition at line 28 of file EmulateInstructionARM64.h.
Referenced by GetPluginName(), and Initialize().
|
overridevirtual |
Implements lldb_private::EmulateInstruction.
Definition at line 148 of file EmulateInstructionARM64.cpp.
References lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, lldb_private::gpr_cpsr_arm64, lldb_private::gpr_fp_arm64, lldb_private::gpr_lr_arm64, lldb_private::gpr_pc_arm64, lldb_private::gpr_sp_arm64, LLDB_REGNUM_GENERIC_FLAGS, LLDB_REGNUM_GENERIC_FP, LLDB_REGNUM_GENERIC_PC, LLDB_REGNUM_GENERIC_RA, LLDB_REGNUM_GENERIC_SP, and LLDBTableGetRegisterInfo().
Referenced by EmulateADDSUBImm(), EmulateLDPSTP(), and EmulateLDRSTRImm().
|
static |
Definition at line 111 of file EmulateInstructionARM64.cpp.
References CreateInstance(), GetPluginDescriptionStatic(), GetPluginNameStatic(), and lldb_private::PluginManager::RegisterPlugin().
|
overridevirtual |
Implements lldb_private::EmulateInstruction.
Definition at line 372 of file EmulateInstructionARM64.cpp.
References lldb_private::EmulateInstruction::eContextReadOpcode, lldb::eRegisterKindGeneric, lldb_private::EmulateInstruction::GetByteOrder(), LLDB_INVALID_ADDRESS, LLDB_REGNUM_GENERIC_PC, lldb_private::EmulateInstruction::m_addr, lldb_private::EmulateInstruction::m_opcode, lldb_private::EmulateInstruction::ReadMemoryUnsigned(), lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::EmulateInstruction::Context::SetNoArgs(), and lldb_private::EmulateInstruction::Context::type.
|
overridevirtual |
Implements lldb_private::EmulateInstruction.
Definition at line 138 of file EmulateInstructionARM64.cpp.
References lldb_private::ArchSpec::GetTriple().
|
inlineoverridevirtual |
Implements lldb_private::EmulateInstruction.
Definition at line 54 of file EmulateInstructionARM64.h.
References SupportsEmulatingInstructionsOfTypeStatic().
|
inlinestatic |
Definition at line 36 of file EmulateInstructionARM64.h.
References lldb_private::eInstructionTypeAll, lldb_private::eInstructionTypeAny, lldb_private::eInstructionTypePCModifying, and lldb_private::eInstructionTypePrologueEpilogue.
Referenced by CreateInstance(), and SupportsEmulatingInstructionsOfType().
|
static |
Definition at line 116 of file EmulateInstructionARM64.cpp.
References CreateInstance(), and lldb_private::PluginManager::UnregisterPlugin().
|
inlineoverridevirtual |
Implements lldb_private::EmulateInstruction.
Definition at line 63 of file EmulateInstructionARM64.h.
|
protected |
Definition at line 466 of file EmulateInstructionARM64.cpp.
References m_opcode_pstate, and EmulateInstructionARM64::ProcState::RW.
Referenced by BranchTo().
|
protected |
Definition at line 190 of file EmulateInstructionARM64.h.
Referenced by EmulateADDSUBImm().
|
protected |
Definition at line 191 of file EmulateInstructionARM64.h.
Referenced by ConditionHolds(), EmulateCBZ(), EmulateTBZ(), and EvaluateInstruction().
|
protected |
Definition at line 189 of file EmulateInstructionARM64.h.
Referenced by ConditionHolds(), and UsingAArch32().