3-366 Vol. 2A FPTAN—Partial Tangent
INSTRUCTION SET REFERENCE, A-M
This instruction’s operation is the same in non-64-bit modes and 64-bit mode.
Operation
IF ST(0) < 2
63
THEN
C2 ← 0;
ST(0) ← tan(ST(0));
TOP ← TOP − 1;
ST(0) ← 1.0;
ELSE (* Source operand is out-of-range *)
C2 ← 1;
FI;
FPU Flags Affected
C1 Set to 0 if stack underflow occurred; set to 1 if stack overflow
occurred.
Set if result was rounded up; cleared otherwise.
C2 Set to 1 if outside range (−2
63
< source operand < +2
63
); other-
wise, set to 0.
C0, C3 Undefined.
Floating-Point Exceptions
#IS Stack underflow or overflow occurred.
#IA Source operand is an SNaN value, ∞, or unsupported format.
#D Source operand is a denormal value.
#U Result is too small for destination format.
#P Value cannot be represented exactly in destination format.
Protected Mode Exceptions
#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.
#MF If there is a pending x87 FPU exception.
#UD If the LOCK prefix is used.
Real-Address Mode Exceptions
Same exceptions as in protected mode.
Virtual-8086 Mode Exceptions
Same exceptions as in protected mode.