dplug.core.cpuid

This is a quick change of core.cpuid, to be usable in programs without a runtime.

Members

Properties

aes
bool aes [@property getter]

Is AES supported

amd3dnow
bool amd3dnow [@property getter]

Is AMD 3DNOW supported?

amd3dnowExt
bool amd3dnowExt [@property getter]

Is AMD 3DNOW Ext supported?

amdMmx
bool amdMmx [@property getter]

Are AMD extensions to MMX supported?

avx
bool avx [@property getter]

Is AVX supported

avx2
bool avx2 [@property getter]

Is AVX2 supported

cacheLevels
uint cacheLevels [@property getter]

The number of cache levels in the CPU.

coresPerCPU
uint coresPerCPU [@property getter]

Returns number of cores in CPU

dataCaches
const(CacheInfo)[5] dataCaches [@property getter]

The data caches. If there are fewer than 5 physical caches levels, the remaining levels are set to size_t.max (== entire memory space)

fma
bool fma [@property getter]

Is FMA supported

fp16c
bool fp16c [@property getter]

Is FP16C supported

has3dnowPrefetch
bool has3dnowPrefetch [@property getter]

Is 3DNow prefetch supported?

hasCmov
bool hasCmov [@property getter]

Is cmov supported?

hasCmpxchg16b
bool hasCmpxchg16b [@property getter]

Is cmpxchg8b supported?

hasCmpxchg8b
bool hasCmpxchg8b [@property getter]

Is cmpxchg8b supported?

hasFxsr
bool hasFxsr [@property getter]

Is fxsave/fxrstor supported?

hasLahfSahf
bool hasLahfSahf [@property getter]

Are LAHF and SAHF supported in 64-bit mode?

hasLzcnt
bool hasLzcnt [@property getter]

Is LZCNT supported?

hasPclmulqdq
bool hasPclmulqdq [@property getter]

Is pclmulqdq supported

hasPopcnt
bool hasPopcnt [@property getter]

Is POPCNT supported?

hasRdrand
bool hasRdrand [@property getter]

Is rdrand supported

hasRdseed
bool hasRdseed [@property getter]

Is rdseed supported

hasRdtsc
bool hasRdtsc [@property getter]

Is rdtsc supported?

hasSha
bool hasSha [@property getter]

Is SHA supported

hasSysEnterSysExit
bool hasSysEnterSysExit [@property getter]

Is SYSENTER/SYSEXIT supported?

hasVpclmulqdq
bool hasVpclmulqdq [@property getter]

Is vpclmulqdq supported

hle
bool hle [@property getter]

Is HLE (hardware lock elision) supported

hyperThreading
bool hyperThreading [@property getter]

Is hyperthreading supported?

isItanium
bool isItanium [@property getter]

Is this an IA64 (Itanium) processor?

isX86_64
bool isX86_64 [@property getter]

Is this an Intel64 or AMD 64?

mmx
bool mmx [@property getter]

Is MMX supported?

preferAthlon
bool preferAthlon [@property getter]

Optimisation hints for assembly code.

preferPentium1
bool preferPentium1 [@property getter]

Does this CPU perform better on Pentium I code than Pentium Pro code?

preferPentium4
bool preferPentium4 [@property getter]

Does this CPU perform better on Pentium4 code than PentiumPro..Core2 code?

processor
string processor [@property getter]

Returns processor string, for display purposes only

rtm
bool rtm [@property getter]

Is RTM (restricted transactional memory) supported

sse
bool sse [@property getter]

Is SSE supported?

sse2
bool sse2 [@property getter]

Is SSE2 supported?

sse3
bool sse3 [@property getter]

Is SSE3 supported?

sse41
bool sse41 [@property getter]

Is SSE4.1 supported?

sse42
bool sse42 [@property getter]

Is SSE4.2 supported?

sse4a
bool sse4a [@property getter]

Is SSE4a supported?

ssse3
bool ssse3 [@property getter]

Is SSSE3 supported?

threadsPerCPU
uint threadsPerCPU [@property getter]

Returns number of threads per CPU

vaes
bool vaes [@property getter]

Is VEX-Encoded AES supported

vendor
string vendor [@property getter]

Returns vendor string, for display purposes only. Do NOT use this to determine features! Note that some CPUs have programmable vendorIDs.

x87onChip
bool x87onChip [@property getter]

Does it have an x87 FPU on-chip?

Static functions

initializeCpuid
void initializeCpuid()

Instead of a static this constructor, this

Static variables

datacache
CacheInfo[5] datacache;

Scheduled for deprecation. Please use dataCaches instead.

family
uint family;

Warning: This field will be turned into a property in a future release.

model
uint model;

Warning: This field will be turned into a property in a future release.

numCacheLevels
uint numCacheLevels;

This field has been deprecated. Please use cacheLevels instead.

stepping
uint stepping;

Warning: This field will be turned into a property in a future release.

Structs

CacheInfo
struct CacheInfo

Cache size and behaviour

Meta

Source

See Source File
$(DRUNTIMESRC core/_cpuid.d)

Authors

Don Clugston, Tomas Lindquist Olsen <tomas@famolsen.dk>