首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARMv8 aarch64的对应asm代码

ARMv8 aarch64的对应asm代码
EN

Stack Overflow用户
提问于 2018-06-14 12:18:16
回答 1查看 135关注 0票数 0

以下是X86-64代码的代码,其中包含一些汇编,您可以帮助我们转换为ARMv8 aarch64汇编

代码语言:javascript
复制
__asm__ __volatile__ ("lock; cmpxchgw %1,%2"
                      : "=a"(sPrev)
                      : "q"(aWith),
                        "m"(*(volatile acp_sint16_t *)aAddr),
                        "0"(aCmp)
                      : "memory");

__asm__ __volatile__ ("mov %%ebx,%%eax\n\t"
                      "mov %%ecx,%%edx\n\t"
                      "lock; cmpxchg8b %1"
                      : "=&A"(sVal)
                      : "m"(*(volatile acp_sint64_t *)aAddr)
                      : "cc");

__asm__ __volatile__ ("lock; xaddq %0,%1"
                      : "+r"(sPrev), "+m"(*(volatile acp_sint64_t *)aAddr)
                      :
                      : "memory");
EN

回答 1

Stack Overflow用户

发布于 2018-06-18 11:35:06

您的开发环境在stdatomic.h的某些变体中已经有了等价物。关键概念是相同的,除了你必须在难以理解的变体之间做出选择,比如“弱”和“强”……

至少,保持您的程序对这些变量的基于协议的方法;也就是说,将它们视为只能由神秘的库操作的魔力cookie。standard- be jour鼓励由编译器直接实现一个模糊的定义;我能想象的最好的结果就是花很多小时调试编译器/运行时.

隔离特定于机器或执行的依赖关系总是很好的软件工程。

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

https://stackoverflow.com/questions/50849545

复制
相关文章

相似问题

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