summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp
diff options
context:
space:
mode:
authorSagar Thakur <sagar.thakur@imgtec.com>2015-08-17 13:40:17 +0000
committerSagar Thakur <sagar.thakur@imgtec.com>2015-08-17 13:40:17 +0000
commit789da6678e55c7dd5316b4a8145c513343b0e84b (patch)
treed59a86ed902ca3976090d54f27176e8e00ac88b9 /lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp
parentee3443e0d6a07c02c38c996b6f7e589c60e9c1bb (diff)
downloadbcm5719-llvm-789da6678e55c7dd5316b4a8145c513343b0e84b.tar.gz
bcm5719-llvm-789da6678e55c7dd5316b4a8145c513343b0e84b.zip
[LLDB][MIPS] Fix offsets of all register sets and add MSA regset and FRE=1 mode support
This patch : - Fixes offsets of all register sets for Mips. - Adds MSA register set and FRE=1 mode support for FP register set. - Separates lldb register numbers and register infos of freebsd/mips64 from linux/mips64. - Re-orders the register numbers of all kinds for mips to be consistent with freebsd order of register numbers. Reviewers: jaydeep, clayborg, jasonmolenda, ovyalov, emaste Subscribers: tberghammer, ovyalov, emaste, mohit.bhakkad, nitesh.jain, bhushan Differential: http://reviews.llvm.org/D10919 llvm-svn: 245217
Diffstat (limited to 'lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp')
-rw-r--r--lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp57
1 files changed, 11 insertions, 46 deletions
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp
index ef799f55b06..f0d3f34faf9 100644
--- a/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp
+++ b/lldb/source/Plugins/Process/Utility/RegisterContextLinux_mips.cpp
@@ -14,55 +14,14 @@
#include "RegisterContextLinux_mips.h"
// Internal codes for mips registers
-#include "lldb-mips64-register-enums.h"
-#include "RegisterContext_mips64.h"
+#include "lldb-mips-linux-register-enums.h"
+
+// For GP and FP buffers
+#include "RegisterContext_mips.h"
using namespace lldb_private;
using namespace lldb;
-// GP registers
-typedef struct _GPR
-{
- uint32_t zero;
- uint32_t r1;
- uint32_t r2;
- uint32_t r3;
- uint32_t r4;
- uint32_t r5;
- uint32_t r6;
- uint32_t r7;
- uint32_t r8;
- uint32_t r9;
- uint32_t r10;
- uint32_t r11;
- uint32_t r12;
- uint32_t r13;
- uint32_t r14;
- uint32_t r15;
- uint32_t r16;
- uint32_t r17;
- uint32_t r18;
- uint32_t r19;
- uint32_t r20;
- uint32_t r21;
- uint32_t r22;
- uint32_t r23;
- uint32_t r24;
- uint32_t r25;
- uint32_t r26;
- uint32_t r27;
- uint32_t gp;
- uint32_t sp;
- uint32_t r30;
- uint32_t ra;
- uint32_t mullo;
- uint32_t mulhi;
- uint32_t pc;
- uint32_t badvaddr;
- uint32_t sr;
- uint32_t cause;
-} GPR;
-
//---------------------------------------------------------------------------
// Include RegisterInfos_mips to declare our g_register_infos_mips structure.
//---------------------------------------------------------------------------
@@ -78,7 +37,7 @@ RegisterContextLinux_mips::RegisterContextLinux_mips(const ArchSpec &target_arch
size_t
RegisterContextLinux_mips::GetGPRSize() const
{
- return sizeof(GPR);
+ return sizeof(GPR_linux_mips);
}
const RegisterInfo *
@@ -100,3 +59,9 @@ RegisterContextLinux_mips::GetRegisterCount () const
{
return static_cast<uint32_t> (sizeof (g_register_infos_mips) / sizeof (g_register_infos_mips [0]));
}
+
+uint32_t
+RegisterContextLinux_mips::GetUserRegisterCount () const
+{
+ return static_cast<uint32_t> (k_num_user_registers_mips);
+}
OpenPOWER on IntegriCloud