Returns processor string, for display purposes only
Returns vendor string, for display purposes only. Do NOT use this to determine features! Note that some CPUs have programmable vendorIDs.
Is AMD 3DNOW supported?
Is AMD 3DNOW Ext supported?
Are AMD extensions to MMX supported?
Returns number of cores in CPU
Is 3DNow prefetch supported?
Is cmov supported?
Is cmpxchg8b supported?
Is cmpxchg8b supported?
Is fxsave/fxrstor supported?
Are LAHF and SAHF supported in 64-bit mode?
Is LZCNT supported?
Is POPCNT supported?
Is rdtsc supported?
Is SYSENTER/SYSEXIT supported?
Is hyperthreading supported?
Is this an IA64 (Itanium) processor?
Is this an Intel64 or AMD 64?
Is MMX supported?
Optimisation hints for assembly code. For forward compatibility, the CPU is compared against different microarchitectures. For 32-bit X86, comparisons are made against the Intel PPro/PII/PIII/PM family.
Does this CPU perform better on Pentium I code than Pentium Pro code?
Does this CPU perform better on Pentium4 code than PentiumPro..Core2 code?
Is SSE supported?
Is SSE2 supported?
Is SSE3 supported?
Is SSE4.1 supported?
Is SSE4.2 supported?
Is SSE4a supported?
Is SSSE3 supported?
Returns number of threads per CPU
Does it have an x87 FPU on-chip?
Cache size and behaviour.
The data caches. If there are fewer than 5 physical caches levels, the remaining levels are set to uint.max (== entire memory space)
Processor type (vendor-dependent). This should be visible ONLY for display purposes.
Processor type (vendor-dependent). This should be visible ONLY for display purposes.
Identify the characteristics of the host CPU, providing information about cache sizes and assembly optimisation hints.
Some of this information was extremely difficult to track down. Some of the documents below were found only in cached versions stored by search engines! This code relies on information found in: