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
This commit is contained in:
Ed Maste 2013-10-10 01:04:21 +00:00
parent b73f844be3
commit d8cc39e653
1 changed files with 58 additions and 0 deletions

View File

@ -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_