Instruction
INVLPGB
Invalidates TLB entries that a descriptor in rAX and EDX selects on every processor of the system, not just this one.
An AMD extension: Intel processors do not have this instruction.
- Extensions
- Forms
- 1 (1 Legacy)
- Data
- Intel XED v2026.08.23
Forms
| Instruction | Encoding | Requires |
|---|---|---|
INVLPGB
INVLPGB | 67 0F 01 FENP 0F 01 FE | INVLPGB |
Operation
What the forms do, in pseudocode that our tests run against results recorded on real processors. How to read.
if CPL > 0:
fault(GP, 0)
a = low(rax, ASIZE) # rAX: EAX with a 67 prefix
e = cpuid_leaf(0x80000008, 0)
nested = e[1] >> 21 & 1 # bit 5 allowed (EBX[21])
if a & 0xFC0 or a & 0x20 and not nested:
fault(GP, 0) # reserved bits set
if edx >> 28:
fault(GP, 0) # EDX bits 31:28 reserved
g = edx & 0xFFFF # the ASID: 0 is the host's
pcid = edx >> 16 & 0xFFF
if pcid and not cr4 >> 17 & 1:
fault(GP, 0) # PCIDs off (CR4.PCIDE)
if g and not efer >> 12 & 1:
fault(GP, 0) # SVM off (EFER.SVME)
if g > cpuid_leaf(0x8000000A, 0)[1]:
fault(GP, 0) # past the number of ASIDs
if ecx & 0xFFFF > e[3] & 0xFFFF:
fault(GP, 0) # a count past the maximum
# rAX bits 3:0 say what a translation must match to be dropped: the
# address in bits 63:12 (bit 0), the PCID (1), the ASID (2), and
# whether global ones count (3); bit 4, the last level only; bit 5,
# nested translations too. ECX[15:0] more pages after the first,
# 4 KiB apart, or 2 MiB with ECX[31]. On every processor, which do
# it in their own time: TLBSYNC waits for themNot run on a processor: XED gives it no CPUID bit by which the probe could skip it where the processor lacks INVLPGB (CPUID Fn8000_0008_EBX[3]).
Operands
| Operand | Kind | Action |
|---|---|---|
INVLPGB | ||
rAX | implicit | read |
EDX | implicit | read |
ECX | implicit | read |
Flags
None: XED records no flag that the forms test or change.
Attributes
What else XED records about the forms. How to read.
- All forms
- privileged: CPL 0 only
CPUID and processors
Each form belongs to an XED ISA set. A form can be used when the processor reports every CPUID bit of one of its ISA set's alternatives.
| ISA set | CPUID | Processors |
|---|---|---|
AMD_INVLPGB | INVLPGB | Zen 3, Zen 4, Zen 5, Zen 6 Note: Only the EPYC server processors have INVLPGB and TLBSYNC: AMD's references for the Ryzen processors of Zen 3, Zen 4 and Zen 5 leave CPUID_Fn80000008_EBX[INVLPGB] (bit 3) clear. Zen 6 is listed because Zen 5 has them, until AMD publishes a Processor Programming Reference for Zen 6. |
More INVLPGB instructions
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, operands, flags, exception classes, attributes, ISA sets, CPUID bits and chip model. - The CPU data of x86-64.net: Zen 3 to Zen 6, from GCC’s
-marchfeature sets and AMD’s Processor Programming References, which the page of each processor cites. - AMD64 Architecture Programmer's Manual, Volume 3: General-Purpose and System Instructions (24594, rev. 3.36, March 2024), Wayback Machine copy of AMD's PDF
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The text is our own.