3.11 --cpu=name

指定されたプロセッサまたはアーキテクチャによる解釈と同じように逆アセンブルされるように、-c--disassemble などのオプションでマシンコードを逆アセンブルする方法を変更します。

構文

--cpu= name
name はプロセッサまたはアーキテクチャの名前です。
プロセッサ名とアーキテクチャ名では、大文字と小文字は区別されません。
ワイルドカード文字は使用できません。

表 3-2 サポートされている ARM アーキテクチャ

アーキテクチャ 説明 プロセッサの例
4 Thumb をサポートしていない ARMv4 SA-1100
4T Thumb をサポートしている ARMv4 ARM7TDMI、ARM9TDMI、ARM720T、ARM740T、ARM920T、ARM922T、ARM940T、SC100
5T ARMv5 with Thumb and interworking -
5TE ARMv5 with Thumb, interworking, DSP multiply, and double-word instructions ARM9E, ARM946E-S, ARM966E-S
5TEJ
ARMv5 with Thumb, interworking, DSP multiply, double-word instructions, and Jazelle® extensions

fromelf cannot generate Java bytecodes.
ARM926EJ-S, ARM1026EJ-S, SC200
6 Thumb、インターワーク、DSP 乗算、ダブルワード命令、非境界整列、混合エンディアン、Jazelle 拡張、およびメディア拡張をサポートしている ARMv6 ARM1136J-S、ARM1136JF-S
6-M Thumb のみ、およびプロセッサステート命令をサポートしている ARMv6 マイクロコントローラプロファイル Cortex-M1(OS 拡張なし)、Cortex-M0、SC000、Cortex-M0plus
6S-M Thumb のみと、プロセッサステート命令および OS 拡張をサポートしている ARMv6 マイクロコントローラプロファイル Cortex-M1(OS 拡張あり)
6K SMP 拡張をサポートしている ARMv6 MPCore
6T2 Thumb をサポートしている ARMv6(Thumb-2 テクノロジ) ARM1156T2-S、ARM1156T2F-S
6Z Security Extensions をサポートしている ARMv6 ARM1176JZF-S、ARM1176JZ-S
7 Thumb(Thumb-2 テクノロジ)のみをサポートし、ハードウェア除算をサポートしていない ARMv7 -
7-A 仮想 MMU ベースメモリシステムをサポートする、ARM、Thumb(Thumb-2 テクノロジ)および ThumbEE をサポートし、DSP サポート、および 32 ビット SIMD サポートが指定された ARMv7 アプリケーションプロファイル Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17
7-A.security v7-A アーキテクチャ向けにアセンブルする場合に SMC 命令(以前の SMI) の使用を許可する Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A15、Cortex-A17
7-R ARM、Thumb(Thumb-2 テクノロジ)、DSP サポート、および 32 ビット SIMD サポートが指定された ARMv7 リアルタイムプロファイル Cortex-R4、Cortex-R4F、Cortex-R7
7-M Thumb(Thumb-2 テクノロジ)のみとハードウェア除算をサポートしている ARMv7 マイクロコントローラプロファイル Cortex-M3、SC300
7E-M DSP(サチュレートおよび 32 ビット SIMD)命令による ARMv7-M 拡張 Cortex-M4、Cortex-M7

  • ARMv7 は実際の ARM アーキテクチャではありません。--cpu=7 は、ARMv7-A、ARMv7-R、および ARMv7-M のアーキテクチャに共通の機能を示します。すなわち、--cpu=7 と共に使用される機能が ARMv7-A、ARMv7-R、ARMv7-M のアーキテクチャ上に存在します。
  • 7-A.security は実際の ARM アーキテクチャではなく、 7-A にセキュリティ拡張機能を追加したものを表します。
  • サポートされているアーキテクチャとプロセッサがすべて記載された一覧は、ライセンスによって異なります。

Usage

以下に、プロセッサとアーキテクチャに関するオプションの一般的な特徴を示します。
プロセッサ
  • プロセッサを選択すると、適切なアーキテクチャ、浮動小数点ユニット(FPU)、およびメモリ構成が選択されます。
  • --cpu の値には、現時点でのすべての ARM 製品名またはアーキテクチャバージョンを指定できます。
    Marvell Feroceon や Marvell XScale など、他の ARM アーキテクチャベースのプロセッサもサポートされています。
Architectures
  • --cpu オプションでアーキテクチャ名を指定すると、そのアーキテクチャに対し、-c--disassemble などのオプションによってマシンコードが逆アセンブルされます。--disassemble を指定すると、そのアーキテクチャをサポートしているすべてのプロセッサに対して逆アセンブリがアセンブルされます。例えば、--cpu=5TE --disassemble と指定すると、ARM926EJ-S® プロセッサに対してアセンブルされる逆アセンブリが生成されます。
FPU
  • --cpu を選択すると、--fpu が暗黙的に選択されることがあります。

    暗黙的な FPU は、コマンドラインで --fpu によって明示的に指定された FPU によってオーバーライドされることに注意して下さい。
  • --fpu オプションも --cpu オプションも指定されていない場合には、--fpu=softvfp が使用されます。

デフォルト

--cpu オプションを指定しない場合、fromelf はマシン命令をアーキテクチャに依存しない方法で逆アセンブルします。つまり、 fromelf は、アーキテクチャの命令として認識されるものをすべて逆アセンブルします。
すべてのアーキテクチャおよびプロセッサが記載された一覧を表示するには、cpu=list オプションを使用します。

制約条件

同じコマンドラインでプロセッサとアーキテクチャの両方を指定することはできません。

To select the disassembly for the Cortex™-A8 processor, use:
--cpu=Cortex-A8
関連する参考文書
3.10 --cpu=list
3.15 --device=name
3.21 --disassemble
3.39 --info=topic[,topic,…]
3.61 --text
非機密扱いPDF file icon PDF 版ARM DUI0477KJ
Copyright © 2010-2014 ARM.All rights reserved.