2-22 Vol. 3
SYSTEM ARCHITECTURE OVERVIEW
EM Emulation (bit 2 of CR0) — Indicates that the processor does not have an
internal or external x87 FPU when set; indicates an x87 FPU is present when
clear. This flag also affects the execution of
MMX/SSE/SSE2/SSE3/SSS E3/SSE4 instruction s.
When the EM flag is set, execution of an x87 FPU instruction generates a
device-not-available exception (#NM). This flag must be set when the
processor does not have an internal x87 FPU or is not connected to an
external math coprocessor. Setting this flag forces all floatin g-point instruc-
tions to be handled by software emulation. Tabl e 9- 2 shows the recom-
mended setting of this flag, depending on the IA-32 processor and x87 FPU
or math coprocessor present in the system. Tabl e 2 -1 shows the interaction
of the EM, MP, and TS flags.
Also, when the EM flag is set, execution of an MMX instruction causes an
invalid-opcode exception (#UD) to be generated (see Tabl e 1 2-1 ). Thus, if an
IA-32 or Intel 64 processor incorporates MMX technology, the EM flag must
be set to 0 to enable execution of MMX instructions.
Similarly for SSE/SSE2/SSE3/SSSE3/SSE4 extensions, when the EM flag is
set, execution of most SSE/SSE2/SSE3/SSSE3/SSE4 instructions causes an
invalid opcode exception (#UD) to be generated (see Tabl e 13 -1 ). If an IA-32
or Intel 64 processor incorporates the SSE/SSE2/SSE3/SSSE3/SSE4 exten-
sions, the EM flag must be set to 0 to enable execution of these extensions.
SSE/SSE2/SSE3/SSSE3/SSE4 instructions not affecte d by the EM flag
include: PAUSE, PREFETCHh, SFENCE, LFENCE, MFENCE, MOVNTI, CLFLUSH,
CRC32, and POPCNT.
MP Monitor Coprocessor (bit 1 of CR0). — Controls the interaction of the
WAIT (or FWAIT) instruction with the TS flag (bit 3 of CR0). If the MP flag is
set, a WAIT instruction generates a device-not-available exception (#NM) if
the TS flag is also set. If the MP flag is clear, the WAIT instruction ignores the
setting of the TS flag. Table 9-2 shows the recommended setting of this flag,
depending on the IA-32 processor and x87 FPU or math coprocessor present
in the system. Tabl e 2- 1 shows the interaction of the MP, EM, and TS flags.
PE Protection Enable (bit 0 of CR0) — Enables protected mode when set;
enables real-address mode when clear. This flag does not enable paging
directly. It only enables segment-level protection. To enable paging, both the
PE and PG flags must be set.
See also: Section 9.9, “Mode Switching.”
PCD Page-level Cache Disable (bit 4 of CR3) — Controls caching of the first
paging structure of the current paging-structure hierarchy. When the PCD
111#NM Exception #NM exception.
Table 2-1. Action Taken By x87 FPU Instructions for Different Combinations of EM, MP, and TS
CR0 Flags x87 FPU Instruction Type