LLDB mainline
|
#include <EmulateInstructionRISCV.h>
Public Member Functions | |
RISCVSingleStepBreakpointLocationsPredictor (std::unique_ptr< EmulateInstruction > emulator) | |
BreakpointLocations | GetBreakpointLocations (Status &status) override |
llvm::Expected< unsigned > | GetBreakpointSize (lldb::addr_t bp_addr) override |
Public Member Functions inherited from lldb_private::SingleStepBreakpointLocationsPredictor | |
SingleStepBreakpointLocationsPredictor (std::unique_ptr< EmulateInstruction > emulator_up) | |
virtual | ~SingleStepBreakpointLocationsPredictor ()=default |
Private Member Functions | |
BreakpointLocations | HandleAtomicSequence (lldb::addr_t pc, Status &error) |
Static Private Member Functions | |
static bool | FoundLoadReserve (const RISCVInst &inst) |
static bool | FoundStoreConditional (const RISCVInst &inst) |
Static Private Attributes | |
static constexpr size_t | s_max_atomic_sequence_length = 64 |
Additional Inherited Members | |
Protected Member Functions inherited from lldb_private::SingleStepBreakpointLocationsPredictor | |
lldb::addr_t | GetNextInstructionAddress (Status &error) |
lldb::addr_t | GetBreakpointLocationAddress (lldb::addr_t entry_pc, Status &error) |
Protected Attributes inherited from lldb_private::SingleStepBreakpointLocationsPredictor | |
std::unique_ptr< EmulateInstruction > | m_emulator_up |
bool | m_emulation_result = false |
Definition at line 23 of file EmulateInstructionRISCV.h.
|
inline |
Definition at line 26 of file EmulateInstructionRISCV.h.
References lldb_private::SingleStepBreakpointLocationsPredictor::SingleStepBreakpointLocationsPredictor().
|
inlinestaticprivate |
Definition at line 35 of file EmulateInstructionRISCV.h.
Referenced by GetBreakpointLocations().
|
inlinestaticprivate |
Definition at line 40 of file EmulateInstructionRISCV.h.
Referenced by GetBreakpointLocations(), and HandleAtomicSequence().
|
overridevirtual |
Reimplemented from lldb_private::SingleStepBreakpointLocationsPredictor.
Definition at line 1782 of file EmulateInstructionRISCV.cpp.
References FoundLoadReserve(), FoundStoreConditional(), lldb_private::SingleStepBreakpointLocationsPredictor::GetBreakpointLocations(), lldb_private::GetLog(), HandleAtomicSequence(), LLDB_LOGF, lldb_private::SingleStepBreakpointLocationsPredictor::m_emulator_up, pc, lldb_private::EmulateInstructionRISCV::ReadInstructionAt(), lldb_private::EmulateInstruction::ReadPC(), lldb_private::Status, and lldb_private::Unwind.
|
overridevirtual |
Reimplemented from lldb_private::SingleStepBreakpointLocationsPredictor.
Definition at line 1819 of file EmulateInstructionRISCV.cpp.
References lldb_private::EmulateInstructionRISCV::GetLastInstrSize(), lldb_private::SingleStepBreakpointLocationsPredictor::m_emulator_up, and lldb_private::EmulateInstructionRISCV::ReadInstructionAt().
|
private |
Definition at line 1837 of file EmulateInstructionRISCV.cpp.
References error(), FoundStoreConditional(), lldb_private::GetLog(), lldb_private::B::imm, LLDB_LOGF, lldb_private::SingleStepBreakpointLocationsPredictor::m_emulator_up, pc, lldb_private::EmulateInstructionRISCV::ReadInstructionAt(), s_max_atomic_sequence_length, lldb_private::SignExt(), lldb_private::Status, and lldb_private::Unwind.
Referenced by GetBreakpointLocations().
|
staticconstexprprivate |
Definition at line 47 of file EmulateInstructionRISCV.h.
Referenced by HandleAtomicSequence().