1

我尝试使用 LLVM clang 集成宏汇编器(XCode 4.3 附带的 LLVM 编译器)编译 NEON 汇编代码并得到以下错误:

vld1.8 {D0}, [R0] - invalid operand for instruction

可能是什么原因?为什么这条指令被 GAS 成功编译为 Android 而不能被 'clang -integrated-as ...' 编译为 iOS?谢谢。

4

2 回答 2

2

经过一天的实验,我找到了解决方案。我刚刚从 SVN 源代码库(版本 3.2)编译了 LLVM。与 XCode 4.3.1 附带的 LLVM 3.0svn 相比,LLVM 3.2svn 中集成的宏汇编器对 ARM NEON ISA 的支持要好得多。VLD NEON 指令的问题已自动解决。

那些使用gas-preprocessor.pl Perl 脚本的人可能会尝试从 GAS 1.38(它是 Mac OS X 10.7.X 上 LLVM 使用的外部 GNU 汇编器)切换到 LLVM 集成宏汇编器并停止使用不必要的预处理。

于 2012-07-04T04:27:44.673 回答
0

我没有使用 clang 进行组装,但以下站点可能会有所帮助:ARM Assembly

此外,这可能会有所帮助,因为它解决了其他人的 ARM 程序集问题(选择正确的设备、小写指令等......):有用的 Stackoverflow 答案

于 2012-07-03T18:11:23.847 回答