1//===-- RegisterContextPOSIXCore_arm.cpp ------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#include "RegisterContextPOSIXCore_arm.h" 10 11#include "lldb/Target/Thread.h" 12#include "lldb/Utility/RegisterValue.h" 13 14#include <memory> 15 16using namespace lldb_private; 17 18RegisterContextCorePOSIX_arm::RegisterContextCorePOSIX_arm( 19 Thread &thread, RegisterInfoInterface *register_info, 20 const DataExtractor &gpregset, llvm::ArrayRef<CoreNote> notes) 21 : RegisterContextPOSIX_arm(thread, 0, register_info) { 22 m_gpr_buffer = std::make_shared<DataBufferHeap>(gpregset.GetDataStart(), 23 gpregset.GetByteSize()); 24 m_gpr.SetData(m_gpr_buffer); 25 m_gpr.SetByteOrder(gpregset.GetByteOrder()); 26} 27 28RegisterContextCorePOSIX_arm::~RegisterContextCorePOSIX_arm() {} 29 30bool RegisterContextCorePOSIX_arm::ReadGPR() { return true; } 31 32bool RegisterContextCorePOSIX_arm::ReadFPR() { return false; } 33 34bool RegisterContextCorePOSIX_arm::WriteGPR() { 35 assert(0); 36 return false; 37} 38 39bool RegisterContextCorePOSIX_arm::WriteFPR() { 40 assert(0); 41 return false; 42} 43 44bool RegisterContextCorePOSIX_arm::ReadRegister(const RegisterInfo *reg_info, 45 RegisterValue &value) { 46 lldb::offset_t offset = reg_info->byte_offset; 47 uint64_t v = m_gpr.GetMaxU64(&offset, reg_info->byte_size); 48 if (offset == reg_info->byte_offset + reg_info->byte_size) { 49 value = v; 50 return true; 51 } 52 return false; 53} 54 55bool RegisterContextCorePOSIX_arm::ReadAllRegisterValues( 56 lldb::DataBufferSP &data_sp) { 57 return false; 58} 59 60bool RegisterContextCorePOSIX_arm::WriteRegister(const RegisterInfo *reg_info, 61 const RegisterValue &value) { 62 return false; 63} 64 65bool RegisterContextCorePOSIX_arm::WriteAllRegisterValues( 66 const lldb::DataBufferSP &data_sp) { 67 return false; 68} 69 70bool RegisterContextCorePOSIX_arm::HardwareSingleStep(bool enable) { 71 return false; 72} 73