FYL2X

计算 Y 对数2x

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
D9 F1FYL2X有效有效将ST(1)替换为(ST(1) log2ST(0)),并弹出寄存器堆栈。

实测开销

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

说明

计算(ST(1)日志2(ST(0))),将结果存储于寄存器ST(1),并弹出FPU寄存器堆栈. ST( 0) 中的 源操作数 必须是非零正数 。

下表显示在计算各类数字时得出的结果,假设既不溢出也不流出。

FYL2X Results

ST(1)-F****+F-0-F-纳恩
-0***+0-0-0*纳恩
+0***-0+0+0*纳恩
+F****-F+0+F+纳恩
+**--*++纳恩

行动

ST(1) := ST(1)  log2ST(0);
PopRegisterStack;

FPU Flags Affected

C1                        Set to 0 if stack underflow occurred.

                          Set if result was rounded up; cleared otherwise.

C0, C2, C3                Undefined.

浮点 例外

#IS                       Stack underflow occurred.
#IA                       Either operand is an SNaN or unsupported format.

登记号ST(0)中的源操作数是一个负限值(不是-0)。

#Z                        Source operand in register ST(0) is +/-0.
#D                        Source operand is a denormal value.
#U                        Result is too small for destination format.
#O                        Result is too large 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 位模式
与保护模式中的例外相同.

来源