asm/reference

This content has not been validated; it was AI-generated following the x86-64 ISA Documentation generation process to maintain high quality. However, as no human has verified this data, errors may exist. If the accuracy of this data is critical, please consult the Intel SDM. The model used to generate this is gemma4:31b

FADDP



Adds the floating-point value from a source to the value at the top of the floating-point register stack (ST(0)), pops the source from the stack if it was ST(0), and stores the result in ST(0).

The following table covers what the source and destinations can be:

source destination(s)
ST(i) ST(0)
m32 ST(0)
m64 ST(0)
m80 ST(0)

DO NOT support LOCK

This instruction is available in 64-bit mode, but it is part of the x87 floating-point instruction set. Use of x87 instructions in 64-bit mode is supported, although SSE/AVX are generally preferred for performance.

When using the FADDP ST(i), ST(0) form, the stack pointer is decremented by one after the operation. If the source is a memory operand (m32, m64, or m80), the stack pointer remains unchanged.

The operation may trigger the following floating-point exceptions:

The precision of the operation is determined by the current x87 control word. Failure to ensure the precision of memory operands matches the internal 80-bit representation may result in #P.