Assembly 将xmm寄存器推入堆栈而不影响标志
将xmm寄存器移动到堆栈中可以通过Assembly 将xmm寄存器推入堆栈而不影响标志,assembly,x86,x86-64,Assembly,X86,X86 64,将xmm寄存器移动到堆栈中可以通过 sub rsp,16 movdqu xmmword [rsp], xmm0 这里的问题是子添加修改rflags push-pop的好处在于它们不会修改RFLAG 如何在不使用昂贵的pushfq-popfq的情况下实现这一点 我希望有一个支持K10/Conroe的解决方案。使用lea-rsp[rsp-16]。也就是说,通常,在到达必须保留标志以避免这种情况的点之前,您会减少堆栈指针。这是问题的实际答案:)请注意,您也可以使用lahf和sahf来仅保存算术标志
sub rsp,16
movdqu xmmword [rsp], xmm0
这里的问题是子添加
修改rflags
push-pop
的好处在于它们不会修改RFLAG
如何在不使用昂贵的pushfq-popfq
的情况下实现这一点
我希望有一个支持K10/Conroe的解决方案。使用
lea-rsp[rsp-16]
。也就是说,通常,在到达必须保留标志以避免这种情况的点之前,您会减少堆栈指针。这是问题的实际答案:)请注意,您也可以使用lahf
和sahf
来仅保存算术标志,以防使用完整的pushf
/popf
组合太多昂贵。使用learsp[rsp-16]
。也就是说,通常,在到达必须保留标志以避免这种情况的点之前,您会减少堆栈指针。这是问题的实际答案:)请注意,您也可以使用lahf
和sahf
来仅保存算术标志,以防使用完整的pushf
/popf
组合太多昂贵的。