Iは、以前ネオンフラグでコンパイルアームバイナリを分解:vdiv命令がネオンフラグで生成されるのはなぜですか?
-mcpu =皮質-A9 -mfpu =ネオン-mfloat-ABI = softfp -ftree-ベクトル化
ダンプが発生vdiv.f64命令を示しますコンパイラによって。 armv7(cortex-a9)のアームマニュアルによれば、ネオンは、vdiv命令をサポートしていませんが、浮動小数点(vfp)エンジンはサポートしています。この命令はなぜ生成されますか?それはvfpによって実行される浮動小数点命令ですか?ネオンとVFPはどちらも浮動小数点の加算と乗算をサポートしていますので、どうすれば他のものと区別することができますか?
はい、これはVFP命令です。 AArch32ネオンは64ビット浮動小数点ではまったく動作しないので、簡単に見ることができます。 – EOF
答えていただきありがとうございますが、コンパイラによって生成された "vadd"が表示されたら、両方のエンジンがこの命令を実装しているので、それがNEONかVFP命令かどうかをどのように知ることができますか?私は、腕のcortex-a9プロセッサとarm-none-linux-gnueabi * toolchainを使って作業しています。 –
ネオンは、レジスタ名 'D [n]'と 'Q [n]'と命令ポストフィックス 'F32'(整数命令の場合は' I [n] ')を使用しますが、VFPでは' S [n] 'と' n] 'と命令ポストフィックス' F64'または 'F32'を使用します。その組み合わせはあいまいではないことが分かります。 – EOF