我正在考虑在纯装配中实现SHA3.SHA3的内部状态为17个64位无符号整数,但由于它使用了转换,如果寄存器中有44个这样的整数,则可以实现最佳情况.另外还有一个临时寄存器.在这种情况下,我将能够在寄存器中进行整个转换.
但这是不现实的,优化可能一直到甚至只有几个寄存器.不过,根据这个问题的答案,更多可能更好.
我想至少使用MMX寄存器进行快速存储,即使我需要交换到其他寄存器进行计算.但我担心这是古建筑.
在MMX寄存器和RAX之间的数据传输是否比在堆栈上索引u64并从可能是L1缓存中访问它们更快?或者即便如此,除了我应该注意的速度考虑之外,还有隐藏的陷阱吗?我对一般情况感兴趣,所以即使我的计算机上的一个比另一个更快,它仍然可能是不确定的.