|
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 std::optional< uint32_t > | GetLastInstrSize () |
| virtual InstructionCondition | GetInstructionCondition () |
| virtual bool | SetInstruction (const Opcode &insn_opcode, const Address &inst_addr, Target *target) |
| 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) |
| std::optional< lldb::addr_t > | ReadPC () |
| bool | WritePC (lldb::addr_t addr) |
| Public Member Functions inherited from lldb_private::PluginInterface | |
| PluginInterface ()=default | |
| virtual | ~PluginInterface ()=default |
| 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) |
| static std::unique_ptr< SingleStepBreakpointLocationsPredictor > | CreateBreakpointLocationPredictor (std::unique_ptr< EmulateInstruction > emulator_up) |
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 |
| Protected Types inherited from lldb_private::EmulateInstruction | |
| using | BreakpointLocationsPredictorCreator |
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.
References lldb_private::EmulateInstruction::EmulateInstruction(), m_emulated_pstate, m_ignore_conditions, and m_opcode_pstate.
Referenced by CreateInstance().
|
staticprotected |
Definition at line 562 of file EmulateInstructionARM64.cpp.
References bit, 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 m_ignore_conditions, m_opcode_pstate, and lldb_private::UnsignedBits().
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::UnwindPlan::Row::GetCFAValue(), lldb_private::gpr_fp_arm64, lldb_private::gpr_lr_arm64, lldb_private::gpr_sp_arm64, lldb_private::UnwindPlan::Row::FAValue::SetIsRegisterPlusOffset(), lldb_private::UnwindPlan::SetRegisterKind(), lldb_private::UnwindPlan::Row::SetRegisterLocationToSame(), 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 EmulateInstructionARM64(), 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().
Referenced by GetOpcodeForInstruction().
|
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().
Referenced by GetOpcodeForInstruction().
|
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::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(), EmulateLDPSTP(), EmulateLDRSTRImm(), 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.
Referenced by BranchTo().
|
protected |
Definition at line 190 of file EmulateInstructionARM64.h.
Referenced by EmulateADDSUBImm(), and EmulateInstructionARM64().
|
protected |
Definition at line 191 of file EmulateInstructionARM64.h.
Referenced by ConditionHolds(), EmulateCBZ(), EmulateInstructionARM64(), EmulateTBZ(), and EvaluateInstruction().
|
protected |
Definition at line 189 of file EmulateInstructionARM64.h.
Referenced by ConditionHolds(), EmulateInstructionARM64(), and UsingAArch32().