arm® コンパイラ armcc...

1009
ARM ® コンパイラ バージョン 5.04 armcc ユーザガイド Copyright © 2010-2013 ARM.All rights reserved. ARM DUI0472JJ

Upload: others

Post on 24-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • ARM® コンパイラバージョン 5.04

    armcc ユーザガイド

    Copyright © 2010-2013 ARM.All rights reserved.ARM DUI0472JJ

  • ARM® コンパイラarmcc ユーザガイドCopyright © 2010-2013 ARM.All rights reserved.

    リリース情報

    ドキュメント履歴

    発行 日付 機密保持ステータス 変更点

    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 16 12 月 2013 非機密扱い ARM コンパイラ v5.04 リリース

    著作権

    ® または ™ のマークが付いた言葉およびロゴは、 この著作権情報で別段に規定されている場合を除き、ARM® の EUまたはその他の国に おける登録商標および商標です。本書に記載されている他の製品名は、 各社の所有する商標です。

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

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

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

    ARM という用語が使用されている場合、"ARM または必要に応じてその子会社" を指します。

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

    機密保持ステータス

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

    無制限アクセスは、ARM 社内による分類です。

    製品ステータス

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

    Web アドレス

    www.arm.com

    ARM® コンパイラ

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 2非機密扱い

    http://www.arm.com

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

    序章本書について ....................................................... ....................................................... 26ご意見、ご感想 ............................................................................................................ 29

    第 章 1 コンパイラの概要1.1 コンパイラ ........................................................ ........................................................ 1-311.2 コンパイラのソース言語モード ......................................... ......................................... 1-321.3 ISO C90 ......................................................... ......................................................... 1-331.4 ISO C99 ......................................................... ......................................................... 1-341.5 ISO C++ .................................................................................................................. 1-351.6 言語拡張機能 ..................................................... ..................................................... 1-361.7 言語標準の準拠 ................................................... ................................................... 1-371.8 C ライブラリと C++ ライブラリ .................................................................................... 1-38

    第 章 2 コンパイラの使い方2.1 コンパイラのコマンドライン構文 ........................................ ........................................ 2-412.2 コンパイラコマンドラインオプションのグループ別一覧 ........................ ........................ 2-422.3 コンパイラのデフォルトの動作 ......................................... ......................................... 2-482.4 コンパイラコマンドラインオプションの順序 .................................................................. 2-492.5 stdin を使用したコンパイラへのソースコードの入力 ......................... ......................... 2-502.6 stdout への出力の転送 ............................................................................................ 2-522.7 コンパイラで認識されるファイル名の接尾文字 ............................. ............................. 2-532.8 コンパイラ出力ファイル .............................................. .............................................. 2-552.9 コンパイラによるヘッダファイルの検索に影響を与える要因 ........................................ 2-56

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 3非機密扱い

  • 2.10 コンパイラコマンドラインオプションと検索パス ............................................................ 2-572.11 コンパイラの検索規則と現在の場所 .......................................................................... 2-582.12 ARMCC5INC 環境変数 ............................................. ............................................. 2-592.13 別々にコンパイルおよびアセンブルしたモジュールとのコードの互換性 ........... ........... 2-602.14 アプリケーションをビルドする場合の GCC フォールバックの使用 ............... ............... 2-612.15 コンパイル中のリンカフィードバック ............................................................................ 2-632.16 未使用の関数コード .................................................................................................. 2-642.17 コンパイル中に未使用の関数を削除してコードサイズを最小化する ............................ 2-652.18 コンパイルビルド時間 ............................................... ............................................... 2-672.19 コンパイルビルド時間を短縮する ....................................... ....................................... 2-682.20 armcc の 1 回の呼び出しでコンパイルビルド時間を短縮する .................. .................. 2-702.21 コンパイルビルド時間に対する --multifile の影響 ........................... ........................... 2-712.22 並列の make 処理を使用してコンパイルビルド時間を短縮する .................................. 2-722.23 コンパイルビルド時間とオペレーティングシステムの選択 ..................... ..................... 2-73

    第 章 3 NEON ベクトル化コンパイラの使用3.1 NEON テクノロジ ...................................................................................................... 3-763.2 NEON ユニット .................................................... .................................................... 3-773.3 NEON のコードの記述方法 ........................................... ........................................... 3-793.4 C または C++ コードからの NEON 命令の生成 ............................ ............................ 3-803.5 NEON の C 拡張機能 .............................................................................................. 3-813.6 自動ベクトル化 .................................................... .................................................... 3-823.7 ベクトル化可能なループ内のデータ参照 ................................. ................................. 3-833.8 ストライドパターンとデータアクセス ............................................................................ 3-843.9 NEON ベクトル化によるパフォーマンスに影響を与える要因 ...................................... 3-853.10 NEON ベクトル化によるパフォーマンスの目標 .......................................................... 3-863.11 ベクトル化のために推奨されるループ構造 ................................ ................................ 3-873.12 コードをベクトル化するときのデータの依存関係による競合 ........................................ 3-883.13 キャリーアラウンドスカラ変数とベクトル化 ................................ ................................ 3-893.14 ベクタのスカラへの縮退 ............................................................................................ 3-903.15 ポインタを含むループのベクトル化 ............................................................................ 3-913.16 ポインタおよび間接アドレス指定を含むループの非ベクトル化 .................................... 3-923.17 条件付き終了の非ベクトル化 .................................................................................... 3-933.18 ベクトル化可能なループ繰り返し回数 ........................................................................ 3-943.19 __promise(expr) によるコンパイラへのループ繰り返し回数の指定 ............................ 3-963.20 ベクトル化のための構造体へのアクセスのグループ化 ....................... ....................... 3-973.21 ベクトル化と struct メンバの長さ ....................................... ....................................... 3-983.22 ループ内からの非インライン関数への関数呼び出しの非ベクトル化 ............. ............. 3-993.23 条件付きステートメントと効率的なベクトル化 ............................. ............................. 3-1003.24 ベクトル化診断を使用してコードを調整し、パフォーマンスを改善する ........... ........... 3-1013.25 ベクトル化可能なコードの例 .................................................................................... 3-1033.26 DSP のベクトル化可能なコードの例 ........................................................................ 3-1053.27 自動ベクトル化を制限または抑制する要因 .............................................................. 3-107

    第 章 4 コンパイラの機能4.1 コンパイラ組み込み関数 ............................................ ............................................ 4-1124.2 コンパイラ組み込み関数のパフォーマンス上の利点 ........................ ........................ 4-1134.3 ARM アセンブラ命令の組み込み ............................................................................ 4-1144.4 汎用のコンパイラ組み込み関数 ....................................... ....................................... 4-115

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 4非機密扱い

  • 4.5 IRQ 割り込みと FIQ 割り込みの制御のためのコンパイラ組み込み関数 ......... ......... 4-1164.6 最適化バリアの挿入のためのコンパイラ組み込み関数 ............................................ 4-1174.7 ネイティブ命令の挿入のためのコンパイラ組み込み関数 .......................................... 4-1184.8 デジタル信号処理(DSP)のためのコンパイラ組み込み関数 .................. .................. 4-1194.9 European Telecommunications Standards Institute(ETSI)の基本操作に対するコンパイ

    ラサポート ....................................................... ....................................................... 4-1204.10 C および C++ コードのオーバーフローおよびキャリーステータスフラグ .......... .......... 4-1224.11 C コードの最適化のための Texas Instruments(TI)C55x コンパイラ組み込み関数 4-1234.12 コンパイラで提供される NEON 組み込み関数 ............................ ............................ 4-1254.13 NEON コンパイラ組み込み関数の使用 ................................. ................................. 4-1264.14 名前付きレジスタ変数を使用したレジスタへのアクセスに対するコンパイラサポート . . 4-1274.15 コンパイラで認識されるプラグマ .............................................................................. 4-1294.16 ビットバンディングに対するコンパイラおよびプロセッササポート ............... ............... 4-1314.17 __attribute__((bitband)) コンパイラ型属性 .............................. .............................. 4-1324.18 --bitband コンパイラコマンドラインオプション ............................. ............................. 4-1334.19 ビットバンド領域の外に配置されたビットバンドオブジェクトをコンパイラが処理する方法 ....

    ............................................................................................................................... 4-1344.20 スレッドローカルストレージに対するコンパイラサポート ...................... ...................... 4-1354.21 リテラルプールに対するコンパイラサポート .............................................................. 4-1364.22 コンパイラの 8 バイト境界整列機能 .................................... .................................... 4-1374.23 シンボルバージョンに対するコンパイラおよびリンカサポートの使用 .......................... 4-1384.24 プリコンパイルヘッダ(PCH)ファイル ................................... ................................... 4-1394.25 プリコンパイルヘッダ(PCH)ファイルの自動処理 .......................... .......................... 4-1404.26 プリコンパイルヘッダ(PCH)ファイル処理とヘッダストップポイント .............. .............. 4-1414.27 プリコンパイルヘッダ(PCH)ファイルの作成要件 .......................... .......................... 4-1424.28 複数のプリコンパイルヘッダ(PCH)ファイルを使用したコンパイル ............................ 4-1434.29 廃止されたプリコンパイルヘッダ(PCH)ファイル ........................... ........................... 4-1444.30 プリコンパイルヘッダ(PCH)ファイルのファイル名と場所の手動による指定 ....... ....... 4-1454.31 プリコンパイルヘッダ(PCH)ファイル処理の選択的な適用 ................... ................... 4-1464.32 プリコンパイルヘッダ(PCH)ファイル処理の抑止 .......................... .......................... 4-1474.33 プリコンパイルヘッダ(PCH)処理中のメッセージ出力 ....................... ....................... 4-1484.34 プリコンパイルヘッダ(PCH)ファイルのパフォーマンスに関する問題点 .......... .......... 4-1494.35 最適化レベルの影響を受けるデフォルトのコンパイラオプション ................................ 4-150

    第 章 5 コンパイラのコーディング慣行5.1 最適化コンパイラとしてのコンパイラ ........................................................................ 5-1545.2 コンパイラによるサイズの最適化と処理速度の最適化 ...................... ...................... 5-1555.3 コンパイラ最適化レベルとデバッグビュー ................................ ................................ 5-1565.4 コンパイル時のターゲットプロセッサの選択 .............................. .............................. 5-1595.5 ベアメタル用の NEON および FPU の有効化 ............................ ............................ 5-1605.6 C コードのループ終了の最適化 .............................................................................. 5-1615.7 C コードのループの展開 ............................................ ............................................ 5-1635.8 コンパイラの最適化と volatile キーワード ................................................................ 5-1655.9 コードメトリック ........................................................................................................ 5-1675.10 コードサイズとデータサイズの測定用コードメトリック ........................ ........................ 5-1685.11 C および C++ のスタックの使用 .............................................................................. 5-1695.12 オブジェクトおよびライブラリにおけるデバッグ情報を削減するメリット ........... ........... 5-1715.13 オブジェクトおよびライブラリにおけるデバッグ情報を削減する方法 .......................... 5-1725.14 ヘッダファイルの複数のインクルードに対する保護 ......................... ......................... 5-173

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 5非機密扱い

  • 5.15 関数のパラメータ受け渡しに伴うオーバーヘッドを最小化するための方法 ........ ........ 5-1745.16 レジスタを介した関数からの構造体の復帰 .............................................................. 5-1755.17 同じ引数を使用して呼び出されたときに同じ結果を返す関数 .................................... 5-1765.18 純関数と非純関数の比較 ........................................... ........................................... 5-1775.19 関数を ARM 関数修飾子で修飾するときの後置構文に関する推奨事項 ......... ......... 5-1785.20 インライン関数 ........................................................................................................ 5-1795.21 関数のインライン展開に関するコンパイラによる決定 ....................... ....................... 5-1805.22 関数の自動インライン展開とスタティック関数 ............................. ............................. 5-1825.23 インライン関数と、リンク時における未使用のアウトオブライン関数の削除 ........ ........ 5-1835.24 関数の自動インライン展開とマルチファイルのコンパイル .................... .................... 5-1845.25 関数のインライン展開に関するコンパイラの決定をオーバーライドすることの制限 .. .. 5-1855.26 コンパイラモードとインライン関数 ...................................... ...................................... 5-1865.27 C++ および C90 モードでのインライン関数 .............................. .............................. 5-1875.28 C99 モードでのインライン関数 ................................................................................ 5-1885.29 インライン関数とデバッグ ........................................................................................ 5-1905.30 データ境界整列のタイプ ............................................ ............................................ 5-1915.31 自然なデータ境界整列のメリット .............................................................................. 5-1925.32 コンパイラによる自然なバイト境界整列でのデータオブジェクトの格納 ........... ........... 5-1935.33 コンパイル時の自然なデータ境界整列の関連性 ...................................................... 5-1945.34 C および C++ コードでの非境界整列データアクセス ................................................ 5-1955.35 C および C++ コードでの __packed 修飾子と非境界整列型のデータアクセス .... .... 5-1965.36 構造体に含まれる非境界整列型フィールド .............................................................. 5-1975.37 構造体全体を packed として宣言する場合のパフォーマンスの低下 ............ ............ 5-1985.38 C および C++ コードでの非境界整列ポインタ .......................................................... 5-1995.39 コンパイラによって生成される非境界整列型レジスタロード(LDR)命令 .......... .......... 5-2005.40 パックされていない struct、__packed struct、個々の __packed フィールドを使用した

    struct の比較と、__packed struct と #pragma でパックされた struct の比較 ..... ..... 5-2015.41 浮動小数点演算に対するコンパイラサポート ............................. ............................. 5-2045.42 デフォルトで選択されるハードウェアまたはソフトウェアによる浮動小数点サポート .... 5-2065.43 浮動小数点演算に関するハードウェアサポートとソフトウェアサポートの違いの例 .. .. 5-2075.44 ベクタ浮動小数点(VFP)アーキテクチャ .................................................................. 5-2085.45 浮動小数点演算のハードウェアによる処理に関する制限 .................... .................... 5-2105.46 ベクタ浮動小数点(VFP)サポートコードの実装 ........................................................ 5-2115.47 半精度浮動小数点数に対するコンパイラおよびライブラリサポート ............. ............. 5-2135.48 半精度浮動小数点数の形式 ......................................... ......................................... 5-2145.49 浮動小数点計算と浮動小数点リンケージに対するコンパイラサポート ........... ........... 5-2165.50 浮動小数点リンケージの種類 ........................................ ........................................ 5-2175.51 浮動小数点リンケージと浮動小数点計算のコンパイラオプション .............................. 5-2185.52 コンパイラオプションの浮動小数点リンケージと浮動小数点計算の要件 ......... ......... 5-2215.53 プロセッサおよび暗黙の浮動小数点ユニット(FPU) ........................ ........................ 5-2235.54 C コードのゼロによる整数除算エラー ...................................................................... 5-2275.55 __aeabi_idiv0() を使用したゼロによる整数除算エラーのトラップについて ................ 5-2285.56 __rt_raise() を使用したゼロによる整数除算エラーのトラップについて ...................... 5-2295.57 C コードのゼロによる整数除算エラーの識別 ............................. ............................. 5-2305.58 C コードでゼロによる整数除算エラーが発生した場合のパラメータの検証 ........ ........ 5-2315.59 C コードのソフトウェアでのゼロによる浮動小数点除算エラー ................. ................. 5-2325.60 ソフトウェアでのゼロによる浮動小数点除算エラーのトラップについて ........... ........... 5-2335.61 ソフトウェアでのゼロによる浮動小数点除算エラーの識別 ........................................ 5-2345.62 ソフトウェアでのゼロによる浮動小数点除算エラーのデバッグ .................................. 5-235

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 6非機密扱い

  • 5.63 C99 の新しい言語機能 ............................................. ............................................. 5-2365.64 C99 の新しいライブラリ機能 ......................................... ......................................... 5-2385.65 C99 および C90 の // コメント ........................................ ........................................ 5-2395.66 C99 の複合リテラル ............................................... ............................................... 5-2405.67 C99 の指定済みのイニシャライザ ..................................... ..................................... 5-2415.68 C99 の 16 進浮動小数点数 .................................................................................... 5-2425.69 C99 のフレキシブル配列メンバ ....................................... ....................................... 5-2435.70 C99 の __func__ 定義済み識別子 .................................... .................................... 5-2445.71 C99 の inline 関数 ................................................ ................................................ 5-2455.72 C99 および C90 の long long データ型 ................................. ................................. 5-2465.73 C99 の使用する引数の数が一定でないマクロ ............................ ............................ 5-2475.74 C99 の宣言とステートメントの混合 .......................................................................... 5-2485.75 C99 の選択および反復ステートメントの新しいブロック有効範囲 ............... ............... 5-2495.76 C99 の _Pragma 処理命令 .................................................................................... 5-2505.77 C99 の制限付きポインタ ............................................ ............................................ 5-2515.78 C99 の の追加の数学ライブラリ関数 ........................... ........................... 5-2525.79 C99 の複素数 ........................................................................................................ 5-2535.80 C99 のブール型と ....................................... ....................................... 5-2545.81 C99 の および の拡張整数型と関数 .................................. 5-2555.82 C99 の 浮動小数点環境アクセス .............................. .............................. 5-2565.83 C99 の の snprintf 関数ファミリ ............................... ............................... 5-2575.84 C99 の の型汎用数学マクロ ................................................................ 5-2585.85 C99 の のワイドキャラクタ I/O 関数 ........................... ........................... 5-2595.86 未初期化データがゼロで初期化されないようにする方法 .......................................... 5-260

    第 章 6 コンパイラ診断メッセージ6.1 コンパイラ診断メッセージの重大度 .......................................................................... 6-2626.2 コンパイラ診断メッセージの重大度を変更するオプション .......................................... 6-2636.3 プラグマを使用したコンパイラの診断メッセージの制御 ...................... ...................... 6-2656.4 コンパイラ診断メッセージの接頭文字 ................................... ................................... 6-2666.5 コンパイラ終了ステータスコードと終了メッセージ .......................... .......................... 6-2676.6 コンパイラデータフロー警告 .......................................... .......................................... 6-268

    第 章 7 ARM コンパイラのインラインアセンブラと組み込みアセンブラの使用7.1 インラインアセンブリ言語に対するコンパイラサポート ....................... ....................... 7-2717.2 コンパイラでのインラインアセンブラのサポート ............................ ............................ 7-2727.3 コンパイラでのインラインアセンブラのサポートに対する制限 .................................... 7-2737.4 C および C++ の __asm キーワードを使用したインラインアセンブリ言語構文 .......... 7-2747.5 C++ の asm キーワードを使用したインラインアセンブリ言語構文 .............. .............. 7-2757.6 __asm および asm コンパイラキーワードのインラインアセンブラ規則 ........... ........... 7-2767.7 C および C++ コードのインラインアセンブリ演算の制限 ..................... ..................... 7-2777.8 C および C++ コードのインラインアセンブラのレジスタの制限 .................................. 7-2787.9 C および C++ コードのインラインアセンブラのプロセッサモードの制限 .......... .......... 7-2797.10 C および C++ コードのインラインアセンブラの Thumb 命令セットの制限 ........ ........ 7-2807.11 C および C++ コードのインラインアセンブラのベクタ浮動小数点(VFP)の制限 .... .... 7-2817.12 C および C++ コードのインラインアセンブラの命令の制限 ................... ................... 7-2827.13 C および C++ コードのその他のインラインアセンブラの制限 ................. ................. 7-2837.14 C および C++ コードのインラインアセンブラおよびレジスタアクセス ............ ............ 7-2847.15 C および C++ コードのインラインアセンブラおよび # 定数式指定子 ............ ............ 7-286

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 7非機密扱い

  • 7.16 C および C++ コードのインラインアセンブラおよび命令の展開 ................ ................ 7-2877.17 定数を使用するインラインアセンブラ命令の展開 .......................... .......................... 7-2887.18 インラインアセンブラのロード/ストア命令の展開 ........................... ........................... 7-2897.19 C および C++ コードのプロセッサ条件フラグに対するインラインアセンブラの効果 .... 7-2907.20 C および C++ コードのインラインアセンブラの式オペランド ...................................... 7-2917.21 C および C++ コードのインラインアセンブラのレジスタリストのオペランド ........ ........ 7-2927.22 C および C++ コードのインラインアセンブラのイミディエートオペランド .......... .......... 7-2937.23 C および C++ コードのインラインアセンブラの関数呼び出しと分岐 ............. ............. 7-2947.24 C および C++ コードのインラインアセンブラの分岐とラベル .................. .................. 7-2967.25 インラインアセンブラと仮想レジスタ .................................... .................................... 7-2977.26 コンパイラでの組み込みアセンブラのサポート ............................ ............................ 7-2987.27 C および C++ の組み込みアセンブラ構文 ............................... ............................... 7-2997.28 コンパイラの ARM ステートおよび Thumb ステートの組み込みアセンブラに対する影響 ....

    ............................................................................................................................... 7-3007.29 C および C++ コードの組み込みアセンブリ言語関数の制限 .................................... 7-3017.30 コンパイラによる組み込みアセンブリ言語関数の生成 .............................................. 7-3027.31 組み込みアセンブラからの C および C++ のコンパイル時の定数式へのアクセス .. .. 7-3037.32 組み込みアセンブラと C/C++ との式の相違点 ............................ ............................ 7-3047.33 組み込みアセンブラの手動による多重定義の解決 ......................... ......................... 7-3057.34 組み込みアセンブラの関連ベースクラスの __offsetof_base キーワード ......... ......... 7-3067.35 組み込みアセンブラのクラスメンバ関数を呼び出すためのコンパイラでサポートされている

    キーワード .............................................................................................................. 7-3077.36 __mcall_is_virtual(D, f) ............................................ ............................................ 7-3087.37 __mcall_is_in_vbase(D, f) .......................................... .......................................... 7-3097.38 __mcall_offsetof_vbase(D, f) ........................................ ........................................ 7-3107.39 __mcall_this_offset(D, f) ........................................... ........................................... 7-3117.40 __vcall_offsetof_vfunc(D, f) ......................................... ......................................... 7-3127.41 組み込みアセンブラの非スタティックメンバ関数の呼び出し ................... ................... 7-3137.42 非仮想メンバ関数の呼び出し .................................................................................. 7-3147.43 仮想メンバ関数の呼び出し .......................................... .......................................... 7-3157.44 sp(r13)、lr(r14)、および pc(r15)へのアクセス ........................... ........................... 7-3167.45 インラインアセンブリコードと組み込みアセンブリコードのコンパイラサポートにおける相違

    点 ............................................................. ............................................................. 7-317

    第 章 8 コンパイラのコマンドラインオプション8.1 -Aopt .......................................................... .......................................................... 8-3238.2 --allow_fpreg_for_nonfpdata、--no_allow_fpreg_for_nonfpdata ............................ 8-3248.3 --allow_null_this、--no_allow_null_this .................................................................. 8-3258.4 --alternative_tokens、--no_alternative_tokens ........................... ........................... 8-3268.5 --anachronisms、--no_anachronisms .................................................................... 8-3278.6 --apcs=qualifier...qualifier ...................................................................................... 8-3288.7 --arm .......................................................... .......................................................... 8-3338.8 --arm_linux ............................................................................................................ 8-3348.9 --arm_linux_config_file=path ........................................ ........................................ 8-3368.10 --arm_linux_configure ............................................. ............................................. 8-3378.11 --arm_linux_paths ................................................ ................................................ 8-3398.12 --arm_only ...................................................... ...................................................... 8-3418.13 --asm .......................................................... .......................................................... 8-3428.14 --asm_dir=directory_name .................................................................................... 8-344

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 8非機密扱い

  • 8.15 --autoinline、--no_autoinline .................................................................................. 8-3458.16 --bigend ........................................................ ........................................................ 8-3468.17 --bitband ................................................................................................................ 8-3478.18 --branch_tables、--no_branch_tables .................................................................... 8-3488.19 --brief_diagnostics、--no_brief_diagnostics ............................. ............................. 8-3498.20 --bss_threshold=num ............................................................................................ 8-3508.21 -c ............................................................. ............................................................. 8-3528.22 -C ............................................................. ............................................................. 8-3538.23 --c90 ...................................................................................................................... 8-3548.24 --c99 ...................................................................................................................... 8-3558.25 --code_gen、--no_code_gen ........................................ ........................................ 8-3568.26 --compatible=name ............................................... ............................................... 8-3578.27 --compile_all_input、--no_compile_all_input ............................ ............................ 8-3598.28 --conditionalize、--no_conditionalize .................................. .................................. 8-3608.29 --configure_cpp_headers=path ...................................... ...................................... 8-3618.30 --configure_extra_includes=paths .................................... .................................... 8-3628.31 --configure_extra_libraries=paths .................................... .................................... 8-3638.32 --configure_gas=path ............................................................................................ 8-3648.33 --configure_gcc=path ............................................................................................ 8-3658.34 --configure_gcc_version=version .......................................................................... 8-3668.35 --configure_gld=path .............................................. .............................................. 8-3678.36 --configure_sysroot=path ...................................................................................... 8-3688.37 --cpp ...................................................................................................................... 8-3698.38 --cpu=list ....................................................... ....................................................... 8-3708.39 --cpu=name コンパイラオプション ..................................... ..................................... 8-3718.40 --create_pch=filename .......................................................................................... 8-3758.41 -Dname[(parm-list)][=def] ...................................................................................... 8-3768.42 --data_reorder、--no_data_reorder ........................................................................ 8-3788.43 --debug、--no_debug .............................................. .............................................. 8-3798.44 --debug_macros、--no_debug_macros ................................ ................................ 8-3808.45 --default_definition_visibility=visibility .................................................................... 8-3818.46 --default_extension=ext ............................................ ............................................ 8-3828.47 --dep_name、--no_dep_name ....................................... ....................................... 8-3838.48 --depend=filename ................................................................................................ 8-3848.49 --depend_dir=directory_name ....................................... ....................................... 8-3858.50 --depend_format=string ............................................ ............................................ 8-3868.51 --depend_single_line、--no_depend_single_line ......................... ......................... 8-3888.52 --depend_system_headers、--no_depend_system_headers ................................ 8-3898.53 --depend_target=target ............................................ ............................................ 8-3908.54 --device=list ..................................................... ..................................................... 8-3918.55 --device=name ...................................................................................................... 8-3928.56 --diag_error=tag[,tag,...] ........................................................................................ 8-3938.57 --diag_remark=tag[,tag,...] .......................................... .......................................... 8-3948.58 --diag_style=arm|ide|gnu コンパイラオプション ........................... ........................... 8-3958.59 --diag_suppress=tag[,tag,...] ........................................ ........................................ 8-3968.60 --diag_suppress=optimizations ...................................... ...................................... 8-3978.61 --diag_warning=tag[,tag,...] ......................................... ......................................... 8-3988.62 --diag_warning=optimizations ....................................... ....................................... 8-3998.63 --dllexport_all、--no_dllexport_all ..................................... ..................................... 8-400

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 9非機密扱い

  • 8.64 --dllimport_runtime、--no_dllimport_runtime .......................................................... 8-4018.65 --dollar、--no_dollar ............................................... ............................................... 8-4028.66 --dwarf2 ........................................................ ........................................................ 8-4038.67 --dwarf3 ........................................................ ........................................................ 8-4048.68 -E ............................................................. ............................................................. 8-4058.69 --echo .................................................................................................................... 8-4068.70 --emit_frame_directives、--no_emit_frame_directives ..................... ..................... 8-4078.71 --enum_is_int .................................................... .................................................... 8-4088.72 --errors=filename ................................................. ................................................. 8-4098.73 --exceptions、--no_exceptions ....................................... ....................................... 8-4108.74 --exceptions_unwind、--no_exceptions_unwind .................................................... 8-4118.75 --execstack、--no_execstack ........................................ ........................................ 8-4128.76 --execute_only ................................................... ................................................... 8-4138.77 --export_all_vtbl、--no_export_all_vtbl ................................. ................................. 8-4148.78 --export_defs_implicitly、--no_export_defs_implicitly ............................................ 8-4158.79 --extended_initializers、--no_extended_initializers ................................................ 8-4168.80 --feedback=filename .............................................. .............................................. 8-4178.81 --float_literal_pools、--no_float_literal_pools ............................ ............................ 8-4188.82 --force_new_nothrow、--no_force_new_nothrow .................................................. 8-4198.83 --forceinline ..................................................... ..................................................... 8-4208.84 --fp16_format=format ............................................................................................ 8-4218.85 --fpmode=model .................................................................................................... 8-4228.86 --fpu=list ................................................................................................................ 8-4248.87 --fpu=name コンパイラオプション ............................................................................ 8-4258.88 --friend_injection、--no_friend_injection ................................ ................................ 8-4288.89 -g ............................................................. ............................................................. 8-4298.90 --global_reg=reg_name[,reg_name,...] ................................ ................................ 8-4308.91 --gnu ...................................................................................................................... 8-4318.92 --gnu_defaults ................................................... ................................................... 8-4328.93 --gnu_instrument、--no_gnu_instrument ............................... ............................... 8-4348.94 --gnu_version=version ............................................. ............................................. 8-4358.95 --guiding_decls、--no_guiding_decls .................................. .................................. 8-4368.96 --help .......................................................... .......................................................... 8-4378.97 --hide_all、--no_hide_all ........................................................................................ 8-4388.98 -Idir[,dir,...] ...................................................... ...................................................... 8-4398.99 --ignore_missing_headers .......................................... .......................................... 8-4408.100 --implicit_include、--no_implicit_include ................................................................ 8-4418.101 --implicit_include_searches、--no_implicit_include_searches ............... ............... 8-4428.102 --implicit_key_function、--no_implicit_key_function ....................... ....................... 8-4438.103 --implicit_typename、--no_implicit_typename ........................... ........................... 8-4448.104 --import_all_vtbl .................................................. .................................................. 8-4458.105 --info=totals ..................................................... ..................................................... 8-4468.106 --inline、--no_inline ................................................................................................ 8-4478.107 --integer_literal_pools, --no_integer_literal_pools ........................ ........................ 8-4488.108 --interface_enums_are_32_bit .............................................................................. 8-4498.109 --interleave ............................................................................................................ 8-4508.110 -Jdir[,dir,...] ............................................................................................................ 8-4518.111 --kandr_include .................................................. .................................................. 8-4528.112 -Lopt ...................................................................................................................... 8-453

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 10非機密扱い

  • 8.113 --library_interface=lib .............................................. .............................................. 8-4548.114 --library_type=lib ................................................. ................................................. 8-4578.115 --licretry ........................................................ ........................................................ 8-4588.116 --link_all_input、--no_link_all_input ................................... ................................... 8-4598.117 --list ........................................................... ........................................................... 8-4608.118 --list_dir=directory_name ........................................... ........................................... 8-4628.119 --list_macros .................................................... .................................................... 8-4638.120 --littleend ....................................................... ....................................................... 8-4648.121 --locale=lang_country ............................................................................................ 8-4658.122 --long_long ............................................................................................................ 8-4668.123 --loop_optimization_level=opt ....................................... ....................................... 8-4678.124 --loose_implicit_cast .............................................. .............................................. 8-4688.125 --lower_ropi、--no_lower_ropi ................................................................................ 8-4698.126 --lower_rwpi、--no_lower_rwpi ....................................... ....................................... 8-4708.127 -M .......................................................................................................................... 8-4718.128 --md ........................................................... ........................................................... 8-4728.129 --message_locale=lang_country[.codepage] ........................................................ 8-4738.130 --min_array_alignment=opt ......................................... ......................................... 8-4748.131 --mm ...................................................................................................................... 8-4758.132 --multibyte_chars、--no_multibyte_chars ............................... ............................... 8-4768.133 --multifile, --no_multifile ............................................ ............................................ 8-4778.134 --multiply_latency=cycles ...................................................................................... 8-4788.135 --narrow_volatile_bitfields .......................................... .......................................... 8-4798.136 --nonstd_qualifier_deduction、--no_nonstd_qualifier_deduction ............. ............. 8-4808.137 -o filename ...................................................... ...................................................... 8-4818.138 -Onum ......................................................... ......................................................... 8-4838.139 --old_specializations、--no_old_specializations .......................... .......................... 8-4868.140 --old_style_preprocessing .......................................... .......................................... 8-4878.141 -Ospace ........................................................ ........................................................ 8-4888.142 -Otime ......................................................... ......................................................... 8-4898.143 --output_dir=directory_name ........................................ ........................................ 8-4908.144 -P ............................................................. ............................................................. 8-4918.145 --parse_templates、--no_parse_templates ............................................................ 8-4928.146 --pch ...................................................................................................................... 8-4938.147 --pch_dir=dir .......................................................................................................... 8-4948.148 --pch_messages、--no_pch_messages ................................ ................................ 8-4958.149 --pch_verbose、--no_pch_verbose ........................................................................ 8-4968.150 --pending_instantiations=n .................................................................................... 8-4978.151 --phony_targets .................................................. .................................................. 8-4988.152 --pointer_alignment=num ...................................................................................... 8-4998.153 --preinclude=filename ............................................. ............................................. 8-5008.154 --preprocess_assembly ............................................ ............................................ 8-5018.155 --preprocessed ...................................................................................................... 8-5028.156 --protect_stack、--no_protect_stack ...................................................................... 8-5038.157 --reassociate_saturation、--no_reassociate_saturation .................... .................... 8-5048.158 --reduce_paths、--no_reduce_paths .................................. .................................. 8-5058.159 --relaxed_ref_def、--no_relaxed_ref_def ............................... ............................... 8-5068.160 --remarks ....................................................... ....................................................... 8-5078.161 --remove_unneeded_entities、--no_remove_unneeded_entities .......................... 8-508

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 11非機密扱い

  • 8.162 --restrict、--no_restrict ............................................. ............................................. 8-5098.163 --retain=option ................................................... ................................................... 8-5108.164 --rtti、--no_rtti .................................................... .................................................... 8-5118.165 --rtti_data、--no_rtti_data ........................................... ........................................... 8-5128.166 -S ............................................................. ............................................................. 8-5138.167 --shared ........................................................ ........................................................ 8-5148.168 --show_cmdline .................................................. .................................................. 8-5158.169 --signed_bitfields、--unsigned_bitfields ................................ ................................ 8-5168.170 --signed_chars、--unsigned_chars ........................................................................ 8-5178.171 --split_ldm ...................................................... ...................................................... 8-5188.172 --split_sections ...................................................................................................... 8-5198.173 --strict、--no_strict .................................................................................................. 8-5208.174 --strict_warnings .................................................................................................... 8-5228.175 --string_literal_pools、--no_string_literal_pools .......................... .......................... 8-5238.176 --sys_include .................................................... .................................................... 8-5248.177 --thumb .................................................................................................................. 8-5258.178 --translate_g++ ...................................................................................................... 8-5268.179 --translate_gcc ................................................... ................................................... 8-5288.180 --translate_gld ................................................... ................................................... 8-5308.181 --trigraphs、--no_trigraphs .......................................... .......................................... 8-5328.182 --type_traits_helpers、--no_type_traits_helpers .................................................... 8-5338.183 -Uname ........................................................ ........................................................ 8-5348.184 --unaligned_access、--no_unaligned_access ........................... ........................... 8-5358.185 --use_frame_pointer .............................................................................................. 8-5378.186 --use_gas .............................................................................................................. 8-5388.187 --use_pch=filename ............................................... ............................................... 8-5398.188 --using_std、--no_using_std .................................................................................. 8-5408.189 --vectorize、--no_vectorize .................................................................................... 8-5418.190 --version_number .................................................................................................. 8-5428.191 --vfe、--no_vfe ................................................... ................................................... 8-5438.192 --via=filename ................................................... ................................................... 8-5448.193 --visibility_inlines_hidden ........................................... ........................................... 8-5458.194 --vla、--no_vla ........................................................................................................ 8-5468.195 --vsn ...................................................................................................................... 8-5478.196 -W ............................................................ ............................................................ 8-5488.197 -Warmcc,option[,option,...] .................................................................................... 8-5498.198 -Warmcc,--gcc_fallback ............................................ ............................................ 8-5508.199 --wchar、--no_wchar .............................................................................................. 8-5518.200 --wchar16 .............................................................................................................. 8-5528.201 --wchar32 .............................................................................................................. 8-5538.202 --whole_program ................................................. ................................................. 8-5548.203 --wrap_diagnostics、--no_wrap_diagnostics ............................ ............................ 8-555

    第 章 9 言語拡張機能9.1 プリプロセッサ拡張機能 .......................................................................................... 9-5589.2 #assert ......................................................... ......................................................... 9-5599.3 #include_next ........................................................................................................ 9-5609.4 #unassert ....................................................... ....................................................... 9-5619.5 #warning ....................................................... ....................................................... 9-562

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 12非機密扱い

  • 9.6 C90 で使用可能な C99 言語機能 ..................................... ..................................... 9-5639.7 // コメント ................................................................................................................ 9-5649.8 構造体への添字の付加 .......................................................................................... 9-5659.9 フレキシブル配列メンバ .......................................................................................... 9-5669.10 C++ および C90 で使用可能な C99 言語機能 ........................................................ 9-5679.11 可変個引数マクロ ................................................. ................................................. 9-5689.12 long long ....................................................... ....................................................... 9-5699.13 restrict ......................................................... ......................................................... 9-5709.14 16 進浮動小数点数 ................................................................................................ 9-5719.15 標準の C 言語の拡張機能 .......................................... .......................................... 9-5729.16 定数式 ......................................................... ......................................................... 9-5739.17 配列とポインタの拡張機能 ...................................................................................... 9-5749.18 block-scope 関数の宣言 ........................................................................................ 9-5759.19 識別子内のドル記号 ............................................... ............................................... 9-5769.20 トップレベルの宣言 ................................................ ................................................ 9-5779.21 有用な再宣言 .................................................... .................................................... 9-5789.22 外部エンティティ .................................................. .................................................. 9-5799.23 関数のプロトタイプ .................................................................................................. 9-5809.24 標準の C++ 言語の拡張機能 ........................................ ........................................ 9-5819.25 ?演算子 ........................................................ ........................................................ 9-5829.26 クラスメンバの宣言 ................................................ ................................................ 9-5839.27 friend .......................................................... .......................................................... 9-5849.28 読み出し/書き込み定数 ............................................. ............................................. 9-5859.29 スカラ型定数 .......................................................................................................... 9-5869.30 非メンバ関数テンプレートの特殊化 .................................... .................................... 9-5879.31 型変換 ......................................................... ......................................................... 9-5889.32 標準 C および標準 C++ 言語の拡張機能 ............................... ............................... 9-5899.33 レジスタ変数のアドレス ............................................. ............................................. 9-5909.34 関数の引数 ............................................................................................................ 9-5919.35 匿名クラス、匿名構造体、匿名共用体 .................................. .................................. 9-5929.36 アセンブララベル .................................................. .................................................. 9-5939.37 空の宣言 ................................................................................................................ 9-5949.38 16 進数浮動小数点定数 ............................................ ............................................ 9-5959.39 不完全な列挙型 .................................................. .................................................. 9-5969.40 整数型の拡張機能 ................................................ ................................................ 9-5979.41 ラベルの定義 .................................................... .................................................... 9-5989.42 long float ....................................................... ....................................................... 9-5999.43 非スタティックローカル変数 .......................................... .......................................... 9-6009.44 構造体、共用体、列挙型、ビットフィールドの拡張機能 .............................................. 9-6019.45 C および C++ 言語に対する GNU 拡張機能 ............................. ............................. 9-602

    第 章 10 コンパイラ固有の機能10.1 キーワードと演算子 ............................................... ............................................... 10-60710.2 __align ........................................................ ........................................................ 10-60810.3 __ALIGNOF__ .................................................. .................................................. 10-60910.4 __alignof__ .................................................... .................................................... 10-61010.5 __asm ........................................................ ........................................................ 10-61110.6 __forceinline ........................................................................................................ 10-61210.7 __global_reg ................................................... ................................................... 10-613

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 13非機密扱い

  • 10.8 __inline ................................................................................................................ 10-61510.9 __int64 ........................................................ ........................................................ 10-61610.10 __INTADDR__ .................................................................................................... 10-61710.11 __irq .................................................................................................................... 10-61810.12 __packed ...................................................... ...................................................... 10-61910.13 __pure ........................................................ ........................................................ 10-62110.14 __smc ........................................................ ........................................................ 10-62210.15 __softfp ....................................................... ....................................................... 10-62310.16 __svc ......................................................... ......................................................... 10-62410.17 __svc_indirect .................................................. .................................................. 10-62510.18 __svc_indirect_r7 ................................................................................................ 10-62610.19 __value_in_regs .................................................................................................. 10-62710.20 __weak ................................................................................................................ 10-62810.21 __writeonly .......................................................................................................... 10-63010.22 __declspec 属性 .................................................................................................. 10-63110.23 __declspec(dllexport) .......................................................................................... 10-63210.24 __declspec(dllimport) .......................................................................................... 10-63410.25 __declspec(noinline) ............................................. ............................................. 10-63510.26 __declspec(noreturn) .......................................................................................... 10-63610.27 __declspec(nothrow) ............................................. ............................................. 10-63710.28 __declspec(notshared) ........................................... ........................................... 10-63810.29 __declspec(thread) .............................................. .............................................. 10-63910.30 関数属性 .............................................................................................................. 10-64010.31 __attribute__((alias)) 関数属性 ..................................... ..................................... 10-64210.32 __attribute__((always_inline)) 関数属性 .............................. .............................. 10-64310.33 __attribute__((const)) 関数属性 ..................................... ..................................... 10-64410.34 __attribute__((constructor[(priority)])) 関数属性 .................................................. 10-64510.35 __attribute__((deprecated)) 関数属性 ................................ ................................ 10-64610.36 __attribute__((destructor[(priority)])) 関数属性 .................................................... 10-64710.37 __attribute__((format_arg(string-index))) 関数属性 ...................... ...................... 10-64810.38 __attribute__((malloc)) 関数属性 .................................... .................................... 10-64910.39 __attribute__((noinline)) 関数属性 ................................... ................................... 10-65010.40 __attribute__((no_instrument_function)) 関数属性 ...................... ...................... 10-65110.41 __attribute__((nomerge)) 関数属性 .................................. .................................. 10-65210.42 __attribute__((nonnull)) 関数属性 ................................... ................................... 10-65310.43 __attribute__((noreturn)) 関数属性 .................................. .................................. 10-65410.44 __attribute__((notailcall)) 関数属性 .................................. .................................. 10-65510.45 __attribute__((pcs("calling_convention"))) 関数属性 ..................... ..................... 10-65610.46 __attribute__((pure)) 関数属性 ............................................................................ 10-65710.47 __attribute__((section("name"))) 関数属性 ............................ ............................ 10-65810.48 __attribute__((sentinel)) 関数属性 ................................... ................................... 10-65910.49 __attribute__((unused)) 関数属性 ................................... ................................... 10-66010.50 __attribute__((used)) 関数属性 ..................................... ..................................... 10-66110.51 __attribute__((visibility("visibility_type"))) 関数属性 ...................... ...................... 10-66210.52 __attribute__((weak)) 関数属性 ..................................... ..................................... 10-66310.53 __attribute__((weakref("target"))) 関数属性 ........................................................ 10-66410.54 型属性 ........................................................ ........................................................ 10-66510.55 __attribute__((bitband)) 型属性 ..................................... ..................................... 10-66610.56 __attribute__((aligned)) 型属性 ..................................... ..................................... 10-667

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 14非機密扱い

  • 10.57 __attribute__((packed)) 型属性 ..................................... ..................................... 10-66810.58 __attribute__((transparent_union)) 型属性 ............................ ............................ 10-66910.59 変数属性 .............................................................................................................. 10-67010.60 __attribute__((alias)) 変数属性 ..................................... ..................................... 10-67110.61 __attribute__((at(address))) 変数属性 ................................ ................................ 10-67210.62 __attribute__((aligned)) 変数属性 ................................... ................................... 10-67310.63 __attribute__((deprecated)) 変数属性 ................................ ................................ 10-67410.64 __attribute__((noinline)) 定数変数属性 ............................... ............................... 10-67510.65 __attribute__((packed)) 変数属性 ................................... ................................... 10-67610.66 __attribute__((section("name"))) 変数属性 ............................ ............................ 10-67710.67 __attribute__((transparent_union)) 変数属性 ...................................................... 10-67810.68 __attribute__((unused)) 変数属性 ................................... ................................... 10-67910.69 __attribute__((used)) 変数属性 ..................................... ..................................... 10-68010.70 __attribute__((visibility("visibility_type"))) 変数属性 ...................... ...................... 10-68110.71 __attribute__((weak)) 変数属性 ..................................... ..................................... 10-68210.72 __attribute__((weakref("target"))) 変数属性 ........................................................ 10-68310.73 __attribute__((zero_init)) 変数属性 .................................. .................................. 10-68410.74 プラグマ ....................................................... ....................................................... 10-68510.75 #pragma anon_unions、#pragma no_anon_unions ............................................ 10-68610.76 #pragma arm ................................................... ................................................... 10-68710.77 #pragma arm section [section_type_list] .............................. .............................. 10-68810.78 #pragma diag_default tag[,tag,...] ................................... ................................... 10-69010.79 #pragma diag_error tag[,tag,...] ..................................... ..................................... 10-69110.80 #pragma diag_remark tag[,tag,...] ................................... ................................... 10-69210.81 #pragma diag_suppress tag[,tag,...] ................................. ................................. 10-69310.82 #pragma diag_warning tag[, tag, ...] ................................. ................................. 10-69410.83 #pragma exceptions_unwind、#pragma no_exceptions_unwind ........................ 10-69510.84 #pragma GCC system_header ..................................... ..................................... 10-69610.85 #pragma hdrstop ................................................ ................................................ 10-69710.86 #pragma import symbol_name ..................................... ..................................... 10-69810.87 #pragma import(__use_full_stdio) ................................... ................................... 10-69910.88 #pragma import(__use_smaller_memcpy) ............................ ............................ 10-70010.89 #pragma inline、#pragma no_inline .................................. .................................. 10-70110.90 #pragma no_pch ................................................ ................................................ 10-70210.91 #pragma Onum ................................................. ................................................. 10-70310.92 #pragma once .................................................. .................................................. 10-70410.93 #pragma Ospace ................................................ ................................................ 10-70510.94 #pragma Otime ................................................. ................................................. 10-70610.95 #pragma pack(n) ................................................ ................................................ 10-70710.96 #pragma pop ................................................... ................................................... 10-70910.97 #pragma push .................................................. .................................................. 10-71010.98 #pragma softfp_linkage、#pragma no_softfp_linkage .................... .................... 10-71110.99 #pragma thumb ................................................. ................................................. 10-71210.100 #pragma unroll [(n)] .............................................. .............................................. 10-71310.101 #pragma unroll_completely ........................................ ........................................ 10-71510.102 #pragma weak symbol、#pragma weak symbol1 = symbol2 .............................. 10-71610.103 命令のコンパイラ組み込み関数 ...................................... ...................................... 10-71710.104 __breakpoint コンパイラ組み込み関数 ................................ ................................ 10-71810.105 __cdp コンパイラ組み込み関数 ...................................... ...................................... 10-719

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 15非機密扱い

  • 10.106 __clrex コンパイラ組み込み関数 ..................................... ..................................... 10-72010.107 __clz コンパイラ組み込み関数 .............................................................................. 10-72110.108 __current_pc コンパイラ組み込み関数 ................................ ................................ 10-72210.109 __current_sp コンパイラ組み込み関数 ................................ ................................ 10-72310.110 __disable_fiq コンパイラ組み込み関数 ................................ ................................ 10-72410.111 __disable_irq コンパイラ組み込み関数 ................................ ................................ 10-72510.112 __enable_fiq コンパイラ組み込み関数 ................................ ................................ 10-72710.113 __enable_irq コンパイラ組み込み関数 ................................ ................................ 10-72810.114 __fabs コンパイラ組み込み関数 ..................................... ..................................... 10-72910.115 __fabsf コンパイラ組み込み関数 ..................................... ..................................... 10-73010.116 __force_stores コンパイラ組み込み関数 ............................... ............................... 10-73110.117 __ldrex コンパイラ組み込み関数 ..................................... ..................................... 10-73210.118 __ldrexd コンパイラ組み込み関数 .................................... .................................... 10-73410.119 __ldrt コンパイラ組み込み関数 ...................................... ...................................... 10-73510.120 __memory_changed コンパイラ組み込み関数 .......................... .......................... 10-73710.121 __nop コンパイラ組み込み関数 ............................................................................ 10-73810.122 __pld コンパイラ組み込み関数 ...................................... ...................................... 10-74010.123 __pldw コンパイラ組み込み関数 ..................................... ..................................... 10-74110.124 __pli コンパイラ組み込み関数 ....................................... ....................................... 10-74210.125 __promise コンパイラ組み込み関数 .................................. .................................. 10-74310.126 __qadd コンパイラ組み込み関数 .......................................................................... 10-74410.127 __qdbl コンパイラ組み込み関数 ..................................... ..................................... 10-74510.128 __qsub コンパイラ組み込み関数 ..................................... ..................................... 10-74610.129 __rbit コンパイラ組み込み関数 ...................................... ...................................... 10-74710.130 __rev コンパイラ組み込み関数 ...................................... ...................................... 10-74810.131 __return_address コンパイラ組み込み関数 .......................................................... 10-74910.132 __ror コンパイラ組み込み関数 .............................................................................. 10-75010.133 __schedule_barrier コンパイラ組み込み関数 ........................... ........................... 10-75110.134 __semihost コンパイラ組み込み関数 .................................................................... 10-75210.135 __sev コンパイラ組み込み関数 ...................................... ...................................... 10-75410.136 __sqrt コンパイラ組み込み関数 ............................................................................ 10-75510.137 __sqrtf コンパイラ組み込み関数 ..................................... ..................................... 10-75610.138 __ssat コンパイラ組み込み関数 ..................................... ..................................... 10-75710.139 __strex コンパイラ組み込み関数 ..................................... ..................................... 10-75810.140 __strexd コンパイラ組み込み関数 .................................... .................................... 10-76010.141 __strt コンパイラ組み込み関数 ...................................... ...................................... 10-76210.142 __swp コンパイラ組み込み関数 ............................................................................ 10-76310.143 __usat コンパイラ組み込み関数 ..................................... ..................................... 10-76410.144 __wfe コンパイラ組み込み関数 ...................................... ...................................... 10-76510.145 __wfi コンパイラ組み込み関数 .............................................................................. 10-76610.146 __yield コンパイラ組み込み関数 ..................................... ..................................... 10-76710.147 ARMv6 SIMD コンパイラ組み込み関数 ................................ ................................ 10-76810.148 ETSI の基本操作 ................................................ ................................................ 10-76910.149 C55x コンパイラ組み込み関数 .............................................................................. 10-77110.150 VFP ステータスコンパイラ組み込み関数 ............................... ............................... 10-77210.151 __vfp_status コンパイラ組み込み関数 .................................................................. 10-77310.152 FMA(Fused Multiply Add)コンパイラ組み込み関数 ...................... ...................... 10-77410.153 名前付きレジスタ変数 ............................................. ............................................. 10-77510.154 GNU 組み込み関数 .............................................. .............................................. 10-779

    ARM DUI0472JJ Copyright © 2010-2013 ARM.All rights reserved. 16非機密扱い

  • 10.155 定義済みマクロ .................................................. .................................................. 10-78810.156 組み込み関数名変数 ............................................................................................ 10-796

    第 章 11 C および C++ の実装に関する詳細11.1 ARM C および C++ の文字セットと識別子 ............................................................ 11-79811.2 ARM C および C++ の基本データ型 .................................. .................................. 11-80011.3 ARM C および C++ での基本データ型の演算 ........................... ........................... 11-80211.4 ARM C および C++ での構造体、共用体、列挙型、ビットフィールド ........... ........... 11-80411.5 ARM C++ での ::operator new 関数の使用 ............................ ............................ 11-80911.6 ARM C++ での仮配列 .......................................................................................... 11-81011.7 ARM C++ 関数での旧方式の C パラメータ ............................. ............................. 11-81111.8 ARM C++ でアナクロニズム ........................................ ........................................ 11-81211.9 ARM C++ でのテンプレートのインスタンス化 ............................ ............................ 11-81311.10 ARM C++ でのネームスペース ...................................... ...................................... 11-81411.11 ARM C++ での C++ の例外処理 .......................................................................... 11-81611.12 ARM C++ の Extern インライン関数 .................................. .................................. 11-817

    第 章 12 ARMv6 SIMD 命令のコンパイラ組み込み関数12.1 ARMv6 SIMD コンパイラ組み込み関数(接頭文字別) ..................... ..................... 12-82012.2 ARMv6 SIMD 組み込み関数、要約説明、バイトレーン、影響を受けるフラグ .......... 12-82212.3 ARMv6 SIMD コンパイラ組み込み関数、互換性のあるプロセッサおよびアーキテクチャ ....

    ............................................................................................................................. 12-82612.4 ARMv6 SIMD 命令の組み込み関数と APSR GE フラグ ................... ................... 12-82712.5 __qadd16 コンパイラ組