ARM® コンパイラ armcc ユーザガイド

バージョン 5.06


目次

序章
本書について
本書の構成
用語集
表記規則
ご意見、ご感想
その他の情報
1 コンパイラの概要
1.1 コンパイラ
1.2 コンパイラのソース言語モード
1.3 言語拡張機能
1.4 言語標準の準拠
1.5 C ライブラリと C++ ライブラリ
2 コンパイラの使い方
2.1 コンパイラのコマンドライン構文
2.2 コンパイラコマンドラインオプションのグループ別一覧
2.3 コンパイラのデフォルトの動作
2.4 コンパイラコマンドラインオプションの順序
2.5 stdin を使用したコンパイラへのソースコードの入力
2.6 stdout への出力の転送
2.7 コンパイラで認識されるファイル名の接尾文字
2.8 コンパイラ出力ファイル
2.9 コンパイラによるヘッダファイルの検索に影響を与える要因
2.10 コンパイラコマンドラインオプションと検索パス
2.11 コンパイラの検索規則と現在の場所
2.12 ARMCC5INC 環境変数
2.13 別々にコンパイルおよびアセンブルしたモジュールとのコードの互換性
2.14 アプリケーションをビルドする場合の GCC フォールバックの使用
2.15 コンパイル中のリンカフィードバック
2.16 未使用の関数コード
2.17 コンパイル中に未使用の関数を削除してコードサイズを最小化する
2.18 コンパイルビルド時間
2.18.1 コンパイルビルド時間
2.18.2 コンパイルビルド時間を短縮する
2.18.3 armcc の 1 回の呼び出しでコンパイルビルド時間を短縮する
2.18.4 コンパイルビルド時間に対する --multifile の影響
2.18.5 並列の make 処理を使用してコンパイルビルド時間を短縮する
2.18.6 コンパイルビルド時間とオペレーティングシステムの選択
3 NEON ベクトル化コンパイラの使用
3.1 NEON テクノロジ
3.2 NEON ユニット
3.3 NEON のコードの記述方法
3.4 C または C++ コードからの NEON 命令の生成
3.5 NEON の C 拡張機能
3.6 自動ベクトル化
3.7 ベクトル化可能なループ内のデータ参照
3.8 ストライドパターンとデータアクセス
3.9 NEON ベクトル化によるパフォーマンスに影響を与える要因
3.10 NEON ベクトル化によるパフォーマンスの目標
3.11 ベクトル化のために推奨されるループ構造
3.12 コードをベクトル化するときのデータの依存関係による競合
3.13 キャリーアラウンドスカラ変数とベクトル化
3.14 ベクタのスカラへの縮退
3.15 ポインタを含むループのベクトル化
3.16 ポインタおよび間接アドレス指定を含むループの非ベクトル化
3.17 条件付き終了の非ベクトル化
3.18 ベクトル化可能なループ繰り返し回数
3.19 __promise(expr) によるコンパイラへのループ繰り返し回数の指定
3.20 ベクトル化のための構造体アクセスのグループ化
3.21 ベクトル化と struct メンバの長さ
3.22 ループ内からの非インライン関数への関数呼び出しの非ベクトル化
3.23 条件付きステートメントと効率的なベクトル化
3.24 ベクトル化診断を使用してコードを調整し、パフォーマンスを改善する
3.25 ベクトル化可能なコードの例
3.26 DSP のベクトル化可能なコードの例
3.27 自動ベクトル化を制限または抑制する要因
4 コンパイラの機能
4.1 コンパイラ組み込み関数
4.2 コンパイラ組み込み関数のパフォーマンス上の利点
4.3 ARM アセンブラ命令の組み込み
4.4 汎用のコンパイラ組み込み関数
4.5 IRQ 割り込みと FIQ 割り込みの制御のためのコンパイラ組み込み関数
4.6 最適化バリアの挿入のためのコンパイラ組み込み関数
4.7 ネイティブ命令の挿入のためのコンパイラ組み込み関数
4.8 デジタル信号処理(DSP)のためのコンパイラ組み込み関数
4.9 European Telecommunications Standards Institute(ETSI)の基本操作に対するコンパイラサポート
4.10 C および C++ コードのオーバーフローおよびキャリーステータスフラグ
4.11 C コードの最適化のための Texas Instruments(TI)C55x コンパイラ組み込み関数
4.12 コンパイラで提供される NEON 組み込み関数
4.13 NEON 組み込み関数の使用
4.14 名前付きレジスタ変数を使用したレジスタへのアクセスに対するコンパイラサポート
4.15 コンパイラで認識されるプラグマ
4.16 ビットバンディングに対するコンパイラおよびプロセッササポート
4.17 __attribute__((bitband)) コンパイラ型属性
4.18 --bitband コンパイラコマンドラインオプション
4.19 ビットバンド領域の外に配置されたビットバンドオブジェクトをコンパイラが処理する方法
4.20 スレッドローカルストレージに対するコンパイラサポート
4.21 リテラルプールに対するコンパイラサポート
4.22 コンパイラの 8 バイト境界整列機能
4.23 シンボルバージョンに対するコンパイラおよびリンカサポートの使用
4.24 プリコンパイルヘッダ(PCH)ファイル
4.25 プリコンパイルヘッダ(PCH)ファイルの自動処理
4.26 プリコンパイルヘッダ(PCH)ファイル処理とヘッダストップポイント
4.27 プリコンパイルヘッダ(PCH)ファイルの作成要件
4.28 複数のプリコンパイルヘッダ(PCH)ファイルを使用したコンパイル
4.29 廃止されたプリコンパイルヘッダ(PCH)ファイル
4.30 プリコンパイルヘッダ(PCH)ファイルのファイル名と場所の手動による指定
4.31 プリコンパイルヘッダ(PCH)ファイル処理の選択的な適用
4.32 プリコンパイルヘッダ(PCH)ファイル処理の抑止
4.33 プリコンパイルヘッダ(PCH)処理中のメッセージ出力
4.34 プリコンパイルヘッダ(PCH)ファイルのパフォーマンスに関する問題点
4.35 最適化レベルの影響を受けるデフォルトのコンパイラオプション
5 コンパイラのコーディング慣行
5.1 最適化コンパイラとしてのコンパイラ
5.2 コンパイラによるサイズの最適化と処理速度の最適化
5.3 コンパイラ最適化レベルとデバッグビュー
5.4 コンパイル時のターゲットプロセッサの選択
5.5 ベアメタル用の NEON および FPU の有効化
5.6 C コードのループ終了の最適化
5.7 C コードのループの展開
5.8 コンパイラの最適化と volatile キーワード
5.9 コードメトリック
5.10 コードサイズとデータサイズの測定用コードメトリック
5.11 C および C++ のスタックの使用
5.12 オブジェクトおよびライブラリにおけるデバッグ情報を削減するメリット
5.13 オブジェクトおよびライブラリにおけるデバッグ情報を削減する方法
5.14 ヘッダファイルの複数のインクルードに対する保護
5.15 関数のパラメータ受け渡しに伴うオーバーヘッドを最小化するための方法
5.16 レジスタを介して関数から構造体を返す
5.17 同じ引数を使用して呼び出されたときに同じ結果を返す関数
5.18 純関数と非純関数の比較
5.19 関数を ARM 関数修飾子で修飾するときの後置構文に関する推奨事項
5.20 インライン関数
5.21 関数のインライン展開に関するコンパイラによる決定
5.22 関数の自動インライン展開とスタティック関数
5.23 インライン関数と、リンク時における未使用のアウトオブライン関数の削除
5.24 関数の自動インライン展開とマルチファイルのコンパイル
5.25 関数のインライン展開に関するコンパイラの決定をオーバーライドすることの制限
5.26 コンパイラモードとインライン関数
5.27 C++ および C90 モードでのインライン関数
5.28 C99 モードでのインライン関数
5.29 インライン関数とデバッグ
5.30 データ境界整列のタイプ
5.31 自然なデータ境界整列のメリット
5.32 コンパイラによる自然なバイト境界整列でのデータオブジェクトの格納
5.33 コンパイル時の自然なデータ境界整列の関連性
5.34 C および C++ コードでの非境界整列データアクセス
5.35 C および C++ コードでの __packed 修飾子と非境界整列型のデータアクセス
5.36 構造体に含まれる非境界整列型フィールド
5.37 構造体全体を packed として宣言する場合のパフォーマンスの低下
5.38 C および C++ コードでの非境界整列ポインタ
5.39 コンパイラによって生成される非境界整列型レジスタロード(LDR)命令
5.40 パックされていない struct、__packed struct、個々の __packed フィールドを使用した struct の比較と、__packed struct と #pragma でパックされた struct の比較
5.41 浮動小数点演算に対するコンパイラサポート
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)
5.54 C コードのゼロによる整数除算エラー
5.55 C コードのソフトウェアでのゼロによる浮動小数点除算エラー
5.56 ソフトウェアでのゼロによる浮動小数点除算エラーのトラップについて
5.57 ソフトウェアでのゼロによる浮動小数点除算エラーの識別
5.58 ソフトウェアでのゼロによる浮動小数点除算エラーのデバッグ
5.59 C99 の新しい言語機能
5.60 C99 の新しいライブラリ機能
5.61 C99 および C90 の // コメント
5.62 C99 の複合リテラル
5.63 C99 の指定済みのイニシャライザ
5.64 C99 の 16 進浮動小数点数
5.65 C99 のフレキシブル配列メンバ
5.66 C99 の __func__ 定義済み識別子
5.67 C99 の inline 関数
5.68 C99 および C90 の long long データ型
5.69 C99 の使用する引数の数が一定でないマクロ
5.70 C99 の宣言とステートメントの混合
5.71 C99 の選択および反復ステートメントの新しいブロック有効範囲
5.72 C99 の _Pragma 処理命令
5.73 C99 の制限付きポインタ
5.74 C99 の <math.h> の追加の数学ライブラリ関数
5.75 C99 の複素数
5.76 C99 のブール型と <stdbool.h>
5.77 C99 の <inttypes.h> および <stdint.h> の拡張整数型と関数
5.78 C99 の <fenv.h> 浮動小数点環境アクセス
5.79 C99 の <stdio.h> の snprintf 関数ファミリ
5.80 C99 の <tgmath.h> の型汎用数学マクロ
5.81 C99 の <wchar.h> のワイドキャラクタ I/O 関数
5.82 未初期化データがゼロで初期化されないようにする方法
6 コンパイラ診断メッセージ
6.1 コンパイラ診断メッセージの重大度
6.2 コンパイラ診断メッセージの重大度を変更するオプション
6.3 プラグマを使用したコンパイラの診断メッセージの制御
6.4 コンパイラ診断メッセージの接頭文字
6.5 コンパイラ終了ステータスコードと終了メッセージ
6.6 コンパイラデータフロー警告
7 ARM コンパイラのインラインアセンブラと組み込みアセンブラの使用
7.1 インラインアセンブリ言語に対するコンパイラサポート
7.2 コンパイラでのインラインアセンブラのサポート
7.3 コンパイラでのインラインアセンブラのサポートに対する制限
7.4 C および C++ の __asm キーワードを使用したインラインアセンブリ言語構文
7.5 C++ の asm キーワードを使用したインラインアセンブリ言語構文
7.6 __asm および asm コンパイラキーワードのインラインアセンブラ規則
7.7 C および C++ コードのインラインアセンブリ演算の制限
7.8 C および C++ コードのインラインアセンブラのレジスタの制限
7.9 C および C++ コードのインラインアセンブラのプロセッサモードの制限
7.10 C および C++ コードのインラインアセンブラの Thumb 命令セットの制限
7.11 C および C++ コードのインラインアセンブラのベクタ浮動小数点(VFP)の制限
7.12 C および C++ コードのインラインアセンブラの命令の制限
7.13 C および C++ コードのその他のインラインアセンブラの制限
7.14 C および C++ コードのインラインアセンブラおよびレジスタアクセス
7.15 C および C++ コードのインラインアセンブラおよび # 定数式指定子
7.16 C および C++ コードのインラインアセンブラおよび命令の展開
7.17 定数を使用するインラインアセンブラ命令の展開
7.18 インラインアセンブラのロード/ストア命令の展開
7.19 C および C++ コードのプロセッサ条件フラグに対するインラインアセンブラの効果
7.20 C および C++ コードのインラインアセンブラの式オペランド
7.21 C および C++ コードのインラインアセンブラのレジスタリストのオペランド
7.22 C および C++ コードのインラインアセンブラのイミディエートオペランド
7.23 C および C++ コードのインラインアセンブラの関数呼び出しと分岐
7.24 C および C++ コードのインラインアセンブラの分岐とラベル
7.25 インラインアセンブラと仮想レジスタ
7.26 コンパイラでの組み込みアセンブラのサポート
7.27 C および C++ の組み込みアセンブラ構文
7.28 コンパイラの ARM ステートおよび Thumb ステートの組み込みアセンブラに対する影響
7.29 C および C++ コードの組み込みアセンブリ言語関数の制限
7.30 コンパイラによる組み込みアセンブリ言語関数の生成
7.31 組み込みアセンブラからの C および C++ のコンパイル時の定数式へのアクセス
7.32 組み込みアセンブラと C/C++ との式の相違点
7.33 組み込みアセンブラの手動による多重定義の解決
7.34 組み込みアセンブラの関連ベースクラスの __offsetof_base キーワード
7.35 組み込みアセンブラのクラスメンバ関数を呼び出すためのコンパイラでサポートされているキーワード
7.36 __mcall_is_virtual(D, f)
7.37 __mcall_is_in_vbase(D, f)
7.38 __mcall_offsetof_vbase(D, f)
7.39 __mcall_this_offset(D, f)
7.40 __vcall_offsetof_vfunc(D, f)
7.41 組み込みアセンブラの非スタティックメンバ関数の呼び出し
7.42 非仮想メンバ関数の呼び出し
7.43 仮想メンバ関数の呼び出し
7.44 sp(r13)、lr(r14)、および pc(r15)へのアクセス
7.45 インラインアセンブリコードと組み込みアセンブリコードのコンパイラサポートにおける相違点
8 コンパイラのコマンドラインオプション
8.1 -Aopt
8.2 --allow_fpreg_for_nonfpdata、--no_allow_fpreg_for_nonfpdata
8.3 --allow_null_this、--no_allow_null_this
8.4 --alternative_tokens、--no_alternative_tokens
8.5 --anachronisms、--no_anachronisms
8.6 --apcs=qualifier...qualifier
8.7 --arm
8.8 --arm_linux
8.9 --arm_linux_config_file=path
8.10 --arm_linux_configure
8.11 --arm_linux_paths
8.12 --arm_only
8.13 --asm
8.14 --asm_dir=directory_name
8.15 --autoinline、--no_autoinline
8.16 --bigend
8.17 --bitband
8.18 --branch_tables、--no_branch_tables
8.19 --brief_diagnostics、--no_brief_diagnostics
8.20 --bss_threshold=num
8.21 -c
8.22 -C
8.23 --c90
8.24 --c99
8.25 --code_gen、--no_code_gen
8.26 --common_functions、--no_common_functions
8.27 --compatible=name
8.28 --compile_all_input、--no_compile_all_input
8.29 --conditionalize、--no_conditionalize
8.30 --configure_cpp_headers=path
8.31 --configure_extra_includes=paths
8.32 --configure_extra_libraries=paths
8.33 --configure_gas=path
8.34 --configure_gcc=path
8.35 --configure_gcc_version=version
8.36 --configure_gld=path
8.37 --configure_sysroot=path
8.38 --cpp
8.39 --cpp11
8.40 --cpp_compat
8.41 --cpu=list
8.42 --cpu=name コンパイラオプション
8.43 --create_pch=filename
8.44 -Dname[(parm-list)][=def]
8.45 --data_reorder、--no_data_reorder
8.46 --debug、--no_debug
8.47 --debug_macros、--no_debug_macros
8.48 --default_definition_visibility=visibility
8.49 --default_extension=ext
8.50 --dep_name、--no_dep_name
8.51 --depend=filename
8.52 --depend_dir=directory_name
8.53 --depend_format=string
8.54 --depend_single_line、--no_depend_single_line
8.55 --depend_system_headers、--no_depend_system_headers
8.56 --depend_target=target
8.57 --diag_error=tag[,tag,...]
8.58 --diag_remark=tag[,tag,...]
8.59 --diag_style=arm|ide|gnu コンパイラオプション
8.60 --diag_suppress=tag[,tag,...]
8.61 --diag_suppress=optimizations
8.62 --diag_warning=tag[,tag,...]
8.63 --diag_warning=optimizations
8.64 --dllexport_all、--no_dllexport_all
8.65 --dllimport_runtime、--no_dllimport_runtime
8.66 --dollar、--no_dollar
8.67 --dwarf2
8.68 --dwarf3
8.69 -E
8.70 --echo
8.71 --emit_frame_directives、--no_emit_frame_directives
8.72 --enum_is_int
8.73 --errors=filename
8.74 --exceptions、--no_exceptions
8.75 --exceptions_unwind、--no_exceptions_unwind
8.76 --execstack、--no_execstack
8.77 --execute_only
8.78 --export_all_vtbl、--no_export_all_vtbl
8.79 --export_defs_implicitly、--no_export_defs_implicitly
8.80 --extended_initializers、--no_extended_initializers
8.81 --feedback=filename
8.82 --float_literal_pools、--no_float_literal_pools
8.83 --force_new_nothrow、--no_force_new_nothrow
8.84 --forceinline
8.85 --fp16_format=format
8.86 --fpmode=model
8.87 --fpu=list
8.88 --fpu=name コンパイラオプション
8.89 --friend_injection、--no_friend_injection
8.90 -g
8.91 --global_reg=reg_name[,reg_name,...]
8.92 --gnu
8.93 --gnu_defaults
8.94 --gnu_instrument、--no_gnu_instrument
8.95 --gnu_version=version
8.96 --guiding_decls、--no_guiding_decls
8.97 --help
8.98 --hide_all、--no_hide_all
8.99 -Idir[,dir,...]
8.100 --ignore_missing_headers
8.101 --implicit_include、--no_implicit_include
8.102 --implicit_include_searches、--no_implicit_include_searches
8.103 --implicit_key_function、--no_implicit_key_function
8.104 --implicit_typename、--no_implicit_typename
8.105 --import_all_vtbl
8.106 --info=totals
8.107 --inline、--no_inline
8.108 --integer_literal_pools, --no_integer_literal_pools
8.109 --interface_enums_are_32_bit
8.110 --interleave
8.111 -Jdir[,dir,...]
8.112 --kandr_include
8.113 -Lopt
8.114 --library_interface=lib
8.115 --library_type=lib
8.116 --licretry
8.117 --link_all_input、--no_link_all_input
8.118 --list
8.119 --list_dir=directory_name
8.120 --list_macros
8.121 --littleend
8.122 --locale=lang_country
8.123 --long_long
8.124 --loop_optimization_level=opt
8.125 --loose_implicit_cast
8.126 --lower_ropi、--no_lower_ropi
8.127 --lower_rwpi、--no_lower_rwpi
8.128 -M
8.129 --md
8.130 --message_locale=lang_country[.codepage]
8.131 --min_array_alignment=opt
8.132 --mm
8.133 --multibyte_chars、--no_multibyte_chars
8.134 --multifile, --no_multifile
8.135 --multiply_latency=cycles
8.136 --narrow_volatile_bitfields
8.137 --nonstd_qualifier_deduction、--no_nonstd_qualifier_deduction
8.138 -o filename
8.139 -Onum
8.140 --old_specializations、--no_old_specializations
8.141 --old_style_preprocessing
8.142 --ool_section_name、--no_ool_section_name
8.143 -Ospace
8.144 -Otime
8.145 --output_dir=directory_name
8.146 -P
8.147 --parse_templates、--no_parse_templates
8.148 --pch
8.149 --pch_dir=dir
8.150 --pch_messages、--no_pch_messages
8.151 --pch_verbose、--no_pch_verbose
8.152 --pending_instantiations=n
8.153 --phony_targets
8.154 --pointer_alignment=num
8.155 --preinclude=filename
8.156 --preprocess_assembly
8.157 --preprocessed
8.158 --protect_stack、--no_protect_stack
8.159 --reassociate_saturation、--no_reassociate_saturation
8.160 --reduce_paths、--no_reduce_paths
8.161 --relaxed_ref_def、--no_relaxed_ref_def
8.162 --remarks
8.163 --remove_unneeded_entities、--no_remove_unneeded_entities
8.164 --restrict、--no_restrict
8.165 --retain=option
8.166 --rtti、--no_rtti
8.167 --rtti_data、--no_rtti_data
8.168 -S
8.169 --share_inlineable_strings, --no_share_inlineable_strings
8.170 --shared
8.171 --show_cmdline
8.172 --signed_bitfields、--unsigned_bitfields
8.173 --signed_chars、--unsigned_chars
8.174 --split_ldm
8.175 --split_sections
8.176 --strict、--no_strict
8.177 --strict_warnings
8.178 --string_literal_pools、--no_string_literal_pools
8.179 --sys_include
8.180 --thumb
8.181 --translate_g++
8.182 --translate_gcc
8.183 --translate_gld
8.184 --trigraphs、--no_trigraphs
8.185 --type_traits_helpers、--no_type_traits_helpers
8.186 -Uname
8.187 --unaligned_access、--no_unaligned_access
8.188 --use_frame_pointer, --no_use_frame_pointer
8.189 --use_gas
8.190 --use_pch=filename
8.191 --using_std、--no_using_std
8.192 --vectorize、--no_vectorize
8.193 --version_number
8.194 --vfe、--no_vfe
8.195 --via=filename
8.196 --visibility_inlines_hidden
8.197 --vla、--no_vla
8.198 --vsn
8.199 -W
8.200 -Warmcc,option[,option,...]
8.201 -Warmcc,--gcc_fallback
8.202 --wchar、--no_wchar
8.203 --wchar16
8.204 --wchar32
8.205 --whole_program
8.206 --wrap_diagnostics、--no_wrap_diagnostics
9 言語拡張機能
9.1 プリプロセッサ拡張機能
9.2 #assert
9.3 #include_next
9.4 #unassert
9.5 #warning
9.6 C90 で使用可能な C99 言語機能
9.7 // コメント
9.8 構造体への添字の付加
9.9 フレキシブル配列メンバ
9.10 C++ および C90 で使用可能な C99 言語機能
9.11 可変個引数マクロ
9.12 long long
9.13 restrict
9.14 16 進浮動小数点数
9.15 標準の C 言語の拡張機能
9.16 定数式
9.17 配列とポインタの拡張機能
9.18 block-scope 関数の宣言
9.19 識別子内のドル記号
9.20 トップレベルの宣言
9.21 有用な再宣言
9.22 外部エンティティ
9.23 関数のプロトタイプ
9.24 標準の C++ 言語の拡張機能
9.25 ?演算子
9.26 クラスメンバの宣言
9.27 friend
9.28 読み出し/書き込み定数
9.29 スカラ型定数
9.30 非メンバ関数テンプレートの特殊化
9.31 型変換
9.32 標準 C および標準 C++ 言語の拡張機能
9.33 レジスタ変数のアドレス
9.34 関数の引数
9.35 匿名クラス、匿名構造体、匿名共用体
9.36 アセンブララベル
9.37 空の宣言
9.38 16 進数浮動小数点定数
9.39 不完全な列挙型
9.40 整数型の拡張機能
9.41 ラベルの定義
9.42 long float
9.43 非スタティックローカル変数
9.44 構造体、共用体、列挙型、ビットフィールドの拡張機能
9.45 C および C++ 言語に対する GNU 拡張機能
10 コンパイラ固有の機能
10.1 キーワードと演算子
10.2 __align
10.3 __ALIGNOF__
10.4 __alignof__
10.5 __asm
10.6 __forceinline
10.7 __global_reg
10.8 __inline
10.9 __int64
10.10 __INTADDR__
10.11 __irq
10.12 __packed
10.13 __pure
10.14 __smc
10.15 __softfp
10.16 __svc
10.17 __svc_indirect
10.18 __svc_indirect_r7
10.19 __value_in_regs
10.20 __weak
10.21 __writeonly
10.22 __declspec 属性
10.23 __declspec(dllexport)
10.24 __declspec(dllimport)
10.25 __declspec(noinline)
10.26 __declspec(noreturn)
10.27 __declspec(nothrow)
10.28 __declspec(notshared)
10.29 __declspec(thread)
10.30 関数属性
10.31 __attribute__((alias)) 関数属性
10.32 __attribute__((always_inline)) 関数属性
10.33 __attribute__((const)) 関数属性
10.34 __attribute__((constructor[(priority)])) 関数属性
10.35 __attribute__((deprecated)) 関数属性
10.36 __attribute__((destructor[(priority)])) 関数属性
10.37 __attribute__((format)) 関数属性
10.38 __attribute__((format_arg(string-index))) 関数属性
10.39 __attribute__((malloc)) 関数属性
10.40 __attribute__((noinline)) 関数属性
10.41 __attribute__((no_instrument_function)) 関数属性
10.42 __attribute__((nomerge)) 関数属性
10.43 __attribute__((nonnull)) 関数属性
10.44 __attribute__((noreturn)) 関数属性
10.45 __attribute__((notailcall)) 関数属性
10.46 __attribute__((nothrow)) 関数属性
10.47 __attribute__((pcs("calling_convention"))) 関数属性
10.48 __attribute__((pure)) 関数属性
10.49 __attribute__((section("name"))) 関数属性
10.50 __attribute__((sentinel)) 関数属性
10.51 __attribute__((unused)) 関数属性
10.52 __attribute__((used)) 関数属性
10.53 __attribute__((visibility("visibility_type"))) 関数属性
10.54 __attribute__((warn_unused_result))
10.55 __attribute__((weak)) 関数属性
10.56 __attribute__((weakref("target"))) 関数属性
10.57 型属性
10.58 __attribute__((bitband)) 型属性
10.59 __attribute__((aligned)) 型属性
10.60 __attribute__((packed)) 型属性
10.61 __attribute__((transparent_union)) 型属性
10.62 変数属性
10.63 __attribute__((alias)) 変数属性
10.64 __attribute__((at(address))) 変数属性
10.65 __attribute__((aligned)) 変数属性
10.66 __attribute__((deprecated)) 変数属性
10.67 __attribute__((noinline)) 定数変数属性
10.68 __attribute__((packed)) 変数属性
10.69 __attribute__((section("name"))) 変数属性
10.70 __attribute__((unused)) 変数属性
10.71 __attribute__((used)) 変数属性
10.72 __attribute__((visibility("visibility_type"))) 変数属性
10.73 __attribute__((weak)) 変数属性
10.74 __attribute__((weakref("target"))) 変数属性
10.75 __attribute__((zero_init)) 変数属性
10.76 プラグマ
10.77 #pragma anon_unions、#pragma no_anon_unions
10.78 #pragma arm
10.79 #pragma arm section [section_type_list]
10.80 #pragma diag_default tag[,tag,...]
10.81 #pragma diag_error tag[,tag,...]
10.82 #pragma diag_remark tag[,tag,...]
10.83 #pragma diag_suppress tag[,tag,...]
10.84 #pragma diag_warning tag[, tag, ...]
10.85 #pragma exceptions_unwind、#pragma no_exceptions_unwind
10.86 #pragma GCC system_header
10.87 #pragma hdrstop
10.88 #pragma import symbol_name
10.89 #pragma import(__use_full_stdio)
10.90 #pragma import(__use_smaller_memcpy)
10.91 #pragma inline、#pragma no_inline
10.92 #pragma no_pch
10.93 #pragma Onum
10.94 #pragma once
10.95 #pragma Ospace
10.96 #pragma Otime
10.97 #pragma pack(n)
10.98 #pragma pop
10.99 #pragma push
10.100 #pragma softfp_linkage、#pragma no_softfp_linkage
10.101 #pragma thumb
10.102 #pragma unroll [(n)]
10.103 #pragma unroll_completely
10.104 #pragma weak symbol、#pragma weak symbol1 = symbol2
10.105 命令のコンパイラ組み込み関数
10.106 __breakpoint コンパイラ組み込み関数
10.107 __cdp コンパイラ組み込み関数
10.108 __clrex コンパイラ組み込み関数
10.109 __clz コンパイラ組み込み関数
10.110 __current_pc コンパイラ組み込み関数
10.111 __current_sp コンパイラ組み込み関数
10.112 __disable_fiq コンパイラ組み込み関数
10.113 __disable_irq コンパイラ組み込み関数
10.114 __dmb コンパイラ組み込み関数
10.115 __dsb コンパイラ組み込み関数
10.116 __enable_fiq コンパイラ組み込み関数
10.117 __enable_irq コンパイラ組み込み関数
10.118 __fabs コンパイラ組み込み関数
10.119 __fabsf コンパイラ組み込み関数
10.120 __force_loads コンパイラ組み込み関数
10.121 __force_stores コンパイラ組み込み関数
10.122 __isb コンパイラ組み込み関数
10.123 __ldrex コンパイラ組み込み関数
10.124 __ldrexd コンパイラ組み込み関数
10.125 __ldrt コンパイラ組み込み関数
10.126 __memory_changed コンパイラ組み込み関数
10.127 __nop コンパイラ組み込み関数
10.128 __pld コンパイラ組み込み関数
10.129 __pldw コンパイラ組み込み関数
10.130 __pli コンパイラ組み込み関数
10.131 __promise コンパイラ組み込み関数
10.132 __qadd コンパイラ組み込み関数
10.133 __qdbl コンパイラ組み込み関数
10.134 __qsub コンパイラ組み込み関数
10.135 __rbit コンパイラ組み込み関数
10.136 __rev コンパイラ組み込み関数
10.137 __return_address コンパイラ組み込み関数
10.138 __ror コンパイラ組み込み関数
10.139 __schedule_barrier コンパイラ組み込み関数
10.140 __semihost コンパイラ組み込み関数
10.141 __sev コンパイラ組み込み関数
10.142 __sqrt コンパイラ組み込み関数
10.143 __sqrtf コンパイラ組み込み関数
10.144 __ssat コンパイラ組み込み関数
10.145 __strex コンパイラ組み込み関数
10.146 __strexd コンパイラ組み込み関数
10.147 __strt コンパイラ組み込み関数
10.148 __swp コンパイラ組み込み関数
10.149 __usat コンパイラ組み込み関数
10.150 __wfe コンパイラ組み込み関数
10.151 __wfi コンパイラ組み込み関数
10.152 __yield コンパイラ組み込み関数
10.153 ARMv6 SIMD コンパイラ組み込み関数
10.154 ETSI の基本操作
10.155 C55x コンパイラ組み込み関数
10.156 VFP ステータスコンパイラ組み込み関数
10.157 __vfp_status コンパイラ組み込み関数
10.158 FMA(Fused Multiply Add)コンパイラ組み込み関数
10.159 名前付きレジスタ変数
10.160 GNU 組み込み関数
10.161 定義済みマクロ
10.162 組み込み関数名変数
11 C および C++ の実装に関する詳細
11.1 ARM C および C++ の文字セットと識別子
11.2 ARM C および C++ の基本データ型
11.3 ARM C および C++ での基本データ型の演算
11.4 ARM C および C++ での構造体、共用体、列挙型、ビットフィールド
11.5 ARM C++ での ::operator new 関数の使用
11.6 ARM C++ での仮配列
11.7 ARM C++ 関数での旧方式の C パラメータ
11.8 ARM C++ のアナクロニズム
11.9 ARM C++ でのテンプレートのインスタンス化
11.10 ARM C++ のネームスペース
11.11 ARM C++ での C++ の例外処理
11.12 ARM C++ の Extern インライン関数
11.13 C++11 でサポートされている機能
12 ARMv6 SIMD 命令のコンパイラ組み込み関数
12.1 ARMv6 SIMD コンパイラ組み込み関数(接頭文字別)
12.2 ARMv6 SIMD 組み込み関数、要約説明、バイトレーン、影響を受けるフラグ
12.3 ARMv6 SIMD コンパイラ組み込み関数、互換性のあるプロセッサおよびアーキテクチャ
12.4 ARMv6 SIMD 命令の組み込み関数と APSR GE フラグ
12.5 __qadd16 コンパイラ組み込み関数
12.6 __qadd8 コンパイラ組み込み関数
12.7 __qasx コンパイラ組み込み関数
12.8 __qsax コンパイラ組み込み関数
12.9 __qsub16 コンパイラ組み込み関数
12.10 __qsub8 コンパイラ組み込み関数
12.11 __sadd16 コンパイラ組み込み関数
12.12 __sadd8 コンパイラ組み込み関数
12.13 __sasx コンパイラ組み込み関数
12.14 __sel コンパイラ組み込み関数
12.15 __shadd16 コンパイラ組み込み関数
12.16 __shadd8 コンパイラ組み込み関数
12.17 __shasx コンパイラ組み込み関数
12.18 __shsax コンパイラ組み込み関数
12.19 __shsub16 コンパイラ組み込み関数
12.20 __shsub8 コンパイラ組み込み関数
12.21 __smlad コンパイラ組み込み関数
12.22 __smladx コンパイラ組み込み関数
12.23 __smlald コンパイラ組み込み関数
12.24 __smlaldx コンパイラ組み込み関数
12.25 __smlsd コンパイラ組み込み関数
12.26 __smlsdx コンパイラ組み込み関数
12.27 __smlsld コンパイラ組み込み関数
12.28 __smlsldx コンパイラ組み込み関数
12.29 __smuad コンパイラ組み込み関数
12.30 __smuadx コンパイラ組み込み関数
12.31 __smusd コンパイラ組み込み関数
12.32 __smusdx コンパイラ組み込み関数
12.33 __ssat16 コンパイラ組み込み関数
12.34 __ssax コンパイラ組み込み関数
12.35 __ssub16 コンパイラ組み込み関数
12.36 __ssub8 コンパイラ組み込み関数
12.37 __sxtab16 コンパイラ組み込み関数
12.38 __sxtb16 コンパイラ組み込み関数
12.39 __uadd16 コンパイラ組み込み関数
12.40 __uadd8 コンパイラ組み込み関数
12.41 __uasx コンパイラ組み込み関数
12.42 __uhadd16 コンパイラ組み込み関数
12.43 __uhadd8 コンパイラ組み込み関数
12.44 __uhasx コンパイラ組み込み関数
12.45 __uhsax コンパイラ組み込み関数
12.46 __uhsub16 コンパイラ組み込み関数
12.47 __uhsub8 コンパイラ組み込み関数
12.48 __uqadd16 コンパイラ組み込み関数
12.49 __uqadd8 コンパイラ組み込み関数
12.50 __uqasx コンパイラ組み込み関数
12.51 __uqsax コンパイラ組み込み関数
12.52 __uqsub16 コンパイラ組み込み関数
12.53 __uqsub8 コンパイラ組み込み関数
12.54 __usad8 コンパイラ組み込み関数
12.55 __usada8 コンパイラ組み込み関数
12.56 __usat16 コンパイラ組み込み関数
12.57 __usax コンパイラ組み込み関数
12.58 __usub16 コンパイラ組み込み関数
12.59 __usub8 コンパイラ組み込み関数
12.60 __uxtab16 コンパイラ組み込み関数
12.61 __uxtb16 コンパイラ組み込み関数
13 via ファイルの構文
13.1 via ファイルの概要
13.2 via ファイルの構文規則
14 GNU 言語拡張機能の概要の表
14.1 サポートされている GNU 拡張機能
15 標準 C の実装定義
15.1 実装定義
15.2 [変換]
15.3 環境
15.4 識別子
15.5 文字
15.6 整数
15.7 浮動小数点
15.8 配列とポインタ
15.9 レジスタ
15.10 構造体、共用体、列挙型、ビットフィールド
15.11 修飾子
15.12 式の評価
15.13 プリプロセッシングディレクティブ
15.14 ライブラリ関数
15.15 ISO C 標準で定義されていない動作
16 標準 C++ の実装定義
16.1 整数変換
16.2 純仮想関数の呼び出し
16.3 サポートされている主な言語機能
16.4 標準 C++ ライブラリの実装定義
17 C および C++ コンパイラの実装に関する制限
17.1 C++ ISO/IEC 標準に関する制限
17.2 整数値に関する制限
17.3 浮動小数点数に関する制限
18 NEON サポートの使用
18.1 NEON 組み込み関数の概要
18.2 ベクタのデータ型
18.3 NEON コンパイラ組み込み関数
18.4 加算の NEON 組み込み関数
18.5 乗算の NEON 組み込み関数
18.6 減算の NEON 組み込み関数
18.7 比較の NEON 組み込み関数
18.8 絶対差の NEON 組み込み関数
18.9 最大値と最小値の NEON 組み込み関数
18.10 対加算の NEON 組み込み関数
18.11 最大値の畳み込みの NEON 組み込み関数
18.12 最小値の畳み込みの NEON 組み込み関数
18.13 逆数と平方根の NEON 組み込み関数
18.14 符号付き変数によるシフトの NEON 組み込み関数
18.15 定数によるシフトの NEON 組み込み関数
18.16 シフトして挿入の NEON 組み込み関数
18.17 単一ベクタまたはレーンのロードの NEON 組み込み関数
18.18 単一ベクタまたはレーンをストアするための NEON 組み込み関数
18.19 n 要素構造体のロードの NEON 組み込み関数
18.20 ベクタからのレーンの抽出とレジスタへの挿入の NEON 組み込み関数
18.21 リテラルからの単一のベクタレーンのロードの NEON 組み込み関数
18.22 リテラルビットパターンからのベクタの初期化の NEON 組み込み関数
18.23 すべてのレーンを同じ値に設定するための NEON 組み込み関数
18.24 ベクタの結合の NEON 組み込み関数
18.25 ベクタの分割の NEON 組み込み関数
18.26 ベクタの変換の NEON 組み込み関数
18.27 テーブル検索の NEON 組み込み関数
18.28 拡張テーブル検索の NEON 組み込み関数
18.29 スカラ値での演算の NEON 組み込み関数
18.30 ベクタ抽出のための NEON 組み込み関数
18.31 ベクタ要素反転のための NEON コンパイラ組み込み関数(エンディアン方式のスワップ)
18.32 その他の単一オペランドの数学関数の NEON 組み込み関数
18.33 論理演算の NEON 組み込み関数
18.34 転置操作の NEON 組み込み関数
18.35 ベクタのキャスト操作用 NEON 組み込み関数
18.36 同等のコンパイラ組み込み関数のない NEON 命令
A コンパイラドキュメントに対する改訂
A.1 『armcc コンパイラユーザガイド』に対する改訂

図の一覧

2-1 GCC フォールバックプロセスの図
5-1 半精度浮動小数点形式
10-1 非パック構造体 S
10-2 パック構造体 SP
11-1 従来のパックされていない構造体の例
11-2 ビットフィールドの割り当て 1
11-3 ビットフィールドの割り当て 2
15-1 従来のパックされていない構造体の例
15-2 ビットフィールドの割り当て 1
15-3 ビットフィールドの割り当て 2

表の一覧

2-1 コンパイラで認識されるファイル名の接尾文字
2-2 インクルードファイルの検索パス
3-1 配列 A
3-2 配列 B
3-3 結果
3-4 ベクトル化可能なループとベクトル化不可能なループ
3-5 自動ベクトル化を制限または抑制する要因
5-1 インクリメントループとデクリメントループを表す C コード
5-2 インクリメントループとデクリメントループを表す C 逆アセンブリコード
5-3 未展開および展開されたビットカウントループを表す C コード
5-4 未展開および展開されたビットカウントループを表す逆アセンブリコード
5-5 非揮発バッファループと揮発バッファループを表す C コード
5-6 非揮発バッファループと揮発バッファループを表す逆アセンブリコード
5-7 純関数および非純関数を表す C コード
5-8 純関数および非純関数を表す逆アセンブリコード
5-9 コンパイラによるバイト境界整列でのデータオブジェクトの格納
5-10 パックされていない struct、パックされた struct、および個々にパックされたフィールドを使用した struct を表す C コード
5-11 パックされていない struct、パックされた struct、および個々にパックされたフィールドを使用した struct を表す逆アセンブリコード
5-12 パックされた struct とプラグマパックされた struct の C コード
5-13 浮動小数点リンケージと浮動小数点計算のコンパイラオプション
5-14 FPU オプションの機能と要件
5-15 プロセッサの暗黙の FPU
6-1 診断メッセージの重大度
6-2 診断メッセージの識別
7-1 インラインアセンブラと組み込みアセンブラの相違点
8-1 --asm オプションを使用したコンパイル
8-2 互換性のあるプロセッサまたはアーキテクチャの組み合わせ
8-3 サポートされている ARM アーキテクチャ
8-4 --interleave オプションを使用したコンパイル
8-5 -o オプションを使用したコンパイル
8-6 -o オプションを使用しないコンパイル
9-1 定数値のイニシャライザの動作(ISO 標準 C との比較)
10-1 ARM コンパイラがサポートするキーワード拡張
10-2 コンパイラがサポートする __declspec 属性および同等な属性
10-3 コンパイラがサポートする関数属性および同等のキーワード(または属性)
10-4 コンパイラによってサポートされている型属性および同等キーワード
10-5 コンパイラがサポートする変数属性および同等のキーワード
10-6 コンパイラがサポートするプラグマ
10-7 ARM コンパイラがサポートする命令の組み込み関数
10-8 __ldrex コンパイラ組み込み関数がサポートするアクセス幅
10-9 __ldrex コンパイラ組み込み関数がサポートするアクセス幅
10-10 __ldrt コンパイラ組み込み関数がサポートしているアクセス幅
10-11 __strex コンパイラ組み込み関数がサポートするアクセス幅
10-12 __strexd コンパイラ組み込み関数がサポートするアクセス幅
10-13 __strt コンパイラ組み込み関数がサポートするアクセス幅
10-14 __swp コンパイラ組み込み関数がサポートするアクセス幅
10-15 ARM Compilation Tools がサポートする ETSI の基本操作
10-16 ARM Compilation Tools で公開されている ETSI ステータスフラグ
10-17 コンパイルツールがサポートする TI C55x コンパイラ組み込み関数
10-18 FPSCR フラグの変更
10-19 ARM アーキテクチャベースのプロセッサで使用可能な名前付きレジスタ
10-20 浮動小数点ハードウェアを持つターゲットで使用可能な名前付きレジスタ
10-21 定義済みマクロ
10-22 Thumb アーキテクチャバージョンと ARM アーキテクチャバージョンの関連
10-23 組み込み変数
11-1 文字エスケープコード
11-2 データ型のサイズと境界整列
12-1 ARMv6 SIMD コンパイラ組み込み関数(接頭文字別)
12-2 ARMv6 SIMD 組み込み関数、要約説明、バイトレーン、影響を受けるフラグ
12-3 ARMv6 SIMD コンパイラ組み込み関数、互換性のあるプロセッサおよびアーキテクチャ
12-4 ARMv6 SIMD 命令の組み込み関数と APSR GE フラグ
14-1 サポートされている GNU 拡張機能
15-1 文字エスケープコード
16-1 サポートされている主な言語機能
17-1 実装に関する制限
17-2 整数の範囲
17-3 浮動小数点数に関する制限
17-4 浮動小数点数に関するその他の特性
18-1 ベクタのデータ型
18-2 同等のコンパイラ組み込み関数のない NEON 命令
A-1 発行 K と発行 L の相違点
A-2 発行 J と発行 K の相違点
A-3 発行 I と発行 J の相違点
A-4 発行 H と発行 I の相違点
A-5 発行 G と発行 H の相違点
A-6 発行 F と発行 G の相違点
A-7 発行 E と発行 F の相違点
A-8 発行 D と発行 E の相違点
A-9 発行 C と発行 D の相違点
A-10 発行 B と発行 C の相違点
A-11 発行 A と発行 B の相違点

リリース情報

ドキュメント履歴
発行 日付 機密保持ステータス 変更点
A 28 5 月 2010 非機密扱い ARM v4.1 リリース
B 30 9 月 2010 非機密扱い ARM v4.1 のアップデート 1
C 28 1 月 2011 非機密扱い ARM v4.1 パッチ 3 のアップデート 2
D 30 4 月 2011 非機密扱い ARM v5.0 リリース
E 29 7 月 2011 非機密扱い ARM v5.0 のアップデート 1
F 30 9 月 2011 非機密扱い ARM v5.01 リリース
G 29 2 月 2012 非機密扱い ARM v5.01 リリースのマニュアルアップデート 1
H 27 7 月 2012 非機密扱い ARM v5.02 リリース
I 31 1 月 2013 非機密扱い ARM v5.03 リリース
J 27 11 月 2013 非機密扱い ARM v5.04 リリース
K 10 9 月 2014 非機密扱い ARM v5.05 リリース
L 29 7 月 2015 非機密扱い ARM v5.06 リリース

Non-Confidential Proprietary Notice

This document is protected by copyright and other related rights and the practice or implementation of the information contained in this document may be protected by one or more patents or pending patent applications. No part of this document may be reproduced in any form by any means without the express prior written permission of ARM. No license, express or implied, by estoppel or otherwise to any intellectual property rights is granted by this document unless specifically stated.
Your access to the information in this document is conditional upon your acceptance that you will not use or permit others to use the information for the purposes of determining whether implementations infringe any third party patents.
THIS DOCUMENT IS PROVIDED “AS IS”. ARM PROVIDES NO REPRESENTATIONS AND NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE DOCUMENT. For the avoidance of doubt, ARM makes no representation with respect to, and has undertaken no analysis to identify or understand the scope and content of, third party patents, copyrights, trade secrets, or other rights.
This document may include technical inaccuracies or typographical errors.
TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL ARM BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF ANY USE OF THIS DOCUMENT, EVEN IF ARM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
This document consists solely of commercial items. You shall be responsible for ensuring that any use, duplication or disclosure of this document complies fully with any relevant export laws and regulations to assure that this document or any portion thereof is not exported, directly or indirectly, in violation of such export laws. Use of the word “partner” in reference to ARM’s customers is not intended to create or refer to any partnership relationship with any other company. ARM may make changes to this document at any time and without notice.
If any of the provisions contained in these terms conflict with any of the provisions of any signed written agreement covering this document with ARM, then the signed written agreement prevails over and supersedes the conflicting provisions of these terms. This document may be translated into other languages for convenience, and you agree that if there is any conflict between the English version of this document and any translation, the terms of the English version of the Agreement shall prevail.
Copyright © [2010-2015], ARM Limited or its affiliates. All rights reserved.
ARM Limited. Company 02557590 registered in England.
110 Fulbourn Road, Cambridge, England CB1 9NJ.
LES-PRE-20349

非機密著作権情報

本書は、著作権などの権利により保護されており、本書に含まれる手順または実装に関する情報は 1 つ以上の特許または申請中の特許により保護されている可能性があります。本書のいかなる部分も、ARM から事前に書面による明示的な承諾なく、 何らかの形式や方法で無断複製することは許可されていません。 特に記載がない限り、明示的であるか黙示的であるかを問わず、また禁反言やその他いかなる知的財産権のライセンスを許諾するものではありません。
本書の情報には、実装により、いかなる第三者の特許も侵害されないことを確認する目的で情報を使用せず、第三者にもそれを許可しないと承諾することを条件としてアクセスすることができます。
本書は、「現状」のまま提供されます。ARM は、明示的、黙示的、または制定法上のいずれを問わず、いかなる表明も保証も行いません。これには、本書に関連した商品性、品質基準、非侵害、または特定目的への適合性に関する黙示的保証を含むが、 これに限定されません。疑義を避けるため、ARM は第三者の特許、著作権、営業機密、または他の権利の範囲および内容に関して、いかなる表明も行わず、識別や理解のための分析も行いません。
本書には、技術的に不正確な箇所および誤記が含まれる場合があります。
法により禁止されていない限りにおいて、ARM は本書の使用により生じた直接的、間接的、特別、付随的、懲罰的、または結果的損害などを含むすべての損害に対して、たとえそのような損害の可能性が事前に告知されていた場合でも、その原因および責任理論の如何に関わらず一切の責任を 負わないものとします。
本書には、商品のみが含まれています。本書の使用、複製、または開示が関連するあらゆる輸出法および輸出規制に完全に準拠し、本書が全体であれ一部であれ、該当する輸出法に違反して直接的または間接的に輸出されることがないことを保証する 責任を負うものとします。ARM のお客様に関連して「パートナー」という言葉が使用されている場合でも、他会社と提携関係を設立することや、言及することを意図するものではありません。ARM は、通知することなくいつでも本書を変更することができます。
本契約のいずれかの規定と、ARM と締結された本書の内容を含む署名済みの書面契約の間に矛盾がある場合、署名済みの書面契約を本契約の規定より優先するものとします。本書は、 便宜上、他言語に翻訳される場合がありますが、本書の英語版と翻訳との間に矛盾がある場合、契約書の英語版に含まれる規定を優先することに同意するものとします。
記号 ( ® または ™ ) が付いた言葉およびロゴは、ARM Limited や関連会社の EU またはその他の国における登録商標および商標です。All rights reserved.本書に記載されている他の製品名は、各社の所有する商標です。ARM の 商標の使用に関する次のガイドラインに従ってください。 http://www.arm.com/about/trademark-usage-guidelines.php
Copyright © [2010-2015], ARM Limited or its affiliates. All rights reserved.
ARM Limited. Company 02557590 registered in England.
110 Fulbourn Road, Cambridge, England CB1 9NJ.
LES-PRE-20349

補記

本書の一部の情報は、『IEEE 754 - 1985 IEEE Standard for Binary Floating-Point Arithmetic』に基づいています。記載されている方法による配置と使用から生じる責任または義務を IEEE では一切放棄しています。

機密保持ステータス

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

製品ステータス

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

Web アドレス

非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.