8

-mfpuCortex-A8 プロセッサを使用していますが、フラグの使用方法がわかりません。

Cortex-A8 には、vfpv3ネオンコプロセッサの両方があります。以前はネオンの使い方を知らなかったので、ネオンしか使っていませんでした

gcc -marm -mfloat-abi=softfp -mfpu=vfpv3

これで、SIMD プロセッサがどのように動作するかを理解し、NEON 組み込み関数を使用して特定のコードを記述できました。ネオン コプロセッサを使用するには、-mfpu フラグを に変更する必要が-mfpu=neonあるため、コンパイラ コマンド ラインは次のようになります。

gcc -marm -mfloat-abi=softfp -mfpu=neon

さて、これは myvfpv3がもう使われていないということですか? NEON を使用していないコードがたくさんありますが、それらの部分は使用しないでくださいvfpv3

ネオンと vfpv3 の両方がまだ使用されている場合は問題ありませんが、どちらか一方しか使用されていない場合、どうすれば両方を利用できますか?

4

1 に答える 1

11

NEON は、従来の VFP もサポートしていることを意味します。VFP は、「通常の」(非ベクトル) 浮動小数点計算に使用できます。また、NEON は倍精度 FP をサポートしていないため、VFP 命令のみを使用できます。
できることは、gcc のコマンド ラインに -S を追加して、アセンブリを確認することです。V で始まる命令 (vld1.32、vmla.f32 など) は NEON 命令であり、F で始まる命令 (fldd、fmacd) は VFP です。(ARM ドキュメントでは、VFP 命令に対しても V プレフィックスを使用することを好むようになりましたが、GCC はそれを行いません。)

于 2010-11-18T10:48:15.480 に答える