1 //===-- RegisterContextKDP_arm.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 "RegisterContextKDP_arm.h"
14 // Other libraries and framework includes
16 #include "ProcessKDP.h"
17 #include "ThreadKDP.h"
20 using namespace lldb_private;
22 RegisterContextKDP_arm::RegisterContextKDP_arm(ThreadKDP &thread,
23 uint32_t concrete_frame_idx)
24 : RegisterContextDarwin_arm(thread, concrete_frame_idx),
25 m_kdp_thread(thread) {}
27 RegisterContextKDP_arm::~RegisterContextKDP_arm() {}
29 int RegisterContextKDP_arm::DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) {
30 ProcessSP process_sp(CalculateProcess());
33 if (static_cast<ProcessKDP *>(process_sp.get())
35 .SendRequestReadRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
44 int RegisterContextKDP_arm::DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) {
45 ProcessSP process_sp(CalculateProcess());
48 if (static_cast<ProcessKDP *>(process_sp.get())
50 .SendRequestReadRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
59 int RegisterContextKDP_arm::DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) {
60 ProcessSP process_sp(CalculateProcess());
63 if (static_cast<ProcessKDP *>(process_sp.get())
65 .SendRequestReadRegisters(tid, EXCRegSet, &exc, sizeof(exc),
74 int RegisterContextKDP_arm::DoReadDBG(lldb::tid_t tid, int flavor, DBG &dbg) {
75 ProcessSP process_sp(CalculateProcess());
78 if (static_cast<ProcessKDP *>(process_sp.get())
80 .SendRequestReadRegisters(tid, DBGRegSet, &dbg, sizeof(dbg),
89 int RegisterContextKDP_arm::DoWriteGPR(lldb::tid_t tid, int flavor,
91 ProcessSP process_sp(CalculateProcess());
94 if (static_cast<ProcessKDP *>(process_sp.get())
96 .SendRequestWriteRegisters(tid, GPRRegSet, &gpr, sizeof(gpr),
105 int RegisterContextKDP_arm::DoWriteFPU(lldb::tid_t tid, int flavor,
107 ProcessSP process_sp(CalculateProcess());
110 if (static_cast<ProcessKDP *>(process_sp.get())
112 .SendRequestWriteRegisters(tid, FPURegSet, &fpu, sizeof(fpu),
121 int RegisterContextKDP_arm::DoWriteEXC(lldb::tid_t tid, int flavor,
123 ProcessSP process_sp(CalculateProcess());
126 if (static_cast<ProcessKDP *>(process_sp.get())
128 .SendRequestWriteRegisters(tid, EXCRegSet, &exc, sizeof(exc),
137 int RegisterContextKDP_arm::DoWriteDBG(lldb::tid_t tid, int flavor,
139 ProcessSP process_sp(CalculateProcess());
142 if (static_cast<ProcessKDP *>(process_sp.get())
144 .SendRequestWriteRegisters(tid, DBGRegSet, &dbg, sizeof(dbg),