Affects the way machine code is disassembled by options such as
--disassemble, so that it is disassembled in the same way that the specified processor or architecture interprets it.
name is the name of a
processor or architecture:
is the name of a processor, enter it as shown on ARM® data sheets, for example,
is the name of an architecture, it must belong to the list of architectures shown in the following table.
Processor and architecture names are not case-sensitive.
Wildcard characters are not accepted.
The following table shows the supported architectures.
For a complete list of the supported architecture and processor names, specify the
Table 3-2 Supported ARM architectures
||ARMv4 without Thumb|
||ARMv4 with Thumb|
||ARMv5 with Thumb and interworking|
||ARMv5 with Thumb, interworking, DSP multiply, and double-word instructions|
ARMv5 with Thumb, interworking, DSP multiply, double-word instructions, and Jazelle® extensions
fromelf cannot generate Java bytecodes.
||ARMv6 with Thumb, interworking, DSP multiply, double-word instructions, unaligned and mixed-endian support, Jazelle, and media extensions.|
ARMv6 microcontroller profile with Thumb only, plus processor state instructions.
ARMv6 microcontroller profile with Thumb only, plus processor state instructions and OS extensions.
||ARMv6 with SMP extensions.|
||ARMv6 with Thumb (Thumb-2 technology).|
||ARMv6 with Security Extensions.|
||ARMv7 with Thumb (Thumb-2 technology) only, and without hardware divide.|
||ARMv7 application profile.|
||ARMv7-A architecture profile with the
ARMv7 real-time profile.
||ARMv7 microcontroller profile.|
||ARMv7-M architecture profile with DSP extension.|
ARMv7 is not an actual ARM architecture.
--cpu=7denotes the features that are common to the ARMv7-A, ARMv7-R, and ARMv7-M architectures. By definition, any given feature used with
--cpu=7exists on the ARMv7-A, ARMv7-R, and ARMv7-M architectures.
7-A.securityis not an actual ARM architecture, but rather refers to
7-Aplus Security Extensions.
- The full list of supported architectures and processors depends on your license.
The following general points apply to processor and architecture options:
Selecting the processor selects the appropriate architecture, Floating-Point Unit (FPU), and memory organization.
--cpuvalues include all current ARM product names or architecture versions.
Other ARM architecture-based processors, such as the Marvell Feroceon and the Marvell XScale, are also supported.
If you specify an architecture name for the
--cpuoption, machine code is disassembled by options such as
--disassemblefor that architecture. If you specify
--disassemble, then the disassembly can be assembled for any processor supporting that architecture.
--cpu=7-A --disassembleproduces disassembly that can be assembled for the Cortex®â€‘A7 processor.
Some specifications of
--fpuselection.Note Any explicit FPU, set with
--fpuon the command line, overrides an implicit FPU.
--fpuoption is specified and no
--cpuoption is specified,
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.
You cannot specify both a processor and an architecture on the same command-line.
To specify the Cortexâ€‘M4 processor, use: