]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / source / Plugins / Process / elf-core / RegisterContextPOSIXCore_powerpc.h
1 //===-- RegisterContextPOSIXCore_powerpc.h ----------------------*- 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 #ifndef liblldb_RegisterContextCorePOSIX_powerpc_h_
10 #define liblldb_RegisterContextCorePOSIX_powerpc_h_
11
12 #include "Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h"
13 #include "Plugins/Process/elf-core/RegisterUtilities.h"
14 #include "lldb/Utility/DataExtractor.h"
15
16 class RegisterContextCorePOSIX_powerpc : public RegisterContextPOSIX_powerpc {
17 public:
18   RegisterContextCorePOSIX_powerpc(
19       lldb_private::Thread &thread,
20       lldb_private::RegisterInfoInterface *register_info,
21       const lldb_private::DataExtractor &gpregset,
22       llvm::ArrayRef<lldb_private::CoreNote> notes);
23
24   ~RegisterContextCorePOSIX_powerpc() override;
25
26   bool ReadRegister(const lldb_private::RegisterInfo *reg_info,
27                     lldb_private::RegisterValue &value) override;
28
29   bool WriteRegister(const lldb_private::RegisterInfo *reg_info,
30                      const lldb_private::RegisterValue &value) override;
31
32   bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
33
34   bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
35
36   bool HardwareSingleStep(bool enable) override;
37
38 protected:
39   bool ReadGPR() override;
40
41   bool ReadFPR() override;
42
43   bool ReadVMX() override;
44
45   bool WriteGPR() override;
46
47   bool WriteFPR() override;
48
49   bool WriteVMX() override;
50
51 private:
52   lldb::DataBufferSP m_gpr_buffer;
53   lldb::DataBufferSP m_fpr_buffer;
54   lldb::DataBufferSP m_vec_buffer;
55   lldb_private::DataExtractor m_gpr;
56   lldb_private::DataExtractor m_fpr;
57   lldb_private::DataExtractor m_vec;
58 };
59
60 #endif // liblldb_RegisterContextCorePOSIX_powerpc_h_