如何解决返回float st0或xmm0
用于确定将哪个C ++代码中的汇编块中的浮点值返回到哪个寄存器(st(0)
或xmm0
)的指令。
__declspec(naked) float __fastcall ln(float flt)
{
float buf;
_asm {
mov buf,eax
fld buf // Return st(0)
};
};
解决方法
对于32位x86代码,Visual Studio将always use the i387 stack,因为它是调用约定。
对于64位x64代码,使用XMM寄存器exclusively。
恐怕您别无选择,只能为不同的体系结构编写单独的asm块。如果只有一种高级语言可以为每种体系结构生成特定的汇编代码,则它支持...;)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。