You copied the Doc URL to your clipboard.

--cpu=name

Affects the way machine code is disassembled by options such as -c or --disassemble, so that it is disassembled in the same way that the specified processor or architecture interprets it.

Note

This topic includes descriptions of [ALPHA] and [BETA] features.

Syntax

--cpu=name

Where name is the name of a processor or architecture:

Processor and architecture names are not case-sensitive.

Wildcard characters are not accepted.

The following table shows examples of supported processor names for each architecture. For a complete list of the supported architecture and processor names, specify the --cpu=list option.

Table 3-2 Supported ARM architectures

Processor and architecture name Description Example processor names
6-M

ARMv6 microcontroller profile.

Cortex-M1.no_os_extension

6S-M

ARMv6 microcontroller profile with OS extensions.

Cortex-M0, SC000, Cortex-M0plus, Cortex-M1

7-A ARMv7 application profile. Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A17
7-A.security ARMv7-A architecture profile with the SMC instruction (formerly SMI). Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15, Cortex-A17

[ALPHA] 7-R

ARMv7 real-time profile.

Cortex-R4, Cortex-R4F, Cortex-R5, Cortex-R5F, Cortex-R7

7-M ARMv7 microcontroller profile. Cortex-M3, SC300
7E-M ARMv7-M architecture profile with DSP extension. Cortex-M4, Cortex-M7
8-A.32 ARMv8-A architecture profile, AArch32 state. -
8-A.32.crypto ARMv8-A architecture profile, AArch32 state with cryptographic instructions. -
8-A.32.no_neon ARMv8-A architecture profile, AArch32 state without Advanced SIMD instructions. -
8-A.64 ARMv8-A architecture profile, AArch64 state. -
8-A.64.crypto ARMv8-A architecture profile, AArch64 state with cryptographic instructions. -
8-A.64.no_neon ARMv8-A architecture profile, AArch64 state without Advanced SIMD instructions. -

[BETA] 8.1-A.32

ARMv8.1, for ARMv8-A architecture profile, AArch32 state.

-

[BETA] 8.1-A.32.crypto

ARMv8.1, for ARMv8-A architecture profile, AArch32 state with cryptographic instructions.

-

[BETA] 8.1-A.32.no_neon

ARMv8.1, for ARMv8-A architecture profile, AArch32 state without Advanced SIMD instructions.

-

[BETA] 8.1-A.64

ARMv8.1, for ARMv8-A architecture profile, AArch64 state.

-

[BETA] 8.1-A.64.crypto

ARMv8.1, for ARMv8-A architecture profile, AArch64 state with cryptographic instructions.

-

[BETA] 8.1-A.64.no_neon

ARMv8.1, for ARMv8-A architecture profile, AArch64 state without Advanced SIMD instructions.

-

[ALPHA] 8.2-A.32

ARMv8.2, for ARMv8-A architecture profile, AArch32 state.

-

[ALPHA] 8.2-A.32.crypto

ARMv8.2, for ARMv8-A architecture profile, AArch32 state with cryptographic instructions.

-

[ALPHA] 8.2-A.32.no_neon

ARMv8.2, for ARMv8-A architecture profile, AArch32 state without Advanced SIMD instructions.

-

[ALPHA] 8.2-A.64

ARMv8.2, for ARMv8-A architecture profile, AArch64 state.

-

[ALPHA] 8.2-A.64.crypto

ARMv8.2, for ARMv8-A architecture profile, AArch64 state with cryptographic instructions.

-

[ALPHA] 8.2-A.64.no_neon

ARMv8.2, for ARMv8-A architecture profile, AArch64 state without Advanced SIMD instructions.

-

8-M.Base ARMv8-M baseline architecture profile. Derived from the ARMv6-M architecture. -
8-M.Main ARMv8-M mainline architecture profile. Derived from the ARMv7-M architecture. -
8-M.Main.dsp

ARMv8-M mainline architecture profile with DSP extension.

-

Note

  • 7-A.security is not an actual ARM® architecture, but rather refers to 7-A plus Security Extensions.

  • The full list of supported architectures and processors depends on your license.

Usage

The following general points apply to processor and architecture options:

Processors
  • Selecting the processor selects the appropriate architecture, Floating-Point Unit (FPU), and memory organization.

Architectures
  • If you specify an architecture name for the --cpu option, machine code is disassembled by options such as -c or --disassemble for that architecture. If you specify --disassemble, then the disassembly can be assembled for any processor supporting that architecture.

    For example, --cpu=7-A --disassemble produces disassembly that can be assembled for the Cortex®â€‘A7 processor.

FPU
  • Some specifications of --cpu imply an --fpu selection.

    Note

    Any explicit FPU, set with --fpu on the command line, overrides an implicit FPU.
  • If no --fpu option is specified and no --cpu option is specified, --fpu=softvfp is used.

Default

If you do not specify a --cpu option, then fromelf disassembles machine instructions in an architecture-independent way. This means that fromelf disassembles anything that it recognizes as an instruction by some architecture.

Example

To specify the Cortex‑M4 processor, use:

--cpu=Cortex-M4

Was this page helpful? Yes No