Intel 253668-032US User Manual

Page of 806
13-8   Vol. 3
SYSTEM PROGRAMMING FOR INSTRUCTION SET EXTENSIONS AND PROCESSOR 
13.1.6.1   Numeric Error flag and IGNNE#
SSE/SSE2/SSE3/SSE4 extensions ignore the NE flag in control register CR0 (that is, 
treats it as if it were always set) and the IGNNE# pin. When an unmasked SIMD 
floating-point exception is detected, it is always reported by generating a SIMD 
floating-point exception (#XM).
13.2 EMULATION 
OF 
SSE/SSE2/SSE3/SSSE3/SSE4 
EXTENSIONS 
The Intel 64 and IA-32 architecture does not support emulation of the 
SSE/SSE2/SSE3/SSSE3/SSE4 instructions, as they do for x87 FPU instructions.
The EM flag in control register CR0 (provided to invoke emulation of x87 FPU instruc-
tions) cannot be used to invoke emulation of SSE/SSE2/SSE3/SSSE3/SSE4 instruc-
tions. If an SSE/SSE2/SSE3/SSSE3/SSE4 instruction is executed when CR0.EM = 1, 
an invalid opcode exception (#UD) is generated. See Table 13-1.
13.3 
SAVING AND RESTORING THE 
SSE/SSE2/SSE3/SSSE3/SSE4 STATE
The SSE/SSE2/SSE3/SSSE3/SSE4 state consists of the state of the XMM and MXCSR 
registers. The recommended method for saving and restoring this state follows:
Execute an FXSAVE instruction to save the state of the XMM and MXCSR registers 
to memory.
Execute an FXRSTOR instruction to restore the state of the XMM and MXCSR 
registers from the image saved in memory by the FXSAVE instruction.
This save and restore method is required for all operating systems. See Section 13.5, 
“Designing OS Facilities for AUTOMATICALLY Saving x87 FPU, MMX, and 
SSE/SSE2/SSE3/SSSE3/SSE4 state on Task or Context Switches.”
In some cases, applications can only save the XMM and MXCSR registers in the 
following way:
Execute MOVDQ instructions to save the contents of each XMM registers to 
memory. 
Execute a STMXCSR instruction to save the state of the MXCSR register to 
memory.
In some cases, applications can only restore the XMM and MXCSR registers in the 
following way:
Execute MOVDQ instructions to read the saved contents of each XMM registers 
from memory to XMM registers.