We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Understanding the EMMS Instruction

Using the EMMS instruction is like emptying a container to accommodate new content. For instance, MMX instructions automatically enable a floating-point (FP) tag word in the register to enable use of the __m64 data type. This resets the FP register set to alias it as the MMX register set. To enable the FP register set again, reset the register state with the EMMS instruction or with the _mm_empty intrinsic.

Why You Need EMMS to Reset After an MMX Instruction

EMMSresetAfterMMXinstruction graphic
Caution noteCaution

Failure to reset the tag word for floating-point instructions after using an MMX instruction can result in unexpected execution or poor performance.

For more information on EMMS, see Guidelines for When to Use EMMS.