EasyManuals Logo

Intel ARCHITECTURE IA-32 User Manual

Intel ARCHITECTURE IA-32
568 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #224 background imageLoading...
Page #224 background image
IA-32 Intel® Architecture Optimization
4-4
Using emms clears all of the valid bits, effectively emptying the x87
floating-point stack and making it ready for new x87 floating-point
operations. The
emms instruction ensures a clean transition between
using operations on the MMX registers and using operations on the x87
floating-point stack. On the Pentium 4 processor, there is a finite
overhead for using the
emms instruction.
Failure to use the
emms instruction (or the _mm_empty() intrinsic)
between operations on the MMX registers and operations on the x87
floating-point registers may lead to unexpected results.
Guidelines for Using EMMS Instruction
When developing code with both x87 floating-point and 64-bit SIMD
integer instructions, follow these steps:
1. Always call the
emms instruction at the end of 64-bit SIMD integer
code when the code transitions to x87 floating-point code.
2. Insert the
emms instruction at the end of all 64-bit SIMD integer
code segments to avoid an x87 floating-point stack overflow
exception when an x87 floating-point instruction is executed.
When writing an application that uses both floating-point and 64-bit
SIMD integer instructions, use the following guidelines to help you
determine when to use
emms:
If next instruction is x87 FP: Use _mm_empty() after a 64-bit SIMD
integer instruction if the next instruction is an
x87 FP instruction;
for example, before doing calculations on floats, doubles or long
doubles.
CAUTION. Failure to reset the tag word for FP
instructions after using an MMX instruction can result
in faulty execution or poor performance.

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Intel ARCHITECTURE IA-32 and is the answer not in the manual?

Intel ARCHITECTURE IA-32 Specifications

General IconGeneral
Instruction Setx86
Instruction Set TypeCISC
Memory SegmentationSupported
Operating ModesReal mode, Protected mode, Virtual 8086 mode
Max Physical Address Size36 bits (with PAE)
Max Virtual Address Size32 bits
ArchitectureIA-32 (Intel Architecture 32-bit)
Addressable Memory4 GB (with Physical Address Extension up to 64 GB)
Floating Point Registers8 x 80-bit
MMX Registers8 x 64-bit
SSE Registers8 x 128-bit
RegistersGeneral-purpose registers (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP), Segment registers (CS, DS, SS, ES, FS, GS), Instruction pointer (EIP), Flags register (EFLAGS)
Floating Point UnitYes (x87)

Related product manuals