1 //===-- RegisterContextCorePOSIX_mips64.cpp ---------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "lldb/Core/DataExtractor.h"
11 #include "lldb/Core/RegisterValue.h"
12 #include "lldb/Target/Thread.h"
13 #include "RegisterContextPOSIX.h"
14 #include "RegisterContextPOSIXCore_mips64.h"
16 using namespace lldb_private;
18 RegisterContextCorePOSIX_mips64::RegisterContextCorePOSIX_mips64(Thread &thread,
19 RegisterInfoInterface *register_info,
20 const DataExtractor &gpregset,
21 const DataExtractor &fpregset)
22 : RegisterContextPOSIX_mips64(thread, 0, register_info)
24 m_gpr_buffer.reset(new DataBufferHeap(gpregset.GetDataStart(), gpregset.GetByteSize()));
25 m_gpr.SetData(m_gpr_buffer);
26 m_gpr.SetByteOrder(gpregset.GetByteOrder());
29 RegisterContextCorePOSIX_mips64::~RegisterContextCorePOSIX_mips64()
34 RegisterContextCorePOSIX_mips64::ReadGPR()
40 RegisterContextCorePOSIX_mips64::ReadFPR()
46 RegisterContextCorePOSIX_mips64::WriteGPR()
53 RegisterContextCorePOSIX_mips64::WriteFPR()
60 RegisterContextCorePOSIX_mips64::ReadRegister(const RegisterInfo *reg_info, RegisterValue &value)
62 lldb::offset_t offset = reg_info->byte_offset;
63 uint64_t v = m_gpr.GetMaxU64(&offset, reg_info->byte_size);
64 if (offset == reg_info->byte_offset + reg_info->byte_size)
73 RegisterContextCorePOSIX_mips64::ReadAllRegisterValues(lldb::DataBufferSP &data_sp)
79 RegisterContextCorePOSIX_mips64::WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value)
85 RegisterContextCorePOSIX_mips64::WriteAllRegisterValues(const lldb::DataBufferSP &data_sp)
91 RegisterContextCorePOSIX_mips64::HardwareSingleStep(bool enable)