FABS

Absolute Value

stableVMJITAOTinstruction

Encodings

OpcodeInstructionOp/En64-bitCompat/LegacyDescription
D9 E1FABSValidValidReplace ST with its absolute value.

Measured cost

Loading measurements from arch-data...

Description

Clears the sign bit of ST(0) to create the absolute value of the operand. The following table shows the results obtained when creating the absolute value of various classes of numbers.

                                 ST(0) SRC  Table 3-19. Results Obtained from FABS

ST(0) DEST -

                                      -F                                                                   +
                                      -0                                                                          +F
                                      +0                                                                          +0
                                      +F                                                                          +0

+F +

                                     NaN                                                                   +

NOTES: NaN F Means finite floating-point value.

This instruction's operation is the same in non-64-bit modes and 64-bit mode.

Operation

ST(0) := |ST(0)|;

FPU Flags Affected

C1                    Set to 0.

C0, C2, C3            Undefined.

Floating-Point Exceptions

#IS                   Stack underflow occurred.

Exceptions

Protected mode
#NMCR0.EM[bit 2] or CR0.TS[bit 3] = 1.
#UDIf the LOCK prefix is used.
Real address mode
Same exceptions as in protected mode.
Virtual-8086 mode
Same exceptions as in protected mode.
Compatibility mode
Same exceptions as in protected mode.
64-bit mode
Same exceptions as in protected mode.

Sources