LLDB  mainline
RegisterContextPOSIX_s390x.h
Go to the documentation of this file.
1 //===-- RegisterContextPOSIX_s390x.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_S390X_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_S390X_H
11 
12 #include "RegisterContext_s390x.h"
13 #include "RegisterInfoInterface.h"
16 #include "lldb/Utility/Log.h"
17 
19 public:
21  lldb_private::Thread &thread, uint32_t concrete_frame_idx,
23 
24  ~RegisterContextPOSIX_s390x() override;
25 
26  void Invalidate();
27 
28  void InvalidateAllRegisters() override;
29 
30  size_t GetRegisterCount() override;
31 
32  virtual unsigned GetRegisterSize(unsigned reg);
33 
34  virtual unsigned GetRegisterOffset(unsigned reg);
35 
36  const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
37 
38  size_t GetRegisterSetCount() override;
39 
40  const lldb_private::RegisterSet *GetRegisterSet(size_t set) override;
41 
42  const char *GetRegisterName(unsigned reg);
43 
44 protected:
45  struct RegInfo {
49 
53  };
54 
56  std::unique_ptr<lldb_private::RegisterInfoInterface> m_register_info_up;
57 
58  virtual bool IsRegisterSetAvailable(size_t set_index);
59 
60  virtual const lldb_private::RegisterInfo *GetRegisterInfo();
61 
62  bool IsGPR(unsigned reg);
63 
64  bool IsFPR(unsigned reg);
65 
66  virtual bool ReadGPR() = 0;
67  virtual bool ReadFPR() = 0;
68  virtual bool WriteGPR() = 0;
69  virtual bool WriteFPR() = 0;
70 };
71 
72 #endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTPOSIX_S390X_H
RegisterContextPOSIX_s390x::GetRegisterSet
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
Definition: RegisterContextPOSIX_s390x.cpp:152
RegisterContextPOSIX_s390x::WriteGPR
virtual bool WriteGPR()=0
RegisterContext_s390x.h
lldb_private::RegisterInfoInterface
Definition: RegisterInfoInterface.h:21
RegisterContextPOSIX_s390x::GetRegisterName
const char * GetRegisterName(unsigned reg)
Definition: RegisterContextPOSIX_s390x.cpp:133
RegisterContextPOSIX_s390x::RegInfo::last_gpr
uint32_t last_gpr
Definition: RegisterContextPOSIX_s390x.h:50
RegisterContextPOSIX_s390x::GetRegisterInfo
virtual const lldb_private::RegisterInfo * GetRegisterInfo()
Definition: RegisterContextPOSIX_s390x.cpp:107
RegisterContextPOSIX_s390x::ReadGPR
virtual bool ReadGPR()=0
RegisterContextPOSIX_s390x::GetRegisterCount
size_t GetRegisterCount() override
Definition: RegisterContextPOSIX_s390x.cpp:119
RegisterContextPOSIX_s390x::GetRegisterOffset
virtual unsigned GetRegisterOffset(unsigned reg)
Definition: RegisterContextPOSIX_s390x.cpp:123
RegisterContextPOSIX_s390x::IsGPR
bool IsGPR(unsigned reg)
Definition: RegisterContextPOSIX_s390x.cpp:72
RegisterContextPOSIX_s390x::~RegisterContextPOSIX_s390x
~RegisterContextPOSIX_s390x() override
RegisterInfoInterface.h
Log.h
lldb_private::Thread
Definition: Thread.h:60
RegisterContextPOSIX_s390x::RegInfo::last_fpr
uint32_t last_fpr
Definition: RegisterContextPOSIX_s390x.h:52
RegisterContextPOSIX_s390x::RegInfo::first_fpr
uint32_t first_fpr
Definition: RegisterContextPOSIX_s390x.h:51
RegisterContextPOSIX_s390x::Invalidate
void Invalidate()
Definition: RegisterContextPOSIX_s390x.cpp:103
RegisterContextPOSIX_s390x::RegInfo
Definition: RegisterContextPOSIX_s390x.h:45
RegisterContextPOSIX_s390x::GetRegisterSetCount
size_t GetRegisterSetCount() override
Definition: RegisterContextPOSIX_s390x.cpp:142
RegisterContextPOSIX_s390x::GetRegisterSize
virtual unsigned GetRegisterSize(unsigned reg)
Definition: RegisterContextPOSIX_s390x.cpp:128
RegisterContextPOSIX_s390x::m_register_info_up
std::unique_ptr< lldb_private::RegisterInfoInterface > m_register_info_up
Definition: RegisterContextPOSIX_s390x.h:56
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_s390x
Definition: RegisterContextPOSIX_s390x.h:18
RegisterContextPOSIX_s390x::m_reg_info
RegInfo m_reg_info
Definition: RegisterContextPOSIX_s390x.h:55
RegisterContextPOSIX_s390x::InvalidateAllRegisters
void InvalidateAllRegisters() override
Definition: RegisterContextPOSIX_s390x.cpp:105
RegisterContextPOSIX_s390x::IsRegisterSetAvailable
virtual bool IsRegisterSetAvailable(size_t set_index)
Definition: RegisterContextPOSIX_s390x.cpp:138
RegisterContextPOSIX_s390x::RegInfo::num_registers
uint32_t num_registers
Definition: RegisterContextPOSIX_s390x.h:46
lldb_private::RegisterContext
Definition: RegisterContext.h:17
RegisterContextPOSIX_s390x::ReadFPR
virtual bool ReadFPR()=0
RegisterContextPOSIX_s390x::IsFPR
bool IsFPR(unsigned reg)
Definition: RegisterContextPOSIX_s390x.cpp:76
lldb-s390x-register-enums.h
uint32_t
RegisterContextPOSIX_s390x::WriteFPR
virtual bool WriteFPR()=0
RegisterContextPOSIX_s390x::RegInfo::num_gpr_registers
uint32_t num_gpr_registers
Definition: RegisterContextPOSIX_s390x.h:47
RegisterContextPOSIX_s390x::GetRegisterInfoAtIndex
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
Definition: RegisterContextPOSIX_s390x.cpp:112
RegisterContextPOSIX_s390x::RegInfo::num_fpr_registers
uint32_t num_fpr_registers
Definition: RegisterContextPOSIX_s390x.h:48
RegisterContextPOSIX_s390x::RegisterContextPOSIX_s390x
RegisterContextPOSIX_s390x(lldb_private::Thread &thread, uint32_t concrete_frame_idx, lldb_private::RegisterInfoInterface *register_info)
Definition: RegisterContextPOSIX_s390x.cpp:80
RegisterContext.h