1.3.2. ARM コードと Thumb コードのインターワーク

Thumb 16 ビット命令セットをサポートする ARM プロセッサ用のコードを記述している場合は、必要に応じて ARM コードと Thumb コードを混用できます。C または C++ コードを記述している場合は、--apcs /interwork オプションを使用してコンパイルを実行する必要があります。リンカでは、ARM 関数が Thumb 状態から呼び出されるか、Thumb 関数が ARM 状態から呼び出されると、それを検出し、呼び出しと復帰のシーケンスを変更するか、またはインターワークベニアを挿入して必要に応じてプロセッサ状態を変更します。

Note

Thumb 関数への絶対アドレスを使用する場合は、Thumb 状態の関数へのポインタを参照して下さい。

アセンブリ言語コードを記述している場合、Procedure Call Standard for the ARM Architecture(AAPCS)のインターワークバリアントに準拠する必要があります。ターゲットアーキテクチャのバージョンに応じて、プロセッサ状態を変更する方法は複数あります。詳細については、「Chapter 4 ARM と Thumb のインターワーク」を参照して下さい。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential