之前函数调用保存XMM寄存器(Saving the XMM register before func

2019-10-20 07:46发布

是否需要保存/汇编函数调用之前推动任何XMM寄存器堆栈? 因为我观察崩溃的问题在我的代码与发行模式,64位开发(使用AVX2)。 在调试模式下它的工作的罚款。 我试图拯救XMM8寄存器的内容,并在函数调用那么它的做工精细的结束时恢复它。

任何想法或引用?

Answer 1:

是的,在Microsoft Windows,你需要保持XMM6-XMM15寄存器。 见http://msdn.microsoft.com/en-us/library/7kcdt6fy.aspx -这包括XMM8,所以要么保留它们,或者不是在你的函数中使用它们。

但是在Linux上那些临时寄存器,因此不必保留。 见http://www.x86-64.org/documentation/abi.pdf第21页。



文章来源: Saving the XMM register before function call