LLDB mainline
|
#include <RegisterContextDarwin_riscv32.h>
Classes | |
struct | CSR |
struct | EXC |
struct | FPU |
struct | GPR |
Protected Types | |
enum | { GPRRegSet = 2 , EXCRegSet = 3 , FPURegSet = 4 , CSRRegSet1 = 6 , CSRRegSet2 = 7 , CSRRegSet3 = 8 , CSRRegSet4 = 9 , CSRRegSet = 10 } |
enum | { GPRWordCount = sizeof(GPR) / sizeof(uint32_t) , FPUWordCount = sizeof(FPU) / sizeof(uint32_t) , EXCWordCount = sizeof(EXC) / sizeof(uint32_t) , CSRWordCount = sizeof(CSR) / sizeof(uint32_t) } |
enum | { Read = 0 , Write = 1 , kNumErrors = 2 } |
Protected Member Functions | |
void | InvalidateAllRegisterStates () |
int | GetError (int flavor, uint32_t err_idx) const |
bool | SetError (int flavor, uint32_t err_idx, int err) |
bool | RegisterSetIsCached (int set) const |
void | LogGPR (lldb_private::Log *log, const char *title) |
int | ReadGPR (bool force) |
int | ReadFPU (bool force) |
int | ReadEXC (bool force) |
int | ReadCSR (bool force) |
int | WriteGPR () |
int | WriteFPU () |
int | WriteEXC () |
int | WriteCSR () |
virtual int | DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr)=0 |
virtual int | DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpr)=0 |
virtual int | DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc)=0 |
virtual int | DoReadCSR (lldb::tid_t tid, int flavor, CSR &exc)=0 |
virtual int | DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr)=0 |
virtual int | DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpr)=0 |
virtual int | DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc)=0 |
virtual int | DoWriteCSR (lldb::tid_t tid, int flavor, const CSR &exc)=0 |
int | ReadRegisterSet (uint32_t set, bool force) |
int | WriteRegisterSet (uint32_t set) |
Protected Member Functions inherited from lldb_private::RegisterContext | |
virtual bool | BehavesLikeZerothFrame () const |
Indicates that this frame is currently executing code, that the PC value is not a return-pc but an actual executing instruction. |
Static Protected Member Functions | |
static uint32_t | GetRegisterNumber (uint32_t reg_kind, uint32_t reg_num) |
static int | GetSetForNativeRegNum (int reg_num) |
static size_t | GetRegisterInfosCount () |
static const lldb_private::RegisterInfo * | GetRegisterInfos () |
Protected Attributes | |
GPR | gpr |
FPU | fpr |
EXC | exc |
CSR | csr |
int | gpr_errs [2] |
int | fpr_errs [2] |
int | exc_errs [2] |
int | csr_errs [2] |
Protected Attributes inherited from lldb_private::RegisterContext | |
Thread & | m_thread |
uint32_t | m_concrete_frame_idx |
uint32_t | m_stop_id |
Definition at line 15 of file RegisterContextDarwin_riscv32.h.
|
protected |
Enumerator | |
---|---|
GPRRegSet | |
EXCRegSet | |
FPURegSet | |
CSRRegSet1 | |
CSRRegSet2 | |
CSRRegSet3 | |
CSRRegSet4 | |
CSRRegSet |
Definition at line 128 of file RegisterContextDarwin_riscv32.h.
|
protected |
Enumerator | |
---|---|
Read | |
Write | |
kNumErrors |
Definition at line 146 of file RegisterContextDarwin_riscv32.h.
|
protected |
Enumerator | |
---|---|
GPRWordCount | |
FPUWordCount | |
EXCWordCount | |
CSRWordCount |
Definition at line 139 of file RegisterContextDarwin_riscv32.h.
RegisterContextDarwin_riscv32::RegisterContextDarwin_riscv32 | ( | lldb_private::Thread & | thread, |
uint32_t | concrete_frame_idx ) |
Definition at line 718 of file RegisterContextDarwin_riscv32.cpp.
References csr_errs, exc, exc_errs, fpr, fpr_errs, gpr, gpr_errs, kNumErrors, and lldb_private::RegisterContext::RegisterContext().
Referenced by RegisterContextDarwin_riscv32_Mach::RegisterContextDarwin_riscv32_Mach().
|
overridedefault |
|
overridevirtual |
Convert from a given register numbering scheme to the lldb register numbering scheme.
There may be multiple ways to enumerate the registers for a given architecture. ABI references will specify one to be used with DWARF, the register numberings from process plugin, there may be a variation used for eh_frame unwind instructions (e.g. on Darwin), and so on. Register 5 by itself is meaningless - RegisterKind enumeration tells you what context that number should be translated as.
Inside lldb, register numbers are in the eRegisterKindLLDB scheme; arguments which take a register number should take one in that scheme.
eRegisterKindGeneric is a special numbering scheme which gives us constant values for the pc, frame register, stack register, etc., for use within lldb. They may not be defined for all architectures but it allows generic code to translate these common registers into the lldb numbering scheme.
This method translates a given register kind + register number into the eRegisterKindLLDB register numbering.
[in] | kind | The register numbering scheme (RegisterKind) that the following register number is in. |
[in] | num | A register number in the 'kind' register numbering scheme. |
Reimplemented from lldb_private::RegisterContext.
Definition at line 1221 of file RegisterContextDarwin_riscv32.cpp.
References riscv_dwarf::dwarf_fpr_f0, riscv_dwarf::dwarf_fpr_f1, riscv_dwarf::dwarf_fpr_f10, riscv_dwarf::dwarf_fpr_f11, riscv_dwarf::dwarf_fpr_f12, riscv_dwarf::dwarf_fpr_f13, riscv_dwarf::dwarf_fpr_f14, riscv_dwarf::dwarf_fpr_f15, riscv_dwarf::dwarf_fpr_f16, riscv_dwarf::dwarf_fpr_f17, riscv_dwarf::dwarf_fpr_f18, riscv_dwarf::dwarf_fpr_f19, riscv_dwarf::dwarf_fpr_f2, riscv_dwarf::dwarf_fpr_f20, riscv_dwarf::dwarf_fpr_f21, riscv_dwarf::dwarf_fpr_f22, riscv_dwarf::dwarf_fpr_f23, riscv_dwarf::dwarf_fpr_f24, riscv_dwarf::dwarf_fpr_f25, riscv_dwarf::dwarf_fpr_f26, riscv_dwarf::dwarf_fpr_f27, riscv_dwarf::dwarf_fpr_f28, riscv_dwarf::dwarf_fpr_f29, riscv_dwarf::dwarf_fpr_f3, riscv_dwarf::dwarf_fpr_f30, riscv_dwarf::dwarf_fpr_f31, riscv_dwarf::dwarf_fpr_f4, riscv_dwarf::dwarf_fpr_f5, riscv_dwarf::dwarf_fpr_f6, riscv_dwarf::dwarf_fpr_f7, riscv_dwarf::dwarf_fpr_f8, riscv_dwarf::dwarf_fpr_f9, riscv_dwarf::dwarf_gpr_x0, riscv_dwarf::dwarf_gpr_x1, riscv_dwarf::dwarf_gpr_x10, riscv_dwarf::dwarf_gpr_x11, riscv_dwarf::dwarf_gpr_x12, riscv_dwarf::dwarf_gpr_x13, riscv_dwarf::dwarf_gpr_x14, riscv_dwarf::dwarf_gpr_x15, riscv_dwarf::dwarf_gpr_x16, riscv_dwarf::dwarf_gpr_x17, riscv_dwarf::dwarf_gpr_x18, riscv_dwarf::dwarf_gpr_x19, riscv_dwarf::dwarf_gpr_x2, riscv_dwarf::dwarf_gpr_x20, riscv_dwarf::dwarf_gpr_x21, riscv_dwarf::dwarf_gpr_x22, riscv_dwarf::dwarf_gpr_x23, riscv_dwarf::dwarf_gpr_x24, riscv_dwarf::dwarf_gpr_x25, riscv_dwarf::dwarf_gpr_x26, riscv_dwarf::dwarf_gpr_x27, riscv_dwarf::dwarf_gpr_x28, riscv_dwarf::dwarf_gpr_x29, riscv_dwarf::dwarf_gpr_x3, riscv_dwarf::dwarf_gpr_x30, riscv_dwarf::dwarf_gpr_x31, riscv_dwarf::dwarf_gpr_x4, riscv_dwarf::dwarf_gpr_x5, riscv_dwarf::dwarf_gpr_x6, riscv_dwarf::dwarf_gpr_x7, riscv_dwarf::dwarf_gpr_x8, riscv_dwarf::dwarf_gpr_x9, lldb::eRegisterKindDWARF, lldb::eRegisterKindEHFrame, lldb::eRegisterKindGeneric, lldb::eRegisterKindLLDB, fpr_f0, gpr_pc, gpr_x0, gpr_x1, gpr_x2, gpr_x8, LLDB_INVALID_REGNUM, LLDB_REGNUM_GENERIC_FP, LLDB_REGNUM_GENERIC_PC, LLDB_REGNUM_GENERIC_RA, and LLDB_REGNUM_GENERIC_SP.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
inlineprotected |
Definition at line 164 of file RegisterContextDarwin_riscv32.h.
References csr_errs, CSRRegSet, exc_errs, EXCRegSet, fpr_errs, FPURegSet, gpr_errs, GPRRegSet, and kNumErrors.
Referenced by ReadCSR(), ReadEXC(), ReadFPU(), ReadGPR(), RegisterSetIsCached(), WriteCSR(), WriteEXC(), WriteFPU(), and WriteGPR().
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 736 of file RegisterContextDarwin_riscv32.cpp.
References k_num_register_infos, and k_num_registers.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 742 of file RegisterContextDarwin_riscv32.cpp.
References g_register_infos, k_num_register_infos, and k_num_registers.
|
staticprotected |
Definition at line 753 of file RegisterContextDarwin_riscv32.cpp.
References g_register_infos.
|
staticprotected |
Definition at line 749 of file RegisterContextDarwin_riscv32.cpp.
References k_num_register_infos.
|
staticprotected |
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 807 of file RegisterContextDarwin_riscv32.cpp.
References g_reg_sets, and k_num_regsets.
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 802 of file RegisterContextDarwin_riscv32.cpp.
References k_num_regsets.
|
staticprotected |
Definition at line 814 of file RegisterContextDarwin_riscv32.cpp.
References csr_bank, CSRRegSet, exc_exception, EXCRegSet, fpr_f0, FPURegSet, GPRRegSet, and k_num_registers.
Referenced by ReadRegister(), and WriteRegister().
|
overridevirtual |
Implements lldb_private::RegisterContext.
Reimplemented in RegisterContextDarwin_riscv32_Mach.
Definition at line 732 of file RegisterContextDarwin_riscv32.cpp.
References InvalidateAllRegisterStates().
|
inlineprotected |
Definition at line 157 of file RegisterContextDarwin_riscv32.h.
References CSRRegSet, EXCRegSet, FPURegSet, GPRRegSet, Read, and SetError().
Referenced by InvalidateAllRegisters().
|
protected |
Definition at line 826 of file RegisterContextDarwin_riscv32.cpp.
References g_register_infos, gpr, gpr_x0, k_num_gpr_registers, and LLDB_LOGF.
|
overridevirtual |
Reimplemented from lldb_private::RegisterContext.
Definition at line 1171 of file RegisterContextDarwin_riscv32.cpp.
References csr, exc, fpr, gpr, ReadCSR(), ReadEXC(), ReadFPU(), ReadGPR(), and REG_CONTEXT_SIZE.
|
protected |
Definition at line 862 of file RegisterContextDarwin_riscv32.cpp.
References csr, CSRRegSet, DoReadCSR(), GetError(), lldb_private::RegisterContext::GetThreadID(), Read, RegisterSetIsCached(), and SetError().
Referenced by ReadAllRegisterValues(), and ReadRegisterSet().
|
protected |
Definition at line 854 of file RegisterContextDarwin_riscv32.cpp.
References DoReadEXC(), exc, EXCRegSet, GetError(), lldb_private::RegisterContext::GetThreadID(), Read, RegisterSetIsCached(), and SetError().
Referenced by ReadAllRegisterValues(), and ReadRegisterSet().
|
protected |
Definition at line 846 of file RegisterContextDarwin_riscv32.cpp.
References DoReadFPU(), fpr, FPURegSet, GetError(), lldb_private::RegisterContext::GetThreadID(), Read, RegisterSetIsCached(), and SetError().
Referenced by ReadAllRegisterValues(), and ReadRegisterSet().
|
protected |
Definition at line 838 of file RegisterContextDarwin_riscv32.cpp.
References DoReadGPR(), GetError(), lldb_private::RegisterContext::GetThreadID(), gpr, GPRRegSet, Read, RegisterSetIsCached(), and SetError().
Referenced by ReadAllRegisterValues(), and ReadRegisterSet().
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 949 of file RegisterContextDarwin_riscv32.cpp.
References csr_bank, lldb::eRegisterKindLLDB, exc, exc_exception, exc_far, exc_fsr, fpr, fpr_f0, fpr_f1, fpr_f10, fpr_f11, fpr_f12, fpr_f13, fpr_f14, fpr_f15, fpr_f16, fpr_f17, fpr_f18, fpr_f19, fpr_f2, fpr_f20, fpr_f21, fpr_f22, fpr_f23, fpr_f24, fpr_f25, fpr_f26, fpr_f27, fpr_f28, fpr_f29, fpr_f3, fpr_f30, fpr_f31, fpr_f4, fpr_f5, fpr_f6, fpr_f7, fpr_f8, fpr_f9, fpr_fcsr, GetSetForNativeRegNum(), gpr, gpr_pc, gpr_x0, gpr_x1, gpr_x10, gpr_x11, gpr_x12, gpr_x13, gpr_x14, gpr_x15, gpr_x16, gpr_x17, gpr_x18, gpr_x19, gpr_x2, gpr_x20, gpr_x21, gpr_x22, gpr_x23, gpr_x24, gpr_x25, gpr_x26, gpr_x27, gpr_x28, gpr_x29, gpr_x3, gpr_x30, gpr_x31, gpr_x4, gpr_x5, gpr_x6, gpr_x7, gpr_x8, gpr_x9, lldb_private::RegisterInfo::kinds, and ReadRegisterSet().
|
protected |
Definition at line 914 of file RegisterContextDarwin_riscv32.cpp.
References CSRRegSet, EXCRegSet, FPURegSet, GPRRegSet, ReadCSR(), ReadEXC(), ReadFPU(), and ReadGPR().
Referenced by ReadRegister(), and WriteRegister().
|
inlineprotected |
Definition at line 210 of file RegisterContextDarwin_riscv32.h.
References GetError(), and Read.
Referenced by ReadCSR(), ReadEXC(), ReadFPU(), ReadGPR(), WriteCSR(), WriteEXC(), WriteFPU(), WriteGPR(), and WriteRegisterSet().
|
inlineprotected |
Definition at line 184 of file RegisterContextDarwin_riscv32.h.
References csr_errs, CSRRegSet, exc_errs, EXCRegSet, fpr_errs, FPURegSet, gpr_errs, GPRRegSet, and kNumErrors.
Referenced by InvalidateAllRegisterStates(), ReadCSR(), ReadEXC(), ReadFPU(), ReadGPR(), RegisterContextDarwin_riscv32_Mach::SetRegisterDataFrom_LC_THREAD(), WriteCSR(), WriteEXC(), WriteFPU(), and WriteGPR().
|
overridevirtual |
Reimplemented from lldb_private::RegisterContext.
Definition at line 1192 of file RegisterContextDarwin_riscv32.cpp.
References csr, exc, fpr, gpr, REG_CONTEXT_SIZE, WriteCSR(), WriteEXC(), WriteFPU(), and WriteGPR().
|
protected |
Definition at line 903 of file RegisterContextDarwin_riscv32.cpp.
References csr, CSRRegSet, DoWriteCSR(), GetError(), lldb_private::RegisterContext::GetThreadID(), Read, RegisterSetIsCached(), SetError(), and Write.
Referenced by WriteAllRegisterValues(), and WriteRegisterSet().
|
protected |
Definition at line 892 of file RegisterContextDarwin_riscv32.cpp.
References DoWriteEXC(), exc, EXCRegSet, GetError(), lldb_private::RegisterContext::GetThreadID(), Read, RegisterSetIsCached(), SetError(), and Write.
Referenced by WriteAllRegisterValues(), and WriteRegisterSet().
|
protected |
Definition at line 881 of file RegisterContextDarwin_riscv32.cpp.
References DoWriteFPU(), fpr, FPURegSet, GetError(), lldb_private::RegisterContext::GetThreadID(), Read, RegisterSetIsCached(), SetError(), and Write.
Referenced by WriteAllRegisterValues(), and WriteRegisterSet().
|
protected |
Definition at line 870 of file RegisterContextDarwin_riscv32.cpp.
References DoWriteGPR(), GetError(), lldb_private::RegisterContext::GetThreadID(), gpr, GPRRegSet, Read, RegisterSetIsCached(), SetError(), and Write.
Referenced by WriteAllRegisterValues(), and WriteRegisterSet().
|
overridevirtual |
Implements lldb_private::RegisterContext.
Definition at line 1062 of file RegisterContextDarwin_riscv32.cpp.
References csr_bank, lldb::eRegisterKindLLDB, exc, exc_exception, exc_far, exc_fsr, fpr, fpr_f0, fpr_f1, fpr_f10, fpr_f11, fpr_f12, fpr_f13, fpr_f14, fpr_f15, fpr_f16, fpr_f17, fpr_f18, fpr_f19, fpr_f2, fpr_f20, fpr_f21, fpr_f22, fpr_f23, fpr_f24, fpr_f25, fpr_f26, fpr_f27, fpr_f28, fpr_f29, fpr_f3, fpr_f30, fpr_f31, fpr_f4, fpr_f5, fpr_f6, fpr_f7, fpr_f8, fpr_f9, fpr_fcsr, lldb_private::RegisterValue::GetAsUInt32(), GetSetForNativeRegNum(), gpr, gpr_pc, gpr_x0, gpr_x1, gpr_x10, gpr_x11, gpr_x12, gpr_x13, gpr_x14, gpr_x15, gpr_x16, gpr_x17, gpr_x18, gpr_x19, gpr_x2, gpr_x20, gpr_x21, gpr_x22, gpr_x23, gpr_x24, gpr_x25, gpr_x26, gpr_x27, gpr_x28, gpr_x29, gpr_x3, gpr_x30, gpr_x31, gpr_x4, gpr_x5, gpr_x6, gpr_x7, gpr_x8, gpr_x9, lldb_private::RegisterInfo::kinds, ReadRegisterSet(), and WriteRegisterSet().
|
protected |
Definition at line 930 of file RegisterContextDarwin_riscv32.cpp.
References CSRRegSet, EXCRegSet, FPURegSet, GPRRegSet, RegisterSetIsCached(), WriteCSR(), WriteEXC(), WriteFPU(), and WriteGPR().
Referenced by WriteRegister().
|
protected |
Definition at line 151 of file RegisterContextDarwin_riscv32.h.
Referenced by RegisterContextDarwin_riscv32_Mach::DoReadCSR(), RegisterContextDarwin_riscv32_Mach::DoWriteCSR(), ReadAllRegisterValues(), ReadCSR(), WriteAllRegisterValues(), and WriteCSR().
|
protected |
Definition at line 155 of file RegisterContextDarwin_riscv32.h.
Referenced by GetError(), RegisterContextDarwin_riscv32(), and SetError().
|
protected |
Definition at line 150 of file RegisterContextDarwin_riscv32.h.
Referenced by DoReadCSR(), DoReadEXC(), RegisterContextDarwin_riscv32_Mach::DoReadEXC(), DoWriteCSR(), DoWriteEXC(), RegisterContextDarwin_riscv32_Mach::DoWriteEXC(), ReadAllRegisterValues(), ReadEXC(), ReadRegister(), RegisterContextDarwin_riscv32(), RegisterContextDarwin_riscv32_Mach::SetRegisterDataFrom_LC_THREAD(), WriteAllRegisterValues(), WriteEXC(), and WriteRegister().
|
protected |
Definition at line 154 of file RegisterContextDarwin_riscv32.h.
Referenced by GetError(), RegisterContextDarwin_riscv32(), and SetError().
|
protected |
Definition at line 149 of file RegisterContextDarwin_riscv32.h.
Referenced by DoReadFPU(), DoWriteFPU(), ReadAllRegisterValues(), ReadFPU(), ReadRegister(), RegisterContextDarwin_riscv32(), RegisterContextDarwin_riscv32_Mach::SetRegisterDataFrom_LC_THREAD(), WriteAllRegisterValues(), WriteFPU(), and WriteRegister().
|
protected |
Definition at line 153 of file RegisterContextDarwin_riscv32.h.
Referenced by GetError(), RegisterContextDarwin_riscv32(), and SetError().
|
protected |
Definition at line 148 of file RegisterContextDarwin_riscv32.h.
Referenced by DoReadGPR(), RegisterContextDarwin_riscv32_Mach::DoReadGPR(), DoWriteGPR(), RegisterContextDarwin_riscv32_Mach::DoWriteGPR(), LogGPR(), ReadAllRegisterValues(), ReadGPR(), ReadRegister(), RegisterContextDarwin_riscv32(), RegisterContextDarwin_riscv32_Mach::SetRegisterDataFrom_LC_THREAD(), WriteAllRegisterValues(), WriteGPR(), and WriteRegister().
|
protected |
Definition at line 152 of file RegisterContextDarwin_riscv32.h.
Referenced by GetError(), RegisterContextDarwin_riscv32(), and SetError().