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)
25 lldb::offset_t offset = 0;
27 for (i = 0; i < k_num_gpr_registers_mips64; i++)
29 m_reg[i] = gpregset.GetU64(&offset);
33 RegisterContextCorePOSIX_mips64::~RegisterContextCorePOSIX_mips64()
38 RegisterContextCorePOSIX_mips64::ReadGPR()
44 RegisterContextCorePOSIX_mips64::ReadFPR()
50 RegisterContextCorePOSIX_mips64::WriteGPR()
57 RegisterContextCorePOSIX_mips64::WriteFPR()
64 RegisterContextCorePOSIX_mips64::ReadRegister(const RegisterInfo *reg_info, RegisterValue &value)
66 int reg_num = reg_info->byte_offset / 8;
67 assert(reg_num < k_num_gpr_registers_mips64);
68 value = m_reg[reg_num];
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)