首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >x86内联yasm转换为x64

x86内联yasm转换为x64
EN

Stack Overflow用户
提问于 2015-02-09 06:22:02
回答 1查看 176关注 0票数 0

我有一个项目是用内联yasm来实现的。现在,该项目使用openMP来提高并行任务的性能。在x86平台上,openMP无法运行,原因是x86环境没有足够的内存。所以我使用x64环境编译它,它可以运行。但是,当我使用yasm代码优化性能时,它也不起作用。( yasm的代码是由x86环境编写的。)

我找遍了所有的东西,但找不到任何有用的信息来解决这个问题。

谁能告诉我解决问题的方法。我想看看那些带有关系信息的文档。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-09 18:13:03

如果没有您的代码,我最好的猜测是,您应该阅读的AMD64 ABI,并查看x64平台中的调用约定标准。我觉得这应该对你有用。正如该文档所述,您必须按以下方式传递参数(请注意,您必须首先使用ABI标准中描述的方法对参数进行分类):

  1. 如果类是内存,则在堆栈上传递参数。
  2. 如果类是整数,则使用序列%rdi%rsi%rdx%rcx%r8%r9的下一个可用寄存器。
  3. 如果类是SSE,则使用下一个可用的向量寄存器,寄存器按照从%xmm0%xmm7的顺序进行。

..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28403901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档