gpt4 book ai didi

kernel - 用户到内核转换和 XMM 寄存器状态

转载 作者:行者123 更新时间:2023-12-04 13:50:21 25 4
gpt4 key购买 nike

我正在使用 AES-NI在内核代码中。 AES 新指令使用 XMM 寄存器,我想确保从用户模式到内核模式的转换以及返回到用户模式的转换将保留 XMM 寄存器的状态。

MSDN link读到:

In 64-bit versions of Windows, the operating system preserves the SSE registers across thread (and process) switches. The result is that 64-bit driver code can safely use floating-point operations at any IRQL.



它是否确认我在调用内核代码时不必保存寄存器状态?

最佳答案

它说它保留了 SSE 寄存器,但不保留 AVX。
就在链接下方说

To use the AVX registers in kernel mode, drivers (x86 and x64) must explicitly save and restore the AVX registers.


因此,如果您使用使用 __m128i 的 AES 内在函数,则依赖自动保留的寄存器才是安全的。 ,但不是 __m256i__m512i .

关于kernel - 用户到内核转换和 XMM 寄存器状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10879546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com