6d72ac26dd19f1aebfd4781bf257a4a12e23342c
[gcc.git] / gcc / config / aarch64 / aarch64.opt
1 ; Machine description for AArch64 architecture.
2 ; Copyright (C) 2009-2015 Free Software Foundation, Inc.
3 ; Contributed by ARM Ltd.
4 ;
5 ; This file is part of GCC.
6 ;
7 ; GCC is free software; you can redistribute it and/or modify it
8 ; under the terms of the GNU General Public License as published by
9 ; the Free Software Foundation; either version 3, or (at your option)
10 ; any later version.
11 ;
12 ; GCC is distributed in the hope that it will be useful, but
13 ; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 ; General Public License for more details.
16 ;
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
20
21 HeaderInclude
22 config/aarch64/aarch64-opts.h
23
24 ; The TLS dialect names to use with -mtls-dialect.
25
26 Enum
27 Name(tls_type) Type(enum aarch64_tls_type)
28 The possible TLS dialects:
29
30 EnumValue
31 Enum(tls_type) String(trad) Value(TLS_TRADITIONAL)
32
33 EnumValue
34 Enum(tls_type) String(desc) Value(TLS_DESCRIPTORS)
35
36 ; The code model option names for -mcmodel.
37
38 Enum
39 Name(cmodel) Type(enum aarch64_code_model)
40 The code model option names for -mcmodel:
41
42 EnumValue
43 Enum(cmodel) String(tiny) Value(AARCH64_CMODEL_TINY)
44
45 EnumValue
46 Enum(cmodel) String(small) Value(AARCH64_CMODEL_SMALL)
47
48 EnumValue
49 Enum(cmodel) String(large) Value(AARCH64_CMODEL_LARGE)
50
51 ; The cpu/arch option names to use in cpu/arch selection.
52
53 Variable
54 const char *aarch64_arch_string
55
56 Variable
57 const char *aarch64_cpu_string
58
59 Variable
60 const char *aarch64_tune_string
61
62 mbig-endian
63 Target Report RejectNegative Mask(BIG_END)
64 Assume target CPU is configured as big endian
65
66 mgeneral-regs-only
67 Target Report RejectNegative Mask(GENERAL_REGS_ONLY)
68 Generate code which uses only the general registers
69
70 mfix-cortex-a53-835769
71 Target Report Var(aarch64_fix_a53_err835769) Init(2)
72 Workaround for ARM Cortex-A53 Erratum number 835769
73
74 mfix-cortex-a53-843419
75 Target Report
76 Workaround for ARM Cortex-A53 Erratum number 843419
77
78 mlittle-endian
79 Target Report RejectNegative InverseMask(BIG_END)
80 Assume target CPU is configured as little endian
81
82 mcmodel=
83 Target RejectNegative Joined Enum(cmodel) Var(aarch64_cmodel_var) Init(AARCH64_CMODEL_SMALL)
84 Specify the code model
85
86 mstrict-align
87 Target Report RejectNegative Mask(STRICT_ALIGN)
88 Don't assume that unaligned accesses are handled by the system
89
90 momit-leaf-frame-pointer
91 Target Report Save Var(flag_omit_leaf_frame_pointer) Init(1)
92 Omit the frame pointer in leaf functions
93
94 mtls-dialect=
95 Target RejectNegative Joined Enum(tls_type) Var(aarch64_tls_dialect) Init(TLS_DESCRIPTORS)
96 Specify TLS dialect
97
98 march=
99 Target RejectNegative ToLower Joined Var(aarch64_arch_string)
100 -march=ARCH Use features of architecture ARCH
101
102 mcpu=
103 Target RejectNegative ToLower Joined Var(aarch64_cpu_string)
104 -mcpu=CPU Use features of and optimize for CPU
105
106 mtune=
107 Target RejectNegative ToLower Joined Var(aarch64_tune_string)
108 -mtune=CPU Optimize for CPU
109
110 mabi=
111 Target RejectNegative Joined Enum(aarch64_abi) Var(aarch64_abi) Init(AARCH64_ABI_DEFAULT)
112 -mabi=ABI Generate code that conforms to the specified ABI
113
114 Enum
115 Name(aarch64_abi) Type(int)
116 Known AArch64 ABIs (for use with the -mabi= option):
117
118 EnumValue
119 Enum(aarch64_abi) String(ilp32) Value(AARCH64_ABI_ILP32)
120
121 EnumValue
122 Enum(aarch64_abi) String(lp64) Value(AARCH64_ABI_LP64)