FPTAN

部分正切

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
D9 F2FPTAN有效有效将 ST( 0) 替换为近似切值, 并推 1 到 FPU 堆栈 。

实测开销

正在从 arch-data 加载实测数据...

说明

在寄存器 ST( 0) 中计算 源操作数 的大致正切值, 将结果存储为 ST( 0) , 并将一个 1.0 推到 FPU 寄存器堆栈中 。 源操作数必须用弧度给出,并且必须小于+/-263. 该

以下表格显示计算各种类别部分正切值时获得的未显示结果:

数字,假设不存在下流。

FPTAN 结果

ST(0) SRCST(0) DEST
-*
-F- F to + F
-0-0
+0+0
+F- F to + F
+*
纳恩纳恩

行动

IF ST(0) < 263
    THEN
          C2 := 0;
          ST(0) := fptan(ST(0)); // approximation of tan
          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 (-263 < source operand < +263); otherwise, set to 0.

C0, C3                  Undefined.

浮点 例外

#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.

异常

保护模式
#NMCR0.EM[bit 2] 或 CR0.TS[bit 3] = 1.
#MF如果存在待决的x87 FPU例外.
#UD如果使用 LOCK 前缀 。
实地址模式
与保护模式中的例外相同.
虚拟 8086 模式
与保护模式中的例外相同.
兼容模式
与保护模式中的例外相同.
64 位模式
与保护模式中的例外相同.

来源