WRPKRU

将数据写入用户页面 密钥 注册

stableVMJITAOTinstruction

编码

操作码指令Op/En64 位兼容/传统说明
NP 0F 01 EFWRPKRUZO有效有效将 EAX 写入 PKRU 。

实测开销

正在从 arch-data 加载实测数据...

说明

将 EAX 的值写入 PKRU 。 ECX和EDX在WRPKRU执行时必须是0;否则,会出现一般保护例外(#GP).

WRPKRU只有在CR4.PKE=1的情况下才能执行;否则,会出现无效的-操作码例外(#UD). 软件可以通过检查CPUID.07H.00H:ECX.OSPKE[4]来发现CR4.PKE的值.

在支持Intel 64 Architecture的处理器上,RCX,RDX和RAX的高序32位被忽略.

WRPKRU永远不会进行投机性执行. 受PKRU登记册影响的内存访问将不会执行(甚至推测),直到所有先前对WRPKRU的处决完成并更新PKRU登记册.

行动

IF (ECX = 0 AND EDX = 0)
    THEN PKRU := EAX;
    ELSE #GP(0);

FI;

受影响的旗帜

None.

C/C++ 编译器内置等效 WRPKRU 空格 wrpkru(init32 t);

异常

保护模式
#GP(0)如果 ECX 0. 如果 EDX 0.
#UD如果使用 LOCK 前缀。如果 CR4.PKE = 0.
实地址模式
与保护模式中的例外相同.
虚拟 8086 模式
与保护模式中的例外相同.
兼容模式
与保护模式中的例外相同.
64 位模式
与保护模式中的例外相同.

来源