03.03.2013 Views

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INVPCID — Invalidate Processor Context ID<br />

Opcode/<strong>Instruction</strong> Op/<br />

En<br />

Description<br />

64/32<br />

-bit<br />

Mode<br />

CPUID<br />

Feature<br />

Flag<br />

<strong>Instruction</strong> Operand Encoding<br />

INSTRUCTION SET REFERENCE - VEX-ENCODED GPR INSTRUCTIONS<br />

Description<br />

66 0F 38 82 /r A NE/V INVPCID Invalidates entries in the TLBs and paging-structure caches based on<br />

invalidation type in r32 and descriptor in m128.<br />

INVPCID r32, m128<br />

66 0F 38 82 /r A V/NE INVPCID Invalidates entries in the TLBs and paging-structure caches based on<br />

invalidation type in r64 and descriptor in m128.<br />

INVPCID r64, m128<br />

Op/En Operand 1 Operand 2 Operand 3 Operand 4<br />

A ModRM:reg (r) ModRM:r/m (r) NA NA<br />

Invalidates mappings in the translation lookaside buffers (TLBs) and paging-structure caches based on the invalidation<br />

type specified in the first operand and processor context identifier (PCID) invalidate descriptor specified in<br />

the second operand. The INVPCID descriptor is specified as a 16-byte memory operand and has no alignment<br />

restriction.<br />

The layout of the INVPCID descriptor is shown in Figure 7-3. In 64-bit mode the linear address field (bits 127:64)<br />

in the INVPCID descriptor must satisfy canonical requirement unless the linear address field is ignored.<br />

127 64 63 12 11 0<br />

Linear Address Reserved (must be zero) PCID<br />

Figure 7-3. INVPCID Descriptor<br />

Outside IA-32e mode, the register operand is always 32 bits, regardless of the value of CS.D. In 64-bit mode the<br />

register operand has 64 bits; however, if bits 63:32 of the register operand are not zero, INVPCID fails due to an<br />

attempt to use an unsupported INVPCID type (see below).<br />

The INVPCID types supported by a logical processors are:<br />

• Individual-address invalidation: If the INVPCID type is 0, the logical processor invalidates mappings for a single<br />

linear address and tagged with the PCID specified in the INVPCID descriptor, except global translations. The<br />

instruction may also invalidate global translations, mappings for other linear addresses, or mappings tagged<br />

with other PCIDs.<br />

• Single-context invalidation: If the INVPCID type is 1, the logical processor invalidates all mappings tagged with<br />

the PCID specified in the INVPCID descriptor except global translations. In some cases, it may invalidate<br />

mappings for other PCIDs as well.<br />

• All-context invalidation: If the INVPCID type is 2, the logical processor invalidates all mappings tagged with any<br />

PCID.<br />

• All-context invalidation, retaining global translations: If the INVPCID type is 3, the logical processor invalidates<br />

all mappings tagged with any PCID except global translations, ignoring the INVPCID descriptor. The instruction<br />

may also invalidate global translations as well.<br />

If an unsupported INVPCID type is specified, or if the reserved field in the descriptor is not zero, the instruction<br />

fails.<br />

Ref. # 319433-014 7-23

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

Saved successfully!

Ooh no, something went wrong!