These options are defined for AArch64 implementations:
-mabi=name
ilp32’ for SysV-like data model where int, long int and pointer are 32-bit, and ‘lp64’ for SysV-like data model where int is 32-bit, but long int and pointer are 64-bit. The 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-endianaarch64_be-*-*’ target. -mgeneral-regs-only-mlittle-endianaarch64-*-*’ but not an ‘aarch64_be-*-*’ target. -mcmodel=tinysmall’. -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-ffast-math enables the reciprocal square root approximation, which in turn depends on the target processor. -march=name
The 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=name
generic’, ‘cortex-a35’, ‘cortex-a53’, ‘cortex-a57’, ‘cortex-a72’, ‘exynos-m1’, ‘qdf24xx’, ‘thunderx’, ‘xgene1’. Additionally, 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=name
-mtune. The permissible values for feature are documented in the sub-section on -march and -mcpu Feature Modifiers. Where conflicting feature modifiers are specified, the right-most feature is used. Additionally 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=string
-mtune= switch. The syntax, semantics, and accepted values for string in this option are not guaranteed to be consistent across releases. This option is only intended to be useful when developing GCC.
-mpc-relative-literal-loads-mcmodel=tiny. -march and -mcpu Feature ModifiersFeature modifiers used with -march and -mcpu can be any of the following and their inverses nofeature:
crc’-march=armv8.1-a. crypto’fp’-march and -mcpu. simd’-march and -mcpu. lse’-march=armv8.1-a. That is, crypto implies simd implies fp. Conversely, nofp (or equivalently, -mgeneral-regs-only) implies nosimd implies nocrypto.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/AArch64-Options.html