我正在尝试了解here描述的AMD64 ABI。我不了解的是堆栈对齐和大操作数(__m256
,__m512
)。这是相关的报价:
输入自变量区域的末端应对齐 16(如果堆栈上传递了
__m256
或__m512
,则为32或64)字节边界。 换句话说,值(%rsp+ 8)
始终是16的倍数(32或64) 当控制权转移到功能入口点时。堆栈 指针%rsp
始终指向最新分配的堆栈的末尾 框架。
我解释了关于__m256
和__m512
的部分,因为我们按下了ymmN
,zmmN
,但是我们不能通过push
指令来做到这一点。你能解释什么意思吗?