LLDB  mainline
RegisterContextPOSIX_mips64.h
Go to the documentation of this file.
1 //===-- RegisterContextPOSIX_mips64.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 LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_MIPS64_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_MIPS64_H
11 
12 #include "RegisterContext_mips.h"
13 #include "RegisterInfoInterface.h"
15 #include "lldb/Utility/Log.h"
16 
18 public:
19 
25  };
26 
28  lldb_private::Thread &thread, uint32_t concrete_frame_idx,
30 
32 
33  void Invalidate();
34 
35  void InvalidateAllRegisters() override;
36 
37  size_t GetRegisterCount() override;
38 
39  virtual size_t GetGPRSize();
40 
41  virtual unsigned GetRegisterSize(unsigned reg);
42 
43  virtual unsigned GetRegisterOffset(unsigned reg);
44 
45  const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
46 
47  size_t GetRegisterSetCount() override;
48 
49  const lldb_private::RegisterSet *GetRegisterSet(size_t set) override;
50 
51  const char *GetRegisterName(unsigned reg);
52 
54  uint32_t num) override;
55 
56 protected:
59  std::unique_ptr<lldb_private::RegisterInfoInterface>
60  m_register_info_up; // Register Info Interface (FreeBSD or Linux)
61 
62  // Determines if an extended register set is supported on the processor
63  // running the inferior process.
64  virtual bool IsRegisterSetAvailable(size_t set_index);
65 
66  virtual const lldb_private::RegisterInfo *GetRegisterInfo();
67 
68  bool IsGPR(unsigned reg);
69 
70  bool IsFPR(unsigned reg);
71 
72  virtual bool ReadGPR() = 0;
73  virtual bool ReadFPR() = 0;
74  virtual bool WriteGPR() = 0;
75  virtual bool WriteFPR() = 0;
76 };
77 
78 #endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_MIPS64_H
RegisterContextPOSIX_mips64::fpr_registers_count
@ fpr_registers_count
Definition: RegisterContextPOSIX_mips64.h:22
RegisterContextPOSIX_mips64::GetRegisterSize
virtual unsigned GetRegisterSize(unsigned reg)
Definition: RegisterContextPOSIX_mips64.cpp:72
RegisterContextPOSIX_mips64::WriteGPR
virtual bool WriteGPR()=0
RegisterContextPOSIX_mips64
Definition: RegisterContextPOSIX_mips64.h:17
lldb_private::RegisterInfoInterface
Definition: RegisterInfoInterface.h:21
RegisterContextPOSIX_mips64::Invalidate
void Invalidate()
Definition: RegisterContextPOSIX_mips64.cpp:63
RegisterContextPOSIX_mips64::IsGPR
bool IsGPR(unsigned reg)
Definition: RegisterContextPOSIX_mips64.cpp:29
RegisterContextPOSIX_mips64::GetRegisterOffset
virtual unsigned GetRegisterOffset(unsigned reg)
Definition: RegisterContextPOSIX_mips64.cpp:67
RegisterInfoInterface.h
RegisterContext_mips.h
RegisterContextPOSIX_mips64::msa_registers_count
@ msa_registers_count
Definition: RegisterContextPOSIX_mips64.h:23
RegisterContextPOSIX_mips64::GetRegisterInfoAtIndex
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
Definition: RegisterContextPOSIX_mips64.cpp:93
Log.h
lldb_private::Thread
Definition: Thread.h:60
RegisterContextPOSIX_mips64::m_num_registers
uint32_t m_num_registers
Definition: RegisterContextPOSIX_mips64.h:57
RegisterContextPOSIX_mips64::gpr_registers_count
@ gpr_registers_count
Definition: RegisterContextPOSIX_mips64.h:21
RegisterContextPOSIX_mips64::WriteFPR
virtual bool WriteFPR()=0
set
set(option_framework FRAMEWORK) endif() if(LLDB_ENABLE_PYTHON) get_target_property(python_bindings_dir swig_wrapper_python BINARY_DIR) set(lldb_python_wrapper $
Definition: API/CMakeLists.txt:9
RegisterContextPOSIX_mips64::GetRegisterCount
size_t GetRegisterCount() override
Definition: RegisterContextPOSIX_mips64.cpp:77
lldb_private::RegisterContext
Definition: RegisterContext.h:17
lldb::RegisterKind
RegisterKind
Register numbering types.
Definition: lldb-enumerations.h:227
RegisterContextPOSIX_mips64::GetRegisterSetCount
size_t GetRegisterSetCount() override
Definition: RegisterContextPOSIX_mips64.cpp:100
RegisterContextPOSIX_mips64::m_register_info_up
std::unique_ptr< lldb_private::RegisterInfoInterface > m_register_info_up
Definition: RegisterContextPOSIX_mips64.h:60
RegisterContextPOSIX_mips64::register_set_count
@ register_set_count
Definition: RegisterContextPOSIX_mips64.h:24
RegisterContextPOSIX_mips64::ConvertRegisterKindToRegisterNumber
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
Definition: RegisterContextPOSIX_mips64.cpp:136
uint32_t
RegisterContextPOSIX_mips64::GetGPRSize
virtual size_t GetGPRSize()
Definition: RegisterContextPOSIX_mips64.cpp:81
RegisterContextPOSIX_mips64::GetRegisterInfo
virtual const lldb_private::RegisterInfo * GetRegisterInfo()
Definition: RegisterContextPOSIX_mips64.cpp:85
RegisterContextPOSIX_mips64::GetRegisterName
const char * GetRegisterName(unsigned reg)
Definition: RegisterContextPOSIX_mips64.cpp:123
RegisterContextPOSIX_mips64::GetRegisterSet
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
Definition: RegisterContextPOSIX_mips64.cpp:112
RegisterContextPOSIX_mips64::IsRegisterSetAvailable
virtual bool IsRegisterSetAvailable(size_t set_index)
Definition: RegisterContextPOSIX_mips64.cpp:128
RegisterContextPOSIX_mips64::~RegisterContextPOSIX_mips64
~RegisterContextPOSIX_mips64() override
RegisterContextPOSIX_mips64::m_registers_count
uint8_t m_registers_count[register_set_count]
Definition: RegisterContextPOSIX_mips64.h:58
RegisterContextPOSIX_mips64::ReadFPR
virtual bool ReadFPR()=0
RegisterContextPOSIX_mips64::RegisterContextPOSIX_mips64
RegisterContextPOSIX_mips64(lldb_private::Thread &thread, uint32_t concrete_frame_idx, lldb_private::RegisterInfoInterface *register_info)
Definition: RegisterContextPOSIX_mips64.cpp:41
RegisterContextPOSIX_mips64::ReadGPR
virtual bool ReadGPR()=0
RegisterContextPOSIX_mips64::InvalidateAllRegisters
void InvalidateAllRegisters() override
Definition: RegisterContextPOSIX_mips64.cpp:65
RegisterContextPOSIX_mips64::Register_count
Register_count
Definition: RegisterContextPOSIX_mips64.h:20
RegisterContext.h
RegisterContextPOSIX_mips64::IsFPR
bool IsFPR(unsigned reg)
Definition: RegisterContextPOSIX_mips64.cpp:33