03.03.2013 Views

4 Instruction tables - Agner Fog

4 Instruction tables - Agner Fog

4 Instruction tables - Agner Fog

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!