LLDB mainline
lldb_private::DynamicRegisterInfo Class Reference

#include <DynamicRegisterInfo.h>

Classes

struct  Register
struct  RegisterSetWithStorage

Public Types

typedef std::vector< lldb_private::RegisterInfo > reg_collection
typedef llvm::iterator_range< reg_collection::const_iterator > reg_collection_const_range
typedef llvm::iterator_range< reg_collection::iterator > reg_collection_range

Public Member Functions

 DynamicRegisterInfo ()=default
 DynamicRegisterInfo (DynamicRegisterInfo &)=default
DynamicRegisterInfo & operator= (DynamicRegisterInfo &)=default
virtual ~DynamicRegisterInfo ()=default
 DynamicRegisterInfo (DynamicRegisterInfo &&info)
DynamicRegisterInfo & operator= (DynamicRegisterInfo &&info)
size_t SetRegisterInfo (const lldb_private::StructuredData::Dictionary &dict, const lldb_private::ArchSpec &arch)
size_t SetRegisterInfo (std::vector< Register > &&regs, const lldb_private::ArchSpec &arch)
size_t GetNumRegisters () const
size_t GetNumRegisterSets () const
size_t GetRegisterDataByteSize () const
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex (uint32_t i) const
const lldb_private::RegisterSet * GetRegisterSet (uint32_t i) const
uint32_t ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num) const
const lldb_private::RegisterInfo * GetRegisterInfo (uint32_t kind, uint32_t num) const
void Dump (Stream &s) const
void Clear ()
bool IsReconfigurable ()
const lldb_private::RegisterInfo * GetRegisterInfo (llvm::StringRef reg_name) const
template<typename T>
T registers ()=delete
template<typename T>
T registers () const =delete
void ConfigureOffsets ()
template<>
DynamicRegisterInfo::reg_collection_const_range registers ()
template<>
DynamicRegisterInfo::reg_collection_range registers ()
template<>
DynamicRegisterInfo::reg_collection_const_range registers () const

Static Public Member Functions

static std::unique_ptr< DynamicRegisterInfo > Create (const StructuredData::Dictionary &dict, const ArchSpec &arch)

Protected Types

typedef std::vector< RegisterSetWithStorage > set_collection
typedef std::vector< uint32_t > reg_num_collection
typedef std::vector< reg_num_collection > set_reg_num_collection
typedef std::map< uint32_t, reg_num_collection > reg_to_regs_map
typedef std::map< uint32_t, uint32_t > reg_offset_map

Protected Member Functions

llvm::Expected< uint32_t > ByteOffsetFromSlice (uint32_t index, llvm::StringRef slice_str, lldb::ByteOrder byte_order)
llvm::Expected< uint32_t > ByteOffsetFromComposite (uint32_t index, lldb_private::StructuredData::Array &composite_reg_list, lldb::ByteOrder byte_order)
llvm::Expected< uint32_t > ByteOffsetFromRegInfoDict (uint32_t index, lldb_private::StructuredData::Dictionary &reg_info_dict, lldb::ByteOrder byte_order)
void MoveFrom (DynamicRegisterInfo &&info)
void Finalize (const lldb_private::ArchSpec &arch)

Protected Attributes

reg_collection m_regs
set_collection m_sets
set_reg_num_collection m_set_reg_nums
reg_to_regs_map m_value_regs_map
reg_to_regs_map m_invalidate_regs_map
reg_offset_map m_value_reg_offset_map
size_t m_reg_data_byte_size = 0u
bool m_finalized = false
bool m_is_reconfigurable = false

Detailed Description

Definition at line 24 of file DynamicRegisterInfo.h.

Member Typedef Documentation

◆ reg_collection

◆ reg_collection_const_range

typedef llvm::iterator_range<reg_collection::const_iterator> lldb_private::DynamicRegisterInfo::reg_collection_const_range

Definition at line 91 of file DynamicRegisterInfo.h.

◆ reg_collection_range

typedef llvm::iterator_range<reg_collection::iterator> lldb_private::DynamicRegisterInfo::reg_collection_range

Definition at line 92 of file DynamicRegisterInfo.h.

◆ reg_num_collection

typedef std::vector<uint32_t> lldb_private::DynamicRegisterInfo::reg_num_collection
protected

Definition at line 136 of file DynamicRegisterInfo.h.

◆ reg_offset_map

typedef std::map<uint32_t, uint32_t> lldb_private::DynamicRegisterInfo::reg_offset_map
protected

Definition at line 139 of file DynamicRegisterInfo.h.

◆ reg_to_regs_map

Definition at line 138 of file DynamicRegisterInfo.h.

◆ set_collection

Definition at line 135 of file DynamicRegisterInfo.h.

◆ set_reg_num_collection

Constructor & Destructor Documentation

◆ DynamicRegisterInfo() [1/3]

lldb_private::DynamicRegisterInfo::DynamicRegisterInfo ( )
default

◆ DynamicRegisterInfo() [2/3]

lldb_private::DynamicRegisterInfo::DynamicRegisterInfo ( DynamicRegisterInfo & )
default

References DynamicRegisterInfo().

◆ ~DynamicRegisterInfo()

virtual lldb_private::DynamicRegisterInfo::~DynamicRegisterInfo ( )
virtualdefault

References DynamicRegisterInfo().

◆ DynamicRegisterInfo() [3/3]

DynamicRegisterInfo::DynamicRegisterInfo ( DynamicRegisterInfo && info)

Definition at line 36 of file DynamicRegisterInfo.cpp.

References DynamicRegisterInfo(), and MoveFrom().

Member Function Documentation

◆ ByteOffsetFromComposite()

◆ ByteOffsetFromRegInfoDict()

◆ ByteOffsetFromSlice()

llvm::Expected< uint32_t > DynamicRegisterInfo::ByteOffsetFromSlice ( uint32_t index,
llvm::StringRef slice_str,
lldb::ByteOrder byte_order )
protected

◆ Clear()

void DynamicRegisterInfo::Clear ( )

◆ ConfigureOffsets()

◆ ConvertRegisterKindToRegisterNumber()

uint32_t DynamicRegisterInfo::ConvertRegisterKindToRegisterNumber ( uint32_t kind,
uint32_t num ) const

Definition at line 725 of file DynamicRegisterInfo.cpp.

References LLDB_INVALID_REGNUM, and m_regs.

Referenced by GetRegisterInfo().

◆ Create()

◆ Dump()

◆ Finalize()

◆ GetNumRegisters()

size_t DynamicRegisterInfo::GetNumRegisters ( ) const

Definition at line 695 of file DynamicRegisterInfo.cpp.

References m_regs.

◆ GetNumRegisterSets()

size_t DynamicRegisterInfo::GetNumRegisterSets ( ) const

Definition at line 697 of file DynamicRegisterInfo.cpp.

References m_sets.

◆ GetRegisterDataByteSize()

size_t DynamicRegisterInfo::GetRegisterDataByteSize ( ) const

◆ GetRegisterInfo() [1/2]

const lldb_private::RegisterInfo * DynamicRegisterInfo::GetRegisterInfo ( llvm::StringRef reg_name) const

Definition at line 798 of file DynamicRegisterInfo.cpp.

References m_regs.

◆ GetRegisterInfo() [2/2]

const RegisterInfo * DynamicRegisterInfo::GetRegisterInfo ( uint32_t kind,
uint32_t num ) const

◆ GetRegisterInfoAtIndex()

const RegisterInfo * DynamicRegisterInfo::GetRegisterInfoAtIndex ( uint32_t i) const

Definition at line 704 of file DynamicRegisterInfo.cpp.

References m_regs.

Referenced by ConfigureOffsets().

◆ GetRegisterSet()

const RegisterSet * DynamicRegisterInfo::GetRegisterSet ( uint32_t i) const

Definition at line 718 of file DynamicRegisterInfo.cpp.

References m_sets.

◆ IsReconfigurable()

bool DynamicRegisterInfo::IsReconfigurable ( )

Definition at line 693 of file DynamicRegisterInfo.cpp.

References m_is_reconfigurable.

◆ MoveFrom()

void DynamicRegisterInfo::MoveFrom ( DynamicRegisterInfo && info)
protected

◆ operator=() [1/2]

DynamicRegisterInfo & DynamicRegisterInfo::operator= ( DynamicRegisterInfo && info)

Definition at line 41 of file DynamicRegisterInfo.cpp.

References DynamicRegisterInfo(), and MoveFrom().

◆ operator=() [2/2]

DynamicRegisterInfo & lldb_private::DynamicRegisterInfo::operator= ( DynamicRegisterInfo & )
default

References DynamicRegisterInfo().

◆ registers() [1/5]

template<>
DynamicRegisterInfo::reg_collection_const_range lldb_private::DynamicRegisterInfo::registers ( )
inline

Definition at line 169 of file DynamicRegisterInfo.h.

References m_regs.

◆ registers() [2/5]

template<>
DynamicRegisterInfo::reg_collection_range lldb_private::DynamicRegisterInfo::registers ( )
inline

Definition at line 175 of file DynamicRegisterInfo.h.

References m_regs.

◆ registers() [3/5]

template<>
DynamicRegisterInfo::reg_collection_const_range lldb_private::DynamicRegisterInfo::registers ( ) const
inline

Definition at line 181 of file DynamicRegisterInfo.h.

References m_regs.

◆ registers() [4/5]

template<typename T>
T lldb_private::DynamicRegisterInfo::registers ( ) const
delete

◆ registers() [5/5]

template<typename T>
T lldb_private::DynamicRegisterInfo::registers ( )
delete

◆ SetRegisterInfo() [1/2]

size_t DynamicRegisterInfo::SetRegisterInfo ( const lldb_private::StructuredData::Dictionary & dict,
const lldb_private::ArchSpec & arch )

◆ SetRegisterInfo() [2/2]

Member Data Documentation

◆ m_finalized

bool lldb_private::DynamicRegisterInfo::m_finalized = false
protected

Definition at line 163 of file DynamicRegisterInfo.h.

Referenced by Clear(), Finalize(), MoveFrom(), SetRegisterInfo(), and SetRegisterInfo().

◆ m_invalidate_regs_map

reg_to_regs_map lldb_private::DynamicRegisterInfo::m_invalidate_regs_map
protected

◆ m_is_reconfigurable

bool lldb_private::DynamicRegisterInfo::m_is_reconfigurable = false
protected

Definition at line 164 of file DynamicRegisterInfo.h.

Referenced by Finalize(), and IsReconfigurable().

◆ m_reg_data_byte_size

size_t lldb_private::DynamicRegisterInfo::m_reg_data_byte_size = 0u
protected

◆ m_regs

◆ m_set_reg_nums

set_reg_num_collection lldb_private::DynamicRegisterInfo::m_set_reg_nums
protected

Definition at line 157 of file DynamicRegisterInfo.h.

Referenced by Clear(), Finalize(), MoveFrom(), SetRegisterInfo(), and SetRegisterInfo().

◆ m_sets

set_collection lldb_private::DynamicRegisterInfo::m_sets
protected

◆ m_value_reg_offset_map

reg_offset_map lldb_private::DynamicRegisterInfo::m_value_reg_offset_map
protected

Definition at line 160 of file DynamicRegisterInfo.h.

Referenced by ConfigureOffsets(), and SetRegisterInfo().

◆ m_value_regs_map

reg_to_regs_map lldb_private::DynamicRegisterInfo::m_value_regs_map
protected

The documentation for this class was generated from the following files: