asmjit::CpuFeatures Class Reference

CPU features information.

Each feature is represented by a single bit in an embedded bit array.

Public Members



Public Types

Member Functions

Construction & Destruction
Overloaded Operators

Member Typedef Documentation

typedef Support::BitWord CpuFeatures::BitWord◆ 

A word that is used to represents feature bits.

typedef Support::BitVectorIterator<BitWord> CpuFeatures::Iterator◆ 

Iterator that can iterate all CPU features set.

Member Function Documentation

bool CpuFeatures::empty() constnoexcept◆ 

Returns true if there are no features set.

template<typename T = Data>
T& CpuFeatures::data()noexcept[1/2]◆ 

Casts this base class into a derived type T.

template<typename T = Data>
const T& CpuFeatures::data() constnoexcept[2/2]◆ 

Casts this base class into a derived type T (const).

X86& CpuFeatures::x86()noexcept[1/2]◆ 

Returns CpuFeatures::Data as CpuFeatures::X86.

const X86& CpuFeatures::x86() constnoexcept[2/2]◆ 

Returns CpuFeatures::Data as CpuFeatures::X86 (const).

ARM& CpuFeatures::arm()noexcept[1/2]◆ 

Returns CpuFeatures::Data as CpuFeatures::ARM.

const ARM& CpuFeatures::arm() constnoexcept[2/2]◆ 

Returns CpuFeatures::Data as CpuFeatures::ARM (const).

BitWord* CpuFeatures::bits()noexcept[1/2]◆ 

Returns all features as array of bitwords (see Support::BitWord).

const BitWord* CpuFeatures::bits() constnoexcept[2/2]◆ 

Returns all features as array of bitwords (const).

size_t CpuFeatures::bitWordCount() constnoexcept◆ 

Returns the number of BitWords returned by bits().

Iterator CpuFeatures::iterator() constnoexcept◆ 

Returns Support::BitVectorIterator, that can be used to iterate over all features efficiently.

template<typename FeatureId>
bool CpuFeatures::has(const FeatureId& featureId) constnoexcept◆ 

Tests whether the feature featureId is present.

template<typename... Args>
bool CpuFeatures::hasAny(Args&&... args) constnoexcept◆ 

Tests whether any of the features is present.

bool CpuFeatures::hasAll(const CpuFeatures& other) constnoexcept◆ 

Tests whether all features as defined by other are present.

template<typename... Args>
void CpuFeatures::add(Args&&... args)noexcept◆ 

Adds the given CPU featureId to the list of features.

template<typename... Args>
void CpuFeatures::addIf(bool condition, Args&&... args)noexcept◆ 

Adds the given CPU featureId to the list of features if condition is true.

template<typename... Args>
void CpuFeatures::remove(Args&&... args)noexcept◆ 

Removes the given CPU featureId from the list of features.

bool CpuFeatures::eq(const CpuFeatures& other) constnoexcept◆ 

Tests whether this CPU features matches other.