674 AMD Geode™ LX Processors Data Book
Instruction Set
33234H
8.4.1 Non-Standard AMD 3DNow!™ Technology Instructions
8.4.1.1 PFRCPV - Floating-Point Reciprocal Approximation
Operation
DEST[31:0] <= reciprocal(SRC[31:0]);
DEST[63:32] <= RECIPROCAL(SRC[63:32]);
Description
PFRCPV performs the same operation as the PFRCP instruction except that PFRCPV operates on both halves of its oper-
ands, while PFRCP operates on only bits [31:0] of its operand.
Flags Affected
None.
Exceptions
#GP(0) If a memory operand is illegal and not in SS.
#SS(0) If memory operand is illegal and in SS.
#PF(code) Page fault.
#AC Unaligned access.
#UD Illegal opcode.
Notes
This instruction is enabled by the INV_3DNOW_ENABLE bit (bit 1) of the ID_CONFIG MSR (MSR 00001250h).
8.4.1.2 PFRSQRTV - Floating-Point Reciprocal Square Root Approximation
Operation
Description
PFRSQRTV performs the same operation as the PFRSQRT instruction except that PFRSQRTV operates on both halves of
its operands, while PFSQRT operates on only bits [31:0] of its operand.
Flags Affected
None.
Exceptions
#GP(0) If a memory operand is illegal and not in SS.
#SS(0) If memory operand is illegal and in SS.
#PF(code) Page fault.
#AC Unaligned access.
#UD Illegal opcode.
Notes
This instruction is enabled by the INV_3DNOW_ENABLE bit (bit 1) of the ID_CONFIG MSR (MSR 00001250h).
Opcode Instruction Clocks Description
0F 0F / 86 PFRCPV xr,xr/m64 2 Approximate reciprocal
Opcode Instruction Clocks Description
0F 0F / 87 PFRSQRTV xr,xr/m64 2 Approximate reciprocal square root
DEST[31:0] <= reciprocal_SQUARE_ROOT(SRC[31:0]);
DEST[63:32] <= RECIPROCAL_SQUARE_ROOT(SRC[63:32]);