1.11 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

name は特定の ARM プロセッサです以下に例を示します。

  • Thumb、Jazelle 拡張、物理的にマップされたキャッシュ、および MMU をサポートしている ARMv5 用 ARM926EJ-S

主な機能

ARMv5TE 用のコードをコンパイルする場合、コンパイラは以下を行います。

  • ARM と Thumb の間の向上したインターワーク(BLX など)をサポートします。

  • 指定されたプロセッサに命令スケジューリングを実行します。命令は、インターロックを最小化してパフォーマンスを向上させるために再度順序付けられます。

  • 16 ビットデータ項目に作用する乗算および積和命令を使用します。

  • 命令の組み込み関数を使用して、符号付き飽和算術演算を実行する加算および減算命令を生成します。サチュレート算術演算では、計算が通常の整数範囲をオーバーフローした場合に、結果は循環して上書きされずに、正または負の最大値が得られます。

  • 2 ワードのデータに作用するロード(LDRD)およびストア(STRD)命令を使用します。

境界整列のサポート

すべてのロード命令およびストア命令は、自然な整列境界で整列したアドレスを指定する必要があります。以下に例を示します。

  • LDR および STR アドレスは、ワード境界で整列する必要があります。

  • LDRH および STRH アドレスは、ハーフワード境界で整列する必要があります。

  • LDRD および STRD アドレスは、ダブルワード境界で整列する必要があります。

  • LDRB および STRB アドレスは、任意の境界で整列できます。

自然配列境界にないアドレスにアクセスすると動作が不安定になります。これを制御するには、非整列アドレスにアクセスするときにコンパイラがセーフコードを生成できるように、__packed を使用してコンパイラに通知する必要があります。

LDRDSTRD を除くすべての LDR および STR 命令は、ワード境界で整列されたアドレスを指定する必要があります。ワード境界で整列されたアドレスを指定しない場合は、命令でアボートが生成されます。

許可されている場合、非境界整列アクセスは、ロテート境界整列アクセスとして扱われます。

エンディアンのサポート

コンパイラのコマンドラインオプション --littleend および --bigend を使用すると、それぞれリトルエンディアンコードまたはビッグエンディアンコードを生成できます。

ARMv5TE は、以下のエンディアンモードをサポートします。

LE

リトルエンディアン形式

BE-32

従来のビッグエンディアン形式

詳細については、ご使用のプロセッサのテクニカルリファレンスマニュアルを参照してください。

関連情報
コンパイラによる自然なバイト境界整列でのデータオブジェクトの格納
__packed
--unaligned_access、--no_unaligned_access コンパイラオプション
--cpu=name アセンブラオプション
--bigend アセンブラオプション
--littleend アセンブラオプション
参考資料
a

コンパイラは Jazelle バイトコードを生成できません。

非機密扱いPDF file icon PDF 版ARM DUI0471JJ
Copyright © 2010-2013 ARM.All rights reserved.