4 Instruction tables - Agner Fog
4 Instruction tables - Agner Fog
4 Instruction tables - Agner Fog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Prescott<br />
Other<br />
FNOP 1 0 1 0 1 0 mov 87<br />
(F)WAIT 2 0 0 0 1 0 mov 87<br />
FNCLEX 1 4 120 1 87<br />
FNINIT 1 30 200 87<br />
FNSAVE 2 181 500 0,1 87<br />
FRSTOR 2 96 570 87<br />
FXSAVE 2 121 160 sse i<br />
FXRSTOR<br />
Notes:<br />
2 118 244 sse i<br />
e) Not available on PMMX<br />
f)<br />
The latency for FLDCW is 3 when the new value loaded is the same as the<br />
value of the control word before the preceding FLDCW, i.e. when alternating<br />
between the same two values. In all other cases, the latency and reciprocal<br />
throughput is > 100.<br />
g)<br />
h) Throughput of FP-MUL unit is reduced during the use of the FP-DIV unit.<br />
i)<br />
Takes fewer microcode μops when XMM registers are disabled, but the<br />
throughput is the same.<br />
Integer MMX and XMM instructions<br />
<strong>Instruction</strong> Operands<br />
Latency and reciprocal throughput depend on the precision setting in the F.P.<br />
control word. Single precision: 32, double precision: 40, long double precision<br />
(default): 45.<br />
μops<br />
Microcode<br />
Latency<br />
Page 151<br />
Additional latency<br />
Reciprocal throughput<br />
Move instructions<br />
MOVD r32, mm 2 0 6 1 1 0 fp mmx<br />
MOVD mm, r32 1 0 3 1 1 1 mmx alu mmx<br />
MOVD mm,m32 1 0 1 2 load mmx<br />
MOVD r32, xmm 1 0 7 1 1 0 fp sse2<br />
MOVD xmm, r32 2 0 4 1 2 1 mmx shift sse2<br />
MOVD xmm,m32 1 0 1 2 load sse2<br />
MOVD m32, r 2 0 2 0,1 mmx<br />
MOVQ mm,mm 1 0 7 0 1 0 mov mmx<br />
MOVQ xmm,xmm 1 0 2 1 2 1 mmx shift sse2<br />
MOVQ r,m64 1 0 1 2 load mmx<br />
MOVQ m64,r 2 0 2 0 mov mmx<br />
MOVDQA xmm,xmm 1 0 7 0 1 0 mov sse2<br />
MOVDQA xmm,m 1 0 1 2 load sse2<br />
MOVDQA m,xmm 2 0 2 0 mov sse2<br />
MOVDQU xmm,m 4 0 23 2 load sse2 k<br />
MOVDQU m,xmm 4 2 8 0 mov sse2 k<br />
LDDQU xmm,m 4 0 2.5 2 load sse3<br />
MOVDQ2Q mm,xmm 3 0 10 1 2 0,1 mov-mmx sse2<br />
Port<br />
Execution unit<br />
Subunit<br />
<strong>Instruction</strong> set<br />
Notes