首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何指定双字操作数的高/低部分,用llvm-gcc内联汇编?

如何指定双字操作数的高/低部分,用llvm-gcc内联汇编?
EN

Stack Overflow用户
提问于 2011-11-26 12:12:18
回答 1查看 325关注 0票数 0

在GCC4.2(Xcode3)中,我使用%R0/%Q0来指定内联汇编中双字操作数的高/低部分。但以下代码在llvm-gcc (Xcode4)中生成错误:错误:内联asm中的操作数无效:'mov ${0:D},$1

有人能给我指个解决方案吗?

代码语言:javascript
复制
    long long v1 = 0;
    long v2 = 1;
    __asm__(
        "mov %R0, %1\n\t"
        : "=&r" (v1)
        : "r" (v2)
    );
EN

回答 1

Stack Overflow用户

发布于 2011-11-26 16:03:02

在当前版本的llvm-gcc或clang (Apple LLVM编译器)中不支持它。作为一种变通办法,您可以将64位值拆分为两个32位变量,然后使用移位等方法重新组装64位值。生成的代码最终看起来应该是一样的。

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

https://stackoverflow.com/questions/8276217

复制
相关文章

相似问题

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