在GCC4.2(Xcode3)中,我使用%R0/%Q0来指定内联汇编中双字操作数的高/低部分。但以下代码在llvm-gcc (Xcode4)中生成错误:错误:内联asm中的操作数无效:'mov ${0:D},$1
有人能给我指个解决方案吗?
long long v1 = 0;
long v2 = 1;
__asm__(
"mov %R0, %1\n\t"
: "=&r" (v1)
: "r" (v2)
);发布于 2011-11-26 16:03:02
在当前版本的llvm-gcc或clang (Apple LLVM编译器)中不支持它。作为一种变通办法,您可以将64位值拆分为两个32位变量,然后使用移位等方法重新组装64位值。生成的代码最终看起来应该是一样的。
https://stackoverflow.com/questions/8276217
复制相似问题