我的程序,完全用x64 AVX2程序集编写,有一个子程序,被称为非常多次。子程序以
开头push rax
push rbx
push rcx,
... and ends with ...
pop rcx
pop rbx
pop rax
ret
现在我显然想加快推送流程,所以我想知道,如果我之前可以发出这样的命令:
prefetchnta byte ptr [rsp]
prefetch0 [rsp]
push rax
prefetch0 [rsp]
push rbx
... and similarly, at exit
prefetchnta byte ptr rsp
prefetch0 [rsp]
pop rbx
prefetch0 [rsp]
pop rax
ret
想知道这对加速推送流程有什么好处吗?
在此期间,我可以在一次通话中验证prefetchnta在Haswell Core i7 4770K处理器中加载64个字节吗?
感谢您的关注。