9#if defined(__loongarch__) && __loongarch_grlen == 64
11#ifndef lldb_NativeRegisterContextLinux_loongarch64_h
12#define lldb_NativeRegisterContextLinux_loongarch64_h
17#include <asm/ptrace.h>
20namespace process_linux {
22class NativeProcessLinux;
24class NativeRegisterContextLinux_loongarch64
25 :
public NativeRegisterContextLinux {
27 NativeRegisterContextLinux_loongarch64(
28 const ArchSpec &target_arch, NativeThreadProtocol &native_thread,
29 std::unique_ptr<RegisterInfoPOSIX_loongarch64> register_info_up);
31 uint32_t GetRegisterSetCount()
const override;
33 uint32_t GetUserRegisterCount()
const override;
35 const RegisterSet *GetRegisterSet(uint32_t set_index)
const override;
37 Status ReadRegister(
const RegisterInfo *reg_info,
38 RegisterValue ®_value)
override;
40 Status WriteRegister(
const RegisterInfo *reg_info,
41 const RegisterValue ®_value)
override;
47 void InvalidateAllRegisters()
override;
50 GetExpeditedRegisters(ExpeditedRegs expType)
const override;
52 bool RegisterOffsetIsDynamic()
const override {
return true; }
57 Status WriteGPR()
override;
61 Status WriteFPR()
override;
63 void *GetGPRBuffer()
override {
return &m_gpr; }
65 void *GetFPRBuffer()
override {
return &m_fpr; }
67 size_t GetGPRSize()
const override {
return GetRegisterInfo().GetGPRSize(); }
69 size_t GetFPRSize()
override {
return GetRegisterInfo().GetFPRSize(); }
79 bool IsGPR(
unsigned reg)
const;
81 bool IsFPR(
unsigned reg)
const;
83 uint32_t CalculateFprOffset(
const RegisterInfo *reg_info)
const;
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::WritableDataBuffer > WritableDataBufferSP