* config/h8300/constraints.md ("U" constraint): Use strict
[official-gcc.git] / gcc / config / arm / arm.opt
blob6da49b8a77190bc709b55af5d509342cf2a4d1c7
1 ; Options for the ARM port of the compiler.
3 ; Copyright (C) 2005-2015 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 ; for more details.
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/>.
21 HeaderInclude
22 config/arm/arm-opts.h
24 Enum
25 Name(tls_type) Type(enum arm_tls_type)
26 TLS dialect to use:
28 EnumValue
29 Enum(tls_type) String(gnu) Value(TLS_GNU)
31 EnumValue
32 Enum(tls_type) String(gnu2) Value(TLS_GNU2)
34 mabi=
35 Target RejectNegative Joined Enum(arm_abi_type) Var(arm_abi) Init(ARM_DEFAULT_ABI)
36 Specify an ABI
38 Enum
39 Name(arm_abi_type) Type(enum arm_abi_type)
40 Known ARM ABIs (for use with the -mabi= option):
42 EnumValue
43 Enum(arm_abi_type) String(apcs-gnu) Value(ARM_ABI_APCS)
45 EnumValue
46 Enum(arm_abi_type) String(atpcs) Value(ARM_ABI_ATPCS)
48 EnumValue
49 Enum(arm_abi_type) String(aapcs) Value(ARM_ABI_AAPCS)
51 EnumValue
52 Enum(arm_abi_type) String(iwmmxt) Value(ARM_ABI_IWMMXT)
54 EnumValue
55 Enum(arm_abi_type) String(aapcs-linux) Value(ARM_ABI_AAPCS_LINUX)
57 mabort-on-noreturn
58 Target Report Mask(ABORT_NORETURN)
59 Generate a call to abort if a noreturn function returns
61 mapcs
62 Target RejectNegative Mask(APCS_FRAME) Undocumented
64 mapcs-float
65 Target Report Mask(APCS_FLOAT)
66 Pass FP arguments in FP registers
68 mapcs-frame
69 Target Report Mask(APCS_FRAME)
70 Generate APCS conformant stack frames
72 mapcs-reentrant
73 Target Report Mask(APCS_REENT)
74 Generate re-entrant, PIC code
76 mapcs-stack-check
77 Target Report Mask(APCS_STACK) Undocumented
79 march=
80 Target RejectNegative ToLower Joined Enum(arm_arch) Var(arm_arch_option)
81 Specify the name of the target architecture
83 ; Other arm_arch values are loaded from arm-tables.opt
84 ; but that is a generated file and this is an odd-one-out.
85 EnumValue
86 Enum(arm_arch) String(native) Value(-1) DriverOnly
88 marm
89 Target Report RejectNegative InverseMask(THUMB)
90 Generate code in 32 bit ARM state.
92 mbig-endian
93 Target Report RejectNegative Mask(BIG_END)
94 Assume target CPU is configured as big endian
96 mcallee-super-interworking
97 Target Report Mask(CALLEE_INTERWORKING)
98 Thumb: Assume non-static functions may be called from ARM code
100 mcaller-super-interworking
101 Target Report Mask(CALLER_INTERWORKING)
102 Thumb: Assume function pointers may go to non-Thumb aware code
104 mcpu=
105 Target RejectNegative ToLower Joined Enum(processor_type) Var(arm_cpu_option) Init(arm_none)
106 Specify the name of the target CPU
108 mfloat-abi=
109 Target RejectNegative Joined Enum(float_abi_type) Var(arm_float_abi) Init(TARGET_DEFAULT_FLOAT_ABI)
110 Specify if floating point hardware should be used
112 Enum
113 Name(float_abi_type) Type(enum float_abi_type)
114 Known floating-point ABIs (for use with the -mfloat-abi= option):
116 EnumValue
117 Enum(float_abi_type) String(soft) Value(ARM_FLOAT_ABI_SOFT)
119 EnumValue
120 Enum(float_abi_type) String(softfp) Value(ARM_FLOAT_ABI_SOFTFP)
122 EnumValue
123 Enum(float_abi_type) String(hard) Value(ARM_FLOAT_ABI_HARD)
125 mfp16-format=
126 Target RejectNegative Joined Enum(arm_fp16_format_type) Var(arm_fp16_format) Init(ARM_FP16_FORMAT_NONE)
127 Specify the __fp16 floating-point format
129 Enum
130 Name(arm_fp16_format_type) Type(enum arm_fp16_format_type)
131 Known __fp16 formats (for use with the -mfp16-format= option):
133 EnumValue
134 Enum(arm_fp16_format_type) String(none) Value(ARM_FP16_FORMAT_NONE)
136 EnumValue
137 Enum(arm_fp16_format_type) String(ieee) Value(ARM_FP16_FORMAT_IEEE)
139 EnumValue
140 Enum(arm_fp16_format_type) String(alternative) Value(ARM_FP16_FORMAT_ALTERNATIVE)
142 mfpu=
143 Target RejectNegative Joined Enum(arm_fpu) Var(arm_fpu_index)
144 Specify the name of the target floating point hardware/format
146 mhard-float
147 Target RejectNegative Alias(mfloat-abi=, hard) Undocumented
149 mlittle-endian
150 Target Report RejectNegative InverseMask(BIG_END)
151 Assume target CPU is configured as little endian
153 mlong-calls
154 Target Report Mask(LONG_CALLS)
155 Generate call insns as indirect calls, if necessary
157 mpic-data-is-text-relative
158 Target Report Var(arm_pic_data_is_text_relative) Init(TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE)
159 Assume data segments are relative to text segment.
161 mpic-register=
162 Target RejectNegative Joined Var(arm_pic_register_string)
163 Specify the register to be used for PIC addressing
165 mpoke-function-name
166 Target Report Mask(POKE_FUNCTION_NAME)
167 Store function names in object code
169 msched-prolog
170 Target Report Mask(SCHED_PROLOG)
171 Permit scheduling of a function's prologue sequence
173 msingle-pic-base
174 Target Report Mask(SINGLE_PIC_BASE)
175 Do not load the PIC register in function prologues
177 msoft-float
178 Target RejectNegative Alias(mfloat-abi=, soft) Undocumented
180 mstructure-size-boundary=
181 Target RejectNegative Joined UInteger Var(arm_structure_size_boundary) Init(DEFAULT_STRUCTURE_SIZE_BOUNDARY)
182 Specify the minimum bit alignment of structures
184 mthumb
185 Target Report RejectNegative Mask(THUMB)
186 Generate code for Thumb state
188 mthumb-interwork
189 Target Report Mask(INTERWORK)
190 Support calls between Thumb and ARM instruction sets
192 mtls-dialect=
193 Target RejectNegative Joined Enum(tls_type) Var(target_tls_dialect) Init(TLS_GNU)
194 Specify thread local storage scheme
196 mtp=
197 Target RejectNegative Joined Enum(arm_tp_type) Var(target_thread_pointer) Init(TP_AUTO)
198 Specify how to access the thread pointer
200 Enum
201 Name(arm_tp_type) Type(enum arm_tp_type)
202 Valid arguments to -mtp=:
204 EnumValue
205 Enum(arm_tp_type) String(soft) Value(TP_SOFT)
207 EnumValue
208 Enum(arm_tp_type) String(auto) Value(TP_AUTO)
210 EnumValue
211 Enum(arm_tp_type) String(cp15) Value(TP_CP15)
213 mtpcs-frame
214 Target Report Mask(TPCS_FRAME)
215 Thumb: Generate (non-leaf) stack frames even if not needed
217 mtpcs-leaf-frame
218 Target Report Mask(TPCS_LEAF_FRAME)
219 Thumb: Generate (leaf) stack frames even if not needed
221 mtune=
222 Target RejectNegative ToLower Joined Enum(processor_type) Var(arm_tune_option) Init(arm_none)
223 Tune code for the given processor
225 ; Other processor_type values are loaded from arm-tables.opt
226 ; but that is a generated file and this is an odd-one-out.
227 EnumValue
228 Enum(processor_type) String(native) Value(-1) DriverOnly
230 mvectorize-with-neon-quad
231 Target Report RejectNegative InverseMask(NEON_VECTORIZE_DOUBLE)
232 Use Neon quad-word (rather than double-word) registers for vectorization
234 mvectorize-with-neon-double
235 Target Report RejectNegative Mask(NEON_VECTORIZE_DOUBLE)
236 Use Neon double-word (rather than quad-word) registers for vectorization
238 mword-relocations
239 Target Report Var(target_word_relocations) Init(TARGET_DEFAULT_WORD_RELOCATIONS)
240 Only generate absolute relocations on word sized values.
242 mrestrict-it
243 Target Report Var(arm_restrict_it) Init(2)
244 Generate IT blocks appropriate for ARMv8.
246 mold-rtx-costs
247 Target Report Mask(OLD_RTX_COSTS)
248 Use the old RTX costing tables (transitional).
250 mnew-generic-costs
251 Target Report Mask(NEW_GENERIC_COSTS)
252 Use the new generic RTX cost tables if new core-specific cost table not available (transitional).
254 mfix-cortex-m3-ldrd
255 Target Report Var(fix_cm3_ldrd) Init(2)
256 Avoid overlapping destination and address registers on LDRD instructions
257 that may trigger Cortex-M3 errata.
259 munaligned-access
260 Target Report Var(unaligned_access) Init(2)
261 Enable unaligned word and halfword accesses to packed data.
263 mneon-for-64bits
264 Target Report RejectNegative Var(use_neon_for_64bits) Init(0)
265 Use Neon to perform 64-bits operations rather than core registers.
267 mslow-flash-data
268 Target Report Var(target_slow_flash_data) Init(0)
269 Assume loading data from flash is slower than fetching instructions.
271 masm-syntax-unified
272 Target Report Var(inline_asm_unified) Init(0)
273 Assume unified syntax for Thumb inline assembly code.