我有一个项目是用内联yasm来实现的。现在,该项目使用openMP来提高并行任务的性能。在x86平台上,openMP无法运行,原因是x86环境没有足够的内存。所以我使用x64环境编译它,它可以运行。但是,当我使用yasm代码优化性能时,它也不起作用。( yasm的代码是由x86环境编写的。)
我找遍了所有的东西,但找不到任何有用的信息来解决这个问题。
谁能告诉我解决问题的方法。我想看看那些带有关系信息的文档。
谢谢你的帮助。
发布于 2015-02-09 18:13:03
如果没有您的代码,我最好的猜测是,您应该阅读这的AMD64 ABI,并查看x64平台中的调用约定标准。我觉得这应该对你有用。正如该文档所述,您必须按以下方式传递参数(请注意,您必须首先使用ABI标准中描述的方法对参数进行分类):
%rdi、%rsi、%rdx、%rcx、%r8和%r9的下一个可用寄存器。%xmm0到%xmm7的顺序进行。..。
https://stackoverflow.com/questions/28403901
复制相似问题