diff options
Diffstat (limited to 'lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp | 84 |
1 files changed, 51 insertions, 33 deletions
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp index dd577034f5e..a762930e8eb 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips64.cpp @@ -12,24 +12,66 @@ #include <vector> #include <stddef.h> +// For GDB, GCC and DWARF Register numbers #include "RegisterContextLinux_mips64.h" -// For GP and FP buffers -#include "RegisterContext_mips.h" - -// Internal codes for all mips32 and mips64 registers -#include "lldb-mips-linux-register-enums.h" +// Internal codes for all mips64 registers +#include "lldb-mips64-register-enums.h" +#include "RegisterContext_mips64.h" using namespace lldb; using namespace lldb_private; +// GP registers +typedef struct _GPR +{ + uint64_t zero; + uint64_t r1; + uint64_t r2; + uint64_t r3; + uint64_t r4; + uint64_t r5; + uint64_t r6; + uint64_t r7; + uint64_t r8; + uint64_t r9; + uint64_t r10; + uint64_t r11; + uint64_t r12; + uint64_t r13; + uint64_t r14; + uint64_t r15; + uint64_t r16; + uint64_t r17; + uint64_t r18; + uint64_t r19; + uint64_t r20; + uint64_t r21; + uint64_t r22; + uint64_t r23; + uint64_t r24; + uint64_t r25; + uint64_t r26; + uint64_t r27; + uint64_t gp; + uint64_t sp; + uint64_t r30; + uint64_t ra; + uint64_t mullo; + uint64_t mulhi; + uint64_t pc; + uint64_t badvaddr; + uint64_t sr; + uint64_t cause; + uint64_t ic; + uint64_t dummy; +} GPR; + //--------------------------------------------------------------------------- // Include RegisterInfos_mips64 to declare our g_register_infos_mips64 structure. //--------------------------------------------------------------------------- #define DECLARE_REGISTER_INFOS_MIPS64_STRUCT -#define LINUX_MIPS64 #include "RegisterInfos_mips64.h" -#undef LINUX_MIPS64 #undef DECLARE_REGISTER_INFOS_MIPS64_STRUCT //--------------------------------------------------------------------------- @@ -73,35 +115,17 @@ GetRegisterInfoCount (const ArchSpec &target_arch) } } -uint32_t -GetUserRegisterInfoCount (const ArchSpec &target_arch) -{ - switch (target_arch.GetMachine()) - { - case llvm::Triple::mips: - case llvm::Triple::mipsel: - return static_cast<uint32_t> (k_num_user_registers_mips); - case llvm::Triple::mips64el: - case llvm::Triple::mips64: - return static_cast<uint32_t> (k_num_user_registers_mips64); - default: - assert(false && "Unhandled target architecture."); - return 0; - } -} - RegisterContextLinux_mips64::RegisterContextLinux_mips64(const ArchSpec &target_arch) : lldb_private::RegisterInfoInterface(target_arch), m_register_info_p (GetRegisterInfoPtr (target_arch)), - m_register_info_count (GetRegisterInfoCount (target_arch)), - m_user_register_count (GetUserRegisterInfoCount (target_arch)) + m_register_info_count (GetRegisterInfoCount (target_arch)) { } size_t RegisterContextLinux_mips64::GetGPRSize() const { - return sizeof(GPR_linux_mips); + return sizeof(GPR); } const RegisterInfo * @@ -116,10 +140,4 @@ RegisterContextLinux_mips64::GetRegisterCount () const return m_register_info_count; } -uint32_t -RegisterContextLinux_mips64::GetUserRegisterCount () const -{ - return m_user_register_count; -} - #endif |