Intel 64 and IA-32 Architectures Software Developers Manual Volume 3A, System Programming Guide, Part 1
Vol. 3A 17-3
ARCHITECTURE COMPATIBILITY
17.4 DETECTING THE PRESENCE OF NEW FEATURES
THROUGH SOFTWARE
Software can check for the presence of new architectural features and extensions in
either of two ways:
1. Test for the presence of the feature or extension. Software can test for the
presence of new flags in the EFLAGS register and control registers. If these flags
are reserved (meaning not present in the processor executing the test), an
exception is generated. Likewise, software can attempt to execute a new
instruction, which results in an invalid-opcode exception (#UD) being generated
if it is not supported.
2. Execute the CPUID instruction. The CPUID instruction (added to the IA-32 in the
Pentium processor) indicates the presence of new features directly.
See Chapter 14, “Processor Identification and Feature Determination,” in the Intel®
64 and IA-32 Architectures Software Developer’s Manual, Volume 1, for detailed
information on detecting new processor features and extensions.
17.5 INTEL MMX TECHNOLOGY
The Pentium processor with MMX technology introduced the MMX technology and a
set of MMX instructions to the IA-32. The MMX instructions are described in Chapter
9, “Programming with Intel® MMX™ Technology,” in the Intel® 64 and IA-32 Archi-
tectures Software Developer’s Manual, Volume 1, and in the Intel® 64 and IA-32
Architectures Software Developer’s Manual, Volumes 2A & 2B. The MMX technology
and MMX instructions are also included in the Pentium II, Pentium III, Pentium 4, and
Intel Xeon processors.
17.6 STREAMING SIMD EXTENSIONS (SSE)
The Streaming SIMD Extensions (SSE) were introduced in the Pentium III processor.
The SSE extensions consist of a new set of instructions and a new set of registers.
The new register include the eight 128-bit XXM registers and the 32-bit MXCSR
control and status register. These instructions and registers are designed to allow
SIMD computations to be made on single-precision floating-point numbers. Several
of these new instructions also operate in the MMX registers. SSE instructions and
registers are described in Section 10, “Programming with Streaming SIMD Exten-
sions (SSE),” in the Intel® 64 and IA-32 Architectures Software Developer’s Manual,
Volume 1, and in the Intel® 64 and IA-32 Architectures Software Developer’s
Manual, Volumes 2A & 2B.