AMD 4.4.5 Switch User Manual


 
AMD Confidential
User Manual November 21
st
, 2008
Appendix A 225
A.6.7 Extension to the 3DNow! Instruction Set
This section describes the five new DSP instructions added to the 3DNow! Instruction
set.
Instruction
Supported
Mnemonic
Opcode
Description
PF2IW mmreg1,mmreg2/m64
0F 0F /1C
Packed floating-point to integer
word conversion with sign extend.
PFNACC mmreg1,mmreg2/m64
0F 0F /8A
Packed floating-point negative
accumulate.
PFPNACC mmreg1,mmreg2/m64
0F 0F /8E
Packed floating-point mixed
positive-negative accumulate.
PI2FW mmreg1,mmreg2/m64
0F 0F /0C
Packed 16-bit integer to floating-
point conversion.
PSWAPD mmreg1,mmreg2/m64
0F 0F /BB
Packed swap double word.
Table 15-11: Extension to 3DNow! Instruction Reference
A.6.8 Prescott New Instructions
Prescott New Instruction technology for the x64 architecture is a set of 13 new
instructions that accelerate performance of Streaming SIMD Extension technology,
Streaming SIMD Extension 2 technology, and x87-FP math capabilities. The new
technology is compatible with existing software and should run correctly, without
modification. The thirteen new instructions are summarized in the following section. For
detailed information on each instruction refer to a complete Instruction Set Reference.
Instruction
Supported
Mnemonic
Opcode
Description
ADDSUBPD xmm1,xmm2/m128
66 0F D0 /r
Add/Subtract packed double-precision
floating-point number from XMM2/Mem
to XMM1.
ADDSUBPS xmm1,xmm2/m128
F2 0F D0 /r
Add/Subtract packed single-precision
floating-point number from XMM2/Mem
to XMM1.
FISTTP m16int
DF /1
Store ST as a signed integer
(truncate) in m16int and pop ST.
FISTTP m32int
DB /1
Store ST as a signed integer
(truncate) in m32int and pop ST.
FISTTP m64int
DD /1
Store ST as a signed integer
(truncate) in m16int and pop ST.
HADDPD xmm1,xmm2/m128
66 0F 7C /r
Add horizontally packed double-
precision floating-point numbers
from XMM2/Mem to XMM1.
HADDPS xmm1,xmm2/m128
F2 0F 7C /r
Add horizontally packed single-
precision floating-point numbers
from XMM2/Mem to XMM1.
HSUBPD xmm1,xmm2/m128
66 0F 7D /r
Subtract horizontally packed double-
precision floating-point numbers
from XMM2/Mem to XMM1.
HSUBPS xmm1,xmm2/m128
F2 0F 7D /r
Subtract horizontally packed single-
precision floating-point numbers
from XMM2/Mem to XMM1.
LDDQU xmm,m128
F2 0F F0 /r
Load 128 bits from Memory to XMM
register.