summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Maste <emaste@freebsd.org>2013-10-10 01:04:21 +0000
committerEd Maste <emaste@freebsd.org>2013-10-10 01:04:21 +0000
commitd8cc39e65310b49a3f7597ecbfc9c87d19f30689 (patch)
treee987a0ed2cd6ca4bf351a1783d70a86b8d46a1f6
parentb73f844be3be4bd71ffbe0e91e778810a1647b8e (diff)
downloadbcm5719-llvm-d8cc39e65310b49a3f7597ecbfc9c87d19f30689.tar.gz
bcm5719-llvm-d8cc39e65310b49a3f7597ecbfc9c87d19f30689.zip
POSIX RegisterContext for mips64
Based on the POSIX x86_64 register context. This is sufficient for opening a mips64 (big endian) core file. Subsequent changes will connect the disassembler, dynamic loader support, ABI, etc. Review: http://llvm-reviews.chandlerc.com/D1873 (Missed "svn add" on this file in r192335) llvm-svn: 192336
-rw-r--r--lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h b/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h
new file mode 100644
index 00000000000..92e486bf223
--- /dev/null
+++ b/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h
@@ -0,0 +1,58 @@
+//===-- RegisterContextCorePOSIX_mips64.h ----------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===---------------------------------------------------------------------===//
+
+#ifndef liblldb_RegisterContextCorePOSIX_mips64_H_
+#define liblldb_RegisterContextCorePOSIX_mips64_H_
+
+#include "Plugins/Process/POSIX/RegisterContextPOSIX_mips64.h"
+
+class RegisterContextCorePOSIX_mips64 :
+ public RegisterContextPOSIX_mips64
+{
+public:
+ RegisterContextCorePOSIX_mips64 (lldb_private::Thread &thread,
+ RegisterInfoInterface *register_info,
+ const lldb_private::DataExtractor &gpregset,
+ const lldb_private::DataExtractor &fpregset);
+
+ ~RegisterContextCorePOSIX_mips64();
+
+ virtual bool
+ ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value);
+
+ virtual bool
+ WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value);
+
+ bool
+ ReadAllRegisterValues(lldb::DataBufferSP &data_sp);
+
+ bool
+ WriteAllRegisterValues(const lldb::DataBufferSP &data_sp);
+
+ bool
+ HardwareSingleStep(bool enable);
+
+protected:
+ bool
+ ReadGPR();
+
+ bool
+ ReadFPR();
+
+ bool
+ WriteGPR();
+
+ bool
+ WriteFPR();
+
+private:
+ uint64_t m_reg[40];
+};
+
+#endif // #ifndef liblldb_RegisterContextCorePOSIX_mips64_H_
OpenPOWER on IntegriCloud