1.10 ARM アーキテクチャ v4T

ARM アーキテクチャの ARMv4T バリアントは、16 ビット Thumb 命令および ARM 命令セットをサポートします。

以下の表に、便利なコマンドラインオプションを示します。

表 1-2 ARMv4T の便利なコマンドラインオプション

コマンドラインオプション 説明
--cpu=4T 16 ビット Thumb 命令をサポートしている ARMv4。
--cpu=name

name は特定の ARM プロセッサです(ARM7TDMI. など)。

--apcs=qualifier

ここで、qualifier は、インターワークおよび位置非依存の 1 つ以上の修飾子を示します。(--apcs=/interwork など)。

主な機能

ARMv4T 用のコードをコンパイルする場合、コンパイラは Thumb 命令セットをサポートします。これにより、優れたコード密度が実現されますが、以下の点に注意する必要があります。

  • 通常、Thumb コードはコード生成に多くの命令を使用するので、ARM コードを使用して、処理時間が重視されるコードのパフォーマンスを最大化できます。

  • 例外処理には、ARM 状態および関連する ARM 命令が必要です。

  • (キャッシュ付きプロセッサ上の)キャッシュ設定および VFP を含め、コプロセッサのアクセスに ARM 命令が必要です。

境界整列のサポート

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

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

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

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

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

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

エンディアンのサポート

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

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

LE

リトルエンディアン形式

BE-32

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

関連情報
コンパイラの概要
__packed
--apcs=qualifier…qualifier アセンブラオプション
--cpu=name アセンブラオプション
--bigend アセンブラオプション
--littleend アセンブラオプション
非機密扱いPDF file icon PDF 版ARM DUI0471JJ
Copyright © 2010-2013 ARM.All rights reserved.