7.31 組み込みアセンブラからの C および C++ のコンパイル時の定数式へのアクセス

__cpp キーワードを使用すると、外部リンケージを使用するデータまたは関数のアドレスなど、C および C++ のコンパイル時の定数式にアセンブリコードからアクセスできます。

__cpp 内の式には、C++ のスタティックな初期化で使用するのに適した定数式を指定する必要があります。『ISO/IEC 14882:2003』の「3.6.2 Initialization of non-local objects」および「5.19 Constant expressions」を参照して下さい。
以下の例では、__cpp(expr) に置き換えることができる定数を示します
LDR r0, =__cpp(&some_variable)
LDR r1, =__cpp(some_function)
BL  __cpp(some_function)
MOV r0, #__cpp(some_constant_expr)
__cpp 式で使用されている名前は、__asm 関数の C++ コンテキストでルックアップされます。__cpp 式で得られる名前はすべて必要に応じて符号化され、その名前に生成された IMPORT ステートメントが自動的に割り当てられます。
関連する概念
7.26 コンパイラでの組み込みアセンブラのサポート
7.29 C および C++ コードの組み込みアセンブリ言語関数の制限
7.33 組み込みアセンブラの手動による多重定義の解決
7.32 組み込みアセンブラと C/C++ との式の相違点
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.