These options are defined for AArch64 implementations:
-mabi=
nameThe default depends on the specific target configuration. Note that
the LP64 and ILP32 ABIs are not link-compatible; you must compile your
entire program with the same ABI, and link with a compatible set of libraries.
-mbig-endian
-mgeneral-regs-only
-mlittle-endian
-mcmodel=tiny
-mcmodel=small
-mcmodel=large
-mstrict-align
-momit-leaf-frame-pointer
-mno-omit-leaf-frame-pointer
-mtls-dialect=desc
-mtls-dialect=traditional
-mtls-size=
size-mfix-cortex-a53-835769
-mno-fix-cortex-a53-835769
-mfix-cortex-a53-843419
-mno-fix-cortex-a53-843419
-mlow-precision-recip-sqrt
-mno-low-precision-recip-sqrt
-march=
nameThe permissible values for arch are ‘armv8-a’, ‘armv8.1-a’ or native.
The value ‘armv8.1-a’ implies ‘armv8-a’ and enables compiler support for the ARMv8.1 architecture extension. In particular, it enables the ‘+crc’ and ‘+lse’ features.
The value ‘native’ is available on native AArch64 GNU/Linux and causes the compiler to pick the architecture of the host system. This option has no effect if the compiler is unable to recognize the architecture of the host system,
The permissible values for feature are listed in the sub-section on -march and -mcpu Feature Modifiers. Where conflicting feature modifiers are specified, the right-most feature is used.
GCC uses name to determine what kind of instructions it can emit
when generating assembly code. If -march is specified
without either of -mtune or -mcpu also being
specified, the code is tuned to perform well across a range of target
processors implementing the target architecture.
-mtune=
nameAdditionally, this option can specify that GCC should tune the performance of the code for a big.LITTLE system. Permissible values for this option are: ‘cortex-a57.cortex-a53’, ‘cortex-a72.cortex-a53’.
Additionally on native AArch64 GNU/Linux systems the value ‘native’ is available. This option causes the compiler to pick the architecture of and tune the performance of the code for the processor of the host system. This option has no effect if the compiler is unable to recognize the architecture of the host system.
Where none of -mtune=, -mcpu= or -march= are specified, the code is tuned to perform well across a range of target processors.
This option cannot be suffixed by feature modifiers.
-mcpu=
nameAdditionally on native AArch64 GNU/Linux systems the value ‘native’ is available. This option causes the compiler to tune the performance of the code for the processor of the host system. This option has no effect if the compiler is unable to recognize the architecture of the host system.
GCC uses name to determine what kind of instructions it can emit when
generating assembly code (as if by -march) and to determine
the target processor for which to tune for performance (as if
by -mtune). Where this option is used in conjunction
with -march or -mtune, those options take precedence
over the appropriate part of this option.
-moverride=
stringThis option is only intended to be useful when developing GCC.
-mpc-relative-literal-loads
Feature modifiers used with -march and -mcpu can be any of the following and their inverses nofeature:
That is, crypto implies simd implies fp. Conversely, nofp (or equivalently, -mgeneral-regs-only) implies nosimd implies nocrypto.