Instruction Set (Continued)
Table 8-29. FPU Instruction Set Summary (Continued)
Clock
Count
Issue
FPU Instruction
Opcode
DE [1110 0 n]
Operation
FSUBRP Floating Point Subtract Reverse, Pop
FISUB Floating Point Integer Subtract
32-bit Integer
ST(n) <--- TOS - ST(n); then pop TOS
4 - 9
DA [mod 100 r/m]
DE [mod 100 r/m]
TOS <--- TOS - M.SI
TOS <--- TOS - M.WI
14 - 29
14 - 27
16-bit Integer
FISUBR Floating Point Integer Subtract Reverse
32-bit Integer Reversed
DA [mod 101 r/m]
DE [mod 101 r/m]
D9 E4
TOS <--- M.SI - TOS
14 - 29
16-bit Integer Reversed
TOS <--- M.WI - TOS
14 - 27
FTST Test Top of Stack
CC set by TOS - 0.0
4
4
4
4
FUCOM Unordered Compare
FUCOMP Unordered Compare, Pop
DD [1110 0 n]
DD [1110 1 n]
DA E9
CC set by TOS - ST(n)
CC set by TOS - ST(n); then pop TOS
FUCOMPP Unordered Compare, Pop two
CC set by TOS - ST(I); then pop TOS and
ST(1)
elements
FWAIT Wait
9B
Wait for FPU not busy
CC <--- Class of TOS
TOS <--> ST(n) Exchange
2
FXAM Report Class of Operand
FXCH Exchange Register with TOS
FXTRACT Extract Exponent
D9 E5
4
3
D9 [1100 1 n]
D9 F4
temp <--- TOS;
11 - 16
TOS <--- exponent (temp); then
push significant (temp) onto stack
FLY2X Function Eval. y × Log2(x)
D9 F1
D9 F9
ST(1) <--- ST(1) × Log2(TOS); then pop TOS
ST(1) <--- ST(1) × Log2(1+TOS); then pop TOS
145 - 154
131 - 133
FLY2XP1 Function Eval. y × Log2(x+1)
4
FPU Instruction Summary Issues
2. For F2XM1, clock count is 92 if absolute value of TOS < 0.5.
All references to TOS and ST(n) refer to stack layout prior to exe-
cution.
3. For FPATAN, clock count is 97 if ST(1)/TOS < π/32.
4. For FYL2XP1, clock count is 170 if TOS is out of range and
regular FYL2X is called.
Values popped off the stack are discarded.
A pop from the stack increments the top of stack pointer.
A push to the stack decrements the top of stack pointer.
5. The following opcodes are reserved:
D9D7, D9E2, D9E7, DDFC, DED8, DEDA, DEDC, DEDD,
DEDE, DFFC.
Issues:
1. For FCOS, FSIN, FSINCOS and FPTAN, time shown is for
absolute value of TOS < 3p/4. Add 90 clock counts for argu-
ment reduction if outside this range.
If a reserved opcode is executed, and unpredictable results
may occur (exceptions are not generated).
For FCOS, clock count is 141 if TOS < π/4 and clock count is
92 if π/4 < TOS > π/2.
For FSIN, clock count is 81 to 82 if absolute value of TOS <
π/4.
www.national.com
238
Revision 1.1