IndexCoreasmjit::CpuFeatures
asmjit::CpuFeatures Class Reference

CPU features information.

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

Public Members

Members

Classes

Public Types

Constants

Member Functions

Construction & Destruction
Overloaded Operators
Accessors
Manipulation

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.

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.

void CpuFeatures::reset()noexcept[¶]

Clears all features set.

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::equals(
const CpuFeatures& other
) constnoexcept[¶]

Tests whether this CPU features matches other.