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.

Pentium 4<br />

RETF i 4 33 11 0 86<br />

IRET 4 48 24 0 86<br />

ENTER i,0 4 12 26 26 186<br />

ENTER i,n 4 45+24n 128+16n 186<br />

LEAVE 4 0 3 3 186<br />

BOUND m 4 14 14 14 186<br />

INTO 4 5 18 18 86<br />

INT i 4 84 644 86<br />

String instructions<br />

LODS 4 3 6 6 86<br />

REP LODS 4 5n ≈ 4n+36 86<br />

STOS 4 2 6 6 86<br />

REP STOS 4 2n+3 ≈ 3n+10 86<br />

MOVS 4 4 6 4 86<br />

REP MOVS 4 ≈163+1.1n 86<br />

SCAS 4 3 6 86<br />

REP SCAS 4 ≈ 40+6n ≈4n 86<br />

CMPS 4 5 8 86<br />

REP CMPS 4 ≈ 50+8n ≈4n 86<br />

Other<br />

NOP (90) 1 0 0 0.25 0/1 alu0/1 86<br />

Long NOP (0F 1F) 1 0 0 0.25 0/1 alu0/1 ppro<br />

PAUSE 4 2 sse2<br />

CPUID 4 39-81 200-500 p5<br />

RDTSC<br />

Notes:<br />

4 7 80 p5<br />

a) Add 1 μop if source is a memory operand.<br />

b)<br />

Uses an extra μop (port 3) if SIB byte used. A SIB byte is needed if the<br />

memory operand has more than one pointer register, or a scaled index, or<br />

ESP is used as base pointer.<br />

c)<br />

Add 1 μop if source or destination, but not both, is a high 8-bit register (AH,<br />

BH, CH, DH).<br />

d) Has (false) dependence on the flags in most cases.<br />

e) Not available on PMMX<br />

q) Latency is 12 in 16-bit real or virtual mode, 24 in 32-bit protected mode.<br />

Floating point x87 instructions<br />

<strong>Instruction</strong> Operands<br />

μops<br />

Microcode<br />

Latency<br />

Page 137<br />

Additional latency<br />

Reciprocal throughput<br />

Move instructions<br />

FLD r 1 0 6 0 1 0 mov 87<br />

FLD m32/64 1 0 ≈ 7 0 1 2 load 87<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!