Intel 253666-024US Manuel D’Utilisation
Vol. 2A 3-431
INSTRUCTION SET REFERENCE, A-M
FYL2X—Compute y * log2x
FYL2X—Compute y ∗ log
2
x
Description
Computes (ST(1) ∗ log
2
(ST(0))), stores the result in resister ST(1), and pops the
FPU register stack. The source operand in ST(0) must be a non-zero positive number.
The following table shows the results obtained when taking the log of various classes
of numbers, assuming that neither overflow nor underflow occurs.
The following table shows the results obtained when taking the log of various classes
of numbers, assuming that neither overflow nor underflow occurs.
If the divide-by-zero exception is masked and register ST(0) contains ±0, the instruc-
tion returns ∞ with a sign that is the opposite of the sign of the source operand in
register ST(1).
The FYL2X instruction is designed with a built-in multiplication to optimize the calcu-
lation of logarithms with an arbitrary positive base (b):
The FYL2X instruction is designed with a built-in multiplication to optimize the calcu-
lation of logarithms with an arbitrary positive base (b):
log
b
x ← (log
2
b)
–1
∗ log
2
x
This instruction’s operation is the same in non-64-bit modes and 64-bit mode.
Opcode
Instruction
64-Bit
Mode
Compat/
Leg Mode
Description
D9 F1
FYL2X
Valid
Valid
Replace ST(1) with (ST(1) ∗ log
2
ST(0))
and pop the register stack.
Table 3-53. FYL2X Results
ST(0)
−
∞
−F
±0
+0 < +F < +1
+1
+F > +1
+
∞
NaN
−∞
*
*
+
∞
+
∞
*
−
∞
−
∞
NaN
ST(1)
−F
*
*
**
+F
−0
−F
−
∞
NaN
−0
*
*
*
+0
−0
−0
*
NaN
+0
*
*
*
−0
+0
+0
*
NaN
+F
*
*
**
−F
+0
+F
+
∞
NaN
+
∞
*
*
−
∞
−
∞
*
+
∞
+
∞
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NOTES:
F Means finite floating-point value.
* Indicates floating-point invalid-operation (#IA) exception.
** Indicates floating-point zero-divide (#Z) exception.
* Indicates floating-point invalid-operation (#IA) exception.
** Indicates floating-point zero-divide (#Z) exception.