LLDB mainline
|
#include <RegisterValue.h>
Classes | |
struct | RegisterValueBuffer |
Public Types | |
enum | { kTypicalRegisterByteSize = 256u , kMaxRegisterByteSize = 256u * 256u } |
enum | Type { eTypeInvalid , eTypeUInt8 , eTypeUInt16 , eTypeUInt32 , eTypeUInt64 , eTypeUInt128 , eTypeFloat , eTypeDouble , eTypeLongDouble , eTypeBytes } |
typedef llvm::SmallVector< uint8_t, kTypicalRegisterByteSize > | BytesContainer |
Public Member Functions | |
RegisterValue () | |
RegisterValue (uint8_t inst) | |
RegisterValue (uint16_t inst) | |
RegisterValue (uint32_t inst) | |
RegisterValue (uint64_t inst) | |
RegisterValue (llvm::APInt inst) | |
RegisterValue (float value) | |
RegisterValue (double value) | |
RegisterValue (long double value) | |
RegisterValue (llvm::ArrayRef< uint8_t > bytes, lldb::ByteOrder byte_order) | |
RegisterValue::Type | GetType () const |
bool | CopyValue (const RegisterValue &rhs) |
void | SetType (RegisterValue::Type type) |
RegisterValue::Type | SetType (const RegisterInfo ®_info) |
bool | GetData (DataExtractor &data) const |
uint32_t | GetAsMemoryData (const RegisterInfo ®_info, void *dst, uint32_t dst_len, lldb::ByteOrder dst_byte_order, Status &error) const |
uint32_t | SetFromMemoryData (const RegisterInfo ®_info, const void *src, uint32_t src_len, lldb::ByteOrder src_byte_order, Status &error) |
bool | GetScalarValue (Scalar &scalar) const |
uint8_t | GetAsUInt8 (uint8_t fail_value=UINT8_MAX, bool *success_ptr=nullptr) const |
uint16_t | GetAsUInt16 (uint16_t fail_value=UINT16_MAX, bool *success_ptr=nullptr) const |
uint32_t | GetAsUInt32 (uint32_t fail_value=UINT32_MAX, bool *success_ptr=nullptr) const |
uint64_t | GetAsUInt64 (uint64_t fail_value=UINT64_MAX, bool *success_ptr=nullptr) const |
llvm::APInt | GetAsUInt128 (const llvm::APInt &fail_value, bool *success_ptr=nullptr) const |
float | GetAsFloat (float fail_value=0.0f, bool *success_ptr=nullptr) const |
double | GetAsDouble (double fail_value=0.0, bool *success_ptr=nullptr) const |
long double | GetAsLongDouble (long double fail_value=0.0, bool *success_ptr=nullptr) const |
void | SetValueToInvalid () |
bool | ClearBit (uint32_t bit) |
bool | SetBit (uint32_t bit) |
bool | operator== (const RegisterValue &rhs) const |
bool | operator!= (const RegisterValue &rhs) const |
void | operator= (uint8_t uint) |
void | operator= (uint16_t uint) |
void | operator= (uint32_t uint) |
void | operator= (uint64_t uint) |
void | operator= (llvm::APInt uint) |
void | operator= (float f) |
void | operator= (double f) |
void | operator= (long double f) |
void | SetUInt8 (uint8_t uint) |
void | SetUInt16 (uint16_t uint) |
void | SetUInt32 (uint32_t uint, Type t=eTypeUInt32) |
void | SetUInt64 (uint64_t uint, Type t=eTypeUInt64) |
void | SetUInt128 (llvm::APInt uint) |
bool | SetUInt (uint64_t uint, uint32_t byte_size) |
void | SetFloat (float f) |
void | SetDouble (double f) |
void | SetLongDouble (long double f) |
void | SetBytes (const void *bytes, size_t length, lldb::ByteOrder byte_order) |
bool | SignExtend (uint32_t sign_bitpos) |
Status | SetValueFromString (const RegisterInfo *reg_info, llvm::StringRef value_str) |
Status | SetValueFromString (const RegisterInfo *reg_info, const char *value_str)=delete |
Status | SetValueFromData (const RegisterInfo ®_info, DataExtractor &data, lldb::offset_t offset, bool partial_data_ok) |
const void * | GetBytes () const |
lldb::ByteOrder | GetByteOrder () const |
uint32_t | GetByteSize () const |
void | Clear () |
Protected Attributes | |
RegisterValue::Type | m_type = eTypeInvalid |
Scalar | m_scalar |
struct lldb_private::RegisterValue::RegisterValueBuffer | buffer |
Definition at line 29 of file RegisterValue.h.
typedef llvm::SmallVector<uint8_t, kTypicalRegisterByteSize> lldb_private::RegisterValue::BytesContainer |
Definition at line 41 of file RegisterValue.h.
anonymous enum |
Enumerator | |
---|---|
kTypicalRegisterByteSize | |
kMaxRegisterByteSize |
Definition at line 31 of file RegisterValue.h.
Enumerator | |
---|---|
eTypeInvalid | |
eTypeUInt8 | |
eTypeUInt16 | |
eTypeUInt32 | |
eTypeUInt64 | |
eTypeUInt128 | |
eTypeFloat | |
eTypeDouble | |
eTypeLongDouble | |
eTypeBytes |
Definition at line 43 of file RegisterValue.h.
|
inline |
Definition at line 56 of file RegisterValue.h.
|
inlineexplicit |
Definition at line 58 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 60 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 64 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 68 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 72 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 76 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 78 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 82 of file RegisterValue.h.
References m_scalar.
|
inlineexplicit |
Definition at line 86 of file RegisterValue.h.
References SetBytes().
void RegisterValue::Clear | ( | ) |
Definition at line 140 of file RegisterValue.cpp.
References eTypeInvalid, and m_type.
Referenced by lldb_private::ValueObjectRegister::UpdateValue().
bool RegisterValue::ClearBit | ( | uint32_t | bit | ) |
Definition at line 765 of file RegisterValue.cpp.
References bit, buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, lldb_private::RegisterValue::RegisterValueBuffer::bytes, lldb_private::Scalar::ClearBit(), lldb::eByteOrderBig, lldb::eByteOrderLittle, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, GetByteSize(), m_scalar, and m_type.
bool RegisterValue::CopyValue | ( | const RegisterValue & | rhs | ) |
Definition at line 455 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, m_scalar, and m_type.
Referenced by SetType().
double RegisterValue::GetAsDouble | ( | double | fail_value = 0.0 , |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 627 of file RegisterValue.cpp.
References lldb_private::Scalar::Double(), eTypeDouble, eTypeFloat, eTypeLongDouble, eTypeUInt128, eTypeUInt32, eTypeUInt64, m_scalar, and m_type.
Referenced by ABISysV_arm::GetReturnValueObjectImpl().
float RegisterValue::GetAsFloat | ( | float | fail_value = 0.0f , |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 608 of file RegisterValue.cpp.
References eTypeDouble, eTypeFloat, eTypeLongDouble, eTypeUInt128, eTypeUInt32, eTypeUInt64, lldb_private::Scalar::Float(), m_scalar, and m_type.
Referenced by ABISysV_arm::GetReturnValueObjectImpl().
long double RegisterValue::GetAsLongDouble | ( | long double | fail_value = 0.0 , |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 647 of file RegisterValue.cpp.
References eTypeDouble, eTypeFloat, eTypeLongDouble, eTypeUInt128, eTypeUInt32, eTypeUInt64, lldb_private::Scalar::LongDouble(), m_scalar, and m_type.
uint32_t RegisterValue::GetAsMemoryData | ( | const RegisterInfo & | reg_info, |
void * | dst, | ||
uint32_t | dst_len, | ||
lldb::ByteOrder | dst_byte_order, | ||
Status & | error | ||
) | const |
Definition at line 38 of file RegisterValue.cpp.
References lldb_private::RegisterInfo::byte_size, lldb_private::DataExtractor::CopyByteOrderedData(), error(), eTypeInvalid, GetData(), GetType(), and lldb_private::RegisterInfo::name.
Referenced by ABIMacOSX_arm64::GetReturnValueObjectImpl(), ABISysV_arm64::GetReturnValueObjectImpl(), ABIMacOSX_arm::GetReturnValueObjectImpl(), ABISysV_arm::GetReturnValueObjectImpl(), ABISysV_mips64::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectSimple(), ABISysV_i386::GetReturnValueObjectSimple(), ABISysV_x86_64::GetReturnValueObjectSimple(), ABIWindows_x86_64::GetReturnValueObjectSimple(), GetValObjFromIntRegs(), LoadValueFromConsecutiveGPRRegisters(), read_register_u128(), lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw(), lldb_private::NativeRegisterContext::WriteRegisterValueToMemory(), and lldb_private::RegisterContext::WriteRegisterValueToMemory().
llvm::APInt RegisterValue::GetAsUInt128 | ( | const llvm::APInt & | fail_value, |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 572 of file RegisterValue.cpp.
References BITWIDTH_INT128, buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, m_scalar, m_type, NUM_OF_WORDS_INT128, and lldb_private::Scalar::UInt128().
Referenced by EmulateInstructionMIPS::Emulate_MSA_Branch_V(), and EmulateInstructionMIPS64::Emulate_MSA_Branch_V().
uint16_t RegisterValue::GetAsUInt16 | ( | uint16_t | fail_value = UINT16_MAX , |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 481 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeUInt16, eTypeUInt8, m_scalar, m_type, and lldb_private::Scalar::UShort().
Referenced by read_register_u16_raw(), RegisterContextDarwin_i386::WriteRegister(), and RegisterContextDarwin_x86_64::WriteRegister().
uint32_t RegisterValue::GetAsUInt32 | ( | uint32_t | fail_value = UINT32_MAX , |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 507 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeLongDouble, eTypeUInt16, eTypeUInt32, eTypeUInt8, m_scalar, m_type, and lldb_private::Scalar::UInt().
Referenced by ThreadMachCore::CalculateStopInfo(), lldb_private::DumpRegisterValue(), ABISysV_hexagon::GetReturnValueObjectImpl(), read_register_u32_raw(), RegisterContextDarwin_arm::WriteRegister(), RegisterContextDarwin_arm64::WriteRegister(), RegisterContextDarwin_i386::WriteRegister(), and RegisterContextDarwin_x86_64::WriteRegister().
uint64_t RegisterValue::GetAsUInt64 | ( | uint64_t | fail_value = UINT64_MAX , |
bool * | success_ptr = nullptr |
||
) | const |
Definition at line 537 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeLongDouble, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, m_scalar, m_type, and lldb_private::Scalar::ULongLong().
Referenced by ThreadMachCore::CalculateStopInfo(), lldb_private::NativeRegisterContextDBReg_x86::ClearAllHardwareWatchpoints(), lldb_private::NativeRegisterContextDBReg_x86::ClearHardwareWatchpoint(), lldb_private::NativeRegisterContextDBReg_x86::ClearWatchpointHit(), lldb_private::StopInfoMachException::DeterminePtrauthFailure(), lldb_private::OptionArgParser::DoToAddress(), lldb_private::process_linux::NativeRegisterContextLinux::DoWriteRegisterValue(), CommandObjectRegisterRead::DumpRegister(), lldb_private::DumpRegisterValue(), lldb_private::NativeRegisterContextDBReg_x86::GetWatchpointAddress(), lldb_private::NativeRegisterContextDBReg_x86::IsWatchpointHit(), lldb_private::NativeRegisterContextDBReg_x86::IsWatchpointVacant(), lldb_private::Rs::Read(), read_register_u64_raw(), lldb_private::Rs::ReadAPFloat(), lldb_private::RegisterContextUnwind::ReadFrameAddress(), lldb_private::RegisterContextUnwind::ReadGPRValue(), lldb_private::RegisterContextUnwind::ReadRegister(), lldb_private::NativeRegisterContext::ReadRegisterAsUnsigned(), lldb_private::RegisterContext::ReadRegisterAsUnsigned(), lldb_private::EmulateInstruction::ReadRegisterUnsigned(), lldb_private::NativeRegisterContextDBReg_x86::SetHardwareWatchpointWithIndex(), lldb_private::RegisterContextUnwind::TryFallbackUnwindPlan(), EmulationStateARM::WritePseudoRegister(), RegisterContextDarwin_arm64::WriteRegister(), RegisterContextDarwin_x86_64::WriteRegister(), and UnwindAssemblyInstEmulation::WriteRegister().
|
inline |
Definition at line 118 of file RegisterValue.h.
References eTypeUInt8, m_scalar, m_type, and lldb_private::Scalar::UChar().
Referenced by RegisterContextDarwin_i386::WriteRegister(), and RegisterContextDarwin_x86_64::WriteRegister().
|
inline |
Definition at line 256 of file RegisterValue.h.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, eTypeBytes, lldb_private::endian::InlHostByteOrder(), and m_type.
Referenced by GetData().
const void * RegisterValue::GetBytes | ( | ) | const |
Definition at line 668 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, lldb_private::Scalar::GetBytes(), m_scalar, and m_type.
Referenced by EmulateInstructionMIPS::Emulate_MSA_Branch_DF(), EmulateInstructionMIPS64::Emulate_MSA_Branch_DF(), GetData(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_g(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_p(), PrintRegisterValue(), RegisterContextDarwin_arm64::WriteRegister(), RegisterContextDarwin_i386::WriteRegister(), RegisterContextDarwin_x86_64::WriteRegister(), and WriteRegisterValueInHexFixedWidth().
uint32_t RegisterValue::GetByteSize | ( | ) | const |
Definition at line 688 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, lldb_private::Scalar::GetByteSize(), m_scalar, and m_type.
Referenced by ClearBit(), GetData(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_p(), SetBit(), RegisterContextDarwin_arm64::WriteRegister(), RegisterContextDarwin_i386::WriteRegister(), RegisterContextDarwin_x86_64::WriteRegister(), lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw(), and WriteRegisterValueInHexFixedWidth().
bool RegisterValue::GetData | ( | DataExtractor & | data | ) | const |
Definition at line 34 of file RegisterValue.cpp.
References GetByteOrder(), GetBytes(), GetByteSize(), and lldb_private::DataExtractor::SetData().
Referenced by lldb_private::DumpRegisterValue(), GetAsMemoryData(), ABIMacOSX_arm64::GetReturnValueObjectImpl(), ABISysV_arm64::GetReturnValueObjectImpl(), ABISysV_mips::GetReturnValueObjectImpl(), ABISysV_mips64::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectImpl(), ABISysV_x86_64::GetReturnValueObjectImpl(), ABIWindows_x86_64::GetReturnValueObjectImpl(), ABISysV_ppc::GetReturnValueObjectSimple(), ABISysV_s390x::GetReturnValueObjectSimple(), ABISysV_i386::GetReturnValueObjectSimple(), ABISysV_x86_64::GetReturnValueObjectSimple(), ABIWindows_x86_64::GetReturnValueObjectSimple(), EntityRegister::Materialize(), SetType(), lldb_private::ValueObjectRegister::UpdateValue(), and lldb_private::process_gdb_remote::GDBRemoteRegisterContext::WriteRegister().
bool RegisterValue::GetScalarValue | ( | Scalar & | scalar | ) | const |
Definition at line 115 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, lldb_private::RegisterValue::RegisterValueBuffer::bytes, lldb::eEncodingUint, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, m_scalar, m_type, lldb_private::Scalar::SetValueFromData(), and lldb_private::Status::Success().
Referenced by ABIMacOSX_arm64::GetArgumentValues(), ABISysV_arm64::GetArgumentValues(), ABIMacOSX_arm::GetArgumentValues(), ABISysV_arm::GetArgumentValues(), ReadRegisterValueAsScalar(), and lldb_private::ValueObjectRegister::ResolveValue().
|
inline |
Definition at line 91 of file RegisterValue.h.
References m_type.
Referenced by lldb_private::OptionArgParser::DoToAddress(), GetAsMemoryData(), lldb_private::ThreadPlanAssemblyTracer::Log(), and lldb_private::RegisterContextUnwind::ReadRegister().
bool RegisterValue::operator!= | ( | const RegisterValue & | rhs | ) | const |
Definition at line 761 of file RegisterValue.cpp.
|
inline |
Definition at line 190 of file RegisterValue.h.
References eTypeDouble, m_scalar, and m_type.
|
inline |
Definition at line 185 of file RegisterValue.h.
References eTypeFloat, m_scalar, and m_type.
|
inline |
Definition at line 180 of file RegisterValue.h.
References eTypeUInt128, m_scalar, and m_type.
|
inline |
Definition at line 195 of file RegisterValue.h.
References eTypeLongDouble, m_scalar, and m_type.
|
inline |
Definition at line 165 of file RegisterValue.h.
References eTypeUInt16, m_scalar, and m_type.
|
inline |
Definition at line 170 of file RegisterValue.h.
References eTypeUInt32, m_scalar, and m_type.
|
inline |
Definition at line 175 of file RegisterValue.h.
References eTypeUInt64, m_scalar, and m_type.
|
inline |
Definition at line 160 of file RegisterValue.h.
References eTypeUInt8, m_scalar, and m_type.
bool RegisterValue::operator== | ( | const RegisterValue & | rhs | ) | const |
Definition at line 740 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, m_scalar, and m_type.
bool RegisterValue::SetBit | ( | uint32_t | bit | ) |
Definition at line 805 of file RegisterValue.cpp.
References bit, buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, lldb_private::RegisterValue::RegisterValueBuffer::bytes, lldb::eByteOrderBig, lldb::eByteOrderLittle, eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, GetByteSize(), m_scalar, m_type, and lldb_private::Scalar::SetBit().
void RegisterValue::SetBytes | ( | const void * | bytes, |
size_t | length, | ||
lldb::ByteOrder | byte_order | ||
) |
Definition at line 727 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, lldb_private::RegisterValue::RegisterValueBuffer::bytes, eTypeBytes, eTypeInvalid, and m_type.
Referenced by ParseVectorEncoding(), RegisterContextDarwin_arm64::ReadRegister(), RegisterContextCorePOSIX_powerpc::ReadRegister(), RegisterContextCorePOSIX_ppc64le::ReadRegister(), RegisterContextDarwin_x86_64::ReadRegister(), RegisterValue(), ABISysV_s390x::SetReturnValueObject(), ABISysV_x86_64::SetReturnValueObject(), ABIWindows_x86_64::SetReturnValueObject(), and lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw().
|
inline |
Definition at line 232 of file RegisterValue.h.
References eTypeDouble, m_scalar, and m_type.
Referenced by RegisterContextDarwin_arm64::ReadRegister(), and SetValueFromData().
|
inline |
Definition at line 227 of file RegisterValue.h.
References eTypeFloat, m_scalar, and m_type.
Referenced by RegisterContextDarwin_arm64::ReadRegister(), and SetValueFromData().
uint32_t RegisterValue::SetFromMemoryData | ( | const RegisterInfo & | reg_info, |
const void * | src, | ||
uint32_t | src_len, | ||
lldb::ByteOrder | src_byte_order, | ||
Status & | error | ||
) |
Definition at line 74 of file RegisterValue.cpp.
References lldb_private::RegisterInfo::byte_size, error(), lldb_private::RegisterInfo::name, and SetValueFromData().
Referenced by EmulateInstructionARM64::EmulateLDPSTP(), EmulateInstructionARM64::EmulateLDRSTRImm(), RegisterContextCorePOSIX_arm64::ReadRegister(), RegisterContextCorePOSIX_riscv64::ReadRegister(), RegisterContextCorePOSIX_x86_64::ReadRegister(), lldb_private::minidump::RegisterContextMinidump_ARM::ReadRegister(), lldb_private::minidump::RegisterContextMinidump_ARM64::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegister(), lldb_private::NativeRegisterContext::ReadRegisterValueFromMemory(), and lldb_private::RegisterContext::ReadRegisterValueFromMemory().
|
inline |
Definition at line 237 of file RegisterValue.h.
References eTypeLongDouble, m_scalar, and m_type.
Referenced by ABISysV_i386::SetReturnValueObject(), and SetValueFromData().
RegisterValue::Type RegisterValue::SetType | ( | const RegisterInfo & | reg_info | ) |
Definition at line 142 of file RegisterValue.cpp.
References CopyValue(), error(), GetData(), m_type, SetValueFromData(), and UNUSED_IF_ASSERT_DISABLED.
|
inline |
Definition at line 95 of file RegisterValue.h.
References m_type.
Referenced by lldb_private::process_linux::NativeRegisterContextLinux::WriteRegisterRaw().
bool RegisterValue::SetUInt | ( | uint64_t | uint, |
uint32_t | byte_size | ||
) |
Definition at line 709 of file RegisterValue.cpp.
References SetUInt128(), SetUInt16(), SetUInt32(), SetUInt64(), and SetUInt8().
Referenced by lldb_private::process_linux::NativeRegisterContextLinux::DoReadRegisterValue(), UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly(), UnwindAssemblyInstEmulation::GetRegisterValue(), EmulationStateARM::ReadPseudoRegister(), RegisterContextCorePOSIX_s390x::ReadRegister(), lldb_private::RegisterContextDummy::ReadRegister(), lldb_private::RegisterContextHistory::ReadRegister(), lldb_private::RegisterContextUnwind::ReadRegisterValueFromRegisterLocation(), SetValueFromString(), lldb_private::NativeRegisterContext::WriteRegisterFromUnsigned(), lldb_private::RegisterContext::WriteRegisterFromUnsigned(), and lldb_private::EmulateInstruction::WriteRegisterUnsigned().
|
inline |
Definition at line 220 of file RegisterValue.h.
References eTypeUInt128, m_scalar, and m_type.
Referenced by SetUInt(), and SetValueFromData().
|
inline |
Definition at line 205 of file RegisterValue.h.
References eTypeUInt16, m_scalar, and m_type.
Referenced by SetUInt(), and SetValueFromData().
|
inline |
Definition at line 210 of file RegisterValue.h.
References m_scalar, and m_type.
Referenced by ABIMacOSX_i386::PrepareTrivialCall(), ABIMacOSX_arm::PrepareTrivialCall(), ABISysV_arm::PrepareTrivialCall(), ABISysV_mips::PrepareTrivialCall(), ABISysV_i386::PrepareTrivialCall(), RegisterContextDarwin_arm::ReadRegister(), RegisterContextDarwin_arm64::ReadRegister(), ABISysV_i386::SetReturnValueObject(), SetUInt(), and SetValueFromData().
|
inline |
Definition at line 215 of file RegisterValue.h.
References m_scalar, and m_type.
Referenced by RegisterContextDarwin_arm64::ReadRegister(), lldb_private::EmulateInstruction::ReadRegisterDefault(), SetUInt(), SetValueFromData(), lldb_private::Rd::Write(), and lldb_private::Rd::WriteAPFloat().
|
inline |
Definition at line 200 of file RegisterValue.h.
References eTypeUInt8, m_scalar, and m_type.
Referenced by SetUInt(), and SetValueFromData().
Status RegisterValue::SetValueFromData | ( | const RegisterInfo & | reg_info, |
DataExtractor & | data, | ||
lldb::offset_t | offset, | ||
bool | partial_data_ok | ||
) |
Definition at line 155 of file RegisterValue.cpp.
References buffer, lldb_private::RegisterValue::RegisterValueBuffer::byte_order, lldb_private::RegisterInfo::byte_size, lldb_private::RegisterValue::RegisterValueBuffer::bytes, lldb_private::DataExtractor::CopyByteOrderedData(), lldb::eByteOrderBig, lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, lldb::eEncodingVector, lldb_private::RegisterInfo::encoding, error(), eTypeBytes, eTypeInvalid, lldb_private::DataExtractor::GetByteOrder(), lldb_private::DataExtractor::GetByteSize(), lldb_private::DataExtractor::GetDouble(), lldb_private::DataExtractor::GetFloat(), lldb_private::DataExtractor::GetLongDouble(), lldb_private::DataExtractor::GetMaxU32(), lldb_private::DataExtractor::GetMaxU64(), lldb_private::DataExtractor::GetU64(), kMaxRegisterByteSize, m_type, lldb_private::RegisterInfo::name, SetDouble(), SetFloat(), SetLongDouble(), SetUInt128(), SetUInt16(), SetUInt32(), SetUInt64(), SetUInt8(), and lldb_private::type128::x.
Referenced by RegisterContextMemory::ReadRegister(), lldb_private::process_gdb_remote::GDBRemoteRegisterContext::ReadRegister(), lldb_private::ValueObjectRegister::SetData(), lldb_private::ValueObjectVariable::SetData(), SetFromMemoryData(), ABIMacOSX_arm64::SetReturnValueObject(), ABISysV_arm64::SetReturnValueObject(), and SetType().
|
delete |
Status RegisterValue::SetValueFromString | ( | const RegisterInfo * | reg_info, |
llvm::StringRef | value_str | ||
) |
Definition at line 313 of file RegisterValue.cpp.
References lldb_private::RegisterInfo::byte_size, lldb::eEncodingIEEE754, lldb::eEncodingInvalid, lldb::eEncodingSint, lldb::eEncodingUint, lldb::eEncodingVector, lldb_private::RegisterInfo::encoding, error(), eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, m_scalar, m_type, ParseVectorEncoding(), SetUInt(), SInt64ValueIsValidForByteSize(), and UInt64ValueIsValidForByteSize().
Referenced by CommandObjectRegisterWrite::DoExecute(), lldb_private::ValueObjectRegister::SetValueFromCString(), and lldb_private::ValueObjectVariable::SetValueFromCString().
|
inline |
Definition at line 150 of file RegisterValue.h.
References eTypeInvalid, and m_type.
Referenced by RegisterContextDarwin_arm::ReadRegister(), and RegisterContextDarwin_arm64::ReadRegister().
bool RegisterValue::SignExtend | ( | uint32_t | sign_bitpos | ) |
Definition at line 435 of file RegisterValue.cpp.
References eTypeBytes, eTypeDouble, eTypeFloat, eTypeInvalid, eTypeLongDouble, eTypeUInt128, eTypeUInt16, eTypeUInt32, eTypeUInt64, eTypeUInt8, m_scalar, m_type, and lldb_private::Scalar::SignExtend().
Referenced by EmulateInstructionARM64::EmulateLDPSTP(), ABIMacOSX_arm64::GetArgumentValues(), ABISysV_arm64::GetArgumentValues(), ABIMacOSX_arm::GetArgumentValues(), and ABISysV_arm::GetArgumentValues().
|
protected |
Referenced by ClearBit(), CopyValue(), GetAsUInt128(), GetAsUInt16(), GetAsUInt32(), GetAsUInt64(), GetByteOrder(), GetBytes(), GetByteSize(), GetScalarValue(), operator==(), SetBit(), SetBytes(), and SetValueFromData().
|
protected |
Definition at line 268 of file RegisterValue.h.
Referenced by ClearBit(), CopyValue(), GetAsDouble(), GetAsFloat(), GetAsLongDouble(), GetAsUInt128(), GetAsUInt16(), GetAsUInt32(), GetAsUInt64(), GetAsUInt8(), GetBytes(), GetByteSize(), GetScalarValue(), operator=(), operator==(), RegisterValue(), SetBit(), SetDouble(), SetFloat(), SetLongDouble(), SetUInt128(), SetUInt16(), SetUInt32(), SetUInt64(), SetUInt8(), SetValueFromString(), and SignExtend().
|
protected |
Definition at line 267 of file RegisterValue.h.
Referenced by Clear(), ClearBit(), CopyValue(), GetAsDouble(), GetAsFloat(), GetAsLongDouble(), GetAsUInt128(), GetAsUInt16(), GetAsUInt32(), GetAsUInt64(), GetAsUInt8(), GetByteOrder(), GetBytes(), GetByteSize(), GetScalarValue(), GetType(), operator=(), operator==(), SetBit(), SetBytes(), SetDouble(), SetFloat(), SetLongDouble(), SetType(), SetUInt128(), SetUInt16(), SetUInt32(), SetUInt64(), SetUInt8(), SetValueFromData(), SetValueFromString(), SetValueToInvalid(), and SignExtend().