rdpkru
Read Protection Key Rights
RDPKRU
Reads PKRU register into EAX (User-mode pages).
Details
Reads the Protection Key Rights User register (PKRU) into EAX; EDX is zeroed. PKRU controls read and write access permissions for pages marked with a protection key (0–15). This instruction is a serializing operation at the architectural level and is only available in 64-bit mode and user mode (CPL=3). No flags are modified by this instruction.
Pseudocode Operation
// Read PKRU into EAX, zero EDX
EAX ← PKRU;
EDX ← 0;
// No flags modified; instruction is serializing
Example
RDPKRU
Encoding
Binary Layout
0F
+0
01
+1
EE
+2
Operands
Reference (Intel® SDM)
Instruction Forms
| Opcode | Instruction | Op/En | 64/32-bit Mode | CPUID | Description |
|---|---|---|---|---|---|
| NP 0F 01 EE | RDPKRU | ZO | V/V | OSPKE | Reads PKRU into EAX. |
Description
Reads the value of PKRU into EAX and clears EDX. ECX must be 0 when RDPKRU is executed; otherwise, a generalprotection exception (#GP) occurs.
RDPKRU can be executed only if CR4.PKE = 1; otherwise, an invalid-opcode exception (#UD) occurs. Software can discover the value of CR4.PKE by examining CPUID.07H.00H:ECX.OSPKE[4].
On processors that support the Intel 64 Architecture, the high-order 32-bits of RCX are ignored and the high-order
32-bits of RDX and RAX are cleared.
Operation
IF (ECX = 0) THEN EAX := PKRU; EDX := 0; ELSE #GP(0); FI;
Flags Affected
None. C/C++ Compiler Intrinsic Equivalent RDPKRU uint32_t _rdpkru_u32(void);
Exceptions
Protected Mode Exceptions
#GP(0) If ECX ≠ 0.
#UD If the LOCK prefix is used.
If CR4.PKE = 0.
Real-Address Mode Exceptions
Same exceptions as in protected mode.
Virtual-8086 Mode Exceptions
Same exceptions as in protected mode.
Compatibility Mode Exceptions
Same exceptions as in protected mode.
RDPKRU—Read Protection Key Rights for User Pages Vol. 2B 4-549
64-Bit Mode Exceptions
Same exceptions as in protected mode.
RDPKRU—Read Protection Key Rights for User Pages Vol. 2B 4-550