3-232
INSTRUCTION SET REFERENCE
FRSTORRestore FPU State
Description
This instruction loads the FPU state (operating environment and register stack) from the
memory area specified with the source operand. This state data is typically written to the spec-
ified memory location by a previous FSAVE/FNSAVE instruction.
The FPU operating environment consists of the FPU control word, status word, tag word,
instruction pointer, data pointer, and last opcode. Figures 7-13 through Figure 7-16 in Chapter
7, Floating-Point Unit of the Intel Architecture Software Developers Manual, Volume 1, show
the layout in memory of the stored environment, depending on the operating mode of the
processor (protected or real) and the current operand-size attribute (16-bit or 32-bit). In virtual-
8086 mode, the real mode layouts are used. The contents of the FPU register stack are stored in
the 80 bytes immediately follow the operating environment image.
The FRSTOR instruction should be executed in the same operating mode as the corresponding
FSAVE/FNSAVE instruction.
Intel Architecture Compatibility
On a Pentium
®
III processor, the FRSTOR instruction operates the same as on a Pentium
®
II
processor. It has no effect on the SIMD floating-point functional unit or control/status register,
i.e., it does not restore the SIMD floating-point processor state.
Operation
FPUControlWord
<
SRC(FPUControlWord);
FPUStatusWord
<
SRC(FPUStatusWord);
FPUTagWord
<
SRC(FPUTagWord);
FPUDataPointer
<
SRC(FPUDataPointer);
FPUInstructionPointer
<
SRC(FPUInstructionPointer);
FPULastInstructionOpcode
<
SRC(FPULastInstructionOpcode);
ST(0)
<
SRC(ST(0));
ST(1)
<
SRC(ST(1));
ST(2)
<
SRC(ST(2));
ST(3)
<
SRC(ST(3));
ST(4)
<
SRC(ST(4));
ST(5)
<
SRC(ST(5));
ST(6)
<
SRC(ST(6));
ST(7)
<
SRC(ST(7));
Opcode
Instruction
Description
DD /4
FRSTOR m94/108byteLoad FPU state from m94byte or m108byte.