5.41 浮動小数点演算に対するコンパイラサポート

コンパイラには、ハードウェアとソフトウェアの両方で浮動小数点演算を管理するための機能が多く用意されています。

たとえば、ソフトウェアまたはハードウェアの浮動小数点サポート、特定のハードウェアアーキテクチャ、IEEE 浮動小数点規格の準拠レベルなどを指定できます。
浮動小数点オプションを選択すると、浮動小数点パフォーマンス、システムコスト、およびシステムの柔軟性の間でさまざまな釣り合いをとることができます。パフォーマンス、コスト、および柔軟性の間で最良の釣り合いをとるには、適切な浮動小数点オプションを選択する必要があります。
浮動小数点演算は以下でサポートできます。
  • ソフトウェアでは、浮動小数点ライブラリ fplib を使用します。このライブラリには、追加のハードウェアを使用することなく、浮動小数点演算を実行するために呼び出すことができる関数が含まれています。
  • ハードウェアでは、ARM プロセッサに含まれるハードウェアベクタ浮動小数点(VFP)コプロセッサを使用して、必要な浮動小数点演算を実行します。VFP は、IEEE 浮動小数点を実装するコプロセッサアーキテクチャであり、単精度と倍精度をサポートしますが、拡張精度には対応していません。

    実践では、VFP の浮動小数点演算を実装するために、一般的な事例を処理するハードウェア、通常外の事例を処理するソフトウェア、および例外の原因となる事例の組み合わせが使用されます。
浮動小数点演算にハードウェアサポートを利用するコードの方が、ソフトウェアで浮動小数点演算を行うコードより小型であり、パフォーマンスも優れています。ただし、浮動小数点演算のハードウェアサポートを利用するには、VFP コプロセッサが必要です。
関連する概念
5.42 デフォルトで選択されるハードウェアまたはソフトウェアによる浮動小数点サポート
5.43 浮動小数点演算に関するハードウェアサポートとソフトウェアサポートの違いの例
5.44 ベクタ浮動小数点(VFP)アーキテクチャ
5.45 浮動小数点演算のハードウェアによる処理に関する制限
5.46 ベクタ浮動小数点(VFP)サポートコードの実装
5.47 半精度浮動小数点数に対するコンパイラおよびライブラリサポート
5.48 半精度浮動小数点数の形式
5.49 浮動小数点計算と浮動小数点リンケージに対するコンパイラサポート
5.50 浮動小数点リンケージの種類
5.51 浮動小数点リンケージと浮動小数点計算のコンパイラオプション
関連する参考文書
5.52 コンパイラオプションの浮動小数点リンケージと浮動小数点計算の要件
5.53 プロセッサおよび暗黙の浮動小数点ユニット(FPU)
10.100 #pragma softfp_linkage、#pragma no_softfp_linkage
8.42 --cpu=name コンパイラオプション
10.118 __fabs コンパイラ組み込み関数
8.85 --fp16_format=format
8.86 --fpmode=model
8.87 --fpu=list
8.88 --fpu=name コンパイラオプション
10.142 __sqrt コンパイラ組み込み関数
10.160 GNU 組み込み関数
10.161 定義済みマクロ
10.156 VFP ステータスコンパイラ組み込み関数
9.14 16 進浮動小数点数
9.38 16 進数浮動小数点定数
17.3 浮動小数点数に関する制限
関連情報
Institute of Electrical and Electronics Engineers
浮動小数点のサポート
ARM および Thumb の浮動小数点ビルドオプション(ARMv6 以前)
ARM および Thumb の浮動小数点ビルドオプション(ARMv7 以降)
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.