10.11 --compatible=name

Generates code that is compatible with multiple target architectures or processors.

Syntax

--compatible=name

Where:

name

is the name of a target processor or architecture, or None.

Processor and architecture names are not case-sensitive.

Specifying None generates code only for the processor or architecture specified by --cpu.

If multiple instances of this option are present on the command line, the last one specified overrides the previous instances. Specify --compatible=None at the end of the command line to turn off all other instances of the option.

Default

The default is None.

Usage

Using this option avoids having to reassemble the same source code for different targets.

See the following table. The valid combinations are:

  • --cpu=CPU_from_group1 --compatible=CPU_from_group2.

  • --cpu=CPU_from_group2 --compatible=CPU_from_group1.

Table 10-1 Compatible processor or architecture combinations

Group 1 ARM7TDMI, 4T
Group 2 Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4, 7-M, 6-M, 6S-M, SC300, SC000

No other combinations are permitted.

The effect is to generate code that is compatible with both --cpu and --compatible. This means that only 16-bit Thumb instructions are used. (This is the intersection of the capabilities of group 1 and group 2.)

Note:

Although the generated code is compatible with multiple targets, this code might be less efficient than compiling for a single target processor or architecture.

Example

To generate code that is compatible with both the ARM7TDMI processor and the Cortex-M4 processor, specify:

armasm --cpu=arm7tdmi --compatible=cortex-m4 inputfile.s
Non-ConfidentialPDF file icon PDF versionARM DUI0473M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.