CPUID

The CPUID (CPU Identification) instruction was introduced in 1993 with the Pentium and SL-enhanced 80486 processors. It returns information about the processor and supported features based on the value in EAX (and sometimes also ECX).

This page lists all the known leafs.

List of Basic Leafs

EAX=0

The EAX=0 leaf returns the largest basic leaf in EAX and a 12 byte processor identification string in the other three registers.

EAXMaximum supported "basic" leaf
EBXPROC_IDENT_STR[0..3]
ECXPROC_IDENT_STR[8..11]
EDXPROC_IDENT_STR[4..7]

The value of PROC_IDENT_STR is the 12 byte processor identification string. A list of known values is enumerated below:

  • "AMDisbetter!" - early samples of the AMD K5
  • "AuthenticAMD" - AMD
  • "CentaurHauls" - Centaur
  • "CyrixInstead" - Cyrix
  • "GenuineIntel" - Intel
  • "TransmetaCPU" - Transmeta
  • "GenuineTMx86" - Transmeta
  • "Geode by NSC" - National Semiconductor
  • "NexGenDriven" - NexGen
  • "RiseRiseRise" - Rise
  • "SiS SiS SiS " - SiS
  • "UMC UMC UMC " - UMC
  • "VIA VIA VIA " - VIA
  • "Vortex86 SOC" - DM&P Vortex86
  • " Shanghai " - Zhaoxin
  • "HygonGenuine" - Hygon
  • "MiSTer A0486" - MiSTer ao486 core
  • "GenuineIntel" - MiSTer v586 core
  • "bhyve bhyve " - bhyve
  • " KVMKVMKVM " - Linux KVM
  • "TCGTCGTCGTCG" - QEMU
  • "Microsoft Hv" - Microsoft Hyper-V
  • "MicrosoftXTA" - Microsoft x86-to-ARM
  • " lrpepyh vr" - Parallels (should be prl hyperv , but the endianness is wrong
  • "VMwareVMware" - VMware
  • "XenVMMXenVMM" - Xen HVM
  • "ACRNACRNACRN" - Project ACRN
  • " QNXQVMBSQG " - QNX Hypervisor
  • "GenuineIntel" - older versions of Apple Rosetta 2
  • "VirtualApple" - newer versions of Apple Rosetta 2

EAX=1

EAXProcessor Version Information:
313029282726252423222120191817161514131211109876543210
ReservedExtended Family IDExtended Model IDReservedProcessor TypeFamily IDModelStepping ID
EBX
bits 31..24
Initial APIC ID
bits 23..16
Maximum number of addressable IDs for logical processors in this physical package
bits 15..8
CLFLUSH line size (in 64 bit increments; i.e. value×8 = cache line size in bytes; see CLFLUSHOPT)
bits 7..0
Brand Index
ECX/EDX
ECXEDX
NameFeatureNameFeature
0sse3Streaming SIMD Extensions 3fpuFloating Point Coprocessor On-Chip
1pclmulqdqPCLMULQDQ supportvmeVirtual-8086 Mode enhancements
2dtes6464 bit DS AreadeDebugging Extensions; Support for I/O breakpoints
3monitorMONITOR/MWAIT supportpsePage Size Extensions (i.e. 4 MiB page size support)
4ds-cplCPL Qualified Debug StoretscRDTSC and CR4.TSD support
5vmxVirtual Machine ExtensionsmsrRDMSR/WRMSR support
6smxSafer Mode ExtensionspaePhysical Address Extensions
7eistEnhanced Intel SpeedStep®mceMachine Check Exception
8tm2Themal Monitor 2cx8CMPXCHG8B (Compare and Exchange 8/16 Bytes) support
9ssse3Supplemental Streaming SIMD Extensions 3apicAPIC On-Chip
10cnxt-idL1 Cache Context IDReserved
11sdbgIA32_DEBUG_INTERFACE MSR supportsepSYSENTER/SYSEXIT support
12fmaFused Multiply-Add ExtensionsmtrrMemory Type Range Registers
13cmpxchg16bCMPXCHG16B (Compare and Exchange 8/16 Bytes) supportpgePage Global Bit
14xTPR Update ControlmcaMachine Check Architecture
15pdcmPerfmon and Debug CapabilitycmovCMOVcc (Conditional Move) support; If FPU is present (see fpu above), then FCMOVcc (Conditional Move) also supported
16ReservedpatPage Attribute Table
17pcidProcess-Context Identifierspse-3636 bit Page Size Extensions
18dcapsn96 bit Processor Serial Number Available
19sse4_1Streaming SIMD Extensions 4.1clflushCLFLUSH (Flush Cache Line) support
20sse4_2Streaming SIMD Extensions 4.2Reserved
21x2apicx2APIC supportdsDebug Store
22movbeMOVBE supportacpiThermal Monitor and Software Controlled Clock (APIC)
23popcntPOPCNT supportmmxMMX instruction support
24One-shot support for APIC timer using the TSC deadlinefxsrFXSAVE (Save x87 Floating-Point, MMX, and SSE State)/FXRSTOR support
25aesAES "new instructions" supportsseStreaming SIMD Extensions
26xsaveXSAVE/XRSTOR support; XSETBV/XGETBV support; XCR0 registersse2Streaming SIMD Extensions 2
27osxsavexsave feature set above has been enabled by the OSssSelf Snoop
28avxAdvanced Vector Extensionshtt"Max APIC value" in CPUID[EAX=1]:EBX[bits 23:16] is valid
29f16cHalf precision (16 bit) floating point conversions instructionstmThermal Monitor
30rdrandRDRAND supportia64Indicates that the processor is an IA-64 (Itanium) emulating x86
31hypervisorIndicates that a hypervisor is presentpbePending Break Enable