1

LLVM clang 統合マクロ アセンブラー (XCode 4.3 に同梱されている LLVM コンパイラー) を使用して NEON アセンブリ コードをコンパイルしようとすると、次のエラーが発生します。

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

その理由は何ですか?この命令が Android 用の GAS によって正常にコンパイルされ、iOS 用の「clang -integrated-as ...」ではコンパイルできないのはなぜですか? ありがとう。

4

2 に答える 2

2

実験の1日後、私は解決策を見つけました。SVNソースベース(バージョン3.2)からLLVMをコンパイルしました。LLVM 3.2svnに統合されたマクロアセンブラは、XCode4.3.1に同梱されているLLVM3.0svnと比較して、ARMNEONISAをはるかによくサポートします。VLDNEON命令の問題は自動的に解決されました。

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 アセンブリ

さらに、これはARMアセンブリに関する他の誰かの問題を解決するのに役立つ場合があります(正しいデバイスの選択、小文字の命令など...):便利なStackoverflowの回答

于 2012-07-03T18:11:23.847 に答える