繁体   English   中英

x86内联Yasm转换为x64

[英]x86 inline yasm convert to x64

我有使用嵌入式Yasm实施的项目。 现在,该项目使用openMP并行执行任务以获得更好的性能。 在x86平台上,openMP无法运行,原因是x86环境没有足够的内存。 所以我用x64环境编译它并且可以运行。 但是当我使用yasm代码优化性能时,它就不能正常工作。(yasm的代码是由x86环境编写的。)

我搜索了所有内容,但是找不到任何有用的信息来解决此问题。

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

谢谢您的帮助。

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

  1. 如果类是MEMORY,则在堆栈上传递参数。
  2. 如果该类是INTEGER,则使用序列%rdi%rsi%rdx%rcx%r8%r9的下一个可用寄存器。
  3. 如果类是SSE,则使用下一个可用的向量寄存器,这些寄存器的顺序为%xmm0%xmm7

...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM