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
 
Format Legacy
Opcode NP 0F 01 EE
Extension PKU

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