FLDENV—Load x87 FPU EnvironmentDescriptionLoads the complete x87 FPU operating environment from memory into the FPU registers. The source operand spec-ifies the first byte of the operating-environment data in memory. This data is typically written to the specified memory location by a FSTENV or FNSTENV instruction.The FPU operating environment consists of the FPU control word, status word, tag word, instruction pointer, data pointer, and last opcode. Figures 8-9 through 8-12 in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1, show the layout in memory of the loaded 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 FLDENV instruction should be executed in the same operating mode as the corresponding FSTENV/FNSTENV instruction.If one or more unmasked exception flags are set in the new FPU status word, a floating-point exception will be generated upon execution of the next floating-point instruction (except for the no-wait floating-point instructions, see the section titled “Software Exception Handling” in Chapter 8 of the Intel® 64 and IA-32 Architectures Soft-ware Developer’s Manual, Volume 1). To avoid generating exceptions when loading a new environment, clear all the exception flags in the FPU status word that is being loaded.If a page or limit fault occurs during the execution of this instruction, the state of the x87 FPU registers as seen by the fault handler may be different than the state being loaded from memory. In such situations, the fault handler should ignore the status of the x87 FPU registers, handle the fault, and return. The FLDENV instruction will then complete the loading of the x87 FPU registers with no resulting context inconsistency.This instruction’s operation is the same in non-64-bit modes and 64-bit mode.OperationFPUControlWord := SRC[FPUControlWord];FPUStatusWord := SRC[FPUStatusWord];FPUTagWord := SRC[FPUTagWord];FPUDataPointer := SRC[FPUDataPointer];FPUInstructionPointer := SRC[FPUInstructionPointer];FPULastInstructionOpcode := SRC[FPULastInstructionOpcode];FPU Flags AffectedThe C0, C1, C2, C3 flags are loaded.Floating-Point ExceptionsNone; however, if an unmasked exception is loaded in the status word, it is generated upon execution of the next “waiting” floating-point instruction.OpcodeInstruction64-Bit ModeCompat/Leg ModeDescriptionD9 /4FLDENV m14/28byteValidValidLoad FPU environment from m14byte or m28byte.
This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.