非機密扱い | ![]() | ARM DUI0471JJ | ||
| ||||
ホーム > ARM アーキテクチャバージョンの主な機能 > ARM アーキテクチャ v5TE |
ARM アーキテクチャの ARMv5TE バリアントでは、 デジタル信号処理(DSP)アルゴリズムの演算サポートが強化されています。これは、ARM と Thumb の両方の命令セットをサポートします。
以下の表に、便利なコマンドラインオプションを示します。
表 1-3 ARMv5TE の便利なコマンドラインオプション
コマンドラインオプション | 説明 |
---|---|
--cpu=5TE
|
16 ビット Thumb 命令、インターワーク、DSP 乗算、およびダブルワード命令をサポートしている ARMv5 |
--cpu=5TEJ
|
16 ビット Thumb 命令、インターワーク、DSP 乗算、ダブルワード命令、および Jazelle® 拡張をサポートしている ARMv5a |
--cpu=name
|
|
ARMv5TE 用のコードをコンパイルする場合、コンパイラは以下を行います。
ARM と Thumb の間の向上したインターワーク(BLX
など)をサポートします。
指定されたプロセッサに命令スケジューリングを実行します。命令は、インターロックを最小化してパフォーマンスを向上させるために再度順序付けられます。
16 ビットデータ項目に作用する乗算および積和命令を使用します。
命令の組み込み関数を使用して、符号付き飽和算術演算を実行する加算および減算命令を生成します。サチュレート算術演算では、計算が通常の整数範囲をオーバーフローした場合に、結果は循環して上書きされずに、正または負の最大値が得られます。
2 ワードのデータに作用するロード(LDRD
)およびストア(STRD
)命令を使用します。
すべてのロード命令およびストア命令は、自然な整列境界で整列したアドレスを指定する必要があります。以下に例を示します。
LDR
および STR
アドレスは、ワード境界で整列する必要があります。
LDRH
および STRH
アドレスは、ハーフワード境界で整列する必要があります。
LDRD
および STRD
アドレスは、ダブルワード境界で整列する必要があります。
LDRB
および STRB
アドレスは、任意の境界で整列できます。
自然配列境界にないアドレスにアクセスすると動作が不安定になります。これを制御するには、非整列アドレスにアクセスするときにコンパイラがセーフコードを生成できるように、__packed
を使用してコンパイラに通知する必要があります。
LDRD
と STRD
を除くすべての LDR
および STR
命令は、ワード境界で整列されたアドレスを指定する必要があります。ワード境界で整列されたアドレスを指定しない場合は、命令でアボートが生成されます。
許可されている場合、非境界整列アクセスは、ロテート境界整列アクセスとして扱われます。
コンパイラのコマンドラインオプション --littleend
および --bigend
を使用すると、それぞれリトルエンディアンコードまたはビッグエンディアンコードを生成できます。
ARMv5TE は、以下のエンディアンモードをサポートします。
リトルエンディアン形式
従来のビッグエンディアン形式
詳細については、ご使用のプロセッサのテクニカルリファレンスマニュアルを参照してください。
コンパイラは Jazelle バイトコードを生成できません。