3-206
INSTRUCTION SET REFERENCE
FIST/FISTP—Store Integer (Continued)
If the source value is a non-integral value, it is rounded to an integer value, according to the
rounding mode specified by the RC field of the FPU control word.
If the value being stored is too large for the destination format, is an
?
, is a NaN, or is in an
unsupported format and if the invalid-arithmetic-operand exception (#IA) is unmasked, an
invalid operation exception is generated and no value is stored in the destination operand. If the
invalid operation exception is masked, the integer indefinite value is stored in the destination
operand.
Operation
DEST
<
Integer(ST(0));
IF instruction = FISTP
THEN
PopRegisterStack;
FI;
FPU Flags Affected
C1
Set to 0 if stack underflow occurred.
Indicates rounding direction of if the inexact exception (#P) is generated:
0 = not roundup; 1 = roundup.
Cleared to 0 otherwise.
C0, C2, C3
Undefined.
Floating-Point Exceptions
#IS
Stack underflow occurred.
#IA
Source operand is too large for the destination format
Source operand is a NaN value or unsupported format.
#P
Value cannot be represented exactly in destination format.