使用clang集成汇编程序为iOS 5.1编译NEON时出错

时间:2012-07-03 14:57:27

标签: ios assembly clang neon

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

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

可能是什么原因?为什么这条指令是由GAS for Android成功编译的,并且无法通过'clang -integrated-as ...'为iOS编译?感谢。

2 个答案:

答案 0 :(得分: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集成宏汇编程序并停止使用不必要的预处理。

答案 1 :(得分:0)

我没有使用clang进行汇编,但以下网站可能有所帮助:ARM Assembly

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