rdpkru
Read Protection Key Rights
RDPKRU
Reads PKRU register into EAX (User-mode pages).
Pseudocode Operation
// Read PKRU into EAX, zero EDX
EAX ← PKRU;
EDX ← 0;
// No flags modified; instruction is serializing
Encoding
Binary Layout
0F
+0
01
+1
EE
+2
Operands
Related
More in PKU
Reference
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