浮動小数点リンケージと浮動小数点計算のコンパイラオプション

必要な浮動小数点リンケージの種類と浮動小数点計算の種類を指定することにより、Table 19 から、使用できるコンパイラコマンドラインオプションを特定できます。

Table 19. 浮動小数点リンケージと浮動小数点計算のコンパイラオプション

リンケージ計算  
ハードウェア浮動小数点リンケージソフトウェア浮動小数点リンケージハードウェア浮動小数点コプロセッサソフトウェア浮動小数点ライブラリ(fplib)コンパイラオプション
なしありなしあり

--fpu=softvfp

--apcs=/softfp

なしありありなし

--fpu=softvfp+vfpv2

--fpu=softvfp+vfpv3

--fpu=softvfp+vfpv3_fp16

--fpu=softvfp+vfpv3_d16

--fpu=softvfp+vfp3_d16_fp16

--fpu=softvfp+vfpv4

--fpu=softvfp+vfpv4_d16

--fpu=softvfp+fpv4-sp

--apcs=/softfp

ありなしありなし

--fpu=vfp

--fpu=vfpv2

--fpu=vfpv3

--fpu=vfpv3_fp16

--fpu=vfpv3_dp16

--fpu=vfpv3_d16_fp16

--fpu=vpfv4

--fpu=vfpv4_d16

--fpu=fpv4-sp

--apcs=/hardfp


softvfp は、ソフトウェア浮動小数点リンケージを指定します。ソフトウェア浮動小数点リンケージが使用される場合は、以下のいずれかが必要となります。

--fpu softvfp--fpu softvfp+vfpv2--fpu softvfp+vfpv3--fpu softvfp+vfpv3_fp16--fpu softvfpv3_d16--fpu softvfpv3_d16_fp16--fpu softvfp+vfpv4softvfp+vfpv4_d16、および softvfp+fpv4-sp の各オプションは、ファイル全体のソフトウェア浮動小数点リンケージを指定します。一方、__softfp キーワードを使用すると、関数単位でソフトウェア浮動小数点リンケージを指定できます。

Note

個別のコンパイラオプションを使用して必要な浮動小数点リンケージの種類と浮動小数点計算の種類を選択しなくても、1 つのコンパイラオプシン --fpu を使用して両方を一度に選択できます(Table 19 を参照)。例えば、--fpu=softvfp+vfpv2ソフトウェア浮動小数点リンケージ、および計算用にハードウェアコプロセッサを選択します。softvfp を使用した場合は、ソフトウェア浮動小数点リンケージが指定されます。

--fpu オプションを使用する場合、ターゲットコアで実装されている VFP アーキテクチャのバージョンがわかっている必要があります。--fpu=softvfp+... の代わりに、--apcs=/softfp を使用できます。--cpu によって暗示されるあらゆる VFP アーキテクチャバージョンとのソフトウェアリンケージが指定されます。ARM アーキテクチャ向けプロシージャコール標準(AAPCS)の整数型または浮動小数点型のバリアントを要求する別の方法として、--apcs=/softfp および --apcs=/hardfp もあります。

ARM Linux をターゲットとした場合にハードウェア浮動小数点リンケージを使用するには、ハードウェア浮動小数点リンケージを暗示する --fpu オプションを明示的に指定する(例えば、--fpu=vfpv3)か、または --apcs=/hardfp を使用してコンパイルを実行する必要があります。ハードウェア浮動小数点リンケージは、ARM Linux ABI でサポートされていません。これに対してコンパイラは警告を発行します。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0472EJ
Non-ConfidentialID081711