Non-Confidential | ![]() | ARM 100069_0608_00_en | ||
| ||||
Home > armasm Command-line Options > --apcs=qualifier…qualifier |
Controls interworking and position independence when generating code.
--apcs=qualifier
...qualifier
Where
denotes a list of qualifiers. There must be:qualifier
...qualifier
Each instance of
must be one of:qualifier
none
Specifies that the input file does not use AAPCS. AAPCS registers are not set up.
Other qualifiers are not permitted if you use none
.
/interwork
, /nointerwork
For ARMv7-A, /interwork
specifies that the code in
the input file can interwork between ARM and Thumb safely.
For ARMv8-A, /interwork
specifies
that the code in the input file can interwork between A32 and T32 safely.
The default is /nointerwork
.
/nointerwork
is not supported for AArch64
state.
/inter
, /nointer
Are synonyms for /interwork
and /nointerwork
.
/inter
is not supported for AArch64 state.
/ropi
, /noropi
/ropi
specifies that the code in the
input file is Read-Only Position-Independent (ROPI). The
default is /noropi
./pic
, /nopic
/ropi
and /noropi
./rwpi
, /norwpi
/rwpi
specifies that the code in the
input file is Read-Write Position-Independent (RWPI). The
default is /norwpi
./pid
, /nopid
/rwpi
and /norwpi
./fpic
, /nofpic
/fpic
specifies that the code in the
input file is read-only independent and references to addresses are suitable for use in
a Linux shared object. The default is /nofpic
./hardfp
, /softfp
Requests hardware or software floating-point linkage. This enables
the procedure call standard to be specified separately from the version of the
floating-point hardware available through the --fpu
option. It is still possible to specify
the procedure call standard by using the --fpu
option, but ARM recommends you use
--apcs
. If
floating-point support is not permitted (for example, because --fpu=none
is specified, or because of other
means), then /hardfp
and /softfp
are ignored. If floating-point support
is permitted and the softfp
calling convention is used (--fpu=softvfp
or --fpu=softvfp+fp-armv8
), then /hardfp
gives an error.
/softfp
is not supported for AArch64 state.
This option specifies whether you are using the Procedure Call Standard for the ARM Architecture (AAPCS). It can also specify some attributes of code sections.
The AAPCS forms part of the Base Standard Application Binary Interface for the ARM Architecture (BSABI) specification. By writing code that adheres to the AAPCS, you can ensure that separately compiled and assembled modules can work together.
armasm --cpu=8-A.32 --apcs=/inter/hardfp
inputfile.s