diff options
Diffstat (limited to 'lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h')
-rw-r--r-- | lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h | 158 |
1 files changed, 72 insertions, 86 deletions
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h b/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h index fbbcb940291..817649e7c49 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h +++ b/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm.h @@ -14,112 +14,98 @@ // C++ Includes // Other libraries and framework includes // Project includes -#include "lldb/Core/Log.h" -#include "lldb/Target/RegisterContext.h" #include "RegisterInfoInterface.h" #include "lldb-arm-register-enums.h" +#include "lldb/Core/Log.h" +#include "lldb/Target/RegisterContext.h" class ProcessMonitor; -class RegisterContextPOSIX_arm - : public lldb_private::RegisterContext -{ +class RegisterContextPOSIX_arm : public lldb_private::RegisterContext { public: - RegisterContextPOSIX_arm (lldb_private::Thread &thread, - uint32_t concrete_frame_idx, - lldb_private::RegisterInfoInterface *register_info); + RegisterContextPOSIX_arm(lldb_private::Thread &thread, + uint32_t concrete_frame_idx, + lldb_private::RegisterInfoInterface *register_info); - ~RegisterContextPOSIX_arm() override; + ~RegisterContextPOSIX_arm() override; - void - Invalidate(); + void Invalidate(); - void - InvalidateAllRegisters() override; + void InvalidateAllRegisters() override; - size_t - GetRegisterCount() override; + size_t GetRegisterCount() override; - virtual size_t - GetGPRSize(); + virtual size_t GetGPRSize(); - virtual unsigned - GetRegisterSize(unsigned reg); + virtual unsigned GetRegisterSize(unsigned reg); - virtual unsigned - GetRegisterOffset(unsigned reg); + virtual unsigned GetRegisterOffset(unsigned reg); - const lldb_private::RegisterInfo * - GetRegisterInfoAtIndex(size_t reg) override; + const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override; - size_t - GetRegisterSetCount() override; + size_t GetRegisterSetCount() override; - const lldb_private::RegisterSet * - GetRegisterSet(size_t set) override; + const lldb_private::RegisterSet *GetRegisterSet(size_t set) override; - const char * - GetRegisterName(unsigned reg); + const char *GetRegisterName(unsigned reg); - uint32_t - ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override; + uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, + uint32_t num) override; protected: - struct RegInfo - { - uint32_t num_registers; - uint32_t num_gpr_registers; - uint32_t num_fpr_registers; - - uint32_t last_gpr; - uint32_t first_fpr; - uint32_t last_fpr; - - uint32_t first_fpr_v; - uint32_t last_fpr_v; - - uint32_t gpr_flags; - }; - - struct QReg - { - uint8_t bytes[16]; - }; - - struct FPU - { - union { - uint32_t s[32]; - uint64_t d[32]; - QReg q[16]; // the 128-bit NEON registers - } floats; - uint32_t fpscr; - }; - - uint32_t m_gpr_arm[lldb_private::k_num_gpr_registers_arm]; // 32-bit general purpose registers. - RegInfo m_reg_info; - struct RegisterContextPOSIX_arm::FPU m_fpr; // floating-point registers including extended register sets. - std::unique_ptr<lldb_private::RegisterInfoInterface> m_register_info_ap; // Register Info Interface (FreeBSD or Linux) - - // Determines if an extended register set is supported on the processor running the inferior process. - virtual bool - IsRegisterSetAvailable(size_t set_index); - - virtual const lldb_private::RegisterInfo * - GetRegisterInfo(); - - bool - IsGPR(unsigned reg); - - bool - IsFPR(unsigned reg); - - lldb::ByteOrder GetByteOrder(); - - virtual bool ReadGPR() = 0; - virtual bool ReadFPR() = 0; - virtual bool WriteGPR() = 0; - virtual bool WriteFPR() = 0; + struct RegInfo { + uint32_t num_registers; + uint32_t num_gpr_registers; + uint32_t num_fpr_registers; + + uint32_t last_gpr; + uint32_t first_fpr; + uint32_t last_fpr; + + uint32_t first_fpr_v; + uint32_t last_fpr_v; + + uint32_t gpr_flags; + }; + + struct QReg { + uint8_t bytes[16]; + }; + + struct FPU { + union { + uint32_t s[32]; + uint64_t d[32]; + QReg q[16]; // the 128-bit NEON registers + } floats; + uint32_t fpscr; + }; + + uint32_t m_gpr_arm[lldb_private::k_num_gpr_registers_arm]; // 32-bit general + // purpose + // registers. + RegInfo m_reg_info; + struct RegisterContextPOSIX_arm::FPU + m_fpr; // floating-point registers including extended register sets. + std::unique_ptr<lldb_private::RegisterInfoInterface> + m_register_info_ap; // Register Info Interface (FreeBSD or Linux) + + // Determines if an extended register set is supported on the processor + // running the inferior process. + virtual bool IsRegisterSetAvailable(size_t set_index); + + virtual const lldb_private::RegisterInfo *GetRegisterInfo(); + + bool IsGPR(unsigned reg); + + bool IsFPR(unsigned reg); + + lldb::ByteOrder GetByteOrder(); + + virtual bool ReadGPR() = 0; + virtual bool ReadFPR() = 0; + virtual bool WriteGPR() = 0; + virtual bool WriteFPR() = 0; }; #endif // liblldb_RegisterContextPOSIX_arm_h_ |