Go to the documentation of this file.
9 #ifndef LLDB_UTILITY_ARCHSPEC_H
10 #define LLDB_UTILITY_ARCHSPEC_H
17 #include "llvm/ADT/StringRef.h"
18 #include "llvm/ADT/Triple.h"
284 explicit ArchSpec(
const llvm::Triple &triple);
285 explicit ArchSpec(
const char *triple_cstr);
286 explicit ArchSpec(llvm::StringRef triple_str);
364 explicit operator bool()
const {
return IsValid(); }
367 return !
m_triple.getVendorName().empty();
482 bool SetTriple(
const llvm::Triple &triple);
484 bool SetTriple(llvm::StringRef triple_str);
522 bool &vendor_different,
bool &os_different,
523 bool &os_version_different,
524 bool &env_different)
const;
579 #endif // LLDB_UTILITY_ARCHSPEC_H
uint32_t GetMinimumOpcodeByteSize() const
MATCHES FreeBSD list(APPEND FBSDKERNEL_LIBS kvm) endif() if(NOT FBSDKERNEL_LIBS) message(STATUS "Skipping FreeBSDKernel plugin due to missing libfbsdvmcore") return() endif() add_lldb_library(lldbPluginProcessFreeBSDKernel PLUGIN ProcessFreeBSDKernel.cpp RegisterContextFreeBSDKernel_arm64.cpp RegisterContextFreeBSDKernel_i386.cpp RegisterContextFreeBSDKernel_x86_64.cpp ThreadFreeBSDKernel.cpp LINK_LIBS lldbCore lldbTarget $
lldb::ByteOrder GetByteOrder() const
Returns the byte order for the architecture specification.
bool IsMIPS() const
if MIPS architecture return true.
ConstString m_distribution_id
bool TripleVendorWasSpecified() const
@ eRISCV_float_abi_single
soft float
uint32_t GetMaximumOpcodeByteSize() const
llvm::Triple::ArchType GetMachine() const
Returns a machine family for the current architecture.
ArchSpec()
Default constructor.
void CoreUpdated(bool update_triple)
lldb::ByteOrder GetDefaultEndian() const
Returns the default endianness of the architecture.
static void ListSupportedArchNames(StringList &list)
@ eLoongArchSubType_unknown
void MergeFrom(const ArchSpec &other)
Merges fields from another ArchSpec into this ArchSpec.
static bool ContainsOnlyArch(const llvm::Triple &normalized_triple)
Returns true if the OS, vendor and environment fields of the triple are unset.
uint32_t GetFlags() const
void SetFlags(uint32_t flags)
@ eMIPSSubType_mips32r6el
uint32_t GetCodeByteSize() const
Architecture code byte width accessor.
llvm::Triple & GetTriple()
Architecture triple accessor.
bool IsCompatibleMatch(const ArchSpec &rhs) const
Shorthand for IsMatch(rhs, CompatibleMatch).
std::string GetClangTargetCPU() const
Returns a string representing current architecture as a target CPU for tools like compiler,...
@ eRISCV_float_abi_mask
quad precision floating point, +q
lldb::ByteOrder m_byte_order
@ eRISCV_float_abi_soft
RVC, +c.
bool IsExactMatch(const ArchSpec &rhs) const
Shorthand for IsMatch(rhs, ExactMatch).
void DumpTriple(llvm::raw_ostream &s) const
bool operator==(const Address &lhs, const Address &rhs)
@ eCore_hexagon_hexagonv4
uint32_t GetMachOCPUType() const
void SetDistributionId(const char *distribution_id)
Set the distribution id of the architecture.
bool SetTriple(const llvm::Triple &triple)
Architecture triple setter.
uint32_t GetMachOCPUSubType() const
@ eMIPSSubType_mips64r2el
static void AutoComplete(CompletionRequest &request)
bool TripleOSWasSpecified() const
bool IsMatch(const ArchSpec &rhs, MatchType match) const
Compare this ArchSpec to another ArchSpec.
string(SUBSTRING ${p} 10 -1 pStripped) if($
bool IsValid() const
Tests if this ArchSpec is valid.
@ eMIPSSubType_mips64r6el
@ eMIPSSubType_mips32r2el
uint32_t GetAddressByteSize() const
Returns the size in bytes of an address of the current architecture.
bool TripleEnvironmentWasSpecified() const
@ eRISCV_float_abi_quad
double precision floating point, +d
bool SetArchitecture(ArchitectureType arch_type, uint32_t cpu, uint32_t sub, uint32_t os=0)
Change the architecture object type, CPU type and OS type.
void SetByteOrder(lldb::ByteOrder byte_order)
Sets this ArchSpec's byte order.
const char * GetArchitectureName() const
Returns a static string representing the current architecture.
void PiecewiseTripleCompare(const ArchSpec &other, bool &arch_different, bool &vendor_different, bool &os_different, bool &os_version_different, bool &env_different) const
bool IsAlwaysThumbInstructions() const
Detect whether this architecture uses thumb code exclusively.
bool operator<(const Address &lhs, const Address &rhs)
bool CharIsSignedByDefault() const
Returns true if 'char' is a signed type by default in the architecture false otherwise.
@ eLoongArchSubType_loongarch64
uint32_t GetDataByteSize() const
Architecture data byte width accessor.
const llvm::Triple & GetTriple() const
Architecture triple accessor.
A class that represents a running process on the host machine.
std::string GetTargetABI() const
Return a string representing target application ABI.
bool ParseMachCPUDashSubtypeTriple(llvm::StringRef triple_str, ArchSpec &arch)
ConstString GetDistributionId() const
Returns the distribution id of the architecture.
void Clear()
Clears the object state.
@ eCore_hexagon_hexagonv5
bool IsFullySpecifiedTriple() const
@ eRISCV_float_abi_double
single precision floating point, +f
@ eLoongArchSubType_loongarch32
ByteOrder
Byte ordering definitions.