Lines Matching defs:ArchSpec

1 //===-- ArchSpec.h ----------------------------------------------*- C++ -*-===//
25 /// \class ArchSpec ArchSpec.h "lldb/Utility/ArchSpec.h" An architecture
32 class ArchSpec {
245 ArchSpec();
249 /// Constructs an ArchSpec with properties consistent with the given Triple.
250 explicit ArchSpec(const llvm::Triple &triple);
251 explicit ArchSpec(const char *triple_cstr);
252 explicit ArchSpec(llvm::StringRef triple_str);
255 /// Constructs an ArchSpec with properties consistent with the given object
257 explicit ArchSpec(ArchitectureType arch_type, uint32_t cpu_type,
261 ~ArchSpec();
323 /// Tests if this ArchSpec is valid.
342 /// Merges fields from another ArchSpec into this ArchSpec.
344 /// This will use the supplied ArchSpec to fill in any fields of the triple
345 /// in this ArchSpec which were unspecified. This can be used to refine a
346 /// generic ArchSpec with a more specific one. For example, if this
347 /// ArchSpec's triple is something like i386-unknown-unknown-unknown, and we
351 void MergeFrom(const ArchSpec &other);
355 /// \param[in] arch_type The object type of this ArchSpec.
396 /// Sets this ArchSpec's byte order.
428 /// \return A triple describing this ArchSpec.
433 /// \return A triple describing this ArchSpec.
440 /// Configures this ArchSpec according to the given triple. If the triple
447 /// \return A triple describing this ArchSpec.
465 /// Compare an ArchSpec to another ArchSpec, requiring an exact cpu type
470 bool IsExactMatch(const ArchSpec &rhs) const;
472 /// Compare an ArchSpec to another ArchSpec, requiring a compatible cpu type
477 bool IsCompatibleMatch(const ArchSpec &rhs) const;
481 void PiecewiseTripleCompare(const ArchSpec &other, bool &arch_different,
495 /// \return true if this is an arm ArchSpec which can only execute Thumb
506 bool IsEqualTo(const ArchSpec &rhs, bool exact_match) const;
524 /// \fn bool operator< (const ArchSpec& lhs, const ArchSpec& rhs) Less than
527 /// Tests two ArchSpec objects to see if \a lhs is less than \a rhs.
529 /// \param[in] lhs The Left Hand Side ArchSpec object to compare. \param[in]
530 /// rhs The Left Hand Side ArchSpec object to compare.
533 bool operator<(const ArchSpec &lhs, const ArchSpec &rhs);
534 bool operator==(const ArchSpec &lhs, const ArchSpec &rhs);
536 bool ParseMachCPUDashSubtypeTriple(llvm::StringRef triple_str, ArchSpec &arch);