RealView ® CompilationTools ライブラリ / 浮動小数点サポートガイド

バージョン 3.1


Table of Contents

序章
本書について
対象読者
本書の構成
表記規則
参考資料
フィードバック
RealView Compilation Tools に関するフィードバック
本書に関するフィードバック
1. はじめに
1.1. ランタイムライブラリについて
1.1.1. ABI for the ARM Architectureへの準拠
1.1.2. ライブラリのディレクトリ構造
1.1.3. ビルドオプションとライブラリバリアント
1.1.4. VFP サポートライブラリの使用
1.1.5. Thumb C ライブラリ
1.2. 浮動小数点サポートについて
2. C のライブラリと C++ のライブラリ
2.1. C および C++ ライブラリについて
2.1.1. C および C++ ライブラリの機能
2.1.2. ネームスペース
2.2. 再入可能およびスレッドセーフコードの記述
2.2.1. 再入可能性とスレッドセーフティについて
2.2.2. C ライブラリでのスタティックデータの使用
2.2.3. __user_libspace スタティックデータ領域
2.2.4. マルチスレッドアプリケーションにおけるロックの管理
2.2.5. マルチスレッドアプリケーションでの ARM C ライブラリの使用
2.2.6. ARM C ライブラリでのスレッドセーフティ
2.2.7. ARM C++ ライブラリでのスレッドセーフティ
2.3. C ライブラリを使用したアプリケーションの作成
2.3.1. アプリケーションでのライブラリの使用
2.3.2. セミホステッド環境向けのアプリケーションの作成
2.3.3. 非セミホスティング環境向けのアプリケーションの作成
2.4. C ライブラリを使用しないアプリケーションの作成
2.4.1. 整数および FP ヘルパ関数
2.4.2. ベアマシン整数 C
2.4.3. 浮動小数点を使用したベアマシン C
2.4.4. C ライブラリの利用
2.4.5. スタンドアロン C ライブラリ関数
2.5. 新しい実行環境に合わせた C ライブラリのカスタマイズ
2.5.1. C/C++ プログラムでのライブラリ関数の使用方法
2.5.2. __rt_entry
2.5.3. プログラムからの終了処理
2.5.4. __rt_exit()
2.5.5. __rt_lib_init()
2.5.6. __rt_lib_shutdown()
2.6. スタティックデータアクセスのカスタマイズ
2.7. アセンブラマクロによるロケールと CTYPE のカスタマイズ
2.7.1. リンク時におけるロケールの選択
2.7.2. 実行時におけるロケールの選択
2.7.3. ロケールブロックの定義
2.7.4. LC_CTYPE データブロック
2.7.5. LC_COLLATE データブロック
2.7.6. LC_MONETARY データ ブロック
2.7.7. LC_NUMERIC データブロック
2.7.8. LC_TIME データブロック
2.7.9. _get_lconv()
2.7.10. localeconv()
2.7.11. setlocale()
2.7.12. _findlocale()
2.7.13. lconv 構造体
2.8. C マクロによるロケールと CTYPE のカスタマイズ
2.8.1. リンク時におけるロケールの選択
2.8.2. 実行時におけるロケールの選択
2.8.3. マクロおよびユーティリティ関数
2.8.4. _get_lc_ctype()
2.8.5. _get_lc_collate()
2.8.6. _get_lc_monetary()
2.8.7. _get_lc_numeric()
2.8.8. _get_lc_time()
2.8.9. _get_lconv()
2.8.10. localeconv()
2.8.11. setlocale()
2.8.12. _findlocale()
2.8.13. __LC_CTYPE_DEF
2.8.14. __LC_COLLATE_DEF
2.8.15. __LC_TIME_DEF
2.8.16. __LC_NUMERIC_DEF
2.8.17. __LC_MONETARY_DEF
2.8.18. __LC_INDEX_END
2.8.19. lconv 構造体
2.9. エラー通知、エラー処理、プログラム終了処理のカスタマイズ
2.9.1. _sys_exit()
2.9.2. errno
2.9.3. __rt_errno_addr()
2.9.4. __raise()
2.9.5. __rt_raise()
2.9.6. __default_signal_handler()
2.9.7. _ttywrch()
2.9.8. __rt_fp_status_addr()
2.10. ストレージ管理のカスタマイズ
2.10.1. ARM で提供されるヒープおよびヒープを使用する関数使用の回避
2.10.2. malloc のサポート
2.11. ランタイムメモリモデルのカスタマイズ
2.11.1. メモリモデル
2.11.2. ランタイムメモリモデルの制御
2.11.3. 独自のメモリモデルの記述
2.11.4. __user_initial_stackheap()
2.11.5. __user_setup_stackheap()
2.11.6. __user_heap_extend()
2.11.7. __user_heap_extent()
2.11.8. __user_stack_cleanup_space()
2.11.9. __rt_heap_extend()
2.11.10. __rt_stack_postlongjmp()
2.12. 入出力関数のカスタマイズ
2.12.1. 低レベル関数への依存性
2.12.2. ターゲットに依存する入出力サポート関数
2.12.3. _sys_open()
2.12.4. _sys_close()
2.12.5. _sys_read()
2.12.6. _sys_write()
2.12.7. _sys_ensure()
2.12.8. _sys_flen()
2.12.9. _sys_seek()
2.12.10. _sys_istty()
2.12.11. _sys_tmpnam()
2.12.12. _sys_command_string()
2.12.13. #pragma import(_main_redirection)
2.13. その他の C ライブラリ関数のカスタマイズ
2.13.1. clock()
2.13.2. _clock_init()
2.13.3. time()
2.13.4. remove()
2.13.5. rename()
2.13.6. system()
2.13.7. getenv()
2.13.8. _getenv_init()
2.14. リアルタイム除算の選択
2.15. ISO 実装定義
2.15.1. ISO C ライブラリの実装定義
2.15.2. 標準 C++ ライブラリの実装定義
2.16. C ライブラリの拡張
2.16.1. atoll()
2.16.2. strtoll()
2.16.3. strtoull()
2.16.4. printf()
2.16.5. snprintf()
2.16.6. vsnprintf()
2.16.7. lldiv()
2.16.8. llabs()
2.16.9. wcstombs()
2.16.10. alloca()
2.16.11. strlcpy()
2.16.12. strlcat()
2.16.13. _fisatty()
2.16.14. __heapstats()
2.16.15. __heapvalid()
2.17. ライブラリの命名規則
2.17.1. ARM ライブラリの配置
2.17.2. ヘルパライブラリ
2.17.3. ライブラリのバリアントの識別
3. C マイクロライブラリ
3.1. microlib について
3.1.1. デフォルトの C ライブラリとの違い
3.2. microlib を使用したアプリケーションの作成
3.3. microlib の使用
3.3.1. スタックの作成
3.3.2. ヒープの作成
3.3.3. プログラムの開始と終了
3.4. microlib 入出力関数のカスタマイズ
3.5. microlib でサポートされていない ISO C 機能
4. 浮動小数点サポート
4.1. ソフトウェア浮動小数点ライブラリ fplib
4.1.1. 浮動小数点ライブラリ fplib の機能
4.1.2. 特定形式の数値に対する演算
4.1.3. float、double、int の間の変換
4.1.4. long long と他の数値形式との変換
4.1.5. 浮動小数点の比較
4.1.6. C99 の関数
4.2. 浮動小数点環境の制御
4.2.1. __ieee_status()
4.2.2. __fp_status()
4.2.3. __vfp_status()
4.2.4. Microsoft 互換関数
4.2.5. C99 互換関数
4.2.6. C99 インタフェースの ARM コンパイラ拡張
4.3. 数学ライブラリ mathlib
4.3.1. mathlib での範囲の縮小
4.3.2. 浮動小数点数の型を判断するマクロ(fpclassify)
4.3.3. 数値が有限かどうかを判断するマクロ(isfinite)
4.3.4. 数値が無限かどうかを判断するマクロ(isinf)
4.3.5. 数値が NaN かどうかを判断するマクロ(isnan)
4.3.6. 数値が正規かどうかを判断するマクロ(isnormal)
4.3.7. 数値の符号ビットを返すマクロ(signbit)
4.3.8. 符号コピー関数(copysign、copysignf)
4.3.9. 比較マクロ(isgreater、isgreaterequal、isless、islessequal、islessgreater、isunordered)
4.3.10. 逆双曲線関数(acosh、asinh、atanh)
4.3.11. 立方根(cbrt)
4.3.12. エラー関数(erf、erfc)
4.3.13. exp(x )-1を求める関数(expm1)
4.3.14. ガンマ関数(gamma、gamma_r)
4.3.15. 斜辺関数(hypot)
4.3.16. 第 1 種のベッセル関数(j0、j1、jn)
4.3.17. ガンマ関数の対数
4.3.18. x + 1 の対数(log1p)
4.3.19. IEEE 754 剰余関数(remainder)
4.3.20. IEEE 整数への丸め演算(rint)
4.3.21. 数値の小数部を返す関数(significand)
4.3.22. 第 2 種のベッセル関数(y0、y1、yn)
4.3.23. (旧バージョン)数値の指数(ilogb、ilogbf、ilogbl)
4.3.24. (旧バージョン)数値が有限かどうかを判断する関数(finite)
4.3.25. (旧バージョン)数値が NaNかどうかを判断する関数(isnan)
4.4. IEEE 754 算術演算
4.4.1. 基本データ型
4.4.2. 算術演算と丸め
4.4.3. 例外

著作権

® または ™ のマークが付いた言葉およびロゴは、ARM Limited が所有する登録商標または商標です。本書に記載されている他の製品名は、各社の所有する商標です。

本書に記載されている情報の全部または一部、ならびに本書で紹介する製品は、著作権所有者の文書による事前の許可を得ない限り、転用・複製することを禁じます。

本書に記載されている製品は、今後も継続的に開発・改良の対象となります。 本書に含まれる製品およびその利用方法についての情報は、ARMが利用者の利益のために提供するものです。 したがって当社では、製品の市販性または利用の適切性を含め、暗示的・明示的に関係なく一切の責任を負いません。

本書は、本製品の利用者をサポートすることだけを目的としています。 本書に記載されている情報の使用、情報の誤りまたは省略、あるいは本製品の誤使用によって発生したいかなる損失・損傷についても、ARMLimited は一切責任を負いません。

ARM という用語が使用されている場合は、"ARM または該当する子会社"を指します。

本書の情報の一部は、ANSI/IEEE 規格 754 - 1985「IEEE Standard for BinaryFloating-Point Arithmetic(二進浮動小数点演算に関する IEEE 規格)」に基づいています。 説明に従って設定し使用した結果について、IEEEは一切責任を負いません。

機密保持ステータス

本書は非機密扱いであり、本書を使用、複製、および開示する権利は、ARMおよび ARM が本書を提供した当事者との間で締結した契約の条項に基づいたライセンスの制限により異なります。

製品ステータス

本書の情報は最終版であり、開発済み製品に対応しています。

Revision History
Revision A 2007年 3 月 RVDS v3.1 リリース(第 3.1 版)
Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0349AJ
Non-Confidential