10.101 #pragma thumb

このプラグマを使用すると、Thumb 命令セットのコード生成に切り替わります。これにより、--arm コンパイラオプションはオーバーライドされます。

Thumb-2 テクノロジなしの Thumb プロセッサ用のコードをコンパイルしており、VFP を使用している場合は、浮動小数点演算を含むすべての関数が ARM 用にコンパイルされます。

使用法

状態を変更するには、#pragma push および #pragma pop を関数の中ではなく関数の外の #pragma arm または #pragma thumb に対して使用します。これは #pragma arm#pragma thumb は関数レベルのみで適用されるためです。代わりに、関数定義の周囲にそれらを配置します。
#pragma push        // arm 状態で、現在のプログラマの状態を保存する
#pragma thumb       // thumb 状態に変更する
void bar(void)
{
        __asm
        {
                NOP
        }
}
#pragma pop         // 保存されたプログラマ状態を arm 状態に復元する
int main(void)
{
        bar();
}
関連する参考文書
8.7 --arm
8.180 --thumb
10.78 #pragma arm
10.98 #pragma pop
10.99 #pragma push
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.